Hel*_*lad 23 amazon-web-services
使用AWS CLI时如何输入MFA代码?我查看了IAM http://docs.aws.amazon.com/cli/latest/reference/iam/index.html的文档页面.
我已经在我的用户名下启用了MFA设备.
aws iam list-mfa-devices --user-name X
Run Code Online (Sandbox Code Playgroud)
回报
{
"MFADevices": [
{
"UserName": "X",
"SerialNumber": "arn:aws:iam::+++:mfa/X",
"EnableDate": "2016-01-13T23:15:43Z"
}
]
}
Run Code Online (Sandbox Code Playgroud)
Joe*_*ris 41
如果您正在使用角色,CLI可以为您管理大量此类操作.这里描述:http://docs.aws.amazon.com/cli/latest/userguide/cli-roles.html
在我的凭证文件中,我有:
[my_iam_user]
aws_access_key_id = AKIABLAHBLAHBLAHBLAH
aws_secret_access_key = <blah>
region = us-east-1
[my_admin_role]
role_arn = arn:aws:iam::123456789123:role/my_admin_role
source_profile = my_iam_user
mfa_serial = arn:aws:iam::123456789123:mfa/my_iam_user
region = us-east-1
Run Code Online (Sandbox Code Playgroud)
请注意该mfa_serial
条目.您可以在AWS IAM控制台中从您的用户详细信息中获取此值.此条目告诉CLI该角色需要MFA.
当我打电话给aws s3 ls --profile my_admin_role
它时Enter MFA code:
,我粘贴代码后返回列表.
注意:我没有找到一种方法让CLI在调用用户配置文件时请求MFA(--profile my_iam_user
)只调用角色配置文件会触发MFA请求.
然后继续使用MFA令牌,也可以使用用户配置文件:
aws sts get-caller-identity --profile my_iam_user
# {
# "Account": "123456789123",
# "UserId": "AIDABLAHBLAHBLAHBLAH",
# "Arn": "arn:aws:iam::123456789123:user/my_iam_user"
# }
aws sts get-caller-identity --profile my_admin_role
# {
# "Account": "123456789123",
# "UserId": "AROABLAHBLAHBLAHBLAH:AWS-CLI-session-1234567890",
# "Arn": "arn:aws:sts::123456789123:assumed-role/my_admin_role/AWS-CLI-session-1234567890"
# }
Run Code Online (Sandbox Code Playgroud)
分步手动解决方案:
aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token
Run Code Online (Sandbox Code Playgroud)
arn-of-the-mfa-device
:从您的用户 IAM 可见
aws iam list-mfa-devices --user-name ryan
code-from-token
:来自您配置的 MFA 设备的 6 位代码
aws configure --profile cli
aws configure set --profile cli aws_session_token <SESSION_TOKEN_HERE>
Run Code Online (Sandbox Code Playgroud)
aws_session_token
是不包括在aws configure
aws s3 ls --profile cli
Run Code Online (Sandbox Code Playgroud)
我已经为 aws-cli 发布了一个 PR,它将允许在凭证中使用 mfa_serial,这将强制您在向 AWS 发出请求之前输入令牌(并且它会在令牌有效时被缓存)
如果您想参加,请随意投票。
归档时间: |
|
查看次数: |
16252 次 |
最近记录: |