繁体   English   中英

使用 aws-vault 将 docker 镜像推送到 ECR 失败

[英]use aws-vault to push docker image to ECR failed

我正在尝试将 docker 映像从我的 mac 推送到 ECR。 我将身份添加到 aws-vault,但使用 aws-vault 无法获取密码。 我的同伴具有相同的权限,他可以毫无问题地登录 ECR。

.aws % aws-vault list                                                                                
    Profile                  Credentials              Sessions                 
    =======                  ===========              ========                 
    identity                 identity                 -                        
.aws % ENCRYPTED_PASSWORD=$(aws-vault exec identity -- aws ecr get-login-password --region us-west-2)
    
    An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::97xxxxxxxxxx:user/xxxxx.xxxxxx@xxxxxxxxx.com is not authorized to perform: ecr:GetAuthorizationToken on resource: * with an explicit deny in an identity-based policy

我们使用相同的角色。 我打算在获得 ENCRYPTED_PASSWORD 后执行以下行——

aws-vault exec identity -- aws ecr --region us-west-2 | docker login -u AWS -p ${ENCRYPTED_PASSWORD} xxxxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/my-ecr

我的 .aws/config 这一行参考了上面的内容。

[profile identity]

由于我的队友具有相同的策略/权限,因此我不认为“GetAuthorizationToken”是一个问题。 还有什么? 我试图找到一种方法将我的 docker 图像从 Mac 推送到 ECR。

完全重做配置,将所有角色链接到身份。

[profile xx-xxxx-services-monitoring]
role_arn=arn:aws:iam::xxxxxxxxxxxx:role/XXMonitoring
source_profile=identity
sparent_profile=mfa

[profile identity]

现在是令牌问题——我从 MFA Authenticator 输入了代码但失败了

.aws % aws-vault exec xx-xxxx-main-admin  -- aws ecr get-login --region us-west-2
Warning: parent_profile is deprecated, please use include_profile instead in your AWS config
Enter token for arn:aws:iam::xxxxxxxxxxxx:mfa/xxxxxx.xxxx@xxxxxx.com: **125492**
aws-vault: error: exec: Failed to get credentials for xx-xxxx-main-admin: AccessDenied: MultiFactorAuthentication failed, unable to validate MFA code.  Please verify your MFA serial number is valid and associated with this user.
    status code: 403, request id: 25808115-d9fa-480d-87d4-xxxxxxxxxxxxx

来自 Authenticator MFA 的令牌似乎无效

  1. 第一个 aws-vault“GetAuthorizationToken”是由不健康的、格式错误的 ~/.aws/config 文件引起的。 必须使用以下格式指定角色--

    [profile xx-xxxx-services-monitoring] role_arn=arn:aws:iam::xxxxxxxxxxxx:role/XXMonitoring source_profile=identity sparent_profile=mfa

    [个人资料身份]

  2. 第二部分是MFA问题。 MFA 序列号必须与您在身份验证器中配置的相匹配。 (DUO, Authy, Authenticator...) 你的 ~/.aws/config 应该有这个部分——

    [配置文件 mfa] mfa_serial=arn:aws:iam::xxxxxxxxxxxx:mfa/xxxxx.xxxx@xxxxx.com

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM