2017-07-24 47 views
2

我正在使用aws cli,並且我的IAM用戶擁有完整的管理權限。我們公司需要MFA,所以我的IAM用戶有一個MFA執法政策。要使用cli,我使用aws sts get-session-token獲取令牌。如何在啓用MFA強制的情況下使用`aws ecr get-login`?

這一切都讓我使用aws cli就好了,直到我嘗試獲取AWS容器註冊表的docker登錄名爲止。然後,我得到一個錯誤......

$ aws ecr get-login --registry-ids XXXXX An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::XXXXX:user/yyyyy is not authorized to perform: ecr:GetAuthorizationToken on resource: *

如果我暫時從我的IAM用戶的MFA執法政策,那麼該命令執行成功。

所以問題是,我如何在啓用MFA強制的情況下使用aws ecr get-login

回答

3

您首先需要獲取會話令牌。這可以這樣做:

aws sts get-session-token --serial-number <arn-of-the-mfa-device> --token-code <code-generated-by-MFA-device> 

的ARN-的最MFA設備可以通過在AWS控制檯的IAM節將用戶的細節中找到。 上述命令的輸出將爲您提供會話令牌以及其他訪問憑據以供使用。您應該運行:

aws configure set aws_session_token <the-session-token-in-the-output-of-above-command> 

然後,照常執行aws ecr登錄。

+0

助陣設置會話和訪問鍵,除了會話令牌,你可能需要通過 - 輸出json –

相關問題