翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Bedrock ナレッジベースのサービスロールを作成する
Amazon Bedrock が自動的に作成するロールの代わりにナレッジベースのカスタムロールを使用するには、AWS 「 サービスにアクセス許可を委任するロールの作成」の手順に従って、IAM ロールを作成し、次のアクセス許可をアタッチします。独自のセキュリティに必要なアクセス許可のみを含めるようにしてください。
注記
サービスロールを使用する場合、ポリシーを複数のロール間で共有することはできません。
-
信頼関係
-
Amazon Bedrock のベースモデルへのアクセス
-
データを保存するデータソースへのアクセス
-
(Amazon OpenSearch Service でベクトルデータベースを作成する場合) OpenSearch Service コレクションへのアクセス許可
-
(Amazon Aurora でベクトルデータベースを作成する場合) Aurora クラスターへのアクセス
-
( Pineconeまたは でベクトルデータベースを作成する場合Redis Enterprise Cloud) Pineconeまたは Redis Enterprise Cloudアカウントを認証 AWS Secrets Manager するための のアクセス許可
-
(オプション) 以下のリソースを KMS キーで暗号化する場合、キーを復号化するアクセス許可 (「ナレッジベースリソースの暗号化」を参照)。
-
ナレッジベース
-
ナレッジベースのデータソース
-
Amazon OpenSearch Service のベクトルデータベース
-
のサードパーティーベクトルデータベースのシークレット AWS Secrets Manager
-
データインジェストジョブ
-
トピック
信頼関係
以下のポリシーにより、Amazon Bedrock がこのロールを引き受け、ナレッジベースを作成および管理することができます。使用するポリシーの例を下記に示します。1 つ以上のグローバル条件コンテキストキーを使用して、アクセス許可の範囲を制限できます。詳細については、「AWS グローバル条件コンテキストキー」を参照してください。aws:SourceAccount
の値をアカウント ID に設定します。ArnEquals
または ArnLike
条件を使用して、範囲を特定のナレッジベースに制限します。
注記
セキュリティ上のベストプラクティスとして、*
は特定のナレッジベース ID に置き換えてください (作成後)。
Amazon Bedrock モデルにアクセスするためのアクセス許可
ロールがソースデータの組み込みに Amazon Bedrock モデルを使用するためのアクセス許可を提供するには、以下のポリシーをアタッチします。
データソースにアクセスするためのアクセス許可
次のデータソースの中から選択して、ロールに必要なアクセス許可をアタッチしてください。
トピック
Amazon S3 データソースにアクセスするためのアクセス許可
データソースが Amazon S3 の場合は、次のポリシーをアタッチして、データソースとして接続する S3 バケットにアクセスするためのアクセス許可をロールに付与します。
AWS KMS キーを使用してデータソースを暗号化した場合は、「」の手順に従って、キーを復号するアクセス許可をロールにアタッチしますAmazon S3 のデータソースの AWS KMS キーを復号するアクセス許可。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ListBucketStatement", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
${Bucket}
" ], "Condition": { "StringEquals": { "aws:ResourceAccount": [${AccountId}
] } } }, { "Sid": "S3GetObjectStatement", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${BucketAndKeyPrefix}
" ], "Condition": { "StringEquals": { "aws:ResourceAccount": [${AccountId}
] } } } ] }
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:
${Region}
:${AccountId}
:secret:${secret-id}
" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}
:${AccountId}
:key/${KeyId}
" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.${Region}
.amazonaws.com" ] } } }, }
Microsoft SharePoint データソースにアクセスするためのアクセス許可
注記
SharePoint データソースコネクタはプレビューリリースの段階であり、変更される可能性があります。
以下のポリシーをアタッチして、ロールが SharePoint にアクセスするためのアクセス許可を付与します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:
${Region}
:${AccountId}
:secret:${SecretId}
" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}
:${AccountId}
:key/${KeyId}
" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.${Region}
.amazonaws.com" ] } } }, }
Salesforce データソースにアクセスするためのアクセス許可
注記
Salesforce データソースコネクタはプレビューリリースの段階であり、変更される可能性があります。
以下のポリシーをアタッチして、ロールが Salesforce にアクセスするためのアクセス許可を付与します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:
${Region}
:${AccountId}
:secret:${SecretId}
" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}
:${AccountId}
:key/${KeyId}
" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.${Region}
.amazonaws.com" ] } } }, }
ドキュメントでチャットするためのアクセス許可
以下のポリシーをアタッチして、ロールが Amazon Bedrock モデルを使用してドキュメントでチャットするためのアクセス許可を付与します。
ユーザーにドキュメントでチャットするためのアクセス権のみを付与する場合は (すべてのナレッジベースでの RetrieveAndGenerate
の権限は与えない)、以下のポリシーを使用します。
ドキュメントとチャットして特定のナレッジベースRetrieveAndGenerate
で使用する場合は、${KnowledgeBaseArn}
を指定し、次のポリシーを使用します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:Retrieve" ], "Resource":
${KnowledgeBaseArn}
} ] }
Amazon Kendra GenAI インデックスへのアクセス許可
ナレッジベースの Amazon Kendra GenAI インデックスを作成した場合は、Amazon Bedrock ナレッジベースサービスロールに次のポリシーをアタッチして、インデックスへのアクセスを許可します。ポリシーで、${Partition}
、${Region}
、${AccountId}
、${IndexId}
をインデックスの値に置き換えます。Resource
リストに追加することで、複数のインデックスへのアクセスを許可できます。内のすべてのインデックスへのアクセスを許可するには AWS アカウント、${IndexId}
をワイルドカード (*) に置き換えます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kendra:Retrieve", // To call their Retrieve API "kendra:DescribeIndex" // For validation when creating the KB ], "Resource": "arn:${
${Partition}
}:kendra:${${Region}
}:${${AccountId}
}:index/${${IndexId}
}" } ] }
Amazon OpenSearch Serverless でベクトルデータベースにアクセスするためのアクセス許可
ナレッジベース用に OpenSearch Serverless でベクトルデータベースを作成した場合は、Amazon Bedrock ナレッジベースサービスロールに次のポリシーをアタッチして、コレクションへのアクセスを許可します。${Region}
と ${AccountId}
を、データベースが属するリージョンとアカウント ID に置き換えます。Amazon OpenSearch Service コレクションの ID を ${CollectionId}
に入力します。複数のコレクションへのアクセスを許可するには、それらを Resource
リストに追加します。
OpenSearch Managed Clusters でベクトルデータベースにアクセスするためのアクセス許可
OpenSearch Managed Cluster でナレッジベースのベクトルデータベースを作成した場合は、Amazon Bedrock ナレッジベースサービスロールに次のポリシーをアタッチして、ドメインへのアクセスを許可します。<region>
と <accountId>
を、データベースが属するリージョンとアカウント ID に置き換えます。複数のドメインへのアクセスを許可するには、ドメインをResource
リストに追加します。アクセス許可の設定については、「Amazon Bedrock ナレッジベースで OpenSearch マネージドクラスターを使用するために必要な前提条件とアクセス許可」を参照してください。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "es:ESHttpGet", "es:ESHttpPost", "es:ESHttpPut", "es:ESHttpDelete" ], "Resource": [ "arn:
<partition>
:es:<region>
:<accountId>
:domain/<domainName>
/<indexName>
" ] }, { "Effect": "Allow" }, "Action": [ "es:DescribeDomain" ], "Resource": [ "arn:<partition>
:es:<region>
:<accountId>
:domain/<domainName>
" ] ] }
Amazon Aurora データベースクラスターへのアクセス許可
注記
Amazon Aurora クラスターは、Amazon Bedrock のナレッジベースが作成されるクラスター AWS アカウント と同じ に存在する必要があります。
Amazon Aurora でナレッジベース用のデータベース (DB) クラスターを作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、DB クラスターへのアクセスを許可し、DB クラスターに対する読み取り/書き込みアクセス許可を提供します。${Region}
と ${AccountId}
を、DB クラスターが属するリージョンとアカウント ID に置き換えます。${DbClusterId}
に Amazon Aurora データベースクラスターの ID を入力します。複数の DB クラスターへのアクセスを許可するには、それらを Resource
リストに追加します。
Amazon Neptune Analytics でベクトルデータベースにアクセスするためのアクセス許可
ナレッジベースの Amazon Neptune Analytics グラフを作成した場合は、次のポリシーを Amazon Bedrock ナレッジベースサービスロールにアタッチして、グラフへのアクセスを許可します。ポリシーで、${Region}
と ${AccountId}
をデータベースが属するリージョンとアカウント ID に置き換えます。${GraphId}
をグラフデータベースの値に置き換えます。
Amazon S3 Vectors でベクトルストアにアクセスするためのアクセス許可
ナレッジベースに Amazon S3 Vectors を使用する場合は、Amazon Bedrock ナレッジベースサービスロールに次のポリシーをアタッチして、ベクトルインデックスへのアクセスを許可します。
重要
Amazon S3 Vectors と Amazon Bedrock ナレッジベースの統合はプレビューリリースであり、変更される可能性があります。
ポリシーで、${Region}
と ${AccountId}
をベクトルインデックスが属するリージョンとアカウント ID に置き換えます。${BucketName}
を S3 ベクトルバケットの名前に、${IndexName}
をベクトルインデックスの名前に置き換えます。Amazon S3 ベクトルの詳細については、Amazon S3ベクトルを使用するためのセットアップ」を参照してください。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3VectorBucketReadAndWritePermission", "Effect": "Allow", "Action": [ "s3vectors:PutVectors", "s3vectors:GetVectors", "s3vectors:DeleteVectors", "s3vectors:QueryVectors", "s3vectors:GetIndex" ], "Resource": "arn:aws:s3vectors:
${Region}
:${AccountId}
:bucket/${BucketName}
/index/${IndexName}
" } ] }
AWS Secrets Manager シークレットで設定されたベクトルデータベースへのアクセス許可
ベクトルデータベースに AWS Secrets Manager シークレットが設定されている場合は、次のポリシーを Amazon Bedrock ナレッジベースサービスロールにアタッチして、 がデータベースにアクセスするためにアカウント AWS Secrets Manager を認証できるようにします。${Region}
と ${AccountId}
を、データベースが属するリージョンとアカウント ID に置き換えます。${SecretId}
をシークレットの ID に置き換えます。
AWS KMS キーでシークレットを暗号化した場合は、「」の手順に従って、キーを復号するアクセス許可をロールにアタッチしますナレッジベースを含むベクトルストアの AWS Secrets Manager シークレットを復号するアクセス許可。
データ取り込み中の一時的なデータストレージの AWS KMS キーを管理する AWS ための のアクセス許可
データソースを取り込むプロセスで一時的なデータストレージの AWS KMS キーを作成できるようにするには、Amazon Bedrock ナレッジベースサービスロールに次のポリシーをアタッチします。${Region}
、${AccountId}
、${KeyId}
を適切な値に置き換えます。
別のユーザーの AWS アカウントからデータソースを管理する AWS ための のアクセス許可。
別のユーザーの AWS アカウントへのアクセスを許可するには、別のユーザーのアカウントの Amazon S3 バケットへのクロスアカウントアクセスを許可するロールを作成する必要があります。${BucketName}
、${BucketOwnerAccountId}
、および ${BucketNameAndPrefix}
を適切な値に置き換えます。
ナレッジベースロールに必要なアクセス許可
ナレッジベースの作成時 (createKnowledgeBase
) に指定するナレッジベースロールには、次の Amazon S3 アクセス許可が必要です。
{ "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}
を適切な値に置き換えます。
クロスアカウント AWS KMS キーポリシーに必要なアクセス許可
クロスアカウント Amazon S3 バケットがそのアカウントの AWS KMS キーを使用して暗号化されている場合、キーの AWS KMS ポリシーには次のポリシーが必要です。${KbRoleArn}
と ${KmsKeyArn}
を適切な値に置き換えます。
{ "Sid": "Example policy", "Effect": "Allow", "Principal": { "AWS": [ "
${KbRoleArn}
" ] }, "Action": [ "kms:Decrypt" ], "Resource": "${KmsKeyArn}
" }