

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Autenticazione e sicurezza
<a name="connecting-to-devops-agent-remote-servers-authentication-and-security"></a>

Sono disponibili due metodi di autenticazione per gli endpoint MCP e A2A:
+ **Token di accesso (Bearer)**: un singolo token associato a un Agent Space. Configurazione più semplice per uso individuale.
+ **AWS SIGv4**: autenticazione basata su AWS credenziali. Supporta più Agent Spaces e si integra con la governance delle identità esistente. AWS Gestito automaticamente da [ mcp-proxy-for-aws, un proxy locale che firma le richieste utilizzando le tue ](https://github.com/aws/mcp-proxy-for-aws) credenziali. AWS 

## Crea un token di accesso
<a name="create-an-access-token"></a>

### Prerequisiti
<a name="prerequisites"></a>
+ La funzionalità dei token di accesso deve essere abilitata nel tuo Agent Space.
+ È necessario disporre delle autorizzazioni IAM per gestire i token di accesso (`aidevops:CreateAccessToken`,,`aidevops:RevokeAccessToken`). `aidevops:RotateAccessToken` Per l'elenco completo, consulta [DevOps Autorizzazioni IAM dell'agente](aws-devops-agent-security-devops-agent-iam-permissions.md).

### Abilita i token di accesso
<a name="enable-access-tokens"></a>

1. Accedere alla console di AWS gestione e aprire la console dell' AWS DevOps agente.

1. Scegli il tuo Agent Space.

1. Scegli la scheda **Configurazione**.

1. Nella ** sezione Token di ** accesso, scegli ** Abilita. **

1. Conferma l'operazione.

### Crea un token
<a name="create-a-token"></a>

1. Apri l'app web DevOps Agent per il tuo Agent Space, quindi dal menu di navigazione scegli ** Impostazioni**, quindi scegli ** Access Tokens. **

1. Scegli **Generate token (Genera token)**.

1. Inserisci un nome per il token.

1. Scegli un ambito:
   + `read`— Visualizza indagini, consigli, chat e risorse di Agent Space.
   + `operate`— Accesso completo. Include tutto ciò che è incluso`read`, oltre all'invio di messaggi, alla creazione di chat e alla gestione delle attività e dei consigli arretrati.

1. Scegli un tipo di cliente:
   + `human`— Per l'utilizzo di IDE e CLI (Kiro, Claude Code, Cursor e altri strumenti interattivi).
   + `agent`— Per integrazioni A2A autonome e agenti programmatici.

1. Imposta una scadenza (da 1 a 60 giorni).

1. Copia il valore del token e conservalo in un luogo sicuro e protetto, come [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html). Non puoi recuperarlo nuovamente.

Dopo aver creato un token, l'app Web mostra un esempio di configurazione che puoi copiare direttamente nel tuo client.

## Usa l'autenticazione SIGv4
<a name="use-sigv4-authentication"></a>

L'autenticazione SIGv4 utilizza AWS le tue credenziali anziché un token di accesso. I plugin Kiro power e Claude Code includono il supporto Sigv4 integrato`mcp-proxy-for-aws`, che firma le richieste utilizzando le credenziali locali. AWS 

### Quando si usa Sigv4
<a name="when-sigv4-is-used"></a>
+ Come ** riserva ** quando il token di accesso non è configurato o non funziona (scaduto, non valido).
+ Come ** autenticazione ** principale quando si dispone di più Agent Spaces e si deve eseguire l'instradamento per ogni chiamata allo strumento. `agent_space_id`
+ A scelta ** ** dell'utente, in Claude Code, esegui l'abilità di configurazione per passare dal token Bearer all'autenticazione SigV4.

### Prerequisiti
<a name="prerequisites"></a>
+ AWS credenziali disponibili nell'ambiente (tramite SSO, variabili di ambiente o file di credenziali).
+ Le credenziali devono disporre dell'autorizzazione per richiamare le azioni dell'agente. AWS DevOps Per le autorizzazioni richieste, consulta [DevOps Autorizzazioni IAM dell'agente](aws-devops-agent-security-devops-agent-iam-permissions.md).
+ `uvx`installato (il proxy viene eseguito). `uvx mcp-proxy-for-aws@latest`

### Configurazione di esempio
<a name="example-configuration"></a>

Per configurare un client MCP in modo che utilizzi SIGv4 anziché un token di accesso, esegui il server tramite. `mcp-proxy-for-aws` Sostituisci `{region}` con la regione del tuo Agent Space (ad esempio,): `us-east-1`

```
{
  "mcpServers": {
    "aws-devops-agent": {
      "command": "uvx",
      "timeout": 120000,
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://connect.aidevops.{region}.api.aws/mcp",
        "--service", "aidevops",
        "--region", "{region}"
      ]
    }
  }
}
```

Il proxy firma ogni richiesta con le tue AWS credenziali locali, quindi non è richiesto alcun token di accesso.

### Multi-Agent-Space routing
<a name="multi-agent-space-routing"></a>

In modalità Sigv4, `agent_space_id` trasmetti ogni chiamata allo strumento per specificare quale Agent Space utilizzare. Ciò rende possibile il routing su più Agent Spaces da un singolo client.

## Considerazioni relative alla sicurezza
<a name="security-considerations"></a>

### Scoping dei token
<a name="token-scoping"></a>
+ Usa il privilegio minimo: scegli `read` le integrazioni di sola lettura, `operate` solo quando il cliente deve inviare messaggi o gestire attività.
+ Ruota periodicamente i token. I token scadono dopo la durata configurata (massimo 60 giorni).
+ Archivia i token in variabili di ambiente o gestori di segreti. Non codificate i token nel codice sorgente.
+ Non eseguite automaticamente le risposte degli agenti senza una revisione umana.

### Elenco degli indirizzi IP consentiti
<a name="ip-allowlist"></a>

Quando si crea un token di accesso, è possibile specificare facoltativamente un elenco di indirizzi IP consentiti. Se configurato, il token può essere utilizzato solo dagli indirizzi IP o dagli intervalli CIDR specificati. Le richieste provenienti da altri IP vengono rifiutate con un errore di accesso negato.

### Rotazione e revoca dei token
<a name="token-rotation-and-revocation"></a>
+ **Rotazione**: ruota un token per generare un nuovo valore del token preservando il nome, gli ambiti e l'elenco degli indirizzi IP consentiti del token. Il vecchio token viene immediatamente invalidato. Aggiorna la configurazione del tuo client con il nuovo valore del token. La rotazione avvia anche una nuova cronologia chat: vedi la sezione seguente.
+ **Revoca**: se un token è compromesso, revocalo immediatamente. I token revocati non possono essere utilizzati e non possono essere ripristinati.

#### Cronologia chat e rotazione dei token
<a name="chat-history-and-token-rotation"></a>

Ogni token ha la propria cronologia chat. Quando si ruota un token, AWS DevOps l'agente considera il nuovo valore del token come una nuova identità. Le chat create con il token precedente non vengono più visualizzate sul server remoto.

#### Rispondere a un token compromesso
<a name="responding-to-a-compromised-token"></a>

Se sospetti che un token sia stato compromesso, segui questi passaggi:

1. **Blocca tutti gli accessi tramite token**: nella console AWS DevOps dell'agente, apri Agent Space, scegli la ** scheda ** Configurazione e scegli ** Disabilita ** nella sezione Token di accesso. Questo blocca immediatamente tutti gli accessi basati su token all'Agent Space.

1. **Revoca i token compromessi**: nell'app web, vai su ** Impostazioni ** > Token di ** accesso, scegli il token ** compromesso e scegli Revoca. ** ** Puoi revocare i token anche se i token di accesso sono disabilitati.

1. **Re-enable token di accesso**: dopo aver revocato i token compromessi, riabilita i token di accesso dalla scheda Configurazione se hai ancora bisogno dell'accesso basato su token. ** **

#### Revoca dei token a livello di codice
<a name="revoking-tokens-programmatically"></a>

Puoi anche revocare i token a livello di codice utilizzando. `awscurl` I seguenti comandi utilizzano l'autenticazione SIGv4. Sostituisci la regione (`us-east-1`) con la regione in cui viene creato il tuo spazio agente.

**Nota: la ** fase 1 utilizza la AWS CLI. I passaggi 2 e 3 utilizzano [ awscurl](https://github.com/okigan/awscurl), uno strumento a riga di comando che firma le richieste HTTP con SIGv4, perché le operazioni con i token di accesso non dispongono ancora di comandi CLI dedicati. AWS 

**Fase 1: Elenca i tuoi Agent Spaces **

```
aws aidevops list-agent-spaces --region us-east-1
```

**Fase 2: Elenca i token di accesso per un Agent Space **

```
awscurl --service aidevops --region us-east-1 \
  -H "Accept: application/json" \
  "https://cp.aidevops.us-east-1.api.aws/v1/agentspaces/{agentSpaceId}/access-tokens"
```

**Passaggio 3: revoca di un token **

```
awscurl --service aidevops --region us-east-1 -X POST \
  -H "Accept: application/json" \
  "https://cp.aidevops.us-east-1.api.aws/v1/agentspaces/{agentSpaceId}/access-tokens/{accessTokenId}/revoke"
```

Sostituisci `{agentSpaceId}` e `{accessTokenId}` con i valori delle risposte precedenti.

### Tracciabilità
<a name="traceability"></a>

AWS DevOps L'agente registra l'attività del server remoto in. AWS CloudTrail Utilizza questi record per tracciare chi ha richiamato un server remoto e cosa ha fatto di conseguenza l'agente. AWS DevOps L'agente invia CloudTrail gli eventi all' AWS account che ospita l'Agent Space.

#### Eventi di autenticazione tramite token di accesso
<a name="access-token-authentication-events"></a>

Ogni volta che l' AWS DevOps agente autentica un token di accesso per un endpoint MCP o A2A, emette un evento a. `AuthenticateAccessToken` CloudTrail AWS DevOps L'agente registra sia le autenticazioni riuscite che quelle non riuscite. Utilizza questi record per verificare l'uso legittimo e rilevare i tentativi rifiutati. Gli esempi includono token scaduti o revocati e richieste bloccate da un elenco di indirizzi IP consentiti.

L'evento ha le seguenti caratteristiche:
+ **Fonte dell'evento**: `aidevops.amazonaws.com`
+ **Event name (Nome evento)** – `AuthenticateAccessToken`
+ **Evento di gestione**: l'evento è un evento di gestione e non è di sola lettura, quindi rimane visibile quando si filtrano gli eventi di sola lettura.

L'evento include i seguenti campi chiave:


| Campo | Description | 
| --- | --- | 
| userIdentity.principalId | L'ID del token di accesso che è stato presentato. | 
| userName | Il nome del token di accesso. | 
| requestParameters.agentSpaceId | L'Agent Space in cui il token si autentica. | 
| requestParameters.accessTokenId | L'ID del token di accesso. | 
| requestParameters.tokenName | Il nome del token di accesso. | 
| requestParameters.protocol | Il protocollo utilizzato— MCP oA2A. | 
| responseElements.AuthenticateAccessToken | Il risultato— Success oFailure. | 
| resources | La risorsa Agent Space (AWS::AIDevOps::AgentSpace) con cui il token si autentica, identificata dal relativo ARN. | 
| additionalEventData.roleSessionName | Per una corretta autenticazione, il nome della sessione del ruolo downstream, nel formato. token\_{spaceId}\_{timestamp}\_{tokenName} Utilizzalo per correlare l'autenticazione con le azioni eseguite dall'agente. | 
| sourceIPAddress | L'indirizzo IP del client. | 
| userAgent | La User-Agent stringa del client, se disponibile. | 
| errorCode, errorMessage | Per le autenticazioni non riuscite, il motivo per cui l'autenticazione è stata rifiutata. | 

**Nota**  
** AWS DevOps L'agente non registra mai il valore grezzo del token al portatore. Nell'evento viene visualizzato solo l'ID opaco del token di accesso.

#### Eventi di azione a valle
<a name="downstream-action-events"></a>

Quando si utilizza un token di accesso, l' AWS DevOps agente assume un ruolo per conto dell'utente per eseguire le azioni. AWS DevOps L'agente registra questa `AssumeRole` chiamata CloudTrail con tag di sessione che identificano il token e il chiamante:
+ `AgentSpaceId`— Identificatore dell'Agent Space.
+ `UserId`— Identità del creatore del token.
+ `AccessTokenId`— Identificatore univoco del token.
+ `TokenName`— Nome del token di accesso utilizzato.
+ `ClientType`— Il protocollo utilizzato (MCP, A2A).
+ `SourceIp`— Indirizzo IP del client.
+ `UserAgent`— User-Agent Stringa del client (se disponibile).

A ogni azione eseguita dall'agente per tuo conto corrisponde una chiamata AWS API downstream che viene registrata CloudTrail . Il nome della sessione di ruolo utilizza il formato`token_{spaceId}_{timestamp}_{tokenName}`. Questo nome di sessione corrisponde `roleSessionName` a in the `AuthenticateAccessToken` event. Utilizzalo per tracciare da un'autenticazione alle azioni specifiche che l'hanno seguita.

#### Invocazioni SIGv4
<a name="sigv4-invocations"></a>

Le chiamate che utilizzano l'autenticazione AWS SigV4 anziché un token di accesso non producono eventi. `AuthenticateAccessToken` AWS DevOps L'agente attribuisce le richieste Sigv4 all'identità IAM ( AWS Identity and Access Management) dell'utente. È possibile tracciare le azioni eseguite dall'agente tramite le chiamate AWS API downstream che attivano.

### Limitazione della politica degli endpoint VPC
<a name="vpc-endpoint-policy-limitation"></a>

Gli endpoint del server remoto non supportano le policy degli endpoint VPC. Le chiamate che utilizzano token di accesso o autenticazione SIGv4 non possono essere limitate dalle politiche degli endpoint VPC.

### Disattivazione dei token di accesso
<a name="disabling-access-tokens"></a>

La funzionalità dei token di accesso è disattivata per impostazione predefinita. Per disattivarla dopo l'attivazione:

1. Apri la ** scheda ** Configurazione del tuo Agent Space.

1. Nella ** sezione Token di ** accesso, scegli ** Disabilita**.

La disabilitazione blocca immediatamente tutti gli accessi basati su token. I token esistenti non vengono eliminati ma non possono essere utilizzati finché la funzionalità non viene riattivata.

Per impedire agli utenti della tua organizzazione di abilitare i token di accesso, crea una Service Control Policy (SCP) che neghi le azioni dell'API del token di accesso e l'`UpdateAgentSpace`azione (che controlla l'attivazione dei token di accesso):

**Nota: la ** negazione impedisce `aidevops:UpdateAgentSpace` anche altri aggiornamenti di Agent Space (nome, descrizione, impostazioni locali). Se è troppo generico, omettilo dall'SCP: le negazioni rimanenti impediscono comunque la creazione e l'uso del token, anche se qualcuno abilita la funzionalità.

```
{
  "Version": "2012-10-17",		 	 	 		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessTokenOperations",
      "Effect": "Deny",
      "Action": [
        "aidevops:UpdateAgentSpace",
        "aidevops:CreateAccessToken",
        "aidevops:GetAccessToken",
        "aidevops:ListAccessTokens",
        "aidevops:RotateAccessToken",
        "aidevops:RevokeAccessToken"
      ],
      "Resource": "*"
    }
  ]
}
```

## Risoluzione dei problemi
<a name="troubleshooting"></a>


| Caratteristiche | Causa | Risoluzione | 
| --- | --- | --- | 
| HTTP 401 non autorizzato | Il token non è valido o è scaduto. | Crea un nuovo token o ruota il token esistente nell'app web. | 
| HTTP 400 "A2A-Version header obbligatorio» | Intestazione della versione del protocollo mancante. È supportato solo A2A v1.0. | Aggiungi l'A2A-Version: 1.0intestazione alle richieste A2A. | 
| HTTP 400 «Spazio dell'agente non risolto dalle credenziali» | Una richiesta A2A \+ SIGv4 non include l'intestazione. X-Agent-Space-Id | Aggiungi alla richiesta. X-Agent-Space-Id: <agentSpaceId> | 
| Timeout della richiesta | Le risposte iniziali richiedono 5-30 secondi. Le indagini richiedono 5-8 minuti. | Imposta il timeout del cliente su almeno 120 secondi. | 
| Connessione rifiutata | URL o area geografica dell'endpoint errati. | Verifica il formato dell'URL: https://connect.aidevops.{region}.api.aws | 