AgentCore ランタイムの IAM アクセス許可
エージェントAgentCoreコアランタイムで実行するために必要な実行ロールアクセス許可を次に示します。リソースベースのポリシーを使用して、ランタイムリソースへのアクセスを制御することもできます。
リソースベースのポリシーを使用して AgentCore ランタイムリソースへのアクセスを制御する方法については、「Amazon Bedrock AgentCore のリソースベースのポリシー」を参照してください。
トピック
Amazon Bedrock AgentCore を使用する
Amazon Bedrock AgentCore を使用するには、BedrockAgentCoreFullAccess AWS 管理ポリシーを IAM ユーザーまたは IAM ロールにアタッチします。この AWS 管理ポリシーは、 を含む広範なアクセス許可を付与します。これによりGetWorkloadAccessTokenForUserId、IdP トークンの検証なしで発信者が提供するユーザー識別子文字列を使用してワークロードアクセストークンを発行できます。関連するステートメントをコピーし、リソースを特定のユースケースに制限することで、アプリケーションに必要なアクセス許可のみを持つカスタムポリシーを作成することをお勧めします。アプリケーションに JWT トークンが利用可能な本番環境のデプロイでは、明示的に を拒否GetWorkloadAccessTokenForUserIdし、 のみを付与しますGetWorkloadAccessTokenForJWT。詳細については、「ワークロードアクセストークンの取得」を参照してください。AgentCore CLI を使用するには、追加のアクセス許可が必要です。
AgentCore CLI を使用する
AgentCore CLI を使用するには、次の IAM ポリシーを IAM ユーザーまたはロールにアタッチします。IAM アクセス許可を変更するには、「IAM ユーザーのアクセス許可を変更する」を参照してください。
重要
AgentCore CLI によって作成された IAM ポリシーは、開発とテストを目的として設計されています。これらのアクセス許可により、ラピッドプロトタイピングを容易にするための広範なアクセスが許可され、本番環境には適していません。本稼働デプロイでは、最小特権の原則に従ってカスタム IAM ポリシーを作成し、Amazon Bedrock AgentCore アプリケーションに必要な特定のリソースとアクションのみにアクセス許可を制限します。IAM セキュリティガイダンスの詳細については、AgentCore ランタイムのセキュリティのベストプラクティス」を参照してください。
{ "Version":"2012-10-17", "Statement": [ { "Sid": "IAMRoleManagement", "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "iam:TagRole", "iam:ListRolePolicies", "iam:ListAttachedRolePolicies" ], "Resource": [ "arn:aws:iam::*:role/*BedrockAgentCore*", "arn:aws:iam::*:role/service-role/*BedrockAgentCore*" ] }, { "Sid": "CodeBuildProjectAccess", "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject", "codebuild:CreateProject", "codebuild:UpdateProject", "codebuild:BatchGetProjects" ], "Resource": [ "arn:aws:codebuild:*:*:project/bedrock-agentcore-*", "arn:aws:codebuild:*:*:build/bedrock-agentcore-*" ] }, { "Sid": "CodeBuildListAccess", "Effect": "Allow", "Action": [ "codebuild:ListProjects" ], "Resource": "*" }, { "Sid": "IAMPassRoleAccess", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AmazonBedrockAgentCore*", "arn:aws:iam::*:role/service-role/AmazonBedrockAgentCore*" ] }, { "Sid": "CloudWatchLogsAccess", "Effect": "Allow", "Action": [ "logs:GetLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/bedrock-agentcore/*", "arn:aws:logs:*:*:log-group:/aws/codebuild/*" ] }, { "Sid": "S3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:CreateBucket", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::bedrock-agentcore-*", "arn:aws:s3:::bedrock-agentcore-*/*" ] }, { "Sid": "ECRRepositoryAccess", "Effect": "Allow", "Action": [ "ecr:CreateRepository", "ecr:DescribeRepositories", "ecr:GetRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:CompleteLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:ListImages", "ecr:TagResource" ], "Resource": [ "arn:aws:ecr:*:*:repository/bedrock-agentcore-*" ] }, { "Sid": "ECRAuthorizationAccess", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Amazon Bedrock AgentCore コンソールのユーザーアクセス許可
BedrockAgentCoreFullAccess ポリシーをコンソールロールにアタッチします。さらに、サービスコンソールで実行ロールを自動作成する場合は、IAM に次のアクセス許可を追加します。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "IAMRoleAccess", "Effect": "Allow", "Action": ["iam:CreateRole"], "Resource": ["arn:aws:iam::*:role/service-role/AmazonBedrockAgentCoreRuntimeDefaultServiceRole-*"] }, { "Sid": "IAMPolicyAccess", "Effect": "Allow", "Action": ["iam:CreatePolicy"], "Resource": ["arn:aws:iam::*:policy/service-role/AmazonBedrockAgentCoreRuntimeExecutionPolicy_*"] }, { "Sid": "IAMRolePolicyAccess", "Effect": "Allow", "Action": ["iam:AttachRolePolicy"], "Resource": ["arn:aws:iam::*:role/service-role/AmazonBedrockAgentCoreRuntimeDefaultServiceRole-*"], "Condition": { "ArnLike": { "iam:PolicyARN": "arn:aws:iam::*:policy/service-role/AmazonBedrockAgentCoreRuntimeExecutionPolicy_*" } } }] }
AgentCore ランタイムでエージェントを実行するための実行ロール
AgentCore Runtime でエージェントまたはツールを実行するには、 AWS Identity and Access Management 実行ロールが必要です。IAM ロールの作成については、「IAM ロールの作成」を参照してください。
Amazon Bedrock AgentCore ダイレクトデプロイ実行ロールは、Amazon Bedrock AgentCore がエージェントを実行するために引き受ける IAM ロールです。以下に置き換えます:
-
us-east-1使用している AWS リージョンで -
123456789012AWS アカウント ID を含む -
agentNameとエージェントの名前。ロールと AgentCore ランタイムを作成する前に、エージェント名を決定する必要があります。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*" ] }, { "Effect": "Allow", "Action": [ "logs:PutResourcePolicy" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/agentName-*" ] }, { "Effect": "Allow", "Action": ["logs:DescribeLogGroups"], "Resource": ["arn:aws:logs:us-east-1:123456789012:log-group:*"] }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": ["*"] }, { "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:us-east-1:123456789012:*" ] }] }
AgentCore Runtime 実行ロールは、エージェントを実行するために AgentCore Runtime が引き受ける IAM ロールです。以下に置き換えます:
-
us-east-1使用している AWS リージョンで -
123456789012AWS アカウント ID を含む -
agentNameとエージェントの名前。ロールと AgentCore ランタイムを作成する前に、エージェント名を決定する必要があります。
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ECRImageAccess", "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": [ "arn:aws:ecr:us-east-1:123456789012:repository/*" ] }, { "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*" ] }, { "Effect": "Allow", "Action": [ "logs:PutResourcePolicy" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/agentName-*" ] }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" ] }, { "Sid": "ECRTokenAccess", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "GetAgentAccessToken", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForJWT", "bedrock-agentcore:GetWorkloadAccessTokenForUserId" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default/workload-identity/agentName-*" ] }, {"Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:us-east-1:123456789012:*" ] } ] }
AgentCore ランタイム信頼ポリシー
AgentCore ランタイム実行ロールには、AgentCore ランタイムがロールを引き受けることを許可する次の信頼ポリシーを含める必要があります。
ポリシーで、以下を置き換えます。
-
us-east-1使用している AWS リージョンで -
123456789012AWS アカウント ID を含む
AgentCore ランタイム実行ロールに信頼ポリシーを追加するには、 AWS マネジメントコンソールに移動し、ロールに移動し、信頼関係タブを選択し、信頼ポリシーの編集を選択します。
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AssumeRolePolicy", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:*" } } } ] }