ナレッジベース評価ジョブのサービスロールの要件 - Amazon Bedrock

ナレッジベース評価ジョブのサービスロールの要件

ナレッジベース評価ジョブを作成するには、サービスロールを指定する必要があります。ロールにアタッチするポリシーにより、Amazon Bedrock にアカウント内のリソースへのアクセスが許可され、Amazon Bedrock は以下を実行できるようになります。

  • 出力生成用に選択したモデルを RetrieveAndGenerate API アクションで呼び出し、ナレッジベースの出力を評価する。

  • ナレッジベースインスタンスで Amazon Bedrock ナレッジベースの Retrieve API アクションと RetrieveAndGenerate API アクションを呼び出す。

カスタムサービスロールを作成するには、「IAM ユーザーガイド」の「カスタム信頼ポリシーを使用してロールを作成する」を参照してください。

Amazon S3 アクセスに必要な IAM アクション

次のポリシー例は、以下の両方が行われる S3 バケットへのアクセスを許可します。

  • ナレッジベースの評価結果を保存する。

  • Amazon Bedrock は入力データセットを読み取る。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccessToCustomDatasets", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my_customdataset1_bucket", "arn:aws:s3:::my_customdataset1_bucket/myfolder", "arn:aws:s3:::my_customdataset2_bucket", "arn:aws:s3:::my_customdataset2_bucket/myfolder" ] }, { "Sid": "AllowAccessToOutputBucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:GetBucketLocation", "s3:AbortMultipartUpload", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::my_output_bucket", "arn:aws:s3:::my_output_bucket/myfolder" ] } ] }
必要な Amazon Bedrock の IAM アクション

Amazon Bedrock に以下を許可するポリシーも作成する必要があります。

  1. 以下に対して指定する予定のモデルを呼び出します。

    • RetrieveAndGenerate API アクションを使用した結果の生成

    • 結果の評価

    ポリシーの Resource キーには、アクセス権を持つモデルの ARN を少なくとも 1 つ指定する必要があります。カスタマーマネージド KMS キーで暗号化されたモデルを使用するには、必要な IAM アクションとリソースを IAM サービスロールポリシーに追加する必要があります。また、サービスロールに AWS KMS キーポリシーを追加する必要があります。

  2. Retrieve API アクションと RetrieveAndGenerate API アクションを呼び出します。コンソールで自動ロール作成を行う場合は、そのジョブに対して評価するアクションを問わず、Retrieve API アクションと RetrieveAndGenerate API アクションの両方にアクセス許可が付与されることに注意が必要です。これにより、そのロールの柔軟性と再利用性が向上されます。ただし、セキュリティを強化するために、自動作成されたロールは、単一のナレッジベースインスタンスに関連付けられます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSpecificModels", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream", "bedrock:CreateModelInvocationJob", "bedrock:StopModelInvocationJob", "bedrock:GetProvisionedModelThroughput", "bedrock:GetInferenceProfile", "bedrock:GetImportedModel" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*", "arn:aws:bedrock:us-east-1:123456789012:inference-profile/*", "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/*", "arn:aws:bedrock:us-east-1:123456789012:imported-model/*", "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/*" ] }, { "Sid": "AllowKnowledgeBaseAPis", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id" ] } ] }
サービスプリンシパルの要件

また、Amazon Bedrock をサービスプリンシパルとして定義する信頼ポリシー指定する必要があります。このポリシーにより、Amazon Bedrock がロールを引き受けることが許可されます。Amazon Bedrock が AWS アカウントでモデル評価ジョブを作成できるようにするには、ワイルドカード (*) モデル評価ジョブ ARN が必要です。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowBedrockToAssumeRole", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:evaluation-job/*" } } } ] }