Agents for Amazon Bedrock のサービスロールを作成する - Amazon Bedrock

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

Agents for Amazon Bedrock のサービスロールを作成する

Amazon Bedrock が自動的に作成するロールではなく、エージェントのカスタムサービスロールを使用するには、AWS 「サービスにアクセス許可を委任するロールの作成」の手順に従って IAM ロールを作成し、次のアクセス許可をアタッチします。

  • 信頼ポリシー

  • 以下のアイデンティティベースのアクセス許可を含むポリシー。

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

    • エージェント内のアクショングループのOpenAPIスキーマを含む Amazon S3 オブジェクトへのアクセス。

    • Amazon Bedrock がエージェントにアタッチするナレッジベースをクエリするためのアクセス許可。

    • 次のいずれかの状況がユースケースに関連する場合は、 ステートメントをポリシーに追加するか、 ステートメントを含むポリシーをサービスロールに追加します。

      • (オプション) プロビジョンドスループットをエージェントエイリアスに関連付けると、そのプロビジョンドスループットを使用してモデル呼び出しを実行するアクセス許可が付与されます。

      • (オプション) エージェントにガードレールを関連付ける場合、そのガードレールを適用するアクセス許可。ガードレールが KMS キーで暗号化されている場合、サービスロールにはキーを復号するためのアクセス許可も必要です。

      • (オプション) エージェントを KMS キーで暗号化する場合は、キー を復号するアクセス許可

カスタムロールを使用するかどうかにかかわらず、エージェント内のアクショングループの Lambda 関数にリソースベースのポリシーをアタッチして、サービスロールが関数にアクセスするためのアクセス許可を提供する必要もあります。詳細については、「Amazon Bedrock がアクショングループ Lambda 関数を呼び出すことを許可するリソースベースのポリシー」を参照してください。

信頼関係

次の信頼ポリシーは、Amazon Bedrock がこのロールを引き受け、エージェントを作成および管理することを許可します。必要に応じて ${values} を置き換えます。このポリシーには、セキュリティのベストプラクティスとして使用することをお勧めします Conditionフィールドにオプションの条件キー (「Amazon Bedrock の条件キー」およびAWS 「グローバル条件コンテキストキー」を参照) が含まれています。

注記

セキュリティ上のベストプラクティスとして、* は特定のエージェント ID に置き換えてください (作成後)。

{ "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}:agent/*" } } }] }

エージェントサービスロールのアイデンティティベースのアクセス許可

必要に応じて ${values} を置き換えて、サービスロールにアクセス許可を付与するには、次のポリシーをアタッチします。ポリシーには、次のステートメントが含まれます。ユースケースに当てはまらない場合は、ステートメントを省略します。このポリシーには、セキュリティのベストプラクティスとして使用することをお勧めします Conditionフィールドにオプションの条件キー (「Amazon Bedrock の条件キー」およびAWS 「グローバル条件コンテキストキー」を参照) が含まれています。

注記

カスタマー管理の KMS キーでエージェントを暗号化する場合は、エージェントリソースの暗号化「」を参照して、追加する必要があるその他のアクセス許可を確認してください。

  • Amazon Bedrock 基盤モデルを使用して、エージェントのオーケストレーションで使用されるプロンプトでモデル推論を実行するアクセス許可。

  • Amazon S3 でエージェントのアクショングループ API スキーマにアクセスするためのアクセス許可。エージェントにアクショングループがない場合は、このステートメントを省略します。

  • エージェントに関連付けられたナレッジベースにアクセスするためのアクセス許可。エージェントに関連付けられたナレッジベースがない場合は、このステートメントを省略します。

  • エージェントに関連付けられたサードパーティー (Pinecone または Redis Enterprise Cloud) ナレッジベースにアクセスするためのアクセス許可。ナレッジベースがファーストパーティー (Amazon OpenSearch Serverless または Amazon Aurora) の場合、またはエージェントに関連付けられたナレッジベースがない場合は、このステートメントを省略します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow model invocation for orchestration", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:${region}::foundation-model/anthropic.claude-v2", "arn:aws:bedrock:${region}::foundation-model/anthropic.claude-v2:1", "arn:aws:bedrock:${region}::foundation-model/anthropic.claude-instant-v1" ] }, { "Sid": "Allow access to action group API schemas in S3", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::bucket/path/to/schema" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}" } } }, { "Sid": "Query associated knowledge bases", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:knowledge-base/knowledge-base-id" ] }, { "Sid": "Associate a third-party knowledge base with your agent", "Effect": "Allow", "Action": [ "bedrock:AssociateThirdPartyKnowledgeBase", ], "Resource": "arn:aws:bedrock:${region}:${account-id}:knowledge-base/knowledge-base-id", "Condition": { "StringEquals" : { "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn": "arn:aws:kms:${region}:${account-id}:key/${key-id}" } } } ] }

(オプション) Amazon Bedrock がエージェントエイリアスでプロビジョンドスループットを使用できるようにするアイデンティティベースのポリシー

プロビジョンドスループットをエージェントのエイリアスに関連付ける場合は、次のアイデンティティベースのポリシーをサービスロールにアタッチするか、 のポリシーに ステートメントを追加しますエージェントサービスロールのアイデンティティベースのアクセス許可

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Use a Provisioned Throughput in model invocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetProvisionedModelThroughput" ], "Resource": [ "arn:aws:bedrock:{${region}}:{${account-id}}:${provisioned-model-id}" ] } ] }

(オプション) Amazon Bedrock がエージェントでガードレールを使用できるようにするアイデンティティベースのポリシー

ガードレールをエージェントに関連付ける場合は、次のアイデンティティベースのポリシーをサービスロールにアタッチするか、 のポリシーに ステートメントを追加しますエージェントサービスロールのアイデンティティベースのアクセス許可

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Apply a guardrail to your agent", "Effect": "Allow", "Action": "bedrock:ApplyGuardrail", "Resource": [ "arn:aws:bedrock:{${region}}:{${account-id}}:guardrail/${guardrail-id}" ] } ] }

(オプション) Amazon Bedrock が S3 からファイルにアクセスしてコード解釈で使用できるようにするアイデンティティベースのポリシー

を有効にする場合はAmazon Bedrock でコード解釈を有効にする、次のアイデンティティベースのポリシーをサービスロールにアタッチするか、 エージェントサービスロールのアイデンティティベースのアクセス許可のポリシーに ステートメントを追加します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonBedrockAgentFileAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectVersionAttributes", "s3:GetObjectAttributes" ], "Resource": [ "arn:aws:s3:::[[customerProvidedS3BucketWithKey]]" ] } ] }

Amazon Bedrock がアクショングループ Lambda 関数を呼び出すことを許可するリソースベースのポリシー

「Lambda のリソースベースのポリシーを使用する」の手順に従って、次のリソースベースのポリシーを Lambda 関数にアタッチし、Amazon Bedrock がエージェントのアクショングループの Lambda 関数にアクセスできるようにします。必要に応じて ${values} を置き換えます。このポリシーには、セキュリティのベストプラクティスとして使用することを推奨する Conditionフィールドにオプションの条件キー (「Amazon Bedrock の条件キー」およびAWS 「グローバル条件コンテキストキー」を参照) が含まれています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Amazon Bedrock to access action group Lambda function", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:${region}:${account-id}:function:function-name", "Condition": { "StringEquals": { "AWS:SourceAccount": "${account-id}" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:${region}:${account-id}:agent/${agent-id}" } } } ] }