View a markdown version of this page

Configurar permissões para o AgentCore Gateway - Amazon Bedrock AgentCore

Configurar permissões para o AgentCore Gateway

Para usar o Amazon Bedrock AgentCore Gateway e seus recursos, você precisará considerar as seguintes permissões:

  1. builder/user Permissões de gateway — Permissões fornecidas a um construtor ou usuário de gateway para permitir que ele crie, gerencie e/ou use AgentCore gateways.

  2. Permissões da função de serviço do gateway — Permissões fornecidas para uma função de serviço que você criará para o seu gateway. Essas permissões permitem que o AgentCore serviço Amazon Bedrock execute ações em nome da identidade que invoca o gateway.

  3. Resource-based permissões — Permissões anexadas aos recursos para permitir que a função de serviço do gateway os acesse. Você incluirá o Amazon Resource Name (ARN) da função de serviço de gateway na política baseada Principal em recursos.

  4. Políticas baseadas em recursos do gateway — Políticas anexadas diretamente aos recursos do gateway para controlar quais diretores podem invocá-las. Para obter mais informações, consulte Resource-based as políticas do Amazon Bedrock AgentCore.

nota

Se você preferir não configurar permissões personalizadas, você pode usar as seguintes opções para facilitar a configuração: * Anexe a BedrockAgentCoreFullAccessuma identidade do IAM para permitir que ela crie, gerencie e invoque gateways. * Use o console AWS de gerenciamento ou a AgentCore CLI para criar uma função de serviço de AgentCore gateway com as permissões adequadas e destinos de gateway com as políticas adequadas baseadas em recursos para permitir que a função de serviço os acesse.

Escolha um tópico para saber mais:

Construtor de gateway e permissões de usuário

Para que uma identidade possa criar, gerenciar ou usar gateways, você precisa anexar uma política baseada em identidade à identidade do IAM para permitir que ela execute ações do Amazon Bedrock. AgentCore-related Para obter permissões abrangentes, você pode usar a política BedrockAgentCoreFullAccessgerenciada.

Para maior segurança e controle, você pode criar sua própria política personalizada reduzindo as permissões na política de acesso total. Por exemplo, a política a seguir permite que uma identidade execute ações relacionadas ao AgentCore Gateway, mas não a outros AgentCore serviços, como AgentCore Runtime ou AgentCore Browser:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:*Gateway*", "bedrock-agentcore:*WorkloadIdentity", "bedrock-agentcore:*CredentialProvider", "bedrock-agentcore:*Token*", "bedrock-agentcore:*Access*" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }
A política personalizada a seguir é mais restritiva e só permite acesso de leitura a gateways e destinos de gateway.
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:ListGateways", "bedrock-agentcore:GetGateway", "bedrock-agentcore:ListGatewayTargets", "bedrock-agentcore:GetGatewayTarget" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }

Permissões de acesso ao gateway (autorização de entrada)

Além das permissões relacionadas ao gateway, você também precisará configurar permissões para que as identidades possam acessar o gateway durante a invocação. Você configurará essas permissões ao configurar a autorização de entrada.

AgentCore Permissões da função de serviço do gateway

Ao criar um gateway, você precisa de uma função de serviço que tenha permissões para assumir uma função do IAM e acessar AWS recursos e serviços externos em nome da função do IAM. Você pode criar a função de serviço das seguintes formas:

  • Se você criar um gateway no AWS Management Console ou por meio da AgentCore CLI, poderá optar por permitir a criação AgentCore automática de uma função de serviço para você com as permissões necessárias. Se você preferir esse método, pode pular esse pré-requisito.

  • Se você preferir criar sua própria função de serviço para maior personalização, precisará configurar a função com as permissões descritas neste tópico. Para saber como criar uma função de serviço e anexar permissões a ela, consulte Criar uma função para delegar permissões a um AWS serviço.

As permissões necessárias para uma função de serviço estão nos seguintes tópicos:

Permissões de confiança

Uma função de serviço deve ter uma política de confiança anexada que permita ao AgentCore serviço assumir uma identidade do IAM e realizar ações em seu nome.

Veja a seguir um exemplo de uma política de confiança que você pode usar.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "GatewayAssumeRolePolicy", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:gateway/gateway-name-*" } } } ] }
nota

Como você não saberá o ARN do gateway antes de criá-lo, você pode omitir o Condition campo ao criar a função de serviço pela primeira vez. Depois de criar o gateway, adicione o Condition campo novamente à política como uma prática de segurança recomendada e faça o seguinte: * Substitua o valor da chave de aws:SourceAccount condição pelo ID da conta à qual o gateway pertence. * Substitua a chave de aws:SourceArn condição pelo ARN do gateway.

Permissões de autorização de saída

Dependendo do tipo de autorização de saída que você usa para seus destinos de gateway, você precisa adicionar permissões à função de serviço para permitir que ela invoque o destino. Essas permissões permitem que a função de serviço do gateway recupere as credenciais de autorização para invocar o destino. Você pode fazer isso no processo de configuração da autorização de saída.

Permissões para acessar AWS recursos

Dependendo da configuração do gateway ou dos destinos que você escolher adicionar ao gateway, talvez seja necessário adicionar permissões à função de serviço do gateway para permitir que ele acesse AWS recursos. Os tópicos a seguir abrangem alguns recursos aos quais sua função de serviço de gateway pode precisar acessar:

Se você anexar um alvo Lambda ao seu gateway, precisará adicionar permissões para a função de serviço do AgentCore Gateway para poder invocar a função fazendo o seguinte:

  • Anexe uma política baseada em identidade à função de serviço do AgentCore Gateway que permita a lambda:InvokeFunction ação no recurso da função Lambda.

  • (Se a função estiver em uma conta diferente da função de serviço de gateway) Anexe uma política baseada em recursos à função Lambda que permita que o principal da função de serviço de gateway execute a ação lambda:InvokeFunction no recurso da função Lambda.

Selecione um tópico para saber como configurar as permissões:

Tópicos

    ===== Anexar uma política baseada em identidade à função de serviço do gateway

    Para permitir que a função de serviço de gateway acesse um alvo do Lambda, anexe a seguinte política baseada em identidade à sua função de serviço do AgentCore Gateway escolhendo o tópico em Adicionar e remover permissões de identidade do IAM relacionadas ao seu caso de uso e seguindo as etapas.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "AmazonBedrockAgentCoreGatewayLambdaProd", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:FunctionName" ] }] }

    Substitua o ARN no Resource campo pelo ARN do seu destino do gateway de funções Lambda. Se seu gateway tiver vários destinos Lambda, você poderá adicionar o ARN de cada função à lista. Resource

    ===== (Se a função estiver em outra conta) Anexe uma política baseada em recursos à função Lambda

    Se o destino da função Lambda estiver em uma conta diferente da função de serviço de gateway, você precisará anexar uma política baseada em recursos para permitir que a função de serviço de gateway a acesse. Veja a seguir um exemplo de política que você pode usar:

    { "Version":"2012-10-17", "Statement": [ { "Sid": "LambdaAllowGatewayServiceRoleMyFunction", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MyGatewayExecutionRole" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction" } ] }

    Substitua os valores dos seguintes campos:

    • AWS— Use o ARN da sua função de serviço de gateway.

    • Resource— Use o ARN da sua função Lambda.

      Para saber como anexar uma política baseada em recursos à função Lambda que permite que sua função de serviço de gateway acesse a função, selecione um dos seguintes métodos
    Console
    1. ====== Para anexar uma política baseada em recursos à sua função Lambda no Management Console AWS

    2. Siga as etapas na guia Console em Visualização de políticas de IAM baseadas em recursos no Lambda.

    3. Na seção Declarações de Resource-based política, escolha Adicionar permissões.

    4. Selecione a AWS conta e preencha os seguintes campos:

      • ID da declaração — Um identificador exclusivo para a declaração que fornece permissões para que a função do serviço de gateway acesse a função.

      • Principal — Especifique o ARN da sua função de serviço de gateway.

      • Ação — Selecionelambda:InvokeFunction.

    CLI
    1. Para anexar uma política baseada em recursos à sua função do Lambda usando a AWS CLI, siga as etapas em Concedendo acesso à função Lambda aos AWS serviços e especifique sua função de serviço de gateway como a. principal

      Você pode executar o código a seguir em um terminal para adicionar permissões para que sua função de serviço de gateway acesse a função emus-east-1:

      aws lambda add-permission \ --function-name "MyFunction" \ --statement-id "GatewayInvoke" \ --action "lambda:InvokeFunction" \ --principal "arn:aws:iam::123456789012:role/MyGatewayServiceRole" --region us-east-1
    exemplo

    Se você planeja incluir uma definição de ferramenta de destino de gateway a partir de um URI do Amazon S3, precisará incluir permissões para que a função de serviço de gateway acesse o bucket. A AmazonS3ReadOnlyAccesspolítica é um exemplo de política que você pode anexar à função de serviço. Você pode definir o escopo Resource até o local do S3 para maior segurança.

    Se você planeja adicionar um alvo Smithy, você precisa adicionar permissões para a função de serviço de gateway acessar os AWS serviços aos quais seus modelos Smithy se referem. Para determinar quais permissões precisam ser anexadas à função de serviço, consulte a documentação desse serviço.

    Você pode adicionar permissões à função de serviço escolhendo o tópico em Adicionar e remover permissões de identidade do IAM relacionadas ao seu caso de uso e seguindo as etapas.

    Por exemplo, se o modelo de destino do Smithy acessar uma tabela do DynamoDB, você poderá anexar a seguinte política para permitir que a função de serviço execute operações do DynamoDB na tabela:

    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:*:*:table/*" } ] }

    Práticas recomendadas para permissões de gateway

    Siga o princípio do menor privilégio
    • Conceda somente as permissões necessárias para que seu Gateway funcione

    • Use ARNs de recursos específicos em vez de curingas quando possível

    • Revise e audite regularmente as permissões

    Funções separadas por função
    • Use funções diferentes para gerenciamento e execução

    • Crie funções separadas para diferentes gateways com finalidades diferentes

    Armazenamento seguro de credenciais
    • Armazene chaves de API e credenciais OAuth no Secrets Manager AWS

    • Alternar credenciais regularmente

    Monitore e audite
    • Habilitar o CloudTrail registro para operações do Gateway

    • Revise regularmente os padrões de acesso e o uso de permissões

    Condições de uso nas políticas
    • Adicione condições para limitar quando e como as permissões podem ser usadas

    • Considere o uso de restrições de IP de origem para operações de gerenciamento