Amazon-Web-Services
如何在 aws-cli 中“切換角色”?
我正在與一家擁有多個 AWS 賬戶的公司簽約。他們允許我訪問登錄帳戶,我在 Web 控制台中“切換角色”到我工作的項目帳戶。在 web gui 中它可以工作。
我該怎麼做
aws-cli
?我只有登錄帳戶的訪問密鑰,我無權在項目帳戶中創建使用者和訪問密鑰。甚至可能嗎?
當然有可能!
假設您在 中獲得了登錄帳戶憑據
~/.aws/credentials
,可能是這樣的:~ $ cat ~/.aws/credentials [customer-login] aws_access_key_id = AKIABCDEFGHJKLMNOPQR aws_secret_access_key = ZxCvBnMaSdFgHjKlQwErTyUiOp
您需要做的就是添加另一個配置文件,該配置文件
~/.aws/credentials
將使用上述配置文件將帳戶切換到您的項目帳戶角色。您還需要 Project account Role ARN -切換到Project account後,您可以在**IAM -> Roles的 Web 控制台中找到它。假設項目帳號是 123456789012 …[customer-project] role_arn = arn:aws:iam::123456789012:role/your-project-role-name # << Change this source_profile = customer-login
有了它,您可以測試它是否有效:
~ $ aws --profile customer-project sts get-caller-identity { "Account": "123456789012", "UserId": "AROA1B2C3D4E5F6G7H8I:botocore-session-1538120713", "Arn": "arn:aws:sts::123456789012:assumed-role/your-project-role-name/botocore-session-1538120713" }
如您所見,您現在位於項目帳戶中,帳戶 ID 為 123456789012 已確認。
如果您想始終使用此配置文件,
aws-cli
可以這樣做:~ $ export AWS_DEFAULT_PROFILE=customer-project ~ $ aws sts get-caller-identity ... will be the same output as above, even without specifying --profile ...
有關更多資訊,請查看此文章:https ://aws.nz/best-practice/cross-account-access-with-aws-cli/
還要檢查: