登录 ECR 的正确方法是什么?

登录 ECR 的正确方法是什么?

目前,我的 bash 脚本中有此命令,用于构建图像并将其推送到 Amazon ECR

docker login -u AWS -p "$(aws ecr get-login-password)" "https://$(aws sts get-caller-identity --query 'Account' --output text).dkr.ecr.us-east-1.amazonaws.com"

这给出了警告“警告!通过 CLI 使用 --password 不安全。请使用 --password-stdin。”

我如何更改此命令以不发出警告?这真的不安全吗?

答案1

对此进行修改似乎效果很好:

aws ecr get-login-password | docker login -u AWS --password-stdin "https://$(aws sts get-caller-identity --query 'Account' --output text).dkr.ecr.us-east-1.amazonaws.com"

答案2

假设 AWS CLI 已正确配置,例如:

aws configure

然后只需调用以下命令:

aws ecr get-login-password | docker login -u AWS --password-stdin "https://$(aws sts get-caller-identity --query 'Account' --output text).dkr.ecr.$(aws configure get region).amazonaws.com"

上一个命令aws ecr get-login自动解析了帐户 ID 和区域。上面的命令明确地执行了此操作:

$(aws sts get-caller-identity --query 'Account' --output text)

(根据@Moak 的回答,谢谢)

和:

$(aws configure get region)

获取该区域。

答案3

登录 ECR 的推荐方式是使用 生成的命令aws ecr get-login

答案4

$(aws ecr get-login --no-include-email --region cn-northwest-1)

替换cn-northwest-1为您的地区。

相关内容