pot*_*tom 11 amazon-web-services aws-cli
我正在为一家拥有多个 aws 帐户的公司签约。他们让我访问登录帐户,我在 Web 控制台中“切换角色”到我工作的项目帐户。在 web gui 中它可以工作。
我如何做同样的事情aws-cli
?我只有登录帐户的访问密钥,我无权在项目帐户中创建用户和访问密钥。甚至有可能吗?
MLu*_*MLu 16
当然有可能!
假设您已经在 中获得了登录帐户凭据~/.aws/credentials
,可能是这样的:
~ $ cat ~/.aws/credentials
[customer-login]
aws_access_key_id = AKIABCDEFGHJKLMNOPQR
aws_secret_access_key = ZxCvBnMaSdFgHjKlQwErTyUiOp
Run Code Online (Sandbox Code Playgroud)
您需要做的就是添加另一个配置文件,~/.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
Run Code Online (Sandbox Code Playgroud)
有了它,您可以测试它是否有效:
~ $ 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"
}
Run Code Online (Sandbox Code Playgroud)
如您所见,您现在位于帐户 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 ...
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看此帖子:https : //aws.nz/best-practice/cross-account-access-with-aws-cli/
还要检查:
归档时间: |
|
查看次数: |
15662 次 |
最近记录: |