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

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

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

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

  • 信頼ポリシー

  • 次の ID ベースのアクセス許可を含むポリシー。

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

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

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

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

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

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

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

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

信頼関係

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

注記

セキュリティ上のベストプラクティスとして、* 特定のエージェントを作成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}: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 でコード解釈を有効にする、次の ID ベースのポリシーをサービスロールにアタッチするか、 エージェントサービスロール の Identity ベースのアクセス許可のポリシーに ステートメントを追加します。

{ "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} 必要に応じて。このポリシーには、セキュリティのベストプラクティスとして フィールドでオプションの条件キー (「Amazon Bedrock の条件キー」とConditionAWS 「グローバル条件コンテキストキー」を参照) が含まれています。

{ "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}" } } } ] }