翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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キーを復号するアクセス許可。
Confluence データソースにアクセスするためのアクセス許可
注記
Confluence データソースコネクタはプレビューリリースの段階であり、変更される可能性があります。
以下のポリシーをアタッチして、ロールが Confluence にアクセスするためのアクセス許可を付与します。
注記
secretsmanager:PutSecretValue は、OAuth 2.0 認証で更新トークンを使用する場合にのみ必要です。
Confluence OAuth2.0 のアクセストークンの有効期限は、デフォルトでは 60 分です。データソースの同期 (同期ジョブ) 中にアクセストークンの有効期限が切れた場合、Amazon Bedrock は、指定された更新トークンを使用してアクセストークンを再生成します。その際は、アクセストークンと更新トークンの両方が更新されます。現在の同期ジョブから次の同期ジョブまでトークンを最新の状態で維持するために、Amazon Bedrock にはシークレット認証情報の書き込み/保存のアクセス許可が必要です。
Microsoft SharePoint データソースにアクセスするためのアクセス許可
注記
SharePoint データソースコネクタはプレビューリリースの段階であり、変更される可能性があります。
以下のポリシーをアタッチして、ロールが SharePoint にアクセスするためのアクセス許可を付与します。
Salesforce データソースにアクセスするためのアクセス許可
注記
Salesforce データソースコネクタはプレビューリリースの段階であり、変更される可能性があります。
以下のポリシーをアタッチして、ロールが Salesforce にアクセスするためのアクセス許可を付与します。
Amazon S3 で暗号化されたデータソースのAWS KMSキーを復号するアクセス許可
Amazon S3 のデータソースをAWS KMSキーで暗号化した場合は、Amazon Bedrock ナレッジベースサービスロールに次のポリシーをアタッチして、Amazon Bedrock がキーを復号できるようにします。${Region} と ${AccountId} を、キーが属するリージョンとアカウント ID に置き換えます。${KeyId} をAWS KMSキーの ID に置き換えます。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ], "Condition": { "StringEquals": { "kms:ViaService": [ "s3.${Region}.amazonaws.com" ] } } }] }
ドキュメントでチャットするためのアクセス許可
以下のポリシーをアタッチして、ロールが Amazon Bedrock モデルを使用してドキュメントでチャットするためのアクセス許可を付与します。
ユーザーにドキュメントでチャットするためのアクセス権のみを付与する場合は (すべてのナレッジベースでの RetrieveAndGenerate の権限は与えない)、以下のポリシーを使用します。
ドキュメントチャットと、特定のナレッジベースでの RetrieveAndGenerate の使用を両方とも認める場合は、${KnowledgeBaseArn} を指定して、以下のポリシーを使用します。
マルチモーダルコンテンツのアクセス許可
マルチモーダルコンテンツ (イメージ、オーディオ、ビデオ) を使用する場合は、処理方法に応じて追加のアクセス許可が必要です。
Nova マルチモーダル埋め込みのアクセス許可
Nova マルチモーダル埋め込みを使用する場合は、次のポリシーをアタッチして、非同期モデル呼び出しのアクセス許可を付与します。
{ "Sid": "BedrockInvokeModelStatement", "Effect": "Allow", "Action": ["bedrock:InvokeModel"], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-*-multimodal-embeddings-*", "arn:aws:bedrock:us-east-1::async-invoke/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "" } } }, { "Sid": "BedrockGetAsyncInvokeStatement", "Effect": "Allow", "Action": ["bedrock:GetAsyncInvoke"], "Resource": ["arn:aws:bedrock:us-east-1::async-invoke/*"], "Condition": { "StringEquals": { "aws:ResourceAccount": "" } } }
Bedrock Data Automation (BDA) のアクセス許可
BDA を使用してマルチモーダルコンテンツを処理する場合は、次のポリシーをアタッチします。
{ "Sid": "BDAInvokeStatement", "Effect": "Allow", "Action": ["bedrock:InvokeDataAutomationAsync"], "Resource": [ "arn:aws:bedrock:us-east-1:aws:data-automation-project/public-rag-default", "arn:aws:bedrock:us-east-1::data-automation-profile/*" ] }, { "Sid": "BDAGetStatement", "Effect": "Allow", "Action": ["bedrock:GetDataAutomationStatus"], "Resource": "arn:aws:bedrock:us-east-1::data-automation-invocation/*" }
BDA でカスタマーマネージドAWS KMSキーを使用する場合は、次のポリシーもアタッチします。account-id、region、および key-id を特定の値に置き換えます。
{ "Sid": "KmsPermissionStatementForBDA", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": ["arn:aws:kms:region:account-id:key/key-id"], "Condition": { "StringEquals": { "aws:ResourceAccount": "account-id", "kms:ViaService": "bedrock.region.amazonaws.com" } } }
Amazon Kendra GenAI Index へのアクセス許可
ナレッジベース用の Amazon Kendra GenAI Index を作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、インデックスへのアクセスを許可します。ポリシーで、${Partition}、${Region}、${AccountId}、${IndexId} をインデックスの値に置き換えます。複数のインデックスへのアクセスを許可するには、それらを Resource リストに追加します。内のすべてのインデックスへのアクセスを許可するにはAWS アカウント、${IndexId} をワイルドカード (*) に置き換えます。
Amazon OpenSearch Serverless 内のベクトルデータベースにアクセスするためのアクセス許可
OpenSearch Serverless でナレッジベース用のベクトルデータベースを作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、コレクションへのアクセスを許可します。${Region} と ${AccountId} を、データベースが属するリージョンとアカウント ID に置き換えます。${CollectionId} には、Amazon OpenSearch Service のコレクションの ID を入力します。複数のコレクションへのアクセスを許可するには、それらを Resource リストに追加します。
OpenSearch マネージドクラスターでベクトルデータベースにアクセスするためのアクセス許可
OpenSearch マネージドクラスターでナレッジベース用のベクトルデータベースを作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、ドメインへのアクセスを許可します。<region> と <accountId> を、データベースが属するリージョンとアカウント ID に置き換えます。複数のドメインへのアクセスを許可するには、それらを Resource リストに追加します。アクセス許可の設定については、「Amazon Bedrock ナレッジベースで OpenSearch マネージドクラスターを使用するために必要な前提条件とアクセス許可」を参照してください。
Amazon Aurora データベースクラスターにアクセスするためのアクセス許可
注記
Amazon Aurora クラスターは、Amazon Bedrock のナレッジベースが作成されるクラスターAWS アカウントと同じ に存在する必要があります。
Amazon Aurora でナレッジベース用のデータベース (DB) クラスターを作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、DB クラスターへのアクセスを許可し、DB クラスターに対する読み取り/書き込みアクセス許可を提供します。${Region} と ${AccountId} を、DB クラスターが属するリージョンとアカウント ID に置き換えます。Amazon Aurora データベースクラスターの ID を ${DbClusterId} に入力します。複数の DB クラスターへのアクセスを許可するには、それらを Resource リストに追加します。
Amazon Neptune Analytics でベクトルデータベースにアクセスするためのアクセス許可
ナレッジベース用の Amazon Neptune Analytics グラフを作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、グラフへのアクセスを許可します。ポリシーで、${Region} と ${AccountId} を、データベースが属するリージョンとアカウント ID に置き換えます。${GraphId} をグラフデータベースの値に置き換えます。
Amazon S3 Vectors でベクトルストアにアクセスするためのアクセス許可
ナレッジベース用の Amazon S3 Vectors を作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、ベクトルインデックスへのアクセスを許可します。
ポリシーで、${Region} と ${AccountId} をベクトルインデックスが属するリージョンとアカウント ID に置き換えます。${BucketName} を S3 ベクトルバケットの名前に置き換え、${IndexName} をベクトルインデックスの名前に置き換えます。Amazon S3 ベクトルの詳細については、Amazon S3 Vectors を設定して使用する」を参照してください。
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 アクセス許可が必要です。
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}" }