

# Segurança nos pagamentos do Amazon Bedrock AgentCore
<a name="payments-security-best-practices"></a>

As melhores práticas a seguir podem ajudar você a evitar incidentes de segurança ao usar pagamentos do Amazon Bedrock AgentCore . Os controles preventivos impedem ações inseguras antes que elas aconteçam. Detective controla atividades inesperadas para que você possa responder a elas.

## Controles preventivos
<a name="payments-security-preventative"></a>

Use esses controles para restringir o que seu agente pode fazer e manter material sensível fora de seu alcance.

### Imponha o menor privilégio com o padrão IAM de quatro funções
<a name="payments-security-least-privilege"></a>

AgentCore os pagamentos separam o plano de controle do plano de dados usando funções distintas do IAM. Configure as permissões do IAM com base na persona que corresponde a cada função. Com esse padrão, nenhuma função pode aumentar um orçamento e gastar com ele.


| \# | Perfil | Finalidade | 
| --- | --- | --- | 
| 1 |  `ControlPlaneRole`  | Administra o serviço. | 
| 2 |  `ManagementRole`  | Configura as sessões. Essa função é explicitamente negada`ProcessPayment`. | 
| 3 |  `ProcessPaymentRole`  | Executa pagamentos. | 
| 4 |  `ResourceRetrievalRole`  | Service-assumed. Busca o estado da sessão e da credencial. | 

Para obter mais informações, consulte [Funções do IAM para AgentCore pagamentos](payments-iam-roles.md).

### Armazene credenciais no Identity AgentCore
<a name="payments-security-credentials"></a>

Nunca incorpore as credenciais do provedor de carteira no código do agente ou nas variáveis de ambiente.
+ Armazene as credenciais Coinbase CDP ou Stripe (Privy) como um in Identity. `PaymentCredentialProvider` AgentCore 
+ O serviço os recupera em tempo de execução usando`ResourceRetrievalRole`.
+ Alterne as credenciais de acordo com a programação recomendada pelo fornecedor da carteira. Se uma credencial for comprometida, revogue-a imediatamente.

Para obter mais informações, consulte [Identidade do AgentCore ](identity.md).

### Defina o UserId cabeçalho corretamente
<a name="payments-security-userid-header"></a>

Em um gerenciador de pagamentos de autorização de IAM-configured entrada, seu back-end declara o `X-Amzn-Bedrock-AgentCore-Payments-User-Id` cabeçalho e os AgentCore pagamentos **não** o verificam. Você é responsável por definir esse valor corretamente.

AgentCore payments verifica o chamador do IAM e o JWT (ao usar o OAuth), mas a exatidão do `UserId` cabeçalho nas chamadas de API é de sua responsabilidade. Não permita que usuários finais ou agentes influenciem esse cabeçalho diretamente.

### Implantações seguras de vários locatários
<a name="payments-security-multi-tenant"></a>

Para implantações multilocatárias que atendem a vários usuários finais, use o tipo de autorização `CUSTOM_JWT` (OAuth) no gerenciador de pagamentos. Isso fornece ao serviço uma identidade de usuário final verificada. Com o gerenciador IAM-configured de pagamentos, AgentCore os pagamentos não verificam a identidade do usuário final.

### Exigir consentimento e delegação explícitos do usuário final
<a name="payments-security-consent"></a>

Financiamento e delegação são duas decisões distintas do usuário final, e ambas são tomadas fora da banda pelo agente:
+  **Financiamento** — O usuário final deposita fundos por meio do portal do provedor de carteira. O agente não tem acesso à API ao financiamento e nunca deve solicitá-lo ou iniciá-lo automaticamente.
+  **Delegação** — O usuário final concede permissão por meio de Permissões de Gastos da Coinbase ou Ações Delegadas Privadas. Não presuma que a delegação é permanente, pois os usuários podem revogá-la a qualquer momento. Lide com a delegação revogada com elegância.

### Mantenha o agente isolado dos instrumentos de pagamento
<a name="payments-security-isolation"></a>

O agente nunca deve acessar números de cartões, valores CVV, dados bancários ou chaves privadas da carteira. A visão do agente se limita a “uma permissão para gastar com uma carteira de propriedade do usuário”.
+ As chaves da carteira são mantidas pelo provedor sob custódia própria, não pelo desenvolvedor ou pelo desenvolvedor. AWS 
+ Nunca passe detalhes do instrumento de pagamento por meio de solicitações, entradas de ferramentas ou janelas de contexto.

### Acesso à ferramenta de escopo com a Política em AgentCore
<a name="payments-security-policy"></a>

Para autorização em nível de ferramenta, exponha endpoints pagos por meio do Amazon Bedrock Gateway. AgentCore Cada chamada pelo Gateway é interceptada pelo Policy in AgentCore, um Cedar-based mecanismo que avalia a solicitação, incluindo a identidade do agente, o nome da ferramenta e os parâmetros, e decide se a permite.

As sessões de apólice e pagamento abrangem decisões diferentes:
+  **A política** controla *quem* chama *qual ferramenta* com *quais parâmetros*.
+  **As sessões de pagamento** *controlam quanto* pode ser gasto e *por quanto tempo*.

Juntos, eles fornecem alavancas ortogonais para acessar ferramentas e gastar dinheiro.
+ Escreva políticas do Cedar com base na identidade do agente, grupo de usuários e parâmetros de solicitação.
+ Negue o acesso a ferramentas de alto custo para agentes que não precisam delas.
+ Revise e audite as políticas regularmente à medida que seu catálogo de ferramentas muda.

Para obter mais informações, consulte [Política em AgentCore](policy.md).

### Use sessões de pagamento com limites de orçamento e TTL
<a name="payments-security-sessions"></a>

Cada pagamento é executado dentro de uma sessão de pagamento que tem um valor máximo de gastos e um prazo de validade. A camada de infraestrutura impõe esses limites, portanto, a injeção imediata e o não determinismo do modelo não podem substituí-los.
+ `maxSpendAmount`Defina o mínimo necessário para a tarefa e defina um TTL curto.
+ Comece com orçamentos conservadores e aumente-os somente quando o agente se mostrar confiável.
+ As assinaturas malsucedidas revertem automaticamente as deduções orçamentárias.

Para obter mais informações, consulte [Criar uma sessão de pagamento](payments-create-session.md).

### Valide e restrinja endereços PayTo
<a name="payments-security-payto"></a>

O `payTo` endereço especifica a carteira do destinatário. AgentCore os pagamentos não impõem `payTo` restrições no lado do servidor, portanto, seu aplicativo deve validar o endereço antes de chamar a API. `ProcessPayment`
+  **Mantenha uma lista de permissões** de endereços comerciais pré-verificados e rejeite endereços desconhecidos.
+  **Nunca deixe o modelo gerar endereços PayTo.** Eles devem vir de uma fonte confiável, como uma solicitação de pagamento x402 ou um registro verificado.
+  **Faça a validação em relação ao lojista esperado** ao processar respostas x402.
+  **Prefira o AgentCore Gateway** para descoberta de endpoints, pois ele fornece `payTo` endereços verificados por meio do x402 Bazaar.
+  **Aplique as políticas do Cedar** para restringir quais endereços um agente pode pagar.
+  **Não armazene endereços em cache nas sessões.** Sempre use o endereço atual fornecido pelo comerciante, validado de acordo com sua lista de permissões.

### Acesso seguro à rede
<a name="payments-security-network"></a>
+ Use endpoints VPC para manter o tráfego fora da Internet pública.
+ Aplique políticas de endpoint e condições do IAM (`aws:sourceVpc`,`aws:sourceVpce`) para restringir as origens.
+ Ative AWS CloudTrail para todas as chamadas da API de AgentCore pagamentos.

### Design para falha e reversão de pagamentos
<a name="payments-security-failure"></a>
+ Implemente a idempotência para evitar pagamentos duplicados em novas tentativas.
+ Lide com falhas de pagamento com um claro comportamento alternativo. Não tente novamente indefinidamente.
+ Monitore falhas parciais e implemente transações compensatórias.

## Controles de detecção
<a name="payments-security-detective"></a>

Use esses controles para observar a atividade de pagamento e detectar anomalias para que você possa responder a elas.

### Habilite a observabilidade e o registro de auditoria
<a name="payments-security-observability"></a>

AgentCore os pagamentos fornecem observabilidade automática por meio da Amazon CloudWatch:
+  **Registros vendidos** — Todas as chamadas do plano de dados são registradas (quem, o quê, quanto e para quem).
+  **Extensões vendidas — Os** rastreamentos completos do ciclo de vida do pagamento estão disponíveis em. AWS X-Ray
+ Defina alarmes para padrões de gastos anômalos, como pagamentos em endereços não listados, um número incomumente grande de destinatários distintos ou mudanças repentinas de endereço para comerciantes conhecidos.
+ Guarde os registros de acordo com seus requisitos de conformidade.
+ Não confie no código do agente para registrar suas próprias ações.

Para obter mais informações, consulte [Observabilidade com a Amazon CloudWatch](payments-observability.md).

### Revise regularmente as configurações
<a name="payments-security-review"></a>
+ Audite orçamentos e reduza os limites para agentes que gastam menos.
+ Analise as políticas do Cedar e as funções do IAM trimestralmente.
+ Monitore os painéis dos fornecedores de carteiras para detectar atividades inesperadas de delegação ou financiamento.