概要
クラメソさんの記事を読んでaws ecr get-login
がv1では非推奨、v2では使えなくなっていることを知ったので、自分の環境どうだったか確認をかねて新しいコマンドecr get-login-password
を使ってみました。
自分の環境
自分のawsコマンドのバージョンどうだったけ?と思ったので確認しましたが、まだv1でした。
~ $ aws --version aws-cli/1.16.274 Python/3.6.6 Darwin/18.7.0 botocore/1.13.10
v1.17以下だとecr get-login-password
が使えないのでアップグレードします。
# アップグレード ~ $ pip install --upgrade awscli # バージョン確認 ~ $ aws --version aws-cli/1.18.0 Python/3.6.6 Darwin/18.7.0 botocore/1.15.0
確認
v1.18にアップデートされたので、試してみます。
まずは、get-login
のときの出力は以下の通りですね。ログインするための情報がコマンドラインで返ってきます。
~ $ aws-vault exec my-profile -- aws ecr get-login docker login -u AWS -p [password]
新しいコマンドを使うと以下のように、パスワードだけ返ってきます。
~ $ aws-vault exec my-profile -- aws ecr get-login-password [password]
Dokcerコマンドとパイプを使えば、セキュアな情報をターミナル上に表示させることなくログインすることが可能です。
~ $ aws-vault exec my-profile -- aws ecr get-login-password | docker login -u AWS --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com Login Succeeded
あとは普段通りdocker pull
など実行すればOK
~ $ docker pull [aws-account-id].dkr.ecr.ap-northeast-1.amazonaws.com/my-image:xxxxx xxxxx Pulling from my-image
get-login
のコマンドリファレンスにも、このコマンドを使うとセキュアな情報が他人に見えてしまうので、セキュアな環境ではない限り使わないようにと書かれていますね。他にも使っているところあったら置きかえよう。。。
以上です。