翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ジョブのプライベートレジストリ認証
を使用したジョブのプライベートレジストリ認証 AWS Secrets Manager では、認証情報を安全に保存し、ジョブ定義で参照できます。これにより、ジョブ定義で認証 AWS が必要な の外部のプライベートレジストリに存在するコンテナイメージを参照できます。この機能は、Amazon EC2 インスタンスおよび Fargate でホストされているジョブでサポートされています。
重要
ジョブ定義で Amazon ECR に保存されているイメージを参照する場合、このトピックは適用されません。詳細については、Amazon Elastic Container Registry ユーザーガイドの「Amazon ECS で Amazon ECR イメージを使用する」を参照してください。
Amazon EC2 インスタンスでホストされているジョブの場合、この機能にはバージョン 1.19.0
以降の コンテナエージェントが必要です。ただし、最新のコンテナエージェントのバージョンを使用することをお勧めします。エージェントのバージョンを確認して最新バージョンに更新する方法については、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS コンテナエージェントの更新」を参照してください。
Fargate でホストされているジョブの場合、この機能にはプラットフォームバージョン 1.2.0
以降が必要です。詳細については、「Amazon Elastic Container Service デベロッパーガイド」のAWS 「Fargate Linux プラットフォームのバージョン」を参照してください。
コンテナの定義内で、作成したシークレットの詳細 で repositoryCredentials
オブジェクトを指定します。参照するシークレットは、それを使用するジョブとは異なる AWS リージョン アカウントからでも、異なるアカウントからでもかまいません。
注記
AWS Batch API、 AWS CLI、または AWS SDK を使用する場合、起動するジョブ AWS リージョン と同じ にシークレットが存在する場合は、シークレットの完全な ARN または名前のどちらも使用できます。シークレットが別のアカウントに存在する場合は、シークレットの完全な ARN を指定する必要があります。を使用する場合 AWS Management Console、シークレットの完全な ARN を常に指定する必要があります。
以下は、必要なパラメータを示すジョブ定義のスニペットです。
"containerProperties": [ { "image": "
private-repo/private-image
", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region
:123456789012
:secret:secret_name
" } } ]
プライベートレジストリの認証で必須の IAM アクセス許可
この機能を使用するには、実行ロールが必要です。このロールを使用して、コンテナエージェントでコンテナイメージをプルできます。詳細については、「AWS Batch 実行 IAM ロール」を参照してください。
作成したシークレットへのアクセスを提供するには、次のアクセス許可を実行ロールにインラインポリシーとして追加します。詳細については、「IAM ポリシーの追加と削除」を参照してください。
-
secretsmanager:GetSecretValue
-
kms:Decrypt
- カスタムの KMS キーを使用するが、デフォルトのキーは使用しない場合にのみ必須。カスタムキーの Amazon リソースネーム (ARN) は、リソースとして追加する必要があります。
次の例では、インラインポリシーによりアクセス許可を追加しています。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:
region
:123456789012
:secret:secret_name
", "arn:aws:kms:region
:123456789012
:key/key_id
" ] } ] }
プライベートレジストリの認証の使用
基本的なシークレットを作成するには
AWS Secrets Manager を使用して、プライベートレジストリ認証情報のシークレットを作成します。
-
https://console.aws.amazon.com/secretsmanager/
で AWS Secrets Manager コンソールを開きます。 -
[Store a new secret] (新しいシークレットの保存) を選択します。
-
[Select secret type] (シークレットタイプの選択) で、[Other type of secrets] (他の種類のシークレット) を選択します。
-
[プレーンテキスト] を選択し、次の形式でプライベートレジストリ認証情報を入力します。
{ "username" : "
privateRegistryUsername
", "password" : "privateRegistryPassword
" } -
[次へ] を選択します。
-
[Secret name] (シークレット名) に、オプションのパスと名前 (例:
production/MyAwesomeAppSecret
またはdevelopment/TestSecret
) を入力し、[Next] (次へ) を選択します。オプションで説明を追加することもできます。後でこのシークレットを思い出すのに役立ちます。シークレット名に使用できるのは、ASCII 文字、数字、または以下の記号のみです:
/_+=.@-
。 -
(オプション) この時点で、シークレットのローテーションを設定することができます。この手順では、[Disable automatic rotation] (自動ローテーションを無効化) は無効のままにし、[次] を選択します。
新規または既存のシークレットでローテーションを設定する方法については、「シーAWS Secrets Manager クレットのローテーション」を参照してください。
-
設定を確認した上で、[Store secret] (シークレットの保存) を選択し、入力した全内容を Secrets Manager の新しいシークレットとして保存します。
ジョブ定義を登録し、プライベートレジストリ でプライベートレジストリ認証 を有効にします。その後、[Secrets Manager ARN または名前] で、シークレットの Amazon リソースネーム (ARN) を入力します。詳細については、「プライベートレジストリの認証で必須の IAM アクセス許可」を参照してください。