Izin IAM untuk Runtime AgentCore
Berikut ini adalah izin IAM yang Anda perlukan untuk membuat agen di AgentCore Runtime dan izin peran eksekusi yang diperlukan agen untuk dijalankan di Runtime. AgentCore Anda juga dapat menggunakan kebijakan berbasis sumber daya untuk mengontrol akses ke sumber daya runtime Anda.
Topik
Gunakan Amazon Bedrock AgentCore
Untuk menggunakan Amazon Bedrock AgentCore, Anda dapat melampirkan kebijakan BedrockAgentCoreFullAccess AWS terkelola ke pengguna IAM atau peran IAM Anda. Kebijakan AWS terkelola ini memberikan izin luas termasukGetWorkloadAccessTokenForUserId, yang memungkinkan penerbitan token akses beban kerja menggunakan string pengenal pengguna yang disediakan pemanggil tanpa verifikasi token IDP. Sebaiknya buat kebijakan khusus hanya dengan izin yang diperlukan aplikasi Anda dengan menyalin pernyataan yang relevan dan membatasi sumber daya untuk kasus penggunaan spesifik Anda. Untuk penerapan produksi di mana aplikasi Anda memiliki token JWT tersedia, tolak secara eksplisit dan berikan saja. GetWorkloadAccessTokenForUserId GetWorkloadAccessTokenForJWT Untuk informasi selengkapnya, lihat Mendapatkan token akses beban kerja. Untuk menggunakan AgentCore CLI, Anda memerlukan izin tambahan.
Gunakan AgentCore CLI
Untuk menggunakan AgentCore CLI, lampirkan kebijakan IAM berikut ke pengguna atau peran IAM Anda. Untuk mengubah izin IAM, lihat Mengubah izin untuk pengguna IAM.
penting
Kebijakan IAM yang dibuat oleh AgentCore CLI dirancang untuk tujuan pengembangan dan pengujian. Izin ini memberikan akses luas untuk memfasilitasi pembuatan prototipe cepat dan tidak cocok untuk lingkungan produksi. Untuk penerapan produksi, buat kebijakan IAM khusus yang mengikuti prinsip hak istimewa paling sedikit dan batasi izin hanya untuk sumber daya dan tindakan spesifik yang diperlukan oleh aplikasi Amazon Bedrock Anda. AgentCore Untuk panduan keamanan IAM yang lengkap, lihat Praktik terbaik keamanan untuk AgentCore Runtime.
{ "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": "*" } ] }
Izin pengguna untuk Amazon Bedrock Console AgentCore
Lampirkan BedrockAgentCoreFullAccesskebijakan ke peran konsol. Selain itu, tambahkan izin berikut untuk IAM jika Anda ingin konsol layanan membuat peran eksekusi secara otomatis.
{ "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_*" } } }] }
Peran eksekusi untuk menjalankan agen di AgentCore Runtime
Untuk menjalankan agen atau alat di AgentCore Runtime, Anda memerlukan peran eksekusi AWS Identity and Access Management. Untuk informasi tentang membuat peran IAM, lihat Pembuatan peran IAM.
Peran eksekusi penerapan AgentCore langsung Amazon Bedrock adalah peran IAM yang AgentCore diasumsikan Amazon Bedrock untuk menjalankan agen. Ganti yang berikut ini:
-
us-east-1dengan AWS Wilayah yang Anda gunakan -
123456789012dengan ID AWS akun Anda -
agentNamedengan nama agen Anda. Anda harus memutuskan nama agen sebelum membuat peran dan AgentCore Runtime.
{ "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:*" ] }] }
Peran eksekusi AgentCore Runtime adalah peran IAM yang diasumsikan AgentCore Runtime untuk menjalankan agen. Ganti yang berikut ini:
-
us-east-1dengan AWS Wilayah yang Anda gunakan -
123456789012dengan ID AWS akun Anda -
agentNamedengan nama agen Anda. Anda harus memutuskan nama agen sebelum membuat peran dan AgentCore Runtime.
{ "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 Kebijakan kepercayaan runtime
Peran eksekusi AgentCore Runtime harus menyertakan kebijakan kepercayaan berikut yang memungkinkan AgentCore Runtime untuk mengambil peran tersebut.
Dalam kebijakan, ganti:
-
us-east-1dengan AWS Wilayah yang Anda gunakan -
123456789012dengan ID AWS akun Anda
Untuk menambahkan kebijakan kepercayaan ke peran eksekusi AgentCore Runtime, buka AWS Management Console, navigasikan ke peran, pilih tab Trust relationship, dan pilih Edit trust policy.
{ "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:*" } } } ] }