カスタマーマネージド KMS キーを使用して AgentCore ゲートウェイを暗号化する
デフォルトでは、Gateway はサービス管理の AWS Key Management Service キーを使用して保管中のデータを暗号化します。ただし、必要に応じて、以下の場合に保管中のデータを暗号化するための独自のカスタマーマネージド KMS キーを指定できます。
-
ゲートウェイを作成します。
-
ゲートウェイの設定を更新します。
カスタマーマネージドキーを使用すると、次の機能を含め、暗号化プロセスをより詳細に制御できます。
-
独自のスケジュールでキーをローテーションする
-
IAM ポリシーを使用してキーへのアクセスを制御する
-
不要になったキーを無効化または削除します。
-
CloudWatch ログと AWS CloudTrail によるキー使用状況の監査
詳細については、AWS 「 Key Management Service デベロッパーガイド」を参照してください。
注記
カスタマーマネージドキーを使用する場合は、キーとそのアクセス許可を管理する責任があります。キーが無効または削除された場合、または Gateway がキーを使用するアクセス許可を失った場合、暗号化されたデータにアクセスできなくなります。
AgentCore ゲートウェイを暗号化するための前提条件
ゲートウェイを暗号化する前に、次の前提条件を満たしていることを確認してください。
-
KMS キーにアクセスできます。KMS キーの作成については、「KMS キーの作成」を参照してください。
-
KMS キーには、次のアクセス許可を許可するキーポリシーがアタッチされています。
-
ゲートウェイサービスロールが次のアクションを実行できるようにするアクセス許可。
-
kms:CreateGrant
-
kms:DescribeKey
-
kms:Decrypt
-
kms:GenerateDataKey
-
-
(ゲートウェイの CloudWatch Logs を有効にする場合) CloudWatch Logs サービスがキーを復号できるようにするアクセス許可。
KMS キーの IAM アクセス許可の制御の詳細については、「 Key Management Service デベロッパーガイド」の「KMS キーのアクセスとアクセス許可」を参照してください。 AWS
-
キーポリシーの例
次のポリシー例では、ゲートウェイを暗号化し、暗号化されたゲートウェイを使用するために必要なアクセス許可を提供します。4 番目のステートメントでは、暗号化されたゲートウェイのキー使用状況の CloudWatch Logs ログ記録も許可します。このポリシーには、セキュリティのベストプラクティスに準拠するための条件キーが含まれています。
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowServiceRoleDescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ] } } }, { "Sid": "AllowServiceRoleDecryptKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ] }, "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore-gateway:arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/GatewayId" } } }, { "Sid": "AllowServiceRoleCreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ], "kms:GrantConstraintType": "EncryptionContextSubset" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey" ] }, "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore-gateway:arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/GatewayId" } } }, { "Sid": "AllowKMSDecryptionLogging", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:123456789012:*" } } } ] }
ポリシーには、次のステートメントが含まれています。
-
AllowServiceRoleDescribeKKey – AgentCore サービスを介してリクエストが行われた場合に、指定されたプリンシパルがキーを記述できるようにします。次のフィールドの値を置き換えます。
-
Principal–AWS値をゲートウェイサービスロールの実際の ARN に置き換えます。 -
Condition–kms:ViaService配列で、us-east-1を、キーの説明を許可する実際の AWS リージョンに置き換えます。
-
-
AllowServiceRoleDecryptKey – リクエストが AgentCore サービスを介して行われ、リクエストが行われたゲートウェイの ARN が
kmsEncryptionContext:aws:bedrock-agentcore-gateway-arnフィールドの ARN と一致する場合、指定されたプリンシパルがキーを復号できるようにします。以下の値を置き換えます:-
Principal–AWS値をゲートウェイサービスロールの実際の ARN に置き換えます。 -
Condition– 以下を実行します。-
kms:ViaService配列で、us-east-1をキーの復号を許可する実際の AWS リージョンに置き換えます。 -
kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn値をゲートウェイの実際の ARN に置き換えます。
-
-
-
AllowServiceRoleCreateGrant – リクエストが AgentCore サービスを介して行われ、リクエストが行われたゲートウェイの ARN が
kmsEncryptionContext:aws:bedrock-agentcore-gateway-arnフィールドの ARN と一致する場合、指定されたプリンシパルがキーの許可を作成できるようにします。以下の値を置き換えます:-
Principal–AWS値をゲートウェイサービスロールの実際の ARN に置き換えます。 -
Condition– 以下を実行します。-
kms:ViaService配列で、us-east-1をキーの復号を許可する実際の AWS リージョンに置き換えます。 -
kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn値をゲートウェイの実際の ARN に置き換えます (許可する場合)。
-
-
-
AllowKMSDecryptionLogging – 指定されたプリンシパルが CloudWatch Logs を通じてキーの使用状況を監査するために、カスタマーマネージド KMS キーを復号できるようにします。
kms:EncryptionContext:SourceArn値で、us-east-1および123456789012の値を実際の AWS リージョンとアカウント ID に置き換えます。