Criar um perfil de serviço para o Amazon Bedrock Agents - Amazon Bedrock

Criar um perfil de serviço para o Amazon Bedrock Agents

Para usar um perfil de serviço personalizado para agentes, em vez daquele que o Amazon Bedrock cria automaticamente, crie um perfil do IAM e anexe as permissões abaixo seguindo as etapas em Criar um perfil para delegar permissões a um serviço da AWS.

  • Política de confiança

  • Uma política que contém as seguintes permissões baseadas em identidade:

    • Acesso aos modelos de base do Amazon Bedrock.

    • Acesso aos objetos do Amazon S3 que contêm os esquemas OpenAPI para os grupos de ação em agentes.

    • Permissões para o Amazon Bedrock consultar bases de conhecimento que você deseja anexar aos agentes.

    • Se alguma das seguintes situações se referir ao caso de uso, adicione a declaração à política ou adicione uma política com a instrução ao perfil de serviço:

      • (Opcional) Se você associar um throughput provisionado ao alias do agente, permissões para executar a invocação do modelo usando esse throughput provisionado.

      • (Opcional) Se você associar uma barreira de proteção ao agente, permissões para aplicar essa barreira de proteção. Se a barreira de proteção for criptografada com uma chave do KMS, o perfil de serviço também precisará de permissões para descriptografar a chave

      • (Opcional) Se você criptografar o agente com uma chave do KMS, permissões para descriptografar a chave.

Quer você use um perfil personalizado ou não, também precisará anexar a política baseada em recurso às funções do Lambda dos grupos de ação nos agentes a fim de fornecer permissões para que o perfil de serviço acesse as funções. Para obter mais informações, consulte Política baseada em recurso para permitir que o Amazon Bedrock invoque uma função do Lambda do grupo de ação.

Relação de confiança

A política a seguir permite que o Amazon Bedrock assuma esse perfil e crie e gerencie agentes. Substitua os ${values} conforme necessário. A política contém chaves de condição opcionais (consulte Chaves de condição do Amazon Bedrock e Chaves de contexto de condição globais da AWS) no campo Condition que devem ser usadas como uma prática recomendada de segurança.

nota

Como prática recomendada para fins de segurança, substitua o * por IDs de agente específicos depois de criá-los.

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

Permissões baseadas em identidade para o perfil de serviço de agentes

Anexe a política a seguir para fornecer permissões ao perfil de serviço, substituindo ${values} conforme necessário. A política contém as declarações a seguir. Omita uma declaração quando não for aplicável ao caso de uso. A política contém chaves de condição opcionais (consulte Chaves de condição do Amazon Bedrock e Chaves de contexto de condição globais da AWS) no campo Condition que devem ser usadas como uma prática recomendada de segurança.

nota

Se você criptografar o agente com uma chave do KMS gerenciada pelo cliente, consulte Criptografia de recursos do agente para obter mais permissões que precisam ser adicionadas.

  • Permissões para usar os modelos de base do Amazon Bedrock para executar inferência de modelos nos prompts usados na orquestração do agente.

  • Permissões para acessar os esquemas da API do grupo de ação do agente no Amazon S3. Omita essa declaração se o agente não tiver grupos de ação.

  • Permissões para acessar as bases de conhecimento associadas ao agente. Omita essa declaração se o agente não tiver bases de conhecimento associadas.

  • Permissões para acessar uma base de conhecimento de terceiros (Pinecone ou Redis Enterprise Cloud) associada ao agente. Omita essa declaração se a base de conhecimento for primária (Amazon OpenSearch Sem Servidor ou Amazon Aurora) ou se o agente não tiver bases de conhecimento associadas.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow model invocation for orchestration", "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": "Allow access to action group API schemas in S3", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::bucket/path/to/schema" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}" } } }, { "Sid": "Query associated knowledge bases", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:knowledge-base/knowledge-base-id" ] }, { "Sid": "Associate a third-party knowledge base with your agent", "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}" } } } ] }

(Opcional) Política baseada em identidade para permitir que o Amazon Bedrock use o throughput provisionado com o alias do agente

Se você associar um throughput provisionado a um alias do agente, anexe a política baseada em identidade a seguir ao perfil de serviço ou adicione a declaração à política em Permissões baseadas em identidade para o perfil de serviço de agentes.

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

(Opcional) Política baseada em identidade para permitir que o Amazon Bedrock use barreiras de proteção com o agente

Se você associar uma barreira de proteção ao agente, anexe a política baseada em identidade a seguir ao perfil de serviço ou adicione a declaração à política em Permissões baseadas em identidade para o perfil de serviço de agentes.

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

(Opcional) Política baseada em identidade para permitir que o Amazon Bedrock acesse arquivos do S3 para uso com a interpretação de código

Se você habilitar Habilitar a interpretação de código no Amazon Bedrock, anexe a política baseada em identidade a seguir ao perfil de serviço ou adicione a declaração à política em Permissões baseadas em identidade do perfil de serviço de agentes.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonBedrockAgentFileAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectVersionAttributes", "s3:GetObjectAttributes" ], "Resource": [ "arn:aws:s3:::[[customerProvidedS3BucketWithKey]]" ] } ] }

Política baseada em recurso para permitir que o Amazon Bedrock invoque uma função do Lambda do grupo de ação

Siga as etapas em Usar políticas baseadas em recurso para o Lambda e anexe a política baseada em recurso a seguir a uma função do Lambda para permitir que o Amazon Bedrock acesse a função do Lambda dos grupos de ação do agente, substituindo ${values} conforme necessário. A política contém chaves de condição opcionais (consulte Chaves de condição do Amazon Bedrock e Chaves de contexto de condição globais da AWS) no campo Condition que devem ser usadas como uma prática recomendada de segurança.

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