翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon ECR でのプライベートレジストリ認証
AWS Management Console、 AWS CLI、または AWS SDKs を使用して、プライベートリポジトリを作成および管理できます。また、これらの方法を使用して、イメージの一覧表示や削除などのいくつかのアクションをイメージで実行できます。これらのクライアントは、標準の AWS 認証方法を使用します。Amazon ECR API を使用してイメージをプッシュおよびプルできますが、Docker CLI または言語固有の Docker ライブラリの使用をお勧めします。
Docker CLI は、ネイティブの IAM 認証方法をサポートしていません。Amazon ECR が、Docker のプッシュ要求とプル要求を認証および認可できるようにするには、追加の手順を実行する必要があります。
以下のセクションで説明するレジストリ認証方法を使用できます。
Amazon ECR 認証情報ヘルパーを使用する
Amazon ECR には Docker 認証情報ヘルパーが用意されているので、Amazon ECR に対してイメージをプッシュおよびプルするときに、Docker 認証情報をより簡単に保存および使用できます。インストールおよび設定手順については、「Amazon ECR Docker 認証情報ヘルパー
注記
Amazon ECR Docker 認証情報ヘルパーは、現在、多要素認証 (MFA) をサポートしていません。
認可トークンを使用する
認可トークンの許可スコープは、認証トークンの取得に使用される IAM プリンシパルの許可スコープと一致します。認証トークンは、IAM プリンシパルからアクセス可能で 12 時間有効な Amazon ECR レジストリにアクセスするために使用されます。認可トークンを取得するには、GetAuthorizationToken API オペレーションを使用して、ユーザー名 AWS
とエンコードされたパスワードを含む base64 エンコード認可トークンを取得します。get-login-password
コマンドは AWS CLI 、認可トークンを取得してデコードすることでこれを簡素化します。このトークンをdocker loginコマンドにパイプ処理して認証できます。
get-login を使用して Amazon ECR プライベートレジストリに対して Docker を認証するには
get-login-password を使用して Amazon ECR レジストリに対して Docker を認証するには、aws ecr get-login-password コマンドを実行します。認証トークンを docker login コマンドに渡すとき、ユーザー名に
AWS
値を使用し、認証先の Amazon ECR レジストリの URI を指定します。複数のレジストリに対して認証する場合は、レジストリごとにコマンドを繰り返す必要があります。重要
エラーが発生した場合は、 AWS CLIの最新バージョンをインストールまたはアップグレードします。詳細については、AWS Command Line Interface ユーザーガイドの「AWS Command Line Interfaceのインストール」を参照してください。
-
get-login-password (AWS CLI)
aws ecr get-login-password --region
region
| docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com -
Get-ECRLoginCommand (AWS Tools for Windows PowerShell)
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com
-
HTTP API 認証を使用する
Amazon ECR は Docker Registry HTTP API-H
オプションを使用して HTTP 認可ヘッダーを追加curlし、 get-authorization-token AWS CLI コマンドによって提供される認可トークンを渡すことができます。
Amazon ECR HTTP API を使用して認証するには
-
AWS CLI を使用して認可トークンを取得し、そのトークンを環境変数に設定します。
TOKEN=$(aws ecr get-authorization-token --output text --query 'authorizationData[].authorizationToken')
-
API に対して認証するには、
$TOKEN
変数を curl の-H
オプションに渡します。たとえば、次のコマンドでは、Amazon ECR レポジトリでイメージタグを一覧表示します。詳細については、Docker レジストリ HTTP APIリファレンスドキュメントを参照してください。 curl -i -H "Authorization: Basic $TOKEN" https://
aws_account_id
.dkr.ecr.region
.amazonaws.com/v2/amazonlinux
/tags/list出力は次のとおりです。
HTTP/1.1 200 OK Content-Type: text/plain; charset=utf-8 Date: Thu, 04 Jan 2018 16:06:59 GMT Docker-Distribution-Api-Version: registry/2.0 Content-Length: 50 Connection: keep-alive {"name":"amazonlinux","tags":["2017.09","latest"]}