本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
切換到IAM角色 (視窗工具 PowerShell)
「角色」指定一組許可,您可以使用它來存取所需的 AWS 資源。從這個意義上講,它類似於 AWS Identity and Access Management(IAM)中的用戶。當您以使用者身分登入時,您將取得一組特定的許可。不過,您不登入角色,但一旦登入後就可以切換角色。這會暫時擱置了原始使用者許可,而不是為您提供指派給該角色的許可。該角色可以在您自己的帳戶或任何其他 AWS 帳戶中。如需有關角色、其優勢以及建立和設定方式的詳細資訊,請參閱 IAM 角色 和 IAM角色建立。
重要
您的IAM使用者權限以及您切換至的任何角色都不會累積。每次只有一組許可是作用中。當您切換角色時,您會暫時放棄使用者許可並使用指派給該角色的許可。當您退出角色後,您的使用者許可會自動恢復。
本節說明在 AWS Tools for Windows PowerShell命令列中如何切換角色。
假設您在開發環境中有一個帳戶,並且偶爾需要在命令列使用 Windows 的 ToolsUse-STSRole
指令程式。該命令傳回所請求角色的臨時安全憑證。然後,您可以在具有角色權限的後續 PowerShell命令中使用這些認證,以存取生產環境中的資源。使用該角色時,您無法在開發帳戶中使用您的使用者許可,因為一次只能有一組許可有效。
注意
基於安全考量,管理員可以檢閱 AWS CloudTrail 記錄檔,以瞭解中執行動作的人員 AWS。當您擔任角色時,系統管理員可能需要您指定來源身分或角色工作階段名稱 。如需詳細資訊,請參閱 sts:SourceIdentity 和 sts:RoleSessionName。
請注意,所有存取金鑰和權杖僅為範例,不能如下所示般使用。以您實際環境中的適當值取代。
若要切換到角色 (視窗工具 PowerShell)
-
開啟 PowerShell 命令提示字元,並將預設設定檔設定為使用目前使用IAM者或同盟角色的存取金鑰。如果您以前使用過 Windows 的工具 PowerShell,那麼這很可能已經完成。請注意,只有當您以IAM使用者身分登入時,才能切換角色,而不能切換 AWS 帳戶根使用者。
PS C:\>
Set-AWSCredentials -AccessKey
-SecretKeyAKIAIOSFODNN7EXAMPLE
-StoreAswJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
MyMainUserProfile
PS C:\>
Initialize-AWSDefaults -ProfileName
MyMainUserProfile
-Regionus-east-2
-
若要擷取新角色的憑證,請執行下列命令以切換到 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 允許還原為預設設定檔中儲存的認證即可。