本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
切換至 IAM 角色 (Tools for Windows PowerShell)
「角色」指定一組許可,您可以使用它來存取所需的 AWS 資源。從這個意義上說,類似於 AWS Identity and Access Management中的使用者 (IAM)。當您以使用者身分登入時,您將取得一組特定的許可。不過,您不登入角色,但一旦登入後就可以切換角色。這會暫時擱置了原始使用者許可,而不是為您提供指派給該角色的許可。該角色可以在您自己的帳戶或任何其他 AWS 帳戶中。如需有關角色、其優勢以及建立和設定方式的詳細資訊,請參閱 IAM 角色 和 IAM 角色建立。
重要
您的 IAM 使用者以及您切換到任何角色的許可都不會累計。每次只有一組許可是作用中。當您切換角色時,您會暫時放棄使用者許可並使用指派給該角色的許可。當您退出角色後,您的使用者許可會自動恢復。
本節說明在 AWS Tools for Windows PowerShell命令列中如何切換角色。
假設您在開發環境中有一個帳戶,偶爾需要使用 Tools for Windows PowerShellUse-STSRole
cmdlet,該 cmdlet 將新角色的 ARN 做為參數傳送。該命令傳回所請求角色的臨時安全憑證。然後,您可以在後續 PowerShell 命令中使用這些憑證,並使用角色的許可存取生產中的資源。使用該角色時,您無法在開發帳戶中使用您的使用者許可,因為一次只能有一組許可有效。
注意
為了安全起見,管理員可以檢閱 AWS CloudTrail 日誌,以了解在其中執行動作的人員 AWS。當您擔任角色時,系統管理員可能需要您指定來源身分或角色工作階段名稱 。如需詳細資訊,請參閱 sts:SourceIdentity 和 sts:RoleSessionName。
請注意,所有存取金鑰和權杖僅為範例,不能如下所示般使用。以您實際環境中的適當值取代。
切換至角色 (Tools for Windows PowerShell)
-
開啟 PowerShell 命令提示字元並設定預設設定檔以使用來自目前 IAM 使用者或聯合身分角色的存取金鑰。如果您之前已使用 Tools for Windows PowerShell,則可能已經完成。請注意,只有在以 IAM 使用者身分 (而非 AWS 帳戶根使用者) 登入時才能切換角色。
PS C:\>
Set-AWSCredentials -AccessKey
-SecretKeyAKIAIOSFODNN7EXAMPLE
-StoreAswJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
MyMainUserProfile
PS C:\>
Initialize-AWSDefaults -ProfileName
MyMainUserProfile
-Regionus-east-2
如需詳細資訊,請參閱AWS Tools for Windows PowerShell 《 使用者指南》中的使用 AWS 登入資料。
-
若要擷取新角色的憑證,請執行下列命令以切換到 123456789012 帳戶中的
角色。您從建立角色的帳戶管理員處取得角色 ARN。此命令還需要您提供工作階段名稱。您可以為此選擇任何文字。以下命令請求憑證,然後從傳回的結果物件中擷取RoleName
Credentials
屬性物件,並將其存放在$Creds
變數中。PS C:\>
$Creds = (Use-STSRole -RoleArn "arn:aws:iam::
123456789012
:role/RoleName
" -RoleSessionName "MyRoleSessionName
").Credentials$Creds
是一個物件,現在包含您在下列步驟中所需的AccessKeyId
、SecretAccessKey
和SessionToken
元素。以下範例命令說明典型的值:PS C:\>
$Creds.AccessKeyId
AKIAIOSFODNN7EXAMPLEPS C:\>
$Creds.SecretAccessKey
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYPS C:\>
$Creds.SessionToken
AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLECvSRyh0FW7jEXAMPLEW+vE/7s1HRp XviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDyEXAMPLE9/g7QRUhZp4bqbEXAMPLENwGPy Oj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3UuysgsKdEXAMPLE1TVastU1A0SKFEXAMPLEiywCC/C s8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLEsnf87eNhyDHq6ikBQ==PS C:\>
$Creds.Expiration
Thursday, June 18, 2018 2:28:31 PM -
若要將這些憑證用於任何後續命令,請將它們包含在
-Credential
參數中。例如,以下命令使用角色中的憑證,僅在角色被授予iam:ListRoles
許可且因此可以執行Get-IAMRoles
cmdlet 時才起作用:PS C:\>
get-iamroles -Credential $Creds
-
若要傳回原始憑證,只需停止使用
-Credentials $Creds
參數,並允許 PowerShell 恢復存放在預設設定檔中的憑證。