Amazon Bedrock エージェントのサービスロールを作成する - Amazon Bedrock

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

Amazon Bedrock エージェントのサービスロールを作成する

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 or Redis Enterprise Cloud) エージェントに関連付けられたナレッジベース。ナレッジベースがファーストパーティ (Amazon OpenSearch Serverless または Amazon Aurora) である場合、またはエージェントに関連付けられたナレッジベースがない場合は、このステートメントを省略します。

  • プロンプト管理からプロンプトにアクセスするためのアクセス許可。Amazon Bedrock コンソールでエージェントを使用してプロンプト管理からのプロンプトをテストする予定がない場合は、このステートメントを省略します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentModelInvocationPermissions", "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": "AgentActionGroupS3", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::bucket/path/to/schema" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}" } } }, { "Sid": "AgentKnowledgeBaseQuery", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:knowledge-base/knowledge-base-id" ] }, { "Sid": "Agent3PKnowledgeBase", "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}" } } }, { "Sid": "AgentPromptManagementConsole", "Effect": "Allow", "Action": [ "bedrock:GetPrompt", ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:prompt/prompt-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 ベースのポリシーをサービスロールにアタッチするか、エージェントサービスロールのアイデンティティベースのアクセス許可のポリシーにステートメントを追加します。

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