ナレッジベース評価ジョブのデータ暗号化 - Amazon Bedrock

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

ナレッジベース評価ジョブのデータ暗号化

ナレッジベースの評価ジョブ中、Amazon Bedrock はデータの一時コピーを作成します。Amazon Bedrock は、ジョブの完了後、データを削除します。データを暗号化するために、Amazon Bedrock は KMS キーを使用します。指定した KMS キーまたは Amazon Bedrock が所有するキーのいずれかを使用します。

Amazon Bedrock では、KMS キーを使用して以下を実行できるように、以下のセクションで IAM と アクセス AWS KMS 許可が必要です。

  • データを復号します。

  • Amazon Bedrock が作成する一時コピーを暗号化します。

ナレッジベース評価ジョブを作成するときは、Amazon Bedrock が所有する KMS キーを使用するか、独自のカスタマーマネージドキーを選択できます。カスタマーマネージドキーを指定しない場合、Amazon Bedrock はデフォルトでそのキーを使用します。

カスタマーマネージドキーを使用する前に、以下を実行する必要があります。

  • 必要な IAM アクションとリソースを IAM サービスロールのポリシーに追加します。

  • 必要な KMS キーポリシー要素を追加します。

  • カスタマーマネージドキーとやり取りできるポリシーを作成します。これは別の KMS キーポリシーで指定されます。

必要なポリシー要素

以下のセクションの IAM および KMS キーポリシーには、以下の必須要素が含まれています。

  • kms:Decrypt – KMS キーで暗号化したファイルの場合、 は Amazon Bedrock にそれらのファイルにアクセスして復号化するアクセス許可を付与します。

  • kms:GenerateDataKey – KMS キーを使用してデータキーを生成するアクセス許可を制御します。Amazon Bedrock は GenerateDataKey を使用して、評価ジョブに保存する一時データを暗号化します。

  • kms:DescribeKey – KMS キーに関する詳細情報を提供します。

  • kms:ViaService – 条件キーは、指定された AWS サービスからリクエストするための KMS キーの使用を制限します。次のサービスを指定する必要があります。

    • Amazon Bedrock は Amazon Bedrock が所有する Amazon S3 の場所にデータの一時コピーを保存するため、Amazon S3。

    • Amazon Bedrock。これは、評価サービスが Amazon Bedrock ナレッジベース API を呼び出してナレッジベースワークフローを実行するためです。

  • kms:EncryptionContext:context-key – この条件キーは、指定された暗号化コンテキストにのみ固有のように、 AWS KMS オペレーションへのアクセスを制限します。

IAM ポリシーの要件

Amazon Bedrock で使用する IAM ロールでは、関連付けられた IAM ポリシーに次の要素が必要です。 AWS KMS キーの管理の詳細については、「 での IAM ポリシーの使用 AWS KMS」を参照してください。

Amazon Bedrock のナレッジベース評価ジョブは、 AWS 所有キーを使用します。 AWS 所有キーの詳細については、「 AWS Key Management Service デベロッパーガイド」のAWS 「 所有キー」を参照してください。

以下は、必要な AWS KMS アクションとリソースのみを含む IAM ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CustomKMSKeyProvidedToBedrockEncryption", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ], "Condition": { "StringEquals": { "kms:ViaService": [ "s3.region.amazonaws.com" ] } } }, { "Sid": "CustomKMSKeyProvidedToBedrockEvalKMS", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ], "Condition": { "StringLike": { "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:region:account-id:evaluation-job/*" } } }, { "Sid": "CustomKMSKeyProvidedToBedrockKBDecryption", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ], "Condition": { "StringLike": { "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:region:account-id:knowledge-base/*" } } }, { "Sid": "CustomKMSKeyProvidedToBedrockKBEncryption", "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ], "Condition": { "StringLike": { "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:region:account-id:knowledge-base/*" }, "StringEquals": { "kms:ViaService": [ "bedrock.region.amazonaws.com" ] } } }, { "Sid": "CustomKMSKeyProvidedToBedrockKBGenerateDataKey", "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ], "Condition": { "StringLike": { "kms:EncryptionContext:CustomerAwsAccountId": "account-id", "kms:EncryptionContext:SessionId": "*" }, "StringEquals": { "kms:ViaService": [ "bedrock.region.amazonaws.com" ] } } }, { "Sid": "CustomKMSDescribeKeyProvidedToBedrock", "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ] } ] }

AWS KMS キーポリシーの要件

すべての KMS キーには 1 つのキーポリシーが必要です。キーポリシーのステートメントでは、KMS キーの使用が許可されるユーザーとその使用方法を決定します。IAM ポリシーと許可を使用して KMS キーへのアクセスを制御することもできますが、すべての KMS キーにはキーポリシーが必要です。

既存の KMS キーポリシーに次のステートメントを追加する必要があります。これにより、指定した KMS キーを使用してデータを S3 バケットに一時的に保存するためのアクセス許可が Amazon Bedrock に付与されます。

{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CustomerProvidedRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:region:account-id:evaluation-job/*" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CustomerProvidedRole" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:region:account-id:knowledge-base/*" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CustomerProvidedRole" }, "Action": [ "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:region:account-id:knowledge-base/*" }, "StringEquals": { "kms:ViaService": [ "bedrock.region.amazonaws.com" ] } } }, { "Sid": "CustomKMSKeyProvidedToBedrockKBGenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CustomerProvidedRole" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:CustomerAwsAccountId": "account-id", "kms:EncryptionContext:SessionId": "*" }, "StringEquals": { "kms:ViaService": [ "bedrock.region.amazonaws.com" ] } } }, { "Sid": "CustomKMSKeyProvidedToBedrockS3", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CustomerProvidedRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" } } }, { "Effect": "Allow", "Principal": { "Service": [ "bedrock.amazonaws.com" ] }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:bedrock:region:account-id:evaluation-job/*", "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:region:account-id:evaluation-job/*" } } } ] }

CreateEvaluationJob API を呼び出すロールの KMS アクセス許可の設定

評価ジョブで使用する KMS キーで評価ジョブを作成するために使用されるロールの DescribeKey、GenerateDataKey、および Decrypt アクセス許可があることを確認します。

KMS キーポリシーの例

{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/APICallingRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kmsDescribeKey" ], "Resource": "*" } ] }

CreateEvaluationJob API を呼び出すロールの IAM ポリシーの例

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CustomKMSKeyProvidedToBedrockEncryption", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/keyYouUse" ] } ] }