

# Sicurezza nei pagamenti con Amazon Bedrock AgentCore
<a name="payments-security-best-practices"></a>

Le seguenti best practice possono aiutarti a prevenire incidenti di sicurezza quando utilizzi i pagamenti Amazon Bedrock AgentCore . I controlli preventivi bloccano le azioni non sicure prima che si verifichino. Detective controlla le attività inaspettate in superficie in modo che tu possa reagire ad esse.

## Controlli preventivi
<a name="payments-security-preventative"></a>

Usa questi controlli per limitare ciò che il tuo agente può fare e per tenere il materiale sensibile fuori dalla sua portata.

### Applica il privilegio minimo con il modello IAM a quattro ruoli
<a name="payments-security-least-privilege"></a>

AgentCore payments separa il piano di controllo dal piano dati utilizzando ruoli IAM distinti. Imposta le autorizzazioni IAM in base alla persona che corrisponde a ciascun ruolo. Con questo modello, nessun ruolo può raccogliere un budget e allo stesso tempo spendere per finanziarlo.


| \# | Ruolo | Scopo | 
| --- | --- | --- | 
| 1 |  `ControlPlaneRole`  | Amministra il servizio. | 
| 2 |  `ManagementRole`  | Configura le sessioni. Questo ruolo è negato esplicitamente. `ProcessPayment` | 
| 3 |  `ProcessPaymentRole`  | Esegue i pagamenti. | 
| 4 |  `ResourceRetrievalRole`  | Service-assumed. Recupera lo stato della sessione e delle credenziali. | 

Per ulteriori informazioni, consulta [Ruoli IAM per AgentCore i pagamenti](payments-iam-roles.md).

### Archivia le credenziali in Identity AgentCore
<a name="payments-security-credentials"></a>

Non incorporare mai le credenziali del provider di portafogli nel codice dell'agente o nelle variabili di ambiente.
+ Memorizza le credenziali di Coinbase CDP o Stripe (Privy) come in Identity. `PaymentCredentialProvider` AgentCore 
+ Il servizio le recupera in fase di esecuzione utilizzando. `ResourceRetrievalRole`
+ Ruota le credenziali secondo la pianificazione consigliata dal fornitore del portafoglio. Se una credenziale è compromessa, revocala immediatamente.

Per ulteriori informazioni, consulta la pagina relativa alle [identità di AgentCore ](identity.md).

### Imposta l'intestazione correttamente UserId
<a name="payments-security-userid-header"></a>

**In un gestore dei pagamenti con autorizzazione IAM-configured in entrata, il backend afferma l'`X-Amzn-Bedrock-AgentCore-Payments-User-Id`intestazione e AgentCore Payments non la verifica.** L'utente è responsabile dell'impostazione corretta di questo valore.

AgentCore payments verifica il chiamante IAM e il JWT (quando si utilizza OAuth), ma la correttezza dell'`UserId`intestazione sulle chiamate API è responsabilità dell'utente. Non lasciate che utenti finali o agenti influenzino direttamente questa intestazione.

### Implementazioni multi-tenant sicure
<a name="payments-security-multi-tenant"></a>

Per le implementazioni multi-tenant che servono più utenti finali, utilizza il tipo di autorizzazione `CUSTOM_JWT` (OAuth) nel gestore dei pagamenti. Ciò fornisce al servizio un'identità verificata dell'utente finale. Con il IAM-configured gestore dei AgentCore pagamenti, Payments non verifica l'identità dell'utente finale.

### Richiede il consenso e la delega espliciti dell'utente finale
<a name="payments-security-consent"></a>

Il finanziamento e la delega sono due decisioni distinte che spettano all'utente finale, ed entrambe vengono prese separatamente dall'agente:
+  **Finanziamento**: l'utente finale deposita fondi tramite il portale del fornitore del portafoglio. L'agente non ha accesso tramite API ai finanziamenti e non deve mai richiederli o avviarli automaticamente.
+  **Delega**: l'utente finale concede l'autorizzazione tramite Coinbase Spend Permissions o Privy Delegated Actions. Non date per scontato che la delega sia permanente, perché gli utenti possono revocarla in qualsiasi momento. Gestisci la delega revocata con garbo.

### Mantieni l'agente isolato dagli strumenti di pagamento
<a name="payments-security-isolation"></a>

L'agente non deve mai accedere ai numeri delle carte, ai valori CVV, ai dati bancari o alle chiavi private del portafoglio. L'opinione dell'agente si limita a «un'autorizzazione a spendere da un portafoglio di proprietà dell'utente».
+ Le chiavi del portafoglio sono custodite in autonomia dal provider, non dallo sviluppatore o dallo sviluppatore. AWS 
+ Non comunicate mai i dettagli dello strumento di pagamento tramite istruzioni, input di strumenti o finestre contestuali.

### Ambita l'accesso allo strumento con Policy in AgentCore
<a name="payments-security-policy"></a>

Per l'autorizzazione a livello di strumento, esponi gli endpoint a pagamento tramite Amazon Bedrock Gateway. AgentCore Ogni chiamata tramite il Gateway viene intercettata da Policy in AgentCore, un Cedar-based motore che valuta la richiesta, inclusa l'identità dell'agente, il nome dello strumento e i parametri, e decide se consentirla.

Le sessioni relative alle politiche e ai pagamenti riguardano decisioni diverse:
+  Le **policy** *controllano chi* chiama *quale strumento* e con *quali parametri*.
+  **Le sessioni di pagamento** *controllano quanto* può essere speso e *per quanto tempo*.

Insieme, offrono leve ortogonali per l'accesso agli utensili e l'importo della spesa.
+ Scrivi politiche Cedar basate sull'identità dell'agente, sul gruppo di utenti e sui parametri di richiesta.
+ Negate l'accesso a strumenti ad alto costo agli agenti che non li richiedono.
+ Rivedi e verifica regolarmente le politiche man mano che il catalogo degli strumenti cambia.

Per ulteriori informazioni, vedete [Policy in AgentCore](policy.md).

### Utilizza sessioni di pagamento con limiti di budget e TTL
<a name="payments-security-sessions"></a>

Ogni pagamento viene eseguito all'interno di una sessione di pagamento con un importo massimo di spesa e un tempo di scadenza. Il livello dell'infrastruttura impone questi limiti, quindi un'iniezione tempestiva e il non determinismo del modello non possono annullarli.
+ Imposta `maxSpendAmount` il valore minimo necessario per l'attività e imposta un TTL breve.
+ Inizia con budget conservativi e aumentali solo quando l'agente si dimostra affidabile.
+ Le firme non riuscite annullano automaticamente le detrazioni sul budget.

Per ulteriori informazioni, consulta [Creare una](payments-create-session.md) sessione di pagamento.

### Convalida e limita gli indirizzi PayTo
<a name="payments-security-payto"></a>

L'`payTo`indirizzo specifica il portafoglio del destinatario. AgentCore payments non impone `payTo` restrizioni lato server, quindi l'applicazione deve convalidare l'indirizzo prima di chiamare l'API. `ProcessPayment`
+  **Mantieni un elenco consentito di indirizzi** commerciali pre-verificati e rifiuta gli indirizzi sconosciuti.
+  **Non lasciare mai che il modello generi indirizzi PayTo.** Devono provenire da una fonte attendibile, ad esempio una richiesta di pagamento x402 o un registro verificato.
+  **Effettua la convalida rispetto al venditore previsto** durante l'elaborazione delle risposte x402.
+  **Preferisci AgentCore Gateway** per l'individuazione degli endpoint, perché fornisce `payTo` indirizzi verificati tramite x402 Bazaar.
+  **Applica le policy Cedar per stabilire** gli indirizzi che un agente può pagare.
+  **Non memorizzate nella cache gli indirizzi tra le sessioni.** Utilizza sempre l'indirizzo corrente fornito dal venditore, convalidato in base alla tua lista consentita.

### Accesso sicuro alla rete
<a name="payments-security-network"></a>
+ Usa gli endpoint VPC per mantenere il traffico lontano dalla rete Internet pubblica.
+ Applica le policy degli endpoint e le condizioni IAM (`aws:sourceVpc`,`aws:sourceVpce`) per limitare le origini.
+ Abilita AWS CloudTrail per tutte le chiamate API di AgentCore pagamento.

### Progettazione per il mancato pagamento e il rollback
<a name="payments-security-failure"></a>
+ Implementa l'idempotenza per evitare pagamenti duplicati in caso di nuovi tentativi.
+ Gestisci i mancati pagamenti con un comportamento di riserva chiaro. Non riprovare all'infinito.
+ Monitora eventuali errori parziali e implementa transazioni di compensazione.

## Controlli di rilevamento
<a name="payments-security-detective"></a>

Utilizza questi controlli per osservare l'attività di pagamento e rilevare eventuali anomalie in modo da potervi rispondere.

### Abilita l'osservabilità e la registrazione degli audit
<a name="payments-security-observability"></a>

AgentCore i pagamenti forniscono l'osservabilità automatica tramite Amazon CloudWatch:
+  **Registri forniti**: viene registrata ogni chiamata sul piano dati (chi, cosa, quanto e a chi).
+  **Periodi di vendita: le tracce complete del ciclo di vita dei** pagamenti sono disponibili in. AWS X-Ray
+ Imposta allarmi in caso di modelli di spesa anomali, ad esempio pagamenti a indirizzi non elencati, un numero insolitamente elevato di destinatari distinti o cambiamenti improvvisi di indirizzo per commercianti noti.
+ Conserva i log in base ai requisiti di conformità.
+ Non fare affidamento sul codice dell'agente per registrare le proprie azioni.

Per ulteriori informazioni, consulta [Observability with Amazon CloudWatch](payments-observability.md).

### Controlla regolarmente le configurazioni
<a name="payments-security-review"></a>
+ Controlla i budget e riduci i limiti per gli agenti che spendono meno.
+ Rivedi trimestralmente le politiche Cedar e i ruoli IAM.
+ Monitora le dashboard dei provider di portafogli per rilevare eventuali attività di delega o finanziamento impreviste.