

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ジョブのプライベートレジストリの認証
<a name="private-registry"></a>

を使用するジョブのプライベートレジストリ認証 AWS Secrets Manager を使用すると、認証情報を安全に保存し、ジョブ定義で参照できます。これにより、ジョブ定義で認証 AWS を必要とする 外のプライベートレジストリに存在するコンテナイメージを参照できます。この機能は、Amazon EC2 インスタンスと Fargate でホストされるジョブに対応しています。

**重要**  
ジョブ定義で Amazon ECR に保存されたイメージを参照している場合、このトピックは適用されません。詳細については、*Amazon Elastic Container Registry ユーザーガイド*の「[Amazon ECS で Amazon ECR イメージを使用する](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html)」を参照してください。

Amazon EC2 インスタンスでホストされるジョブの場合は、この機能のためにコンテナエージェントのバージョン `1.19.0` 以降が必要です。ただし、最新のコンテナエージェントバージョンを使用することをお勧めします。エージェントのバージョンの確認と最新バージョンへの更新の方法の詳細については、「*Amazon Elastic Container Service 開発者ガイド*」の「[Amazon ECS コンテナエージェントをアップデートする](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)」を参照してください。

Fargate でホストされているジョブの場合、この機能にはプラットフォームバージョン `1.2.0` 以降が必要です。詳細については、「*Amazon Elastic Container Service 開発者ガイド*」の「[AWS Amazon ECS 向け Fargate プラットフォームバージョン](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform-linux-fargate.html)」を参照してください。

コンテナの定義内で、作成したシークレットの詳細 で `repositoryCredentials` オブジェクトを指定します。参照するシークレットは、それを使用するジョブとは異なる AWS リージョン アカウントから取得することも、別のアカウントから取得することもできます。

**注記**  
 AWS Batch API AWS CLIまたは AWS SDK を使用する場合、起動するジョブ AWS リージョン と同じ にシークレットが存在する場合は、シークレットの完全な ARN または名前を使用できます。シークレットが別のアカウントに存在する場合は、シークレットの完全な ARN を指定する必要があります。を使用する場合 AWS マネジメントコンソール、シークレットの完全な ARN を常に指定する必要があります。

必要なパラメータが含まれるジョブ定義のスニペットを以下に示します。

```
"containerProperties": [
  {
    "image": "private-repo/private-image",
    "repositoryCredentials": {
      "credentialsParameter": "arn:aws:secretsmanager:region:123456789012:secret:secret_name"
    }
  }
]
```

# プライベートレジストリの認証で必須の IAM アクセス許可
<a name="private-auth-iam"></a>

この機能を使用するには、ジョブの実行ロールが必要です。このロールを使用して、コンテナエージェントでコンテナイメージをプルできます。詳細については、「[AWS Batch IAM 実行ロール](execution-IAM-role.md)」を参照してください。

作成したシークレットにアクセスできるようにするには、以下のアクセス許可を、インラインポリシーとしてジョブの実行ロールに追加します。詳細については、「[IAM ポリシーの追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。
+ `secretsmanager:GetSecretValue`
+ `kms:Decrypt` - カスタムの KMS キーを使用するが、デフォルトのキーは使用しない場合にのみ必須。カスタムキーの Amazon リソースネーム (ARN) は、リソースとして追加する必要があります。

次の例では、インラインポリシーによりアクセス許可を追加しています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:secret_name",
                "arn:aws:kms:us-east-1:123456789012:key/key_id"
            ]
        }
    ]
}
```

------

# チュートリアル: プライベートレジストリ認証のシークレットを作成する
<a name="private-auth-enable"></a>

を使用してプライベートレジストリ認証情報のシークレットを作成するには、次の手順を実行します AWS Secrets Manager。

**基本的なシークレットを作成する**

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) で AWS Secrets Manager コンソールを開きます。

1. **[Store a new secret]** (新しいシークレットの保存) を選択します｡

1. **[Select secret type]** (シークレットタイプの選択) で、**[Other type of secrets]** (他の種類のシークレット) を選択します。

1. [**プレーンテキスト**] を選択し、次の形式でプライベートレジストリ認証情報を入力します。

   ```
   {
     "username" : "privateRegistryUsername",
     "password" : "privateRegistryPassword"
   }
   ```

1. [**次へ**] を選択します。

1. **[Secret name]** (シークレット名) に､オプションのパスと名前 (例: **production/MyAwesomeAppSecret** または **development/TestSecret**) を入力し、**[Next]** (次へ) を選択します。オプションで説明を追加することもできます。後でこのシークレットを思い出すのに役立ちます。

   シークレット名に使用できるのは、ASCII 文字、数字、または以下の記号のみです: `/_+=.@-`。

1. (オプション) この時点で、シークレットのローテーションを設定することができます。この手順では、**[Disable automatic rotation]** (自動ローテーションを無効化) は無効のままにし、[**次**] を選択します。

   新規または既存のシークレットのローテーションを設定する方法については、「シーク[AWS Secrets Manager レットのローテーション](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)」を参照してください。

1. 設定を確認した上で、**[Store secret]** (シークレットの保存) を選択し、入力した全内容を Secrets Manager の新しいシークレットとして保存します。

ジョブ定義を登録し、**[プライベートレジストリ]** で **[プライベートレジストリ認証]** をオンにします。その後、**[Secrets Manager ARN または名前]** で、シークレットの Amazon リソースネーム (ARN) を入力します。詳細については、「[プライベートレジストリの認証で必須の IAM アクセス許可](private-auth-iam.md)」を参照してください。