![登录 ECR 的正确方法是什么?](https://linux22.com/image/749047/%E7%99%BB%E5%BD%95%20ECR%20%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
目前,我的 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
为您的地区。