View a markdown version of this page

Permissões do IAM para AgentCore tempo de execução - Amazon Bedrock AgentCore

Permissões do IAM para AgentCore tempo de execução

A seguir estão as permissões do IAM necessárias para criar um agente em um AgentCore Runtime e as permissões da função de execução que um agente precisa para executar em um AgentCore Runtime. Você também pode usar políticas baseadas em recursos para controlar o acesso aos seus recursos de tempo de execução.

Para obter informações sobre o uso de políticas baseadas em recursos para controlar o acesso aos seus recursos do AgentCore Runtime, consulte Resource-based as políticas do Amazon Bedrock. AgentCore

Use o Amazon Bedrock AgentCore

Para usar o Amazon Bedrock AgentCore, você pode anexar a política BedrockAgentCoreFullAccess AWS gerenciada ao seu usuário do IAM ou à sua função do IAM. Essa política AWS gerenciada concede amplas permissõesGetWorkloadAccessTokenForUserId, incluindo a emissão de tokens de acesso à carga de trabalho usando cadeias de caracteres de identificação de usuário fornecidas pelo chamador sem verificação do token IdP. Recomendamos criar uma política personalizada com apenas as permissões que seu aplicativo exige, copiando as declarações relevantes e restringindo os recursos ao seu caso de uso específico. Para implantações de produção em que seu aplicativo tem tokens JWT disponíveis, negue GetWorkloadAccessTokenForUserId e conceda explicitamente somente. GetWorkloadAccessTokenForJWT Para obter mais informações, consulte Obter token de acesso à carga de trabalho. Para usar a AgentCore CLI, você precisa de permissões adicionais.

Use a AgentCore CLI

Para usar a AgentCore CLI, anexe a seguinte política do IAM ao seu usuário ou função do IAM. Para alterar as permissões do IAM, consulte Alterar permissões para um usuário do IAM.

Importante

As políticas do IAM criadas pela AgentCore CLI são projetadas para fins de desenvolvimento e teste. Essas permissões concedem amplo acesso para facilitar a prototipagem rápida e não são adequadas para ambientes de produção. Para implantações de produção, crie políticas personalizadas de IAM que sigam o princípio do privilégio mínimo e restrinjam as permissões somente aos recursos e ações específicos exigidos pelo seu aplicativo Amazon Bedrock AgentCore . Para obter uma orientação completa de segurança do IAM, consulte Melhores práticas de segurança para o 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": "*" } ] }

Permissões de usuário para o Amazon Bedrock Console AgentCore

Anexe a BedrockAgentCoreFullAccesspolítica à função de console. Além disso, adicione as seguintes permissões para o IAM se quiser que o console de serviço crie automaticamente a função de execução.

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

Função de execução para executar um agente no AgentCore Runtime

Para executar o agente ou a ferramenta no AgentCore Runtime, você precisa de uma função de execução do AWS Identity and Access Management. Para obter informações sobre como criar uma função do IAM, consulte Criação de função do IAM.

A função de execução de implantação AgentCore direta do Amazon Bedrock é uma função do IAM que o Amazon Bedrock AgentCore assume para executar um agente. Substitua o seguinte:

  • us-east-1com a AWS região que você está usando

  • 123456789012com o ID AWS da sua conta

  • agentNamecom o nome do seu agente. Você precisará decidir o nome do agente antes de criar a função e o 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:*" ] }] }

A função AgentCore de execução do Runtime é uma função do IAM que o AgentCore Runtime assume para executar um agente. Substitua o seguinte:

  • us-east-1com a AWS região que você está usando

  • 123456789012com o ID AWS da sua conta

  • agentNamecom o nome do seu agente. Você precisará decidir o nome do agente antes de criar a função e o 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 Política de confiança em tempo de execução

A função AgentCore de execução do Runtime deve incluir a seguinte política de confiança, que permite que o AgentCore Runtime assuma a função.

Na política, substitua:

  • us-east-1com a AWS região que você está usando

  • 123456789012com o ID AWS da sua conta

Para adicionar a política de confiança à função AgentCore de execução do Runtime, acesse o AWS Management Console, navegue até a função, escolha a guia Relações de confiança e escolha Editar política de confiança.

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