ECR(Amazon Elastic Container Registry)にコンテナイメージをアップロードする
2019/05/02
「Pandocサーバーのコンテナイメージを作成する」で作成したイメージをAWS Batchで使いたいので、ECR(Amazon Elastic Container Registry)にアップロードします。
最終的にはマークダウンからEPUB3への変換をAWS Batchで自動化したいと思います。
目次
ECRリポジトリの作成
[Amazon Container Services]にアクセスして、[Amazon ECR]を選択します。
[リポジトリの作成]ボタンをクリックしました。
リポジトリの名前を入力して作成しました。
リポジトリが出来ました。
ECRリポジトリにイメージをプッシュ
リポジトリ名をクリックして、[プッシュコマンドの表示]をクリックすると、このリポジトリにイメージをプッシュするためのコマンドが表示されます。
ここからはAWS CLIでこのコマンドを実行します。
CLIコマンドを実行するユーザーのIAMポリシーは、最小権限になるようにしてみました。
このポリシーは最終的にこうなったポリシーです。
最初はecr:PutImageとecr:GetAuthorizationTokenだけで開始して、エラーメッセージごとに追加していきました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "sid1", "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:UploadLayerPart", "ecr:InitiateLayerUpload", "ecr:PutImage" ], "Resource": "arn:aws:ecr:us-east-1:123456789012:repository/pandoc" }, { "Sid": "sid2", "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] } |
1 2 3 4 5 6 |
$ (aws ecr get-login --no-include-email --region us-east-1) WARNING! Using --password via the CLI is insecure. Use --password-stdin. Login Succeeded $ docker tag pandoc:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/pandoc:latest $ docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/pandoc:latest |
イメージはすでに作成済ですので、docker buildはスキップしてます。
エラーが発生しました。
「error parsing HTTP 403 response body: unexpected end of JSON input: “”」
ここまでも権限不足が発生するごとに
「denied: User: arn:aws:iam::123456789012:user/ecr is not authorized to perform: ecr:InitiateLayerUpload on resource: arn:aws:ecr:us-east-1:123456789012:repository/pandoc」というようなメッセージが表示されていたので、該当のポリシーをリソース限定で追加していました。
ですが、今回のメッセージは権限不足なのかどうかよくわかりませんでした。
このメッセージそのもので検索していくつかの検索結果を見ますと、「”ecr:BatchCheckLayerAvailability”」を追加しよう、ということだったので追加しました。
アップロードできました!
次はAWS Batchで使ってみます。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
ALBにWAFを関連付けて特定のヘッダー以外はブロックする
おかげさまで、ブログのアクセスも増えてきて、t3.nano EC2インスタンス単 …
-
-
JAWS FESTA 2017 Reverse X re:Birth
JAWS FESTA 2017 中四国 今年はブログタイトル「JAWS FEST …
-
-
DynamoDB IAMポリシーで特定属性だけを許可する
検証記録です。 対象テーブル 書籍のサンプルで作ったこちらです。 所属バンドの楽 …
-
-
「AWSではじめるLinux入門ガイド 」を執筆しました
2020年4月30日に、「AWSではじめるLinux入門ガイド」という本を発行い …
-
-
Route 53 の加重ラウンドロビンルーティングでロードバランサー
Route 53の加重ラウンドロビンで両方1に設定してみました。 上図はイメージ …
-
-
Amazon Route 53プライベートホストゾーン設定
Amazon Route 53プライベートホストゾーンを作成してみました。 Ro …
-
-
Projectタグを強制するSCPでアクションやリソースを限定しないとき成り立つのか
ふと疑問に思ったので試しました。 予想は、拒否されてしまう、です。 [crayo …
-
-
webフォームからの問い合わせをRedmineに自動登録して対応状況を管理する(API Gateway + Lambda)
先日、検証目的で作成したRedmineの冗長化の一機能として、webフォームから …
-
-
Amzon Linux のApacheでRedmineとWordPressをバーチャルホストで共存する
EC2とRDSを節約しようと思いまして、Redmineを動かしてるとこに検証用W …
-
-
YouTubeチャンネル「ヤマムギ」をはじめました
YouTubeチャンネル「ヤマムギ」をはじめました。 2021年GWチャレンジと …