

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

# カスタマーマネージドキーを使用してクラスターシークレットを暗号化する
<a name="working-with_clusters_secrets_cmk"></a>

デフォルトでは、 AWS PCS はクラスターシークレットを で AWS Secrets Manager 暗号化された に保存します AWS マネージドキー。 AWS PCS は を使用するための追加の認可を必要としません AWS マネージドキー。または、カスタマーマネージドキーを使用してクラスターシークレットを暗号化することもできます。カスタマーマネージドキーは、 AWS リージョン クラスターと同じ AWS アカウント および 内の対称暗号化キー (`SYMMETRIC_DEFAULT`、`ENCRYPT_DECRYPT`) である必要があります。

 AWS PCS サービスにリンクされたロール (`AWSServiceRoleForPCS`) にアタッチ`AWSPCSServiceRolePolicy`されている AWS マネージドポリシーは、アクセス`kms:`許可を付与しません。キーポリシーを編集せずにカスタマーマネージドキーをシークレットにアタッチした場合、サービスにリンクされたロールはシークレットにアクセスできません。その結果、シークレットローテーションとコンピューティングノードのオペレーションは失敗します。PCS サービスにリンクされたロールの詳細については、 AWS 「」を参照してください[PCS AWS のサービスにリンクされたロール](service-linked-roles.md)。

## 必要なキーポリシー
<a name="working-with_clusters_secrets_cmk-key-policy"></a>

カスタマーマネージドキーのキーポリシーに次のステートメントを追加します。{{account-id}} を AWS アカウント ID に置き換えます。このステートメントは、 AWS PCS サービスにリンクされたロール (`AWSServiceRoleForPCS`) に、カスタマーマネージドキーを使用してクラスターシークレットを保護するアクセス許可を付与します。

```
{
   "Sid": "Allow service-linked role use of the customer managed key",
   "Effect": "Allow",
   "Principal": {
       "AWS": [
           "arn:aws:iam::{{account-id}}:role/aws-service-role/pcs.amazonaws.com/AWSServiceRoleForPCS"
       ]
   },
   "Action": [
       "kms:Decrypt",
       "kms:GenerateDataKey",
       "kms:DescribeKey"
   ],
   "Resource": "*"
}
```

詳細については、以下を参照してください。
+ *AWS CLI コマンドリファレンス*の [put-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html) 
+ *AWS CLI コマンドリファレンス*の [create-key](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html) 
+ デ*AWS Key Management Service ベロッパーガイド*[のキー ID とキー ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html) を検索する
+ 「*AWS Key Management Service デベロッパーガイド*」の「[AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/)」
+  AWS PCS クラスターシークレットは、 に[マネージドシークレット](https://docs.aws.amazon.com/secretsmanager/latest/userguide/integrating_pcs.html)として保存されます AWS Secrets Manager。

## 暗号化キーを変更するアクセス許可
<a name="working-with_clusters_secrets_cmk-change-key-permissions"></a>

前のセクションのアクセス許可は、PCS AWS サービスにリンクされたロールに適用されます。シークレットにアタッチされた暗号化キーを変更する IAM プリンシパルには、サービスにリンクされたロールとは別の独自のアクセス許可が必要です。プリンシパルには次のアクセス許可が必要です。
+ `secretsmanager:UpdateSecret` クラスターシークレットの 。
+ `kms:Decrypt` 送信キー (現在シークレットを暗号化しているキー) の 。
+ `kms:GenerateDataKey`受信キー (新しいキー) `kms:Decrypt`の `kms:Encrypt`、、および 。

キーを変更する`AWSCURRENT`と、 は、 および バージョンを含むシークレットのすべての保存済み`AWSPREVIOUS`バージョン AWS Secrets Manager を再暗号化します。

キーをアタッチする手順については、「」を参照してください[キーをアタッチしてシークレットをローテーションする](#working-with_clusters_secrets_cmk-attach-and-rotate)。

## キーをアタッチしてシークレットをローテーションする
<a name="working-with_clusters_secrets_cmk-attach-and-rotate"></a>

`UpdateSecret` オペレーションを使用して、カスタマーマネージドキーをクラスターシークレットにアタッチします AWS Secrets Manager 。 AWS PCS は、シークレットの暗号化キーの API パラメータを提供しません。

次の の例では、カスタマーマネージドキーをクラスターシークレットにアタッチします。プレースホルダーを値に置き換えます。

```
aws secretsmanager update-secret \
    --region {{region}} \
    --secret-id {{secret-arn}} \
    --kms-key-id {{key-arn}}
```

**注記**  
カスタマーマネージドキーは、シークレット AWS リージョン と同じ AWS アカウント および の対称暗号化キーである必要があります。に記載されているアクセス許可が必要です[暗号化キーを変更するアクセス許可](#working-with_clusters_secrets_cmk-change-key-permissions)。

カスタマーマネージドキーをアタッチしたら、ローテーションを続行して、PCS AWS が新しくアタッチされたカスタマーマネージドキーで暗号化された新しいクラスターシークレットを生成するようにします。ローテーション手順については、「」を参照してください[PCS AWS でクラスターシークレットをローテーションする](cluster-secret-rotation-procedure.md)。