Amazon Bedrock ナレッジベースのサービスロールを作成する - Amazon Bedrock

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

Amazon Bedrock ナレッジベースのサービスロールを作成する

Amazon Bedrock が自動的に作成するロールの代わりにナレッジベースにカスタムロールを使用するには、IAM「 にアクセス許可を委任するロールの作成」の手順に従って ロールを作成し、次のアクセス許可をアタッチします。 AWS サービス 。独自のセキュリティに必要なアクセス許可のみを含めます。

  • 信頼関係

  • Amazon Bedrock のベースモデルへのアクセス

  • データを保存する のデータソースへのアクセス

  • (Amazon OpenSearch Service でベクトルデータベースを作成する場合) OpenSearch サービスコレクションへのアクセス

  • (Amazon Aurora でベクトルデータベースを作成する場合) Aurora クラスターへのアクセス

  • ( でベクトルデータベースを作成する場合 Pinecone または Redis Enterprise Cloud) のアクセス許可 AWS Secrets Manager を認証するには Pinecone または Redis Enterprise Cloud アカウント

  • (オプション) 次のリソースのいずれかをKMSキーで暗号化する場合、キーを復号するアクセス許可 (「」を参照ナレッジベースリソースの暗号化)。

    • ナレッジベース

    • ナレッジベースのデータソース

    • Amazon OpenSearch Service のベクトルデータベース

    • のサードパーティーベクトルデータベースのシークレット AWS Secrets Manager

    • データインジェストジョブ

信頼関係

以下のポリシーにより、Amazon Bedrock がこのロールを引き受け、ナレッジベースを作成および管理することができます。使用するポリシーの例を下記に示します。1 つ以上のグローバル条件コンテキストキーを使用して、アクセス許可の範囲を制限できます。詳細については、「」を参照してくださいAWS グローバル条件コンテキストキー。aws:SourceAccount の値をアカウント ID に設定します。ArnEquals または ArnLike 条件を使用して、範囲を特定のナレッジベースに制限します。

注記

セキュリティ上のベストプラクティスとして、* 作成IDs後に特定のナレッジベースを使用する。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:region:account-id:knowledge-base/*" } } }] }

Amazon Bedrock モデルにアクセスするためのアクセス許可

ロールがソースデータの組み込みに Amazon Bedrock モデルを使用するためのアクセス許可を提供するには、以下のポリシーをアタッチします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:ListFoundationModels", "bedrock:ListCustomModels" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:region::foundation-model/amazon.titan-embed-text-v1", "arn:aws:bedrock:region::foundation-model/cohere.embed-english-v3", "arn:aws:bedrock:region::foundation-model/cohere.embed-multilingual-v3" ] } ] }

データソースへのアクセス許可

次のデータソースから選択して、ロールに必要なアクセス許可をアタッチします。

Amazon S3 データソースへのアクセス許可

次のポリシーをアタッチして、ロールが Amazon S3 にアクセスするためのアクセス許可を付与します。

データソースを で暗号化した場合 AWS KMS key、「」の手順に従って、キーを復号化するアクセス許可をロールにアタッチしますAmazon S3 のデータソースの AWS KMS キーを復号化するアクセス許可

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket/path/to/folder", "arn:aws:s3:::bucket/path/to/folder/*" ], "Condition": { "StringEquals": { "aws:PrincipalAccount": "account-id" } } }] }

Confluence データソースへのアクセス許可

注記

Confluence データソースコネクタはプレビューリリースであり、変更される可能性があります。

次のポリシーをアタッチして、ロールが Confluence にアクセスするためのアクセス許可を付与します。

注記

secretsmanager:PutSecretValue は、更新トークンで OAuth 2.0 認証を使用する場合にのみ必要です。

Confluence OAuth2.0 アクセストークンのデフォルトの有効期限は 60 分です。データソースの同期 (同期ジョブ) 中にこのトークンの有効期限が切れた場合、Amazon Bedrock は提供された更新トークンを使用してこのトークンを再生成します。この再生は、アクセストークンと更新トークンの両方を更新します。トークンを現在の同期ジョブから次の同期ジョブに更新し続けるために、Amazon Bedrock にはシークレット認証情報の書き込み/入力アクセス許可が必要です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue" ], "Resource": [ "arn:aws:secretsmanager:your-region:your-account-id:secret:secret-id" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:your-region:your-account-id:key/key-id" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.your-region.amazonaws.com" ] } } }, }

Microsoft SharePoint データソースへのアクセス許可

注記

SharePoint データソースコネクタはプレビューリリースであり、変更される可能性があります。

次のポリシーをアタッチして、ロールが にアクセスするためのアクセス許可を付与します SharePoint。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:your-region:your-account-id:secret:secret-id" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:your-region:your-account-id:key/key-id" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.your-region.amazonaws.com" ] } } }, }

Salesforce データソースへのアクセス許可

注記

Salesforce データソースコネクタはプレビューリリースであり、変更される可能性があります。

次のポリシーをアタッチして、ロールが Salesforce にアクセスするためのアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:your-region:your-account-id:secret:secret-id" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:your-region:your-account-id:key/key-id" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.your-region.amazonaws.com" ] } } }, }

ドキュメントとチャットするためのアクセス許可

次のポリシーをアタッチして、Amazon Bedrock モデルを使用してドキュメントとチャットするためのアクセス許可をロールに付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" } ] }

ドキュメントとチャットする (すべてのナレッジベースRetrieveAndGenerateで するのではなく) アクセス権のみをユーザーに付与する場合は、次のポリシーを使用します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "bedrock:Retrieve" ], "Resource": "*" } ] }

ドキュメントとのチャットと特定のナレッジベースRetrieveAndGenerateでの の使用の両方が必要な場合は、insert KB ARN、および は、次のポリシーを使用します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:Retrieve" ], "Resource": insert KB ARN } ] }

(オプション) Amazon OpenSearch Service でベクトルデータベースにアクセスするためのアクセス許可

ナレッジベース用に Amazon OpenSearch Service でベクトルデータベースを作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースサービスロールにアタッチして、コレクションへのアクセスを許可します。置換 region また、account-id データベースが属するリージョンとアカウント ID を持つ 。に Amazon OpenSearch Service コレクションの ID を入力します。collection-id。 複数のコレクションへのアクセスを許可するには、それらをResourceリストに追加します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "aoss:APIAccessAll" ], "Resource": [ "arn:aws:aoss:region:account-id:collection/collection-id" ] }] }

(オプション) Amazon Aurora データベースクラスターにアクセスするためのアクセス許可

ナレッジベース用に Amazon Aurora でデータベース (DB) クラスターを作成した場合は、次のポリシーを Amazon Bedrock ナレッジベースサービスロールにアタッチして、DB クラスターへのアクセスを許可し、そのクラスターに対する読み取りおよび書き込みのアクセス許可を付与します。置換 region また、account-id DB クラスターが属するリージョンとアカウント ID を持つ 。に Amazon Aurora データベースクラスターの ID を入力します。db-cluster-id。 複数の DB クラスターへのアクセスを許可するには、それらをResourceリストに追加します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RdsDescribeStatementID", "Effect": "Allow", "Action": [ "rds:DescribeDBClusters" ], "Resource": [ "arn:aws:rds:region:account-id:cluster:db-cluster-id" ] }, { "Sid": "DataAPIStatementID", "Effect": "Allow", "Action": [ "rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement" ], "Resource": [ "arn:aws:rds:region:account-id:cluster:db-cluster-id" ] }] }

(オプション) で設定されたベクトルデータベースにアクセスするためのアクセス許可 AWS Secrets Manager シークレット

ベクトルデータベースが で設定されている場合 AWS Secrets Manager シークレットで、次のポリシーを Amazon Bedrock ナレッジベースサービスロールにアタッチして、 を許可します。 AWS Secrets Manager データベースにアクセスするための アカウントを認証します。置換 region また、account-id データベースが属するリージョンとアカウント ID を持つ 。置換 secret-id シークレットの ID を入力します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region:account-id:secret:secret-id" ] }] }

シークレットを で暗号化した場合 AWS KMS key、「」の手順に従って、キーを復号化するアクセス許可をロールにアタッチしますナレッジベースを含むベクトルストアの AWS Secrets Manager シークレットを復号化するアクセス許可

(オプション) のアクセス許可 AWS を管理するには AWS KMS データ取り込み中の一時的なデータストレージの キー

の作成を許可するには AWS KMS データソースの取り込みプロセスにおける一時的なデータストレージの キーは、Amazon Bedrock ナレッジベースサービスロールに次のポリシーをアタッチします。を置き換える region, account-id および key-id 適切な値を指定します。

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

(オプション) のアクセス許可 AWS 他のユーザーの からデータソースを管理するには AWS アカウント。

他のユーザーの へのアクセスを許可するには AWS アカウント、別のユーザーのアカウントの Amazon S3 バケットへのクロスアカウントアクセスを許可するロールを作成する必要があります。を置き換える bucketName, bucketOwnerAccountId および bucketNameAndPrefix 適切な値を指定します。

ナレッジベースロールに必要なアクセス許可

ナレッジベースの作成時に提供されるナレッジベースロールには、次の Amazon S3 アクセス許可createKnowledgeBaseが必要です。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "S3ListBucketStatement", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucketName" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "bucketOwnerAccountId" } } },{ "Sid": "S3GetObjectStatement", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::bucketNameAndPrefix/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "bucketOwnerAccountId" } }] }

Amazon S3 バケットが を使用して暗号化されている場合 AWS KMS キー、ナレッジベースロールには以下も追加する必要があります。を置き換える bucketOwnerAccountId また、region 適切な値を指定します。

{ "Sid": "KmsDecryptStatement", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:region:bucketOwnerAccountId:key/keyId" ], "Condition": { "StringEquals": { "kms:ViaService": [ "s3.region.amazonaws.com" ] } } }

クロスアカウント Amazon S3 バケットポリシーに必要なアクセス許可

他のアカウントのバケットには、次の Amazon S3 バケットポリシーが必要です。を置き換える kbRoleArn, bucketName および bucketNameAndPrefix 適切な値を指定します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example ListBucket permissions", "Effect": "Allow", "Principal": { "AWS": "kbRoleArn" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucketName" ] }, { "Sid": "Example GetObject permissions", "Effect": "Allow", "Principal": { "AWS": "kbRoleArn" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::bucketNameAndPrefix/*" ] } ] }

クロスアカウントに必要なアクセス許可 AWS KMS キーポリシー

クロスアカウント Amazon S3 バケットが を使用して暗号化されている場合 AWS KMS そのアカウントの キー、 のポリシー AWS KMS キーには、次のポリシーが必要です。を置き換える kbRoleArn また、kmsKeyArn 適切な値を指定します。

{ "Sid": "Example policy", "Effect": "Allow", "Principal": { "AWS": [ "kbRoleArn" ] }, "Action": [ "kms:Decrypt" ], "Resource": "kmsKeyArn" }