2016-01-14 64 views
6

如何在使用AWS CLI時輸入MFA代碼?我檢查了IAM 的文檔頁面。如何在AWS CLI中使用MFA?

我已經在我的用戶名下啓用了MFA設備。

aws iam list-mfa-devices --user-name X 

回報

{ 
"MFADevices": [ 
    { 
     "UserName": "X", 
     "SerialNumber": "arn:aws:iam::+++:mfa/X", 
     "EnableDate": "2016-01-13T23:15:43Z" 
    } 
] 
} 

回答

2

電話aws sts get-session-token --token-code <value>記錄here。這會給你一個臨時的安全令牌。有關使用臨時安全令牌的文檔可以在here找到。

11

如果您使用的是角色,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 

注意mfa_serial條目。您可以從AWS IAM控制檯中的用戶詳細信息中獲取此值。該條目告訴CLI該角色需要MFA。

當我打電話aws s3 ls --profile my_admin_role它說Enter MFA code:,我粘貼代碼後返回列表。

注意:我沒有找到一種方法讓CLI在調用用戶配置文件(--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" 
# }