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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWS EC2でAMI(Amazon Machine Image)を作成しておく
前回まででひとまずRedmineを構築するところまで出来たので、念のためスナップ …
-
-
Amazon VPCのAmazonProvidedDNSとほかメモ
VPCユーザーガイドのAmazon DNS について理解するの記載内容について実 …
-
-
AWS WAF Web ACLとルールをv1(Classic)からv2に自動移行しました
新しいものは、課題が解決されていたり、機能追加されたりするのでいいものです。 長 …
-
-
EC2 Dedicated Hosts(専有ホスト)を起動
クォータ引き上げ 新規で作成したアカウントではDedicated Hostsがソ …
-
-
「関西AWSスタートアップ勉強会」に行ってきました
第2回 関西スタートアップAWS勉強会に行ってきました。 akippa 拠点数コ …
-
-
AWS Summit 2016 Tokyoに参加してきました (前日 ~ Day1)
AWS Summit 2016 Tokyoにて、セッション聴講、ブース展示拝見、 …
-
-
Rocket.ChatのOutGoingWebhookからのAPI GatewayからのDynamoDB
少し前に、Rocket.ChatからOut Going Webhookを設定して …
-
-
AWS Transfer Family EFS向けのSFTP対応サーバー
EFSファイルシステムは作成済です。 AWS Transfer Family S …
-
-
特定AWSアカウント特定リージョンのCloudFormationスタックを削除するLambda(Python)
やりたいこと 特定アカウント内特定リージョン内のCloudFormationスタ …
-
-
「JAWS-UG朝会 #18」で主にAWSなブログについて発表をしました
ラジオ体操 いつものラジオ体操から。 今日はラーニングセンターから配信の日でした …






