

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à.

# Sicurezza in Amazon VPC Lattice
<a name="security"></a>

La sicurezza del cloud AWS è la massima priorità. In qualità di AWS cliente, puoi beneficiare di data center e architetture di rete progettati per soddisfare i requisiti delle organizzazioni più sensibili alla sicurezza.

L’utente è responsabile del controllo dei contenuti ospitati su questa infrastruttura. Il [modello di responsabilità condivisa](https://aws.amazon.com/compliance/shared-responsibility-model/) descrive questo aspetto come sicurezza *del* cloud e sicurezza *nel* cloud:
+ **Sicurezza del cloud**: AWS è responsabile della protezione dell'infrastruttura che gestisce i servizi in. AWS Cloud AWS AWS fornisce inoltre servizi che è possibile utilizzare in modo sicuro. I revisori esterni testano e verificano regolarmente l'efficacia della nostra sicurezza nell'ambito dei [AWS Programmi di AWS conformità dei Programmi di conformità](https://aws.amazon.com/compliance/programs/) dei di . Per ulteriori informazioni sui programmi di conformità che si applicano ad Amazon VPC Lattice, consulta [AWS Services in Scope by Compliance Program by Compliance Program](https://aws.amazon.com/compliance/services-in-scope/).
+ **Sicurezza nel cloud**: sei responsabile del mantenimento del controllo sui contenuti ospitati su questa infrastruttura. L’utente è anche responsabile di altri fattori, tra cui la riservatezza dei dati, i requisiti della propria azienda e le leggi e normative vigenti. 

Questa documentazione ti aiuta a capire come applicare il modello di responsabilità condivisa quando usi VPC Lattice. I seguenti argomenti mostrano come configurare VPC Lattice per soddisfare i tuoi obiettivi di sicurezza e conformità. Imparerai anche come utilizzare altri AWS servizi, che ti aiutano a monitorare e proteggere il servizio VPC Lattice, le reti di servizio e le configurazioni delle risorse.

**Topics**
+ [

# Gestisci l'accesso ai servizi VPC Lattice
](access-management-overview.md)
+ [

# Protezione dei dati in Amazon VPC Lattice
](data-protection.md)
+ [

# Gestione delle identità e degli accessi per Amazon VPC Lattice
](security-iam.md)
+ [

# Convalida della conformità per Amazon VPC Lattice
](compliance-validation.md)
+ [

# Accedi ad Amazon VPC Lattice utilizzando gli endpoint dell'interfaccia ()AWS PrivateLink
](vpc-interface-endpoints.md)
+ [

# Resilienza in Amazon VPC Lattice
](disaster-recovery-resiliency.md)
+ [

# Sicurezza dell'infrastruttura in Amazon VPC Lattice
](infrastructure-security.md)

# Gestisci l'accesso ai servizi VPC Lattice
<a name="access-management-overview"></a>

VPC Lattice è sicuro per impostazione predefinita perché è necessario indicare esplicitamente a quali servizi e configurazioni di risorse fornire l'accesso e con quali. VPCs È possibile accedere ai servizi tramite un'associazione VPC o un endpoint VPC di tipo rete di servizio. Per gli scenari con più account, è possibile utilizzare [AWS Resource Access Manager](sharing.md)per condividere servizi, configurazioni di risorse e reti di servizi oltre i limiti degli account.

 VPC Lattice fornisce un framework che consente di implementare una defense-in-depth strategia su più livelli della rete.
+ **Primo livello**: associazione del servizio, della risorsa, del VPC e dell'endpoint VPC con una rete di servizi. Un VPC può essere connesso a una rete di servizi tramite un'associazione o tramite un endpoint VPC. Se un VPC non è connesso a una rete di servizi, i client nel VPC non possono accedere alle configurazioni di servizi e risorse associate alla rete di servizi.
+ **Secondo livello**: protezioni di sicurezza opzionali a livello di rete per la rete di servizi, come gruppi di sicurezza e rete. ACLs Usandoli, puoi consentire l'accesso a gruppi specifici di client in un VPC anziché a tutti i client nel VPC.
+ **Terzo livello**: policy di autenticazione VPC Lattice opzionale. È possibile applicare una politica di autenticazione alle reti di servizi e ai singoli servizi. In genere, la politica di autenticazione sulla rete di servizi viene gestita dall'amministratore di rete o del cloud, che implementa un'autorizzazione granulare. Ad esempio, consente l'accesso solo alle richieste autenticate provenienti da un'organizzazione specifica. AWS Organizations Per una politica di autenticazione a livello di servizio, in genere il proprietario del servizio imposta controlli granulari, che potrebbero essere più restrittivi rispetto all'autorizzazione granulare applicata a livello di rete di servizio.
**Nota**  
La politica di autenticazione sulla rete di servizi non si applica alle configurazioni delle risorse nella rete di servizi.

**Metodi di controllo degli accessi**
+ [Politiche di autenticazione](auth-policies.md)
+ [Gruppi di sicurezza](security-groups.md)
+ [Rete ACLs](network-acls.md)

# Controlla l'accesso ai servizi VPC Lattice utilizzando le policy di autenticazione
<a name="auth-policies"></a>

Le policy di autenticazione VPC Lattice sono documenti di policy IAM da allegare a reti o servizi di servizio per controllare se uno specifico principale ha accesso a un gruppo di servizi o a un servizio specifico. È possibile allegare una politica di autenticazione a ogni rete o servizio di servizio a cui si desidera controllare l’accesso.

**Nota**  
La politica di autenticazione sulla rete di servizi non si applica alle configurazioni delle risorse nella rete di servizi.

Le politiche di autenticazione sono diverse dalle politiche basate sull'identità IAM. Le policy basate sull'identità IAM sono associate agli utenti, ai gruppi o ai ruoli IAM e definiscono quali azioni tali identità possono eseguire su quali risorse. Le politiche di autenticazione sono collegate ai servizi e alle reti di servizi. Affinché l'autorizzazione abbia esito positivo, sia le politiche di autenticazione che le politiche basate sull'identità devono avere istruzioni di autorizzazione esplicite. Per ulteriori informazioni, consulta [Come funziona l'autorizzazione](#auth-policies-evaluation-logic).

È possibile utilizzare la console AWS CLI and per visualizzare, aggiungere, aggiornare o rimuovere i criteri di autenticazione su servizi e reti di servizi. Quando aggiungi, aggiorni o rimuovi un criterio di autenticazione, potrebbero essere necessari alcuni minuti prima che sia pronto. Quando usi il AWS CLI, assicurati di trovarti nella regione corretta. Puoi modificare la regione predefinita per il tuo profilo o utilizzare il `--region` parametro con il comando.

**Topics**
+ [

## Elementi comuni in una politica di autenticazione
](#auth-policies-common-elements)
+ [

## Formato delle risorse per le politiche di autenticazione
](#auth-policies-resource-format)
+ [

## Chiavi di condizione che possono essere utilizzate nelle politiche di autenticazione
](#auth-policies-condition-keys)
+ [

## Tag delle risorse
](#resource-tags)
+ [

## Tag principali
](#principal-tags)
+ [

## Responsabili anonimi (non autenticati)
](#anonymous-unauthenticated-principals)
+ [

## Esempi di politiche di autenticazione
](#example-auth-policies)
+ [

## Come funziona l'autorizzazione
](#auth-policies-evaluation-logic)

Per iniziare a utilizzare i criteri di autenticazione, segui la procedura per creare un criterio di autenticazione applicabile a una rete di servizi. Per autorizzazioni più restrittive che non desideri applicare ad altri servizi, puoi facoltativamente impostare politiche di autenticazione su singoli servizi.

## Gestisci l'accesso a una rete di servizi con politiche di autenticazione
<a name="manage-access-to-service-networks"></a>

Le seguenti AWS CLI attività mostrano come gestire l'accesso a una rete di servizi utilizzando le politiche di autenticazione. Per istruzioni sull'utilizzo della console, consulta[Reti di servizio in VPC Lattice](service-networks.md).

**Topics**
+ [

### Aggiungere un criterio di autenticazione a una rete di servizi
](#add-service-network-auth-policy)
+ [

### Modifica il tipo di autenticazione di una rete di servizi
](#change-service-network-auth-type)
+ [

### Rimuovi una politica di autenticazione da una rete di servizi
](#remove-service-network-auth-policy)

### Aggiungere un criterio di autenticazione a una rete di servizi
<a name="add-service-network-auth-policy"></a>

Segui la procedura descritta in questa sezione per utilizzare: AWS CLI 
+ Abilita il controllo degli accessi su una rete di servizi utilizzando IAM.
+ Aggiungi una politica di autenticazione alla rete di servizi. Se non aggiungi un criterio di autenticazione, tutto il traffico riceverà un errore di accesso negato.

**Per abilitare il controllo degli accessi e aggiungere una politica di autenticazione a una nuova rete di servizi**

1. Per abilitare il controllo degli accessi su una rete di servizi in modo che possa utilizzare una politica di autenticazione, usa il **create-service-network** comando con l'`--auth-type`opzione e il valore di. `AWS_IAM`

   ```
   aws vpc-lattice create-service-network --name Name --auth-type AWS_IAM [--tags TagSpecification]
   ```

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
      "arn": "arn",
      "authType": "AWS_IAM",
      "id": "sn-0123456789abcdef0",
      "name": "Name"
   }
   ```

1. Usa il **put-auth-policy** comando, specificando l'ID della rete di servizi in cui desideri aggiungere la politica di autenticazione e la politica di autenticazione che desideri aggiungere.

   Ad esempio, utilizzate il comando seguente per creare una politica di autenticazione per la rete di servizi con l'ID. *`sn-0123456789abcdef0`*

   ```
   aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json
   ```

   Utilizzate JSON per creare una definizione di policy. Per ulteriori informazioni, consulta [Elementi comuni in una politica di autenticazione](#auth-policies-common-elements).

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
      "policy": "policy",
      "state": "Active"
   }
   ```

**Per abilitare il controllo degli accessi e aggiungere una politica di autenticazione a una rete di servizi esistente**

1. Per abilitare il controllo degli accessi su una rete di servizi in modo che possa utilizzare una politica di autenticazione, usa il **update-service-network** comando con l'`--auth-type`opzione e il valore di. `AWS_IAM`

   ```
   aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type AWS_IAM
   ```

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
      "arn": "arn",
      "authType": "AWS_IAM",
      "id": "sn-0123456789abcdef0",
      "name": "Name"
   }
   ```

1. Usa il **put-auth-policy** comando, specificando l'ID della rete di servizi in cui desideri aggiungere la politica di autenticazione e la politica di autenticazione che desideri aggiungere. 

   ```
   aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json
   ```

   Usa JSON per creare una definizione di policy. Per ulteriori informazioni, consulta [Elementi comuni in una politica di autenticazione](#auth-policies-common-elements).

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
      "policy": "policy",
      "state": "Active"
   }
   ```

### Modifica il tipo di autenticazione di una rete di servizi
<a name="change-service-network-auth-type"></a>

**Per disabilitare la politica di autenticazione per una rete di servizi**  
Utilizzare il **update-service-network** comando con l'`--auth-type`opzione e il valore di`NONE`.

```
aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type NONE
```

Se è necessario abilitare nuovamente la politica di autenticazione in un secondo momento, esegui questo comando con `AWS_IAM` specified for the `--auth-type` option.

### Rimuovi una politica di autenticazione da una rete di servizi
<a name="remove-service-network-auth-policy"></a>

**Per rimuovere una politica di autenticazione da una rete di servizi**  
Utilizza il comando **delete-auth-policy**.

```
aws vpc-lattice delete-auth-policy --resource-identifier sn-0123456789abcdef0
```

La richiesta ha esito negativo se si rimuove una politica di autenticazione prima di modificare il tipo di autenticazione di una rete di servizi in. `NONE`

## Gestisci l'accesso a un servizio con politiche di autenticazione
<a name="manage-access-to-services"></a>

Le seguenti AWS CLI attività mostrano come gestire l'accesso a un servizio utilizzando le politiche di autenticazione. Per istruzioni sull'utilizzo della console, consulta[Servizi in VPC Lattice](services.md). 

**Topics**
+ [

### Aggiungere una politica di autenticazione a un servizio
](#add-service-auth-policy)
+ [

### Modifica il tipo di autenticazione di un servizio
](#change-service-auth-type)
+ [

### Rimuovi una politica di autenticazione da un servizio
](#remove-service-auth-policy)

### Aggiungere una politica di autenticazione a un servizio
<a name="add-service-auth-policy"></a>

Segui questi passaggi per utilizzare il file AWS CLI per:
+ Abilita il controllo degli accessi su un servizio utilizzando IAM.
+ Aggiungi una politica di autenticazione al servizio. Se non aggiungi una politica di autenticazione, tutto il traffico riceverà un errore di accesso negato.

**Per abilitare il controllo degli accessi e aggiungere una politica di autenticazione a un nuovo servizio**

1. Per abilitare il controllo degli accessi su un servizio in modo che possa utilizzare una politica di autenticazione, usa il **create-service** comando con l'`--auth-type`opzione e il valore di. `AWS_IAM`

   ```
   aws vpc-lattice create-service --name Name --auth-type AWS_IAM [--tags TagSpecification]
   ```

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
      "arn": "arn",
      "authType": "AWS_IAM",
      "dnsEntry": { 
         ...
      },
      "id": "svc-0123456789abcdef0",
      "name": "Name",
      "status": "CREATE_IN_PROGRESS"
   }
   ```

1. Usa il **put-auth-policy** comando, specificando l'ID del servizio a cui desideri aggiungere la politica di autenticazione e la politica di autenticazione che desideri aggiungere.

   Ad esempio, utilizzate il comando seguente per creare una politica di autenticazione per il servizio con l'ID. *svc-0123456789abcdef0*

   ```
   aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json
   ```

   Utilizzate JSON per creare una definizione di policy. Per ulteriori informazioni, consulta [Elementi comuni in una politica di autenticazione](#auth-policies-common-elements).

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
      "policy": "policy",
      "state": "Active"
   }
   ```

**Per abilitare il controllo degli accessi e aggiungere una politica di autenticazione a un servizio esistente**

1. Per abilitare il controllo degli accessi su un servizio in modo che possa utilizzare una politica di autenticazione, usa il **update-service** comando con l'`--auth-type`opzione e il valore di. `AWS_IAM`

   ```
   aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type AWS_IAM
   ```

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
      "arn": "arn",
      "authType": "AWS_IAM",
      "id": "svc-0123456789abcdef0",
      "name": "Name"
   }
   ```

1. Usa il **put-auth-policy** comando, specificando l'ID del servizio a cui desideri aggiungere la politica di autenticazione e la politica di autenticazione che desideri aggiungere.

   ```
   aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json
   ```

   Usa JSON per creare una definizione di policy. Per ulteriori informazioni, consulta [Elementi comuni in una politica di autenticazione](#auth-policies-common-elements).

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
      "policy": "policy",
      "state": "Active"
   }
   ```

### Modifica il tipo di autenticazione di un servizio
<a name="change-service-auth-type"></a>

**Per disabilitare la politica di autenticazione per un servizio**  
Utilizzare il **update-service** comando con l'`--auth-type`opzione e il valore di`NONE`.

```
aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type NONE
```

Se è necessario abilitare nuovamente la politica di autenticazione in un secondo momento, esegui questo comando con `AWS_IAM` specified for the `--auth-type` option.

### Rimuovi una politica di autenticazione da un servizio
<a name="remove-service-auth-policy"></a>

**Per rimuovere una politica di autenticazione da un servizio**  
Utilizza il comando **delete-auth-policy**.

```
aws vpc-lattice delete-auth-policy --resource-identifier svc-0123456789abcdef0
```

La richiesta ha esito negativo se si rimuove una politica di autenticazione prima di modificare il tipo di autenticazione del servizio in. `NONE`

Se abiliti i criteri di autenticazione che richiedono richieste autenticate a un servizio, tutte le richieste a quel servizio devono contenere una firma di richiesta valida calcolata utilizzando Signature Version 4 (SigV4). Per ulteriori informazioni, consulta [SIGv4 richieste autenticate per Amazon VPC Lattice](sigv4-authenticated-requests.md).

## Elementi comuni in una politica di autenticazione
<a name="auth-policies-common-elements"></a>

Le policy di autenticazione VPC Lattice vengono specificate utilizzando la stessa sintassi delle policy IAM. *Per ulteriori informazioni, consulta Politiche basate sull'[identità e politiche basate sulle risorse nella Guida per l'utente IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html).*

Una policy di autenticazione contiene i seguenti elementi:
+ **Principale**: la persona o l'applicazione a cui è consentito l'accesso alle azioni e alle risorse contenute nella dichiarazione. In una politica di autenticazione, il principale è l'entità IAM che è il destinatario di questa autorizzazione. Il principale è autenticato come entità IAM per effettuare richieste a una risorsa o a un gruppo di risorse specifico, come nel caso dei servizi in una rete di servizi. 

  In una policy basata sulle risorse è obbligatorio specificare un’entità principale. I principali possono includere account, utenti, ruoli, utenti federati o servizi. AWS Per ulteriori informazioni, consulta [AWS JSON Policy elements: Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) nella *IAM* User Guide.
+ **Effetto**: l'effetto quando il principale specificato richiede l'azione specifica. Ciò può essere `Allow` o `Deny`. Per impostazione predefinita, quando si abilita il controllo degli accessi su un servizio o su una rete di servizi utilizzando IAM, i principali non dispongono delle autorizzazioni per effettuare richieste al servizio o alla rete di servizi.
+ **Azioni**: l'azione API specifica per la quale concedi o neghi l'autorizzazione. VPC Lattice supporta azioni che utilizzano il prefisso. `vpc-lattice-svcs` Per ulteriori informazioni, consulta [Azioni definite da Amazon VPC Lattice Services](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-actions-as-permissions) nel *Service* Authorization Reference.
+ **Risorse**: i servizi interessati dall'azione. 
+ **Condizione**: le condizioni sono facoltative. Puoi usarle per controllare quando la tua politica è in vigore. Per ulteriori informazioni, consulta [Condition keys for Amazon VPC Lattice Services](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-policy-keys) nel *Service* Authorization Reference.

Durante la creazione e la gestione delle politiche di autenticazione, potresti voler utilizzare [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-generator) Policy Generator.

**Requisito**  
La policy in JSON non deve contenere nuove righe o righe vuote.

## Formato delle risorse per le politiche di autenticazione
<a name="auth-policies-resource-format"></a>

È possibile limitare l'accesso a risorse specifiche creando una politica di autenticazione che utilizzi uno schema corrispondente con uno `<serviceARN>/<path>` schema e codifichi l'`Resource`elemento come illustrato negli esempi seguenti. 


| Protocollo | Esempi | 
| --- | --- | 
| HTTP |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/vpc-lattice/latest/ug/auth-policies.html)  | 
| gRPC |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/vpc-lattice/latest/ug/auth-policies.html)  | 

Utilizza il seguente formato di risorse Amazon Resource Name (ARN) per: `<serviceARN>`

```
arn:aws:vpc-lattice:region:account-id:service/service-id
```

Esempio:

```
"Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0"
```

## Chiavi di condizione che possono essere utilizzate nelle politiche di autenticazione
<a name="auth-policies-condition-keys"></a>

L'accesso può essere ulteriormente controllato dai tasti condizionali nell'elemento **Condition** delle politiche di autenticazione. Queste chiavi di condizione sono disponibili per la valutazione a seconda del protocollo e del fatto che la richiesta sia firmata con [Signature Version 4 (SigV4)](sigv4-authenticated-requests.md) o anonima. Le chiavi di condizione fanno distinzione tra maiuscole e minuscole.

AWS fornisce chiavi di condizione globali che è possibile utilizzare per controllare l'accesso, come e`aws:PrincipalOrgID`. `aws:SourceIp` Per visualizzare un elenco delle chiavi di condizione AWS globali, consulta le chiavi di [contesto delle condizioni AWS globali](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) nella *Guida per l'utente IAM*.

La seguente tabella elenca le chiavi delle condizioni di VPC Lattice. Per ulteriori informazioni, consulta [Condition keys for Amazon VPC Lattice Services](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-policy-keys) nel *Service* Authorization Reference.


| Chiavi di condizione | Description | Esempio | Disponibile per chiamanti anonimi (non autenticati)? | Disponibile per gRPC? | 
| --- | --- | --- | --- | --- | 
| vpc-lattice-svcs:Port | Filtra l'accesso tramite la porta di servizio a cui viene effettuata la richiesta | 80 | Sì  | Sì | 
| vpc-lattice-svcs:RequestMethod | Filtra l'accesso in base al metodo della richiesta | GET | Sì | PUBBLICA sempre | 
| vpc-lattice-svcs:RequestPath | Filtra l'accesso in base alla parte del percorso dell'URL della richiesta | /path | Sì  | Sì | 
| vpc-lattice-svcs:RequestHeader/header-name: value | Filtra l'accesso in base a una coppia nome-valore dell'intestazione nelle intestazioni della richiesta | content-type: application/json | Sì  | Sì | 
| vpc-lattice-svcs:RequestQueryString/key-name: value | Filtra l'accesso dalle coppie chiave-valore della stringa di query nell'URL della richiesta | quux: [corge, grault] | Sì | No | 
| vpc-lattice-svcs:ServiceNetworkArn | Filtra l'accesso tramite l'ARN della rete di servizio del servizio che riceve la richiesta | arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-0123456789abcdef0 | Sì  | Sì | 
| vpc-lattice-svcs:ServiceArn | Filtra l'accesso in base all'ARN del servizio che riceve la richiesta | arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0 | Sì  | Sì | 
| vpc-lattice-svcs:SourceVpc | Filtra l'accesso in base al VPC da cui proviene la richiesta | vpc-1a2b3c4d | Sì  | Sì | 
| vpc-lattice-svcs:SourceVpcOwnerAccount | Filtra l'accesso in base all'account proprietario del VPC da cui viene effettuata la richiesta | 123456789012 | Sì  | Sì | 

## Tag delle risorse
<a name="resource-tags"></a>

Un *tag* è un'etichetta di metadati che si assegna o che si assegna a AWS una risorsa. AWS Ogni tag è costituito da due parti:
+ Una *chiave del tag* (ad esempio, `CostCenter`, `Environment` o `Project`). Le chiavi dei tag prevedono una distinzione tra lettere maiuscole e minuscole.
+ Un campo facoltativo noto come *valore del tag* (ad esempio, `111122223333` o `Production`). Non specificare il valore del tag equivale a utilizzare una stringa vuota. Analogamente alle chiavi dei tag, i valori dei tag prevedono una distinzione tra maiuscole e minuscole.

Per ulteriori informazioni sull'etichettatura, consulta [Controllo dell'accesso alle](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) risorse mediante i tag AWS 

Puoi utilizzare i tag nelle tue politiche di autenticazione utilizzando la chiave di contesto `aws:ResourceTag/key` AWS global condition.

La seguente politica di esempio concede l'accesso ai servizi con il tag. `Environment=Gamma` Questa policy consente di fare riferimento a servizi senza un servizio di codifica hardware o. ARNs IDs

```
{
  "Version": "2012-10-17", 		 	 	 		 	 	 
  "Statement": [
    {
      "Sid": "AllowGammaAccess",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "vpc-lattice-svcs:Invoke",
      "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0124446789abcdef0/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Environment": "Gamma",
        }
      }
    }
  ]
}
```

## Tag principali
<a name="principal-tags"></a>

Puoi controllare l'accesso ai tuoi servizi e alle tue risorse in base ai tag allegati all'identità del chiamante. VPC Lattice supporta il controllo degli accessi basato su qualsiasi tag principale sui tag utente, ruolo o sessione utilizzando le variabili. `aws:PrincipalTag/context` Per ulteriori informazioni, consulta [Controlling access for IAM principals](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html#access_iam-tags_control-principals).

La seguente policy di esempio concede l'accesso solo alle identità con il tag. `Team=Payments` Questa politica consente di controllare l'accesso senza dover codificare l'account o il ruolo. IDs ARNs

```
{
  "Version": "2012-10-17", 		 	 	 		 	 	 
  "Statement": [
    {
      "Sid": "AllowPaymentsTeam",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "vpc-lattice-svcs:Invoke",
      "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0/*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/Team": "Payments",
        }
      }
    }
  ]
}
```

## Responsabili anonimi (non autenticati)
<a name="anonymous-unauthenticated-principals"></a>

I principali anonimi sono chiamanti che non firmano AWS le loro richieste con [Signature Version 4 (SigV4)](sigv4-authenticated-requests.md) e si trovano all'interno di un VPC connesso alla rete di servizi. I responsabili anonimi possono effettuare richieste non autenticate ai servizi della rete di servizi se una politica di autenticazione lo consente.

## Esempi di politiche di autenticazione
<a name="example-auth-policies"></a>

Di seguito sono riportati alcuni esempi di politiche di autenticazione che richiedono l'invio di richieste da parte di responsabili autenticati.

Tutti gli esempi utilizzano la `us-west-2` regione e contengono account fittizi. IDs

**Esempio 1: limitare l'accesso ai servizi da parte di un'organizzazione specifica AWS**  
Il seguente esempio di politica di autenticazione concede le autorizzazioni a qualsiasi richiesta autenticata di accesso a qualsiasi servizio della rete di servizi a cui si applica la politica. Tuttavia, la richiesta deve provenire da responsabili che appartengono all' AWS organizzazione specificata nella condizione.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": "*",
         "Action": "vpc-lattice-svcs:Invoke",
         "Resource": "*",
         "Condition": {
            "StringEquals": {
               "aws:PrincipalOrgID": [ 
                  "o-123456example"
               ]
            }
         }
      }
   ]
}
```

------

**Esempio 2: limita l'accesso a un servizio tramite un ruolo IAM specifico**  
Il seguente esempio di politica di autenticazione concede le autorizzazioni a qualsiasi richiesta autenticata che utilizza il ruolo IAM `rates-client` per effettuare richieste HTTP GET sul servizio specificato nell'elemento. `Resource` La risorsa nell'`Resource`elemento è la stessa del servizio a cui è allegata la policy.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": [
               "arn:aws:iam::123456789012:role/rates-client"
            ]
         },
         "Action": "vpc-lattice-svcs:Invoke",
         "Resource": [
            "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0/*"
         ],
         "Condition": {
            "StringEquals": {
               "vpc-lattice-svcs:RequestMethod": "GET"
            }
         }
      }
   ]
}
```

------

**Esempio 3: Limita l'accesso ai servizi tramite principali autenticati in un VPC specifico**  
Il seguente esempio di policy di autenticazione consente solo le richieste autenticate dai principali nel VPC il cui ID VPC è. `vpc-1a2b3c4d`

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": "*",
         "Action": "vpc-lattice-svcs:Invoke",
         "Resource": "*",
         "Condition": {
            "StringNotEquals": {
               "aws:PrincipalType": "Anonymous"
            },
            "StringEquals": {
               "vpc-lattice-svcs:SourceVpc": "vpc-1a2b3c4d"
            }
         }
      }
   ]
}
```

------

## Come funziona l'autorizzazione
<a name="auth-policies-evaluation-logic"></a>

Quando un servizio VPC Lattice riceve una richiesta, il codice di AWS applicazione valuta insieme tutte le politiche di autorizzazione pertinenti per determinare se autorizzare o rifiutare la richiesta. Valuta tutte le politiche basate sull'identità e le politiche di autenticazione IAM applicabili nel contesto della richiesta durante l'autorizzazione. Per impostazione predefinita, tutte le richieste vengono negate implicitamente quando il tipo di autenticazione è. `AWS_IAM` Un'autorizzazione esplicita da parte di tutte le politiche pertinenti ha la precedenza sull'impostazione predefinita.

L'autorizzazione include:
+ Raccolta di tutte le policy e le policy di autenticazione basate sull'identità IAM pertinenti.
+ Valutazione del set di politiche risultante:
  + Verifica che il richiedente (ad esempio un utente o un ruolo IAM) disponga delle autorizzazioni per eseguire l'operazione dall'account a cui appartiene il richiedente. Se non esiste un'istruzione di autorizzazione esplicita, AWS non autorizza la richiesta.
  + Verifica che la richiesta sia consentita dalla politica di autenticazione per la rete di servizi. Se un criterio di autenticazione è abilitato, ma non esiste un'istruzione di autorizzazione esplicita, la richiesta AWS non viene autorizzata. Se esiste un'istruzione di autorizzazione esplicita o il tipo di autenticazione è`NONE`, il codice continua. 
  + Verifica che la richiesta sia consentita dalla politica di autenticazione del servizio. Se un criterio di autenticazione è abilitato, ma non esiste un'istruzione di autorizzazione esplicita, la richiesta AWS non viene autorizzata. **Se è presente un'istruzione di autorizzazione esplicita o il tipo di autenticazione lo è`NONE`, il codice di applicazione restituisce la decisione finale di Allow.**
  + Un rifiuto esplicito in una policy sostituisce qualsiasi permesso.

Il diagramma mostra il flusso di lavoro di autorizzazione. Quando viene effettuata una richiesta, le politiche pertinenti consentono o negano l'accesso della richiesta a un determinato servizio.

![\[Workflow di autorizzazione\]](http://docs.aws.amazon.com/it_it/vpc-lattice/latest/ug/images/authpolicy.png)


# Controlla il traffico in VPC Lattice utilizzando gruppi di sicurezza
<a name="security-groups"></a>

AWS i gruppi di sicurezza agiscono come firewall virtuali, controllando il traffico di rete da e verso le entità a cui sono associati. Con VPC Lattice, puoi creare gruppi di sicurezza e assegnarli all'associazione VPC che collega un VPC a una rete di servizi per applicare protezioni di sicurezza aggiuntive a livello di rete per la tua rete di servizi. Se connetti un VPC a una rete di servizi utilizzando un endpoint VPC, puoi assegnare gruppi di sicurezza anche all'endpoint VPC. Allo stesso modo, puoi assegnare gruppi di sicurezza ai gateway di risorse che crei per consentire l'accesso alle risorse nel tuo VPC.

**Topics**
+ [

## Elenco di prefissi gestiti
](#managed-prefix-list)
+ [

## Regole del gruppo di sicurezza
](#security-groups-rules)
+ [

## Gestire i gruppi di sicurezza per un'associazione VPC
](#service-network-security-group)

## Elenco di prefissi gestiti
<a name="managed-prefix-list"></a>

VPC Lattice fornisce elenchi di prefissi gestiti che includono gli indirizzi IP utilizzati per instradare il traffico sulla rete VPC Lattice quando si utilizza un'associazione di rete di servizio per connettere il VPC a una rete di servizi utilizzando un'associazione VPC. Si tratta di collegamenti privati locali o pubblici non instradabili. IPs IPs IPs

 Puoi fare riferimento agli elenchi di prefissi gestiti da VPC Lattice nelle regole del tuo gruppo di sicurezza. Ciò consente al traffico di fluire dai client, attraverso la rete di servizi VPC Lattice, e verso gli obiettivi del servizio VPC Lattice.

Ad esempio, supponiamo di avere un'istanza EC2 registrata come destinazione nella regione degli Stati Uniti occidentali (Oregon) (). `us-west-2` Puoi aggiungere una regola al gruppo di sicurezza dell'istanza che consente l'accesso HTTPS in entrata dall'elenco dei prefissi gestiti di VPC Lattice, in modo che il traffico VPC Lattice in questa regione possa raggiungere l'istanza. Se rimuovi tutte le altre regole in entrata dal gruppo di sicurezza, puoi impedire a qualsiasi traffico diverso dal traffico VPC Lattice di raggiungere l'istanza.

I nomi degli elenchi di prefissi gestiti per VPC Lattice sono i seguenti:
+ com.amazonaws. *region*.vpc-reticolo
+ com.amazonaws. *region*.ipv6.vpc-reticolo

Per maggiori informazioni, consulta [Elenchi di prefissi gestiti da AWS](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html#available-aws-managed-prefix-lists) nella *Guida dell'utente di Amazon VPC*.

**Client Windows e macOS**  
Gli indirizzi negli elenchi di prefissi VPC Lattice sono indirizzi locali del collegamento e indirizzi pubblici non instradabili. Se ti connetti a VPC Lattice da questi client, devi aggiornare le loro configurazioni in modo da inoltrare gli indirizzi IP nell'elenco dei prefissi gestiti all'indirizzo IP primario del client. Di seguito è riportato un comando di esempio che aggiorna la configurazione del client Windows, dove si 169.254.171.0 trova uno degli indirizzi nell'elenco dei prefissi gestiti. 

```
C:\> route add 169.254.171.0 mask 255.255.255.0 primary-ip-address
```

Di seguito è riportato un comando di esempio che aggiorna la configurazione del client macOS, dove si 169.254.171.0 trova uno degli indirizzi nell'elenco dei prefissi gestiti. 

```
sudo route -n add -net 169.254.171.0 primary-ip-address 255.255.255.0
```

Per evitare di creare una route statica, ti consigliamo di utilizzare un endpoint di rete di servizio in un VPC per stabilire la connettività. Per ulteriori informazioni, consulta [Gestisci le associazioni di endpoint VPC della rete di assistenza](service-network-associations.md#service-network-vpc-endpoint-associations).

## Regole del gruppo di sicurezza
<a name="security-groups-rules"></a>

L'utilizzo di VPC Lattice con o senza gruppi di sicurezza non influirà sulla configurazione del gruppo di sicurezza VPC esistente. Tuttavia, puoi aggiungere i tuoi gruppi di sicurezza in qualsiasi momento.

**Considerazioni chiave**
+ Le regole dei gruppi di sicurezza per i client controllano il traffico in uscita verso VPC Lattice. 
+ Le regole dei gruppi di sicurezza per le destinazioni controllano il traffico in entrata da VPC Lattice alle destinazioni, incluso il traffico per il controllo dello stato di salute. 
+ Le regole del gruppo di sicurezza per l'associazione tra la rete di servizi e il VPC controllano quali client possono accedere alla rete di servizi VPC Lattice.
+ Le regole dei gruppi di sicurezza per il Resource Gateway controllano il traffico in uscita dal Resource Gateway alle risorse.

**Regole in uscita consigliate per il traffico che scorre dal Resource Gateway a una risorsa di database**  
Affinché il traffico possa fluire dal Resource Gateway alle risorse, è necessario creare regole in uscita per le porte aperte e protocolli listener accettati per le risorse.


| Destinazione | Protocollo | Intervallo porte | Comment | 
| --- | --- | --- | --- | 
| CIDR range for resource | TCP | 3306 | Consenti il traffico dal gateway di risorse ai database | 

**Regole in entrata consigliate per le associazioni di reti di servizi e VPC**  
Affinché il traffico possa fluire dal client VPCs ai servizi associati alla rete di servizi, è necessario creare regole in entrata per le porte del listener e i protocolli di ascolto per i servizi.


| Crea | Protocollo | Intervallo porte | Comment | 
| --- | --- | --- | --- | 
| VPC CIDR | listener | listener | Consenti il traffico dai client a VPC Lattice | 

**Regole in uscita consigliate per il flusso di traffico dalle istanze client a VPC Lattice**  
Per impostazione predefinita, i gruppi di sicurezza autorizzano tutto il traffico in uscita. Tuttavia, se disponi di regole in uscita personalizzate, devi consentire il traffico in uscita al prefisso VPC Lattice per le porte e i protocolli del listener in modo che le istanze client possano connettersi a tutti i servizi associati alla rete di servizi VPC Lattice. Puoi consentire questo traffico facendo riferimento all'ID dell'elenco dei prefissi per VPC Lattice.


| Destinazione | Protocollo | Intervallo porte | Comment | 
| --- | --- | --- | --- | 
| ID of the VPC Lattice prefix list | listener | listener | Consenti il traffico dai client a VPC Lattice | 

**Regole in entrata consigliate per il traffico che fluisce da VPC Lattice alle istanze di destinazione**  
Non puoi utilizzare il gruppo di sicurezza del client come fonte per i gruppi di sicurezza del tuo target, perché il traffico proviene da VPC Lattice. Puoi fare riferimento all'ID dell'elenco dei prefissi per VPC Lattice.


| Crea | Protocollo | Intervallo porte | Comment | 
| --- | --- | --- | --- | 
| ID of the VPC Lattice prefix list | target | target | Consenti il traffico da VPC Lattice agli obiettivi | 
| ID of the VPC Lattice prefix list | health check | health check | Consenti il traffico di health check da VPC Lattice agli obiettivi | 

## Gestire i gruppi di sicurezza per un'associazione VPC
<a name="service-network-security-group"></a>

È possibile utilizzare l'associazione AWS CLI di rete da VPC a service per visualizzare, aggiungere o aggiornare i gruppi di sicurezza sul VPC. Quando usi il AWS CLI, ricorda che i comandi vengono eseguiti nella Regione AWS configurazione per il tuo profilo. Per eseguire i comandi in un'altra regione, modificare la regione predefinita per il profilo oppure utilizzare il parametro `--region` con il comando.

Prima di iniziare, conferma di aver creato il gruppo di sicurezza nello stesso VPC del VPC che desideri aggiungere alla rete di servizi. Per ulteriori informazioni, consulta [Controlla il traffico verso le tue risorse utilizzando i gruppi di sicurezza](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) nella *Amazon VPC* User Guide

**Per aggiungere un gruppo di sicurezza quando si crea un'associazione VPC utilizzando la console**

1. Apri la console Amazon VPC all'indirizzo [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. **Nel pannello di navigazione, in **VPC Lattice**, scegli Reti di servizio.**

1. Seleziona il nome della rete di servizio per aprirne la pagina dei dettagli.

1. **Nella scheda **Associazioni VPC, scegli Crea associazioni** **VPC, quindi scegli Aggiungi associazione** VPC.**

1. Seleziona un VPC e fino a cinque gruppi di sicurezza.

1. Scegli **Save changes** (Salva modifiche).

**Per aggiungere o aggiornare gruppi di sicurezza per un'associazione VPC esistente utilizzando la console**

1. Apri la console Amazon VPC all'indirizzo [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. **Nel pannello di navigazione, in **VPC Lattice**, scegli Reti di servizio.**

1. Seleziona il nome della rete di servizio per aprirne la pagina dei dettagli.

1. Nella scheda **Associazioni VPC**, seleziona la casella di controllo relativa all'associazione, quindi scegli **Azioni**, **Modifica gruppi di sicurezza**.

1. Aggiungi e rimuovi i gruppi di sicurezza in base alle esigenze.

1. Scegli **Save changes** (Salva modifiche).

**Per aggiungere un gruppo di sicurezza quando si crea un'associazione VPC utilizzando AWS CLI**  
Utilizza il comando [create-service-network-vpc-association](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-service-network-vpc-association.html), specificando l'ID del VPC per l'associazione VPC e l'ID dei gruppi di sicurezza da aggiungere.

```
aws vpc-lattice create-service-network-vpc-association \
    --service-network-identifier sn-0123456789abcdef0 \
    --vpc-identifier vpc-1a2b3c4d \
    --security-group-ids sg-7c2270198example
```

Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

```
{
  "arn": "arn",
  "createdBy": "464296918874",
  "id": "snva-0123456789abcdef0",
  "status": "CREATE_IN_PROGRESS",
  "securityGroupIds": ["sg-7c2270198example"]
}
```

**Per aggiungere o aggiornare gruppi di sicurezza per un'associazione VPC esistente utilizzando AWS CLI**  
Utilizzare il comando [update-service-network-vpc-association](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/update-service-network-vpc-association.html), specificando l'ID della rete di servizi e dei gruppi IDs di sicurezza. Questi gruppi di sicurezza sostituiscono tutti i gruppi di sicurezza precedentemente associati. Definisci almeno un gruppo di sicurezza durante l'aggiornamento dell'elenco.

```
aws vpc-lattice update-service-network-vpc-association 
    --service-network-vpc-association-identifier sn-903004f88example \
    --security-group-ids sg-7c2270198example sg-903004f88example
```

**avvertimento**  
Non puoi rimuovere tutti i gruppi di sicurezza. È invece necessario prima eliminare l'associazione VPC e quindi ricreare l'associazione VPC senza gruppi di sicurezza. Fai attenzione quando elimini l'associazione VPC. Ciò impedisce al traffico di raggiungere i servizi che si trovano in quella rete di servizi.

# Controlla il traffico verso VPC Lattice utilizzando la rete ACLs
<a name="network-acls"></a>

Una lista di controllo degli accessi (ACL) di rete consente o nega traffico specifico in entrata o in uscita a livello di sottorete. L'ACL di rete predefinita consente tutto il traffico in entrata e in uscita. Puoi creare una rete personalizzata ACLs per le tue sottoreti per fornire un ulteriore livello di sicurezza. Per ulteriori informazioni, consulta [Network ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) in the *Amazon VPC User* Guide.

**Topics**
+ [

## Rete ACLs per le sottoreti dei client
](#network-acl-client-subnets)
+ [

## Rete ACLs per le sottoreti di destinazione
](#network-acl-target-subnets)

## Rete ACLs per le sottoreti dei client
<a name="network-acl-client-subnets"></a>

La rete ACLs per le sottoreti client deve consentire il traffico tra i client e VPC Lattice. È possibile ottenere gli intervalli di indirizzi IP da consentire dall'[elenco dei prefissi gestiti](security-groups.md#managed-prefix-list) per VPC Lattice.

Di seguito è riportato un esempio di regola in entrata.


| Crea | Protocollo | Intervallo porte | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | TCP | 1025-65535 | Consenti il traffico da VPC Lattice ai client | 

Di seguito è riportato un esempio di una regola di uscita.


| Destinazione | Protocollo | Intervallo porte | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | listener | listener | Consenti il traffico dai client a VPC Lattice | 

## Rete ACLs per le sottoreti di destinazione
<a name="network-acl-target-subnets"></a>

La rete ACLs per le sottoreti di destinazione deve consentire il traffico tra le destinazioni e VPC Lattice sia sulla porta di destinazione che sulla porta di controllo dello stato. È possibile ottenere gli intervalli di indirizzi IP da consentire dall'[elenco dei prefissi gestiti](security-groups.md#managed-prefix-list) per VPC Lattice.

Di seguito è riportato un esempio di regola in entrata.


| Crea | Protocollo | Intervallo porte | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | target | target | Consenti il traffico da VPC Lattice agli obiettivi | 
| vpc\$1lattice\$1cidr\$1block | health check | health check | Consenti il traffico di health check da VPC Lattice agli obiettivi | 

Di seguito è riportato un esempio di una regola di uscita.


| Destinazione | Protocollo | Intervallo porte | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | target | 1024-65535 | Consenti il traffico dai target a VPC Lattice | 
| vpc\$1lattice\$1cidr\$1block | health check | 1024-65535 | Consenti il traffico di health check dai target a VPC Lattice | 

# SIGv4 richieste autenticate per Amazon VPC Lattice
<a name="sigv4-authenticated-requests"></a>

VPC Lattice utilizza Signature Version 4 (SIGv4) o Signature Version 4A (SIGv4A) per l'autenticazione del client. Per ulteriori informazioni, consulta [AWS Signature Version 4 per le richieste API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) nella *Guida per l’utente di IAM*.

**Considerazioni**
+ VPC Lattice tenta di autenticare qualsiasi richiesta firmata con o A. SIGv4 SIGv4 La richiesta fallisce senza autenticazione.
+ VPC Lattice non supporta la firma del payload. È necessario inviare un'`x-amz-content-sha256`intestazione con il valore impostato su. `"UNSIGNED-PAYLOAD"`

**Topics**
+ [

## Python
](#sigv4-authenticated-requests-python)
+ [

## Java
](#sigv4-authenticated-requests-java-custom-interceptor)
+ [

## Node.js
](#sigv4-authenticated-requests-nodejs)
+ [

## Golang
](#sigv4-authenticated-requests-golang)
+ [

## Golang - GRPC
](#sigv4-authenticated-requests-golang-grpc)

## Python
<a name="sigv4-authenticated-requests-python"></a>

Questo esempio invia le richieste firmate tramite una connessione sicura a un servizio registrato nella rete. Se si preferisce utilizzare [le richieste](https://requests.readthedocs.io/en/latest/), il pacchetto [botocore](https://github.com/boto/botocore) semplifica il processo di autenticazione, ma non è strettamente necessario. Per ulteriori informazioni, consulta [Credenziali](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html) nella documentazione di Boto3.

Per installare i `awscrt` pacchetti `botocore` and, utilizzare il comando seguente. Per ulteriori informazioni, consulta [AWS CRT Python.](https://pypi.org/project/awscrt/)

```
pip install botocore awscrt
```

Se esegui l'applicazione client su Lambda, installa i moduli richiesti utilizzando i [livelli Lambda](https://docs.aws.amazon.com/lambda/latest/dg/python-layers.html) o includili nel pacchetto di distribuzione.

Nell'esempio seguente, sostituisci i valori segnaposto con i tuoi valori.

------
#### [ SIGv4 ]

```
from botocore import crt
import requests 
from botocore.awsrequest import AWSRequest
import botocore.session

if __name__ == '__main__':
    session = botocore.session.Session()
    signer = crt.auth.CrtSigV4Auth(session.get_credentials(), 'vpc-lattice-svcs', 'us-west-2')
    endpoint = 'https://data-svc-022f67d3a42.1234abc.vpc-lattice-svcs.us-west-2.on.aws'
    data = "some-data-here"
    headers = {'Content-Type': 'application/json', 'x-amz-content-sha256': 'UNSIGNED-PAYLOAD'}
    request = AWSRequest(method='POST', url=endpoint, data=data, headers=headers)
    request.context["payload_signing_enabled"] = False
    signer.add_auth(request)
    
    prepped = request.prepare()
    
    response = requests.post(prepped.url, headers=prepped.headers, data=data)
    print(response.text)
```

------
#### [ SIGv4A ]

```
from botocore import crt
import requests 
from botocore.awsrequest import AWSRequest
import botocore.session

if __name__ == '__main__':
    session = botocore.session.Session()
    signer = crt.auth.CrtSigV4AsymAuth(session.get_credentials(), 'vpc-lattice-svcs', '*')
    endpoint = 'https://data-svc-022f67d3a42.1234abc.vpc-lattice-svcs.us-west-2.on.aws'
    data = "some-data-here"
    headers = {'Content-Type': 'application/json', 'x-amz-content-sha256': 'UNSIGNED-PAYLOAD'}
    request = AWSRequest(method='POST', url=endpoint, data=data, headers=headers)
    request.context["payload_signing_enabled"] = False 
    signer.add_auth(request)
    
    prepped = request.prepare()
    
    response = requests.post(prepped.url, headers=prepped.headers, data=data)
    print(response.text)
```

------

## Java
<a name="sigv4-authenticated-requests-java-custom-interceptor"></a>

Questo esempio mostra come è possibile eseguire la firma delle richieste utilizzando intercettori personalizzati. Utilizza la classe di provider di credenziali predefinita da [AWS SDK for Java 2.x](https://github.com/aws/aws-sdk-java-v2), che ottiene le credenziali corrette per te. Se preferisci utilizzare un provider di credenziali specifico, puoi selezionarne uno da. [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html) AWS SDK per Java Consente solo payload non firmati su HTTPS. Tuttavia, puoi estendere il firmatario per supportare payload non firmati tramite HTTP.

------
#### [ SIGv4 ]

```
package com.example;

import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner;
import software.amazon.awssdk.http.auth.spi.signer.SignedRequest;

import software.amazon.awssdk.http.SdkHttpMethod;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.http.SdkHttpRequest;
import software.amazon.awssdk.http.apache.ApacheHttpClient;
import software.amazon.awssdk.http.HttpExecuteRequest;
import software.amazon.awssdk.http.HttpExecuteResponse;
import java.io.IOException;
import java.net.URI;

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;

public class sigv4 {

    public static void main(String[] args) {
        AwsV4HttpSigner signer = AwsV4HttpSigner.create();

        AwsCredentialsIdentity credentials = DefaultCredentialsProvider.create().resolveCredentials();

        if (args.length < 2) {
            System.out.println("Usage: sample <url> <region>");
            System.exit(1);
        }
        // Create the HTTP request to be signed
        var url = args[0];
        SdkHttpRequest httpRequest = SdkHttpRequest.builder()
                .uri(URI.create(url))
                .method(SdkHttpMethod.GET)
                .build();

        SignedRequest signedRequest = signer.sign(r -> r.identity(credentials)
                .request(httpRequest)
                .putProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, "vpc-lattice-svcs")
                .putProperty(AwsV4HttpSigner.PAYLOAD_SIGNING_ENABLED, false)
                .putProperty(AwsV4HttpSigner.REGION_NAME, args[1]));

        System.out.println("[*] Raw request headers:");
        signedRequest.request().headers().forEach((key, values) -> {
            values.forEach(value -> System.out.println("  " + key + ": " + value));
        });

        try (SdkHttpClient httpClient = ApacheHttpClient.create()) {
            HttpExecuteRequest httpExecuteRequest = HttpExecuteRequest.builder()
                    .request(signedRequest.request())
                    .contentStreamProvider(signedRequest.payload().orElse(null))
                    .build();

            System.out.println("[*] Sending request to: " + url);

            HttpExecuteResponse httpResponse = httpClient.prepareRequest(httpExecuteRequest).call();

            System.out.println("[*] Request sent");

            System.out.println("[*] Response status code: " + httpResponse.httpResponse().statusCode());
            // Read and print the response body
            httpResponse.responseBody().ifPresent(inputStream -> {
                try {
                    String responseBody = new String(inputStream.readAllBytes());
                    System.out.println("[*] Response body: " + responseBody);
                } catch (IOException e) {
                    System.err.println("[*] Failed to read response body");
                    e.printStackTrace();
                } finally {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        System.err.println("[*] Failed to close input stream");
                        e.printStackTrace();
                    }
                }
            });
        } catch (IOException e) {
            System.err.println("[*] HTTP Request Failed.");
            e.printStackTrace();
        }

    }
}
```

------
#### [ SIGv4A ]

Questo esempio richiede una dipendenza aggiuntiva da. `software.amazon.awssdk:http-auth-aws-crt`

```
package com.example;


import software.amazon.awssdk.http.auth.aws.signer.AwsV4aHttpSigner;
import software.amazon.awssdk.http.auth.aws.signer.RegionSet;
import software.amazon.awssdk.http.auth.spi.signer.SignedRequest;

import software.amazon.awssdk.http.SdkHttpMethod;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.http.SdkHttpRequest;
import software.amazon.awssdk.http.apache.ApacheHttpClient;
import software.amazon.awssdk.http.HttpExecuteRequest;
import software.amazon.awssdk.http.HttpExecuteResponse;
import java.io.IOException;
import java.net.URI;
import java.util.Arrays;

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;

public class sigv4a {
    
    public static void main(String[] args) {
        AwsV4aHttpSigner signer = AwsV4aHttpSigner.create();

        AwsCredentialsIdentity credentials = DefaultCredentialsProvider.create().resolveCredentials();

        if (args.length < 2) {
            System.out.println("Usage: sample <url> <regionset>");
            System.exit(1);
        }
        // Create the HTTP request to be signed
        var url = args[0];
        SdkHttpRequest httpRequest = SdkHttpRequest.builder()
                .uri(URI.create(url))
                .method(SdkHttpMethod.GET)
                .build();

        SignedRequest signedRequest = signer.sign(r -> r.identity(credentials)
                .request(httpRequest)
                .putProperty(AwsV4aHttpSigner.SERVICE_SIGNING_NAME, "vpc-lattice-svcs")
                .putProperty(AwsV4aHttpSigner.PAYLOAD_SIGNING_ENABLED, false)
                .putProperty(AwsV4aHttpSigner.REGION_SET, RegionSet.create(String.join(" ",Arrays.copyOfRange(args, 1, args.length)))));

        System.out.println("[*] Raw request headers:");
        signedRequest.request().headers().forEach((key, values) -> {
            values.forEach(value -> System.out.println("  " + key + ": " + value));
        });

        try (SdkHttpClient httpClient = ApacheHttpClient.create()) {
            HttpExecuteRequest httpExecuteRequest = HttpExecuteRequest.builder()
                    .request(signedRequest.request())
                    .contentStreamProvider(signedRequest.payload().orElse(null))
                    .build();

            System.out.println("[*] Sending request to: " + url);

            HttpExecuteResponse httpResponse = httpClient.prepareRequest(httpExecuteRequest).call();

            System.out.println("[*] Request sent");

            System.out.println("[*] Response status code: " + httpResponse.httpResponse().statusCode());
            // Read and print the response body
            httpResponse.responseBody().ifPresent(inputStream -> {
                try {
                    String responseBody = new String(inputStream.readAllBytes());
                    System.out.println("[*] Response body: " + responseBody);
                } catch (IOException e) {
                    System.err.println("[*] Failed to read response body");
                    e.printStackTrace();
                } finally {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        System.err.println("[*] Failed to close input stream");
                        e.printStackTrace();
                    }
                }
            });
        } catch (IOException e) {
            System.err.println("[*] HTTP Request Failed.");
            e.printStackTrace();
        }
    }
}
```

------

## Node.js
<a name="sigv4-authenticated-requests-nodejs"></a>

Questo esempio utilizza le associazioni [aws-crt NodeJS per inviare una richiesta](https://github.com/awslabs/aws-crt-nodejs) firmata tramite HTTPS.

Per installare il pacchetto, utilizzare il seguente comando. `aws-crt`

```
npm -i aws-crt
```

Se la variabile di `AWS_REGION` ambiente esiste, l'esempio utilizza la regione specificata da`AWS_REGION`. La regione predefinita è`us-east-1`.

------
#### [ SIGv4 ]

```
const https = require('https')
const crt = require('aws-crt')
const { HttpRequest } = require('aws-crt/dist/native/http')

function sigV4Sign(method, endpoint, service, algorithm) {
    const host = new URL(endpoint).host
    const request = new HttpRequest(method, endpoint)
    request.headers.add('host', host)
    // crt.io.enable_logging(crt.io.LogLevel.INFO)
    const config = {
        service: service,
        region: process.env.AWS_REGION ? process.env.AWS_REGION : 'us-east-1',
        algorithm: algorithm,
        signature_type: crt.auth.AwsSignatureType.HttpRequestViaHeaders,
        signed_body_header: crt.auth.AwsSignedBodyHeaderType.XAmzContentSha256,
        signed_body_value: crt.auth.AwsSignedBodyValue.UnsignedPayload,
        provider: crt.auth.AwsCredentialsProvider.newDefault()
    }

    return crt.auth.aws_sign_request(request, config)
}

if (process.argv.length === 2) {
  console.error(process.argv[1] + ' <url>')
  process.exit(1)
}

const algorithm = crt.auth.AwsSigningAlgorithm.SigV4;

sigV4Sign('GET', process.argv[2], 'vpc-lattice-svcs', algorithm).then(
  httpResponse => {
    var headers = {}

    for (const sigv4header of httpResponse.headers) {
      headers[sigv4header[0]] = sigv4header[1]
    }

    const options = {
      hostname: new URL(process.argv[2]).host,
      path: new URL(process.argv[2]).pathname,
      method: 'GET',
      headers: headers
    }

    req = https.request(options, res => {
      console.log('statusCode:', res.statusCode)
      console.log('headers:', res.headers)
      res.on('data', d => {
        process.stdout.write(d)
      })
    })
    req.on('error', err => {
      console.log('Error: ' + err)
    })
    req.end()
  }
)
```

------
#### [ SIGv4A ]

```
const https = require('https')
const crt = require('aws-crt')
const { HttpRequest } = require('aws-crt/dist/native/http')

function sigV4Sign(method, endpoint, service, algorithm) {
    const host = new URL(endpoint).host
    const request = new HttpRequest(method, endpoint)
    request.headers.add('host', host)
    // crt.io.enable_logging(crt.io.LogLevel.INFO)
    const config = {
        service: service,
        region: process.env.AWS_REGION ? process.env.AWS_REGION : 'us-east-1',
        algorithm: algorithm,
        signature_type: crt.auth.AwsSignatureType.HttpRequestViaHeaders,
        signed_body_header: crt.auth.AwsSignedBodyHeaderType.XAmzContentSha256,
        signed_body_value: crt.auth.AwsSignedBodyValue.UnsignedPayload,
        provider: crt.auth.AwsCredentialsProvider.newDefault()
    }

    return crt.auth.aws_sign_request(request, config)
}

if (process.argv.length === 2) {
  console.error(process.argv[1] + ' <url>')
  process.exit(1)
}

const algorithm = crt.auth.AwsSigningAlgorithm.SigV4Asymmetric;

sigV4Sign('GET', process.argv[2], 'vpc-lattice-svcs', algorithm).then(
  httpResponse => {
    var headers = {}

    for (const sigv4header of httpResponse.headers) {
      headers[sigv4header[0]] = sigv4header[1]
    }

    const options = {
      hostname: new URL(process.argv[2]).host,
      path: new URL(process.argv[2]).pathname,
      method: 'GET',
      headers: headers
    }

    req = https.request(options, res => {
      console.log('statusCode:', res.statusCode)
      console.log('headers:', res.headers)
      res.on('data', d => {
        process.stdout.write(d)
      })
    })
    req.on('error', err => {
      console.log('Error: ' + err)
    })
    req.end()
  }
)
```

------

## Golang
<a name="sigv4-authenticated-requests-golang"></a>

Questo esempio utilizza i [generatori di codice Smithy per Go e l'AWS SDK per](https://github.com/aws/smithy-go) [il linguaggio di programmazione Go per gestire le](https://github.com/aws/aws-sdk-go) richieste di firma delle richieste. L'esempio richiede una versione Go 1.21 o successiva.

------
#### [ SIGv4 ]

```
package main
 
import (
        "context"
        "flag"
        "fmt"
        "io"
        "log"
        "net/http"
        "net/http/httputil"
        "os"
        "strings"
 
        "github.com/aws/aws-sdk-go-v2/aws"
        "github.com/aws/aws-sdk-go-v2/config"
        "github.com/aws/smithy-go/aws-http-auth/credentials"
        "github.com/aws/smithy-go/aws-http-auth/sigv4"
        v4 "github.com/aws/smithy-go/aws-http-auth/v4"
)
 
type nopCloser struct {
        io.ReadSeeker
}
 
func (nopCloser) Close() error {
        return nil
}
 
type stringFlag struct {
        set   bool
        value string
}
 
 
        flag.PrintDefaults()
        os.Exit(1)
}
 
func main() {
        flag.Parse()
        if !url.set || !region.set {
                Usage()
        }
 
        cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
        if err != nil {
                log.Fatalf("failed to load SDK configuration, %v", err)
        }
 
        if len(os.Args) < 2 {
                log.Fatalf("Usage: go run main.go  <url>")
        }
 
        // Retrieve credentials from an SDK source, such as the instance profile
        sdkCreds, err := cfg.Credentials.Retrieve(context.TODO())
        if err != nil {
                log.Fatalf("Unable to retrieve credentials from SDK, %v", err)
        }
 
        creds := credentials.Credentials{
                AccessKeyID:     sdkCreds.AccessKeyID,
                SecretAccessKey: sdkCreds.SecretAccessKey,
                SessionToken:    sdkCreds.SessionToken,
        }
 
        // Add a payload body, which will not be part of the signature calculation
        body := nopCloser{strings.NewReader(`Example payload body`)}
 
        req, _ := http.NewRequest(http.MethodPost, url.value, body)
 
        // Create a sigv4a signer with specific options
        signer := sigv4.New(func(o *v4.SignerOptions) {
                o.DisableDoublePathEscape = true
                // This will add the UNSIGNED-PAYLOAD sha256 header
                o.AddPayloadHashHeader = true
                o.DisableImplicitPayloadHashing = true
        })
 
        // Perform the signing on req, using the credentials we retrieved from the SDK
        err = signer.SignRequest(&sigv4.SignRequestInput{
                Request:     req,
                Credentials: creds,
                Service:     "vpc-lattice-svcs",
                Region: region.String(),
        })
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        res, err := httputil.DumpRequest(req, true)
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Raw request\n%s\n", string(res))
 
        log.Printf("[*] Sending request to %s\n", url.value)
 
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Request sent\n")
 
        log.Printf("[*] Response status code: %d\n", resp.StatusCode)
 
        respBody, err := io.ReadAll(resp.Body)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Response body: \n%s\n", respBody)
}
```

------
#### [ SIGv4A ]

```
package main
 
import (
        "context"
        "flag"
        "fmt"
        "io"
        "log"
        "net/http"
        "net/http/httputil"
        "os"
        "strings"
 
        "github.com/aws/aws-sdk-go-v2/aws"
        "github.com/aws/aws-sdk-go-v2/config"
        "github.com/aws/smithy-go/aws-http-auth/credentials"
        "github.com/aws/smithy-go/aws-http-auth/sigv4a"
        v4 "github.com/aws/smithy-go/aws-http-auth/v4"
)
 
type nopCloser struct {
        io.ReadSeeker
}
 
func (nopCloser) Close() error {
        return nil
}
 
type stringFlag struct {
 
func main() {
        flag.Parse()
        if !url.set || !regionSet.set {
                Usage()
        }
 
        cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
        if err != nil {
                log.Fatalf("failed to load SDK configuration, %v", err)
        }
 
        if len(os.Args) < 2 {
                log.Fatalf("Usage: go run main.go <url>")
        }
 
        // Retrieve credentials from an SDK source, such as the instance profile
        sdkCreds, err := cfg.Credentials.Retrieve(context.TODO())
        if err != nil {
                log.Fatalf("Unable to retrieve credentials from SDK, %v", err)
        }
 
        creds := credentials.Credentials{
                AccessKeyID:     sdkCreds.AccessKeyID,
                SecretAccessKey: sdkCreds.SecretAccessKey,
                SessionToken:    sdkCreds.SessionToken,
        }
 
        // Add a payload body, which will not be part of the signature calculation
        body := nopCloser{strings.NewReader(`Example payload body`)}
 
        req, _ := http.NewRequest(http.MethodPost, url.value, body)
 
        // Create a sigv4a signer with specific options
        signer := sigv4a.New(func(o *v4.SignerOptions) {
                o.DisableDoublePathEscape = true
                // This will add the UNSIGNED-PAYLOAD sha256 header
                o.AddPayloadHashHeader = true
                o.DisableImplicitPayloadHashing = true
        })
 
        // Create a slice out of the provided regionset
        rs := strings.Split(regionSet.value, ",")
 
        // Perform the signing on req, using the credentials we retrieved from the SDK
        err = signer.SignRequest(&sigv4a.SignRequestInput{
                Request:     req,
                Credentials: creds,
                Service:     "vpc-lattice-svcs",
                RegionSet: rs,
        })
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        res, err := httputil.DumpRequest(req, true)
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Raw request\n%s\n", string(res))
 
        log.Printf("[*] Sending request to %s\n", url.value)
 
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Request sent\n")
 
        log.Printf("[*] Response status code: %d\n", resp.StatusCode)
 
        respBody, err := io.ReadAll(resp.Body)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Response body: \n%s\n", respBody)
}
```

------

## Golang - GRPC
<a name="sigv4-authenticated-requests-golang-grpc"></a>

Questo esempio utilizza l'[AWS SDK per il linguaggio di programmazione Go per gestire la](https://github.com/aws/aws-sdk-go-v2/) firma delle richieste per le richieste GRPC. Questo può essere usato con il [server echo](https://github.com/grpc/grpc-go/tree/master/examples/features/proto/echo) del repository di codici di esempio GRPC.

```
package main

import (
    "context"
    "crypto/tls"
    "crypto/x509"

    "flag"
    "fmt"
    "log"
    "net/http"
    "net/url"
    "strings"
    "time"

    "google.golang.org/grpc"
    "google.golang.org/grpc/credentials"

    "github.com/aws/aws-sdk-go-v2/aws"
    v4 "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
    "github.com/aws/aws-sdk-go-v2/config"

    ecpb "google.golang.org/grpc/examples/features/proto/echo"
)

const (
    headerContentSha    = "x-amz-content-sha256"
    headerSecurityToken = "x-amz-security-token"
    headerDate          = "x-amz-date"
    headerAuthorization = "authorization"
    unsignedPayload     = "UNSIGNED-PAYLOAD"
)

type SigV4GrpcSigner struct {
    service      string
    region       string
    credProvider aws.CredentialsProvider
    signer       *v4.Signer
}

func NewSigV4GrpcSigner(service string, region string, credProvider aws.CredentialsProvider) *SigV4GrpcSigner {
    signer := v4.NewSigner()
    return &SigV4GrpcSigner{
        service:      service,
        region:       region,
        credProvider: credProvider,
        signer:       signer,
    }
}

func (s *SigV4GrpcSigner) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {
    ri, _ := credentials.RequestInfoFromContext(ctx)
    creds, err := s.credProvider.Retrieve(ctx)
    if err != nil {
        return nil, fmt.Errorf("failed to load credentials: %w", err)
    }

    // The URI we get here is scheme://authority/service/ - for siging we want to include the RPC name
    // But RequestInfoFromContext only has the combined /service/rpc-name - so read the URI, and
    // replace the Path with what we get from RequestInfo.
    parsed, err := url.Parse(uri[0])
    if err != nil {
        return nil, err
    }
    parsed.Path = ri.Method

    // Build a request for the signer.
    bodyReader := strings.NewReader("")
    req, err := http.NewRequest("POST", uri[0], bodyReader)
    if err != nil {
        return nil, err
    }
    date := time.Now()
    req.Header.Set(headerContentSha, unsignedPayload)
    req.Header.Set(headerDate, date.String())
    if creds.SessionToken != "" {
        req.Header.Set(headerSecurityToken, creds.SessionToken)
    }
    // The signer wants this as //authority/path
    // So get this by triming off the scheme and the colon before the first slash.
    req.URL.Opaque = strings.TrimPrefix(parsed.String(), parsed.Scheme+":")

    err = s.signer.SignHTTP(context.Background(), creds, req, unsignedPayload, s.service, s.region, date)
    if err != nil {
        return nil, fmt.Errorf("failed to sign request: %w", err)
    }

    // Pull the relevant headers out of the signer, and return them to get
    // included in the request we make.
    reqHeaders := map[string]string{
        headerContentSha:    req.Header.Get(headerContentSha),
        headerDate:          req.Header.Get(headerDate),
        headerAuthorization: req.Header.Get(headerAuthorization),
    }
    if req.Header.Get(headerSecurityToken) != "" {
        reqHeaders[headerSecurityToken] = req.Header.Get(headerSecurityToken)
    }

    return reqHeaders, nil
}

func (c *SigV4GrpcSigner) RequireTransportSecurity() bool {
    return true
}

var addr = flag.String("addr", "some-lattice-service:443", "the address to connect to")
var region = flag.String("region", "us-west-2", "region")

func callUnaryEcho(client ecpb.EchoClient, message string) {
    ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
    defer cancel()
    resp, err := client.UnaryEcho(ctx, &ecpb.EchoRequest{Message: message})
    if err != nil {
        log.Fatalf("client.UnaryEcho(_) = _, %v: ", err)
    }
    fmt.Println("UnaryEcho: ", resp.Message)
}

func main() {
    flag.Parse()
    cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
    if err != nil {
        log.Fatalf("failed to load SDK configuration, %v", err)
    }

    pool, _ := x509.SystemCertPool()
    tlsConfig := &tls.Config{
        RootCAs: pool,
    }

    authority, _, _ := strings.Cut(*addr, ":") // Remove the port from the addr
    opts := []grpc.DialOption{
        grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)),

        // Lattice needs both the Authority to be set (without a port), and the SigV4 signer
        grpc.WithAuthority(authority),
        grpc.WithPerRPCCredentials(NewSigV4GrpcSigner("vpc-lattice-svcs", *region, cfg.Credentials)),
    }

    conn, err := grpc.Dial(*addr, opts...)

    if err != nil {
        log.Fatalf("did not connect: %v", err)
    }
    defer conn.Close()
    rgc := ecpb.NewEchoClient(conn)

    callUnaryEcho(rgc, "hello world")
}
```

# Protezione dei dati in Amazon VPC Lattice
<a name="data-protection"></a>

Il modello di [responsabilità AWS condivisa modello](https://aws.amazon.com/compliance/shared-responsibility-model/) si applica alla protezione dei dati in Amazon VPC Lattice. Come descritto in questo modello, AWS è responsabile della protezione dell'infrastruttura globale che gestisce tutti i. Cloud AWS L'utente è responsabile di mantenere il controllo sui contenuti ospitati su questa infrastruttura. Questi contenuti comprendono la configurazione della protezione e le attività di gestione per i Servizi AWS utilizzati. Per ulteriori informazioni sulla privacy dei dati, vedi le [Domande frequenti sulla privacy dei dati](https://aws.amazon.com/compliance/data-privacy-faq/). Per informazioni sulla protezione dei dati in Europa, consulta il post del blog relativo al [AWS Modello di responsabilità condivisa e GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) nel *AWS Blog sulla sicurezza*.

## Crittografia dei dati in transito
<a name="encryption-transit"></a>

VPC Lattice è un servizio completamente gestito che consiste in un piano di controllo e un piano dati. Ogni piano ha uno scopo distinto nel servizio. Il piano di controllo fornisce le risorse amministrative APIs utilizzate per creare, leggere/descrivere, aggiornare, eliminare ed elencare le risorse (CRUDL) (ad esempio e). `CreateService` `UpdateService` Le comunicazioni verso il piano di controllo VPC Lattice sono protette in transito da TLS. Il piano dati è l'API VPC Lattice Invoke, che fornisce l'interconnessione tra i servizi. TLS crittografa le comunicazioni sul piano dati VPC Lattice quando utilizzi HTTPS o TLS. La suite di crittografia e la versione del protocollo utilizzano i valori predefiniti forniti da VPC Lattice e non sono configurabili. Per ulteriori informazioni, consulta [Listener HTTPS per servizi VPC Lattice](https-listeners.md).

## Crittografia dei dati a riposo
<a name="encryption-rest"></a>

Per impostazione predefinita, la crittografia dei dati inattivi aiuta a ridurre il sovraccarico operativo e la complessità associati alla protezione dei dati sensibili. Allo stesso tempo, consente di creare applicazioni sicure che soddisfano i rigorosi requisiti normativi e di conformità alla crittografia.

**Topics**
+ [

### Crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3)
](#s3-managed-keys)
+ [

### Crittografia lato server con AWS KMS chiavi memorizzate in (SSE-KMS) AWS KMS
](#kms-managed-keys)

### Crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3)
<a name="s3-managed-keys"></a>

Quando usi la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3), ogni oggetto viene crittografato con una chiave univoca. Come ulteriore protezione, crittografiamo la chiave stessa con una chiave radice che ruotiamo regolarmente. Per crittografare i dati, la crittografia lato server di Simple Storage Service (Amazon S3) utilizza una delle crittografie di blocco più complesse disponibili, lo standard di crittografia avanzata a 256 bit (AES-256). Per gli oggetti crittografati prima di AES-GCM, è ancora supportato AES-CBC per decrittare tali oggetti. Per ulteriori informazioni, consulta [Uso della crittografia lato server con le chiavi di crittografia gestite da Amazon S3 (SSE-S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)).

Se abiliti la crittografia lato server con chiavi di crittografia gestite da Amazon S3 (SSE-S3) per il tuo bucket S3 per i log di accesso VPC Lattice, crittografiamo automaticamente ogni file di log di accesso prima che venga archiviato nel tuo bucket S3. Per ulteriori informazioni, consulta [Logs sent to Amazon S3 nella * CloudWatch Amazon*](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3) User Guide.

### Crittografia lato server con AWS KMS chiavi memorizzate in (SSE-KMS) AWS KMS
<a name="kms-managed-keys"></a>

La crittografia lato server con AWS KMS chiavi (SSE-KMS) è simile a SSE-S3, ma con vantaggi e costi aggiuntivi per l'utilizzo di questo servizio. Esistono autorizzazioni separate per la AWS KMS chiave che forniscono una protezione aggiuntiva contro l'accesso non autorizzato ai tuoi oggetti in Amazon S3. SSE-KMS fornisce anche una pista di controllo che mostra quando è stata utilizzata la AWS KMS chiave e da chi. Per ulteriori informazioni, vedere [Utilizzo della crittografia lato server con (SSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)). AWS Key Management Service 

**Topics**
+ [

#### Crittografia e decrittografia della chiave privata del certificato
](#private-key)
+ [

#### Contesto di crittografia per VPC Lattice
](#encryption-context)
+ [

#### Monitoraggio delle chiavi di crittografia per VPC Lattice
](#monitoring-encryption-keys)

#### Crittografia e decrittografia della chiave privata del certificato
<a name="private-key"></a>

**Il certificato ACM e la chiave privata sono crittografati utilizzando una chiave KMS AWS gestita con l'alias aws/acm.** **Puoi visualizzare l'ID della chiave con questo alias nella console sotto chiavi gestite. AWS KMS AWS **

VPC Lattice non accede direttamente alle tue risorse ACM. Utilizza AWS TLS Connection Manager per proteggere e accedere alle chiavi private del certificato. Quando si utilizza il certificato ACM per creare un servizio VPC Lattice, VPC Lattice associa il certificato a TLS Connection Manager. AWS **Questo viene fatto creando una concessione per la tua Managed Key con il prefisso AWS KMS aws/acm AWS .** La concessione è uno strumento delle policy che permette a TLS Connection Manager di usare le chiavi KMS nelle operazioni di crittografia. La concessione consente al principale assegnatario (TLS Connection Manager) di chiamare le operazioni di concessione specificate nella chiave KMS per decrittografare la chiave privata del certificato. TLS Connection Manager utilizza quindi il certificato e la chiave privata decrittografata (testo semplice) per stabilire una connessione sicura (sessione SSL/TLS) con i client dei servizi VPC Lattice. Quando il certificato viene dissociato da un servizio VPC Lattice, la concessione viene ritirata.

Se desideri rimuovere l'accesso alla chiave KMS, ti consigliamo di sostituire o eliminare il certificato dal servizio utilizzando Console di gestione AWS o il comando in. `update-service` AWS CLI

#### Contesto di crittografia per VPC Lattice
<a name="encryption-context"></a>

Un [contesto di crittografia](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) è un insieme opzionale di coppie chiave-valore che contengono informazioni contestuali sullo scopo per cui potrebbe essere utilizzata la chiave privata. AWS KMS associa il contesto di crittografia ai dati crittografati e lo utilizza come dati autenticati aggiuntivi per supportare la crittografia autenticata.

Quando le chiavi TLS vengono utilizzate con VPC Lattice e TLS Connection Manager, il nome del servizio VPC Lattice viene incluso nel contesto di crittografia utilizzato per crittografare la chiave inattiva. Puoi verificare per quale servizio VPC Lattice vengono utilizzati il tuo certificato e la tua chiave privata visualizzando il contesto di crittografia nei tuoi CloudTrail log, come mostrato nella sezione successiva, o consultando la scheda **Risorse associate nella console** ACM.

Per decrittografare i dati, includere nella richiesta lo stesso contesto di crittografia. VPC Lattice utilizza lo stesso contesto di crittografia in tutte le operazioni crittografiche AWS KMS, in cui la chiave è `aws:vpc-lattice:arn` e il valore è l'Amazon Resource Name (ARN) del servizio VPC Lattice.

L'esempio illustrato di seguito mostra il contesto di crittografia nell'output di un'operazione come `CreateGrant`.

```
"encryptionContextEquals": {
    "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
}
```

#### Monitoraggio delle chiavi di crittografia per VPC Lattice
<a name="monitoring-encryption-keys"></a>

Quando utilizzi una chiave AWS gestita con il tuo servizio VPC Lattice, puoi utilizzarla [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)per tenere traccia delle richieste a cui invia VPC Lattice. AWS KMS

**CreateGrant**  
Quando aggiungi il tuo certificato ACM a un servizio VPC Lattice, viene inviata `CreateGrant` una richiesta per tuo conto affinché TLS Connection Manager sia in grado di decrittografare la chiave privata associata al tuo certificato ACM

**È possibile visualizzare l'`CreateGrant`operazione come evento in, Cronologia eventi,. **CloudTrail**CreateGrant******

Di seguito è riportato un esempio di record di CloudTrail eventi nella cronologia degli eventi dell'`CreateGrant`operazione.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn:aws:iam::111122223333:user/Alice",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE_KEY_ID",
        "sessionContext": {
            "sessionIssuer": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::111122223333:user/Alice",
                "accountId": "111122223333",
                "userName": "Alice"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-02-06T23:30:50Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "acm.amazonaws.com"
    },
    "eventTime": "2023-02-07T00:07:18Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "acm.amazonaws.com",
    "userAgent": "acm.amazonaws.com",
    "requestParameters": {
        "granteePrincipal": "tlsconnectionmanager.amazonaws.com",
        "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "operations": [
            "Decrypt"
        ],
        "constraints": {
            "encryptionContextEquals": {
                "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
            }
        },
        "retiringPrincipal": "acm.us-west-2.amazonaws.com"
    },
    "responseElements": {
        "grantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    },
    "requestID": "ba178361-8ab6-4bdd-9aa2-0d1a44b2974a",
    "eventID": "8d449963-1120-4d0c-9479-f76de11ce609",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

Nell'`CreateGrant`esempio precedente, il principale beneficiario è TLS Connection Manager e il contesto di crittografia ha il servizio VPC Lattice ARN.

**ListGrants**  
Puoi usare l'ID della tua chiave KMS e l'ID del tuo account per chiamare l'API. `ListGrants` In questo modo otterrai un elenco di tutte le concessioni per la chiave KMS specificata. Per ulteriori informazioni, consulta [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html).

Usa il seguente `ListGrants` comando in AWS CLI per vedere i dettagli di tutte le sovvenzioni.

```
aws kms list-grants —key-id your-kms-key-id
```

Di seguito è riportato un output di esempio.

```
{
    "Grants": [
        {
            "Operations": [
                "Decrypt"
            ], 
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", 
            "Name": "IssuedThroughACM", 
            "RetiringPrincipal": "acm.us-west-2.amazonaws.com", 
            "GranteePrincipal": "tlsconnectionmanager.amazonaws.com", 
            "GrantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758", 
            "IssuingAccount": "arn:aws:iam::111122223333:root", 
            "CreationDate": "2023-02-06T23:30:50Z", 
            "Constraints": {
                "encryptionContextEquals": {
                  "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                  "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
                }
            }
        }
    ]
}
```

Nell'`ListGrants`esempio precedente, il principale beneficiario è TLS Connection Manager e il contesto di crittografia ha il servizio VPC Lattice ARN.

**Decrypt**  
VPC Lattice utilizza TLS Connection Manager per richiamare l'`Decrypt`operazione di decrittografia della chiave privata al fine di servire le connessioni TLS nel servizio VPC Lattice. ****È possibile visualizzare l'`Decrypt`operazione come un evento in Cronologia eventi, Decrypt. **CloudTrail******

Di seguito è riportato un esempio di record di eventi nella cronologia CloudTrail degli eventi dell'`Decrypt`operazione.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "tlsconnectionmanager.amazonaws.com"
    },
    "eventTime": "2023-02-07T00:07:23Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "tlsconnectionmanager.amazonaws.com",
    "userAgent": "tlsconnectionmanager.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
        },
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "12345126-30d5-4b28-98b9-9153da559963",
    "eventID": "abcde202-ba1a-467c-b4ba-f729d45ae521",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "sharedEventID": "abcde202-ba1a-467c-b4ba-f729d45ae521",
    "eventCategory": "Management"
}
```

# Gestione delle identità e degli accessi per Amazon VPC Lattice
<a name="security-iam"></a>

Le sezioni seguenti descrivono come utilizzare AWS Identity and Access Management (IAM) per proteggere le risorse VPC Lattice, controllando chi può eseguire le azioni dell'API VPC Lattice.

**Topics**
+ [

# Come funziona Amazon VPC Lattice con IAM
](security_iam_service-with-iam.md)
+ [

# Autorizzazioni dell'API Amazon VPC Lattice
](additional-api-permissions.md)
+ [

# Policy basate sull'identità per Amazon VPC Lattice
](security_iam_id-based-policies.md)
+ [

# Utilizzo di ruoli collegati ai servizi per Amazon VPC Lattice
](using-service-linked-roles.md)
+ [

# AWS politiche gestite per Amazon VPC Lattice
](managed-policies.md)

# Come funziona Amazon VPC Lattice con IAM
<a name="security_iam_service-with-iam"></a>

Prima di utilizzare IAM per gestire l'accesso a VPC Lattice, scopri quali funzionalità IAM sono disponibili per l'uso con VPC Lattice.




| Funzionalità IAM | Supporto VPC Lattice | 
| --- | --- | 
|  [Policy basate sull’identità](#security_iam_service-with-iam-id-based-policies)  |   Sì  | 
|  [Policy basate su risorse](#security_iam_service-with-iam-resource-based-policies)  |   Sì  | 
|  [Operazioni di policy](#security_iam_service-with-iam-id-based-policies-actions)  |   Sì  | 
|  [Risorse relative alle policy](#security_iam_service-with-iam-id-based-policies-resources)  |   Sì  | 
|  [Chiavi di condizione delle policy](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Sì  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   No   | 
|  [ABAC (tag nelle policy)](#security_iam_service-with-iam-tags)  |   Sì  | 
|  [Credenziali temporanee](#security_iam_service-with-iam-roles-tempcreds)  |   Sì  | 
|  [Ruoli di servizio](#security_iam_service-with-iam-roles-service)  |   No   | 
|  [Ruoli collegati al servizio](#security_iam_service-with-iam-roles-service-linked)  |   Sì  | 

*Per una visione di alto livello di come VPC Lattice e AWS altri servizi funzionano con la maggior parte delle funzionalità IAM, [AWS consulta i servizi che funzionano con](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) IAM nella IAM User Guide.*

## Policy basate sull'identità per VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Supporta le policy basate sull’identità:** sì

Le policy basate sull'identità sono documenti di policy di autorizzazione JSON che è possibile allegare a un'identità (utente, gruppo di utenti o ruolo IAM). Tali policy definiscono le operazioni che utenti e ruoli possono eseguire, su quali risorse e in quali condizioni. Per informazioni su come creare una policy basata su identità, consulta [Definizione di autorizzazioni personalizzate IAM con policy gestite dal cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) nella *Guida per l’utente di IAM*.

Con le policy basate sull’identità di IAM, è possibile specificare quali operazioni e risorse sono consentite o respinte, nonché le condizioni in base alle quali le operazioni sono consentite o respinte. Per informazioni su tutti gli elementi utilizzabili in una policy JSON, consulta [Guida di riferimento agli elementi delle policy JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) nella *Guida per l’utente IAM*.

## Policy basate sulle risorse all'interno di VPC Lattice
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Supporta le policy basate sulle risorse**: sì

Le politiche basate sulle risorse sono documenti di policy JSON allegati a una risorsa in. AWS Nei AWS servizi che supportano le politiche basate sulle risorse, gli amministratori del servizio possono utilizzarli per controllare l'accesso a una risorsa specifica di quel servizio. AWS Quando è collegata a una risorsa, una policy definisce le operazioni che un principale può eseguire su tale risorsa e a quali condizioni. In una policy basata sulle risorse è obbligatorio specificare un’entità principale.

VPC Lattice supporta *le politiche di autenticazione*, una politica basata sulle risorse che consente di controllare l'accesso ai servizi nella rete di servizi. Per ulteriori informazioni, consulta [Controlla l'accesso ai servizi VPC Lattice utilizzando le policy di autenticazione](auth-policies.md).

VPC Lattice supporta anche politiche di autorizzazione basate sulle risorse per l'integrazione con. AWS Resource Access ManagerÈ possibile utilizzare queste politiche basate sulle risorse per concedere l'autorizzazione a gestire la connettività ad altri AWS account o organizzazioni per servizi, configurazioni di risorse e reti di servizi. Per ulteriori informazioni, consulta [Condivisione delle entità di VPC Lattice](sharing.md).

## Azioni politiche per VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Supporta le operazioni di policy:** si

In una dichiarazione di policy IAM, è possibile specificare qualsiasi operazione API per qualsiasi servizio che supporta IAM. Per VPC Lattice, utilizza il seguente prefisso con il nome dell'azione API:. `vpc-lattice:` For example: `vpc-lattice:CreateService`, `vpc-lattice:CreateTargetGroup` e `vpc-lattice:PutAuthPolicy`.

Per specificare più azioni in una sola istruzione, separa ciascuna di esse con una virgola, come mostrato di seguito:

```
"Action": [ "vpc-lattice:action1", "vpc-lattice:action2" ]
```

Puoi anche specificare più operazioni tramite caratteri jolly. Ad esempio, puoi specificare tutte le operazioni i cui nomi iniziano con la parola `Get` come segue:

```
"Action": "vpc-lattice:Get*"
```

*Per un elenco completo delle azioni dell'API VPC Lattice, consulta Azioni definite [da Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html#amazonvpclattice-actions-as-permissions) nel Service Authorization Reference.*

## Risorse politiche per VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Supporta le risorse relative alle policy:** sì

In una dichiarazione di policy IAM, l’elemento `Resource` specifica l’oggetto o gli oggetti coperti dall’istruzione. Per VPC Lattice, ogni dichiarazione di policy IAM si applica alle risorse specificate utilizzando le relative. ARNs

Il formato specifico di Amazon Resource Name (ARN) dipende dalla risorsa. Quando fornisci un ARN, sostituisci il *italicized* testo con le informazioni specifiche della risorsa. 
+ **Accedere agli abbonamenti ai registri:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:accesslogsubscription/access-log-subscription-id"
  ```
+ **Ascoltatori:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id/listener/listener-id"
  ```
+ **Gateway per le risorse**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:resourcegateway/resource-gateway-id"
  ```
+ **Configurazione delle risorse**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:resourceconfiguration/resource-configuration-id"
  ```
+ **Regole:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id/listener/listener-id/rule/rule-id"
  ```
+ **Servizi:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id"
  ```
+ **Reti di servizio:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetwork/service-network-id"
  ```
+ **Associazioni di servizi di rete di servizi:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkserviceassociation/service-network-service-association-id"
  ```
+ **Associazioni di configurazione delle risorse di rete di servizio**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkresourceassociation/service-network-resource-association-id"
  ```
+ **Associazioni VPC della rete di assistenza:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkvpcassociation/service-network-vpc-association-id"
  ```
+ **Gruppi target:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:targetgroup/target-group-id"
  ```

## Chiavi delle condizioni di policy per VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Supporta le chiavi di condizione delle policy specifiche del servizio:** sì

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. In altre parole, quale **entità principale** può eseguire **operazioni** su quali **risorse** e in quali **condizioni**.

L’elemento `Condition` specifica quando le istruzioni vengono eseguite in base a criteri definiti. È possibile compilare espressioni condizionali che utilizzano [operatori di condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), ad esempio uguale a o minore di, per soddisfare la condizione nella policy con i valori nella richiesta. Per visualizzare tutte le chiavi di condizione AWS globali, consulta le chiavi di [contesto delle condizioni AWS globali nella Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) per l'*utente IAM*.

*Per visualizzare un elenco delle chiavi di condizione di VPC Lattice, consulta Condition keys [for Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html#amazonvpclattice-policy-keys) nel Service Authorization Reference.*

AWS supporta chiavi di condizione globali e chiavi di condizione specifiche del servizio. Per informazioni sulle chiavi di condizione AWS globali, consulta le chiavi di [contesto delle condizioni AWS globali nella Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) per l'*utente IAM*.

## Elenchi di controllo degli accessi (ACLs) in VPC Lattice
<a name="security_iam_service-with-iam-acls"></a>

**Supporti ACLs**: no 

Le liste di controllo degli accessi (ACLs) controllano quali principali (membri dell'account, utenti o ruoli) dispongono delle autorizzazioni per accedere a una risorsa. ACLs sono simili alle politiche basate sulle risorse, sebbene non utilizzino il formato del documento di policy JSON.

## Controllo degli accessi basato sugli attributi (ABAC) con VPC Lattice
<a name="security_iam_service-with-iam-tags"></a>

**Supporta ABAC (tag nelle policy):** sì

Il controllo degli accessi basato su attributi (ABAC) è una strategia di autorizzazione che definisce le autorizzazioni in base ad attributi chiamati tag. Puoi allegare tag a entità e AWS risorse IAM, quindi progettare politiche ABAC per consentire le operazioni quando il tag del principale corrisponde al tag sulla risorsa.

Per controllare l’accesso basato su tag, fornire informazioni sui tag nell’[elemento condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) di una policy utilizzando le chiavi di condizione `aws:ResourceTag/key-name`, `aws:RequestTag/key-name` o `aws:TagKeys`.

Se un servizio supporta tutte e tre le chiavi di condizione per ogni tipo di risorsa, il valore per il servizio è **Sì**. Se un servizio supporta tutte e tre le chiavi di condizione solo per alcuni tipi di risorsa, allora il valore sarà **Parziale**.

Per maggiori informazioni su ABAC, consulta [Definizione delle autorizzazioni con autorizzazione ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) nella *Guida per l’utente di IAM*. Per visualizzare un tutorial con i passaggi per l’impostazione di ABAC, consulta [Utilizzo del controllo degli accessi basato su attributi (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) nella *Guida per l’utente di IAM*.

## Utilizzo di credenziali temporanee con VPC Lattice
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Supporta le credenziali temporanee:** sì

Le credenziali temporanee forniscono l'accesso a breve termine alle AWS risorse e vengono create automaticamente quando si utilizza la federazione o si cambia ruolo. AWS consiglia di generare dinamicamente credenziali temporanee anziché utilizzare chiavi di accesso a lungo termine. Per ulteriori informazioni, consulta [Credenziali di sicurezza temporanee in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) e [Servizi AWS compatibili con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) nella *Guida per l’utente IAM*.

## Ruoli di servizio per VPC Lattice
<a name="security_iam_service-with-iam-roles-service"></a>

**Supporta i ruoli di servizio:** no 

 Un ruolo di servizio è un [ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) che un servizio assume per eseguire operazioni per tuo conto. Un amministratore IAM può creare, modificare ed eliminare un ruolo di servizio dall’interno di IAM. Per ulteriori informazioni, consulta [Create a role to delegate permissions to an Servizio AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) nella *Guida per l’utente IAM*. 

**avvertimento**  
La modifica delle autorizzazioni per un ruolo di servizio potrebbe interrompere la funzionalità VPC Lattice. Modifica i ruoli di servizio solo quando VPC Lattice fornisce indicazioni in tal senso.

## Ruoli collegati ai servizi per VPC Lattice
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Supporta i ruoli collegati ai servizi:** sì

 Un ruolo collegato al servizio è un tipo di ruolo di servizio collegato a un. Servizio AWS Il servizio può assumere il ruolo per eseguire un’operazione per tuo conto. I ruoli collegati al servizio vengono visualizzati in Account AWS e sono di proprietà del servizio. Un amministratore IAM può visualizzare le autorizzazioni per i ruoli collegati al servizio, ma non modificarle. 

Per informazioni sulla creazione o la gestione di ruoli collegati ai servizi VPC Lattice, vedere. [Utilizzo di ruoli collegati ai servizi per Amazon VPC Lattice](using-service-linked-roles.md)

# Autorizzazioni dell'API Amazon VPC Lattice
<a name="additional-api-permissions"></a>

È necessario concedere alle identità IAM (come utenti o ruoli) l'autorizzazione a richiamare le azioni dell'API VPC Lattice di cui hanno bisogno, come descritto in. [Azioni politiche per VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions) Inoltre, per alcune azioni VPC Lattice, devi concedere alle identità IAM l'autorizzazione a richiamare azioni specifiche di altri. AWS APIs

## Autorizzazioni richieste per le API
<a name="required-API-permissions"></a>

Quando richiami le seguenti azioni dall'API, devi concedere agli utenti IAM l'autorizzazione a chiamare le azioni specificate.

`CreateResourceConfiguration`  
+ `vpc-lattice:CreateResourceConfiguration`
+ `ec2:DescribeSubnets`
+ `rds:DescribeDBInstances`
+ `rds:DescribeDBClusters`

`CreateResourceGateway`  
+ `vpc-lattice:CreateResourceGateway`
+ `ec2:AssignPrivateIpAddresses`
+ `ec2:AssignIpv6Addresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`

`DeleteResourceGateway`  
+ `vpc-lattice:DeleteResourceGateway`
+ `ec2:DeleteNetworkInterface`

`UpdateResourceGateway`  
+ `vpc-lattice:UpdateResourceGateway`
+ `ec2:AssignPrivateIpAddresses`
+ `ec2:AssignIpv6Addresses`
+ `ec2:UnassignPrivateIpAddresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:ModifyNetworkInterfaceAttribute`

`CreateServiceNetworkResourceAssociation`  
+ `vpc-lattice:CreateServiceNetworkResourceAssociation`
+ `ec2:AssignIpv6Addresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DescribeNetworkInterfaces`

`CreateServiceNetworkVpcAssociation`  
+ `vpc-lattice:CreateServiceNetworkVpcAssociation`
+ `ec2:DescribeVpcs`
+ `ec2:DescribeSecurityGroups`(Necessario solo quando vengono forniti gruppi di sicurezza)

`UpdateServiceNetworkVpcAssociation`  
+ `vpc-lattice:UpdateServiceNetworkVpcAssociation`
+ `ec2:DescribeSecurityGroups`(Necessario solo quando vengono forniti gruppi di sicurezza)

`CreateTargetGroup`  
+ `vpc-lattice:CreateTargetGroup`
+ `ec2:DescribeVpcs`

`RegisterTargets`  
+ `vpc-lattice:RegisterTargets`
+ `ec2:DescribeInstances`(Necessario solo quando `INSTANCE` si tratta del tipo di gruppo target)
+ `ec2:DescribeVpcs`(Necessario solo quando `INSTANCE` o `IP` è il tipo di gruppo target)
+ `ec2:DescribeSubnets`(Necessario solo quando `INSTANCE` o `IP` è il tipo di gruppo target)
+ `lambda:GetFunction`(Necessario solo quando `LAMBDA` si tratta del tipo di gruppo target)
+ `lambda:AddPermission`(Necessario solo se il gruppo target non dispone già dell'autorizzazione per richiamare la funzione Lambda specificata)

`DeregisterTargets`  
+ `vpc-lattice:DeregisterTargets`

`CreateAccessLogSubscription`  
+ `vpc-lattice:CreateAccessLogSubscription`
+ `logs:GetLogDelivery`
+ `logs:CreateLogDelivery`

`DeleteAccessLogSubscription`  
+ `vpc-lattice:DeleteAccessLogSubscription`
+ `logs:DeleteLogDelivery`

`UpdateAccessLogSubscription`  
+ `vpc-lattice:UpdateAccessLogSubscription`
+ `logs:UpdateLogDelivery`

# Policy basate sull'identità per Amazon VPC Lattice
<a name="security_iam_id-based-policies"></a>

Per impostazione predefinita, gli utenti e i ruoli non dispongono dell'autorizzazione per creare o modificare risorse VPC Lattice. Per concedere agli utenti l’autorizzazione a eseguire azioni sulle risorse di cui hanno bisogno, un amministratore IAM può creare policy IAM.

Per informazioni su come creare una policy basata su identità IAM utilizzando questi documenti di policy JSON di esempio, consulta [Creazione di policy IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) nella *Guida per l’utente di IAM*.

*Per dettagli sulle azioni e sui tipi di risorse definiti da VPC Lattice, incluso il formato di ARNs per ogni tipo di risorsa, consulta [Actions, Resources and Condition Keys for Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html) nel Service Authorization Reference.*

**Topics**
+ [

## Best practice per le policy
](#security_iam_service-with-iam-policy-best-practices)
+ [

## Autorizzazioni aggiuntive richieste per l'accesso completo
](#security_iam_id-based-policy-additional-permissions)
+ [

## Esempi di policy basate sull'identità per VPC Lattice
](#security_iam_id-based-policy-examples)

## Best practice per le policy
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Le politiche basate sull'identità determinano se qualcuno può creare, accedere o eliminare le risorse VPC Lattice nel tuo account. Queste azioni possono comportare costi aggiuntivi per l’ Account AWS. Quando si creano o modificano policy basate sull’identità, seguire queste linee guida e raccomandazioni:
+ **Inizia con le policy AWS gestite e passa alle autorizzazioni con privilegi minimi: per iniziare a concedere autorizzazioni** *a utenti e carichi di lavoro, utilizza le policy gestite che concedono le autorizzazioni per molti casi d'uso comuni.AWS * Sono disponibili nel tuo. Account AWS Ti consigliamo di ridurre ulteriormente le autorizzazioni definendo politiche gestite dai AWS clienti specifiche per i tuoi casi d'uso. Per maggiori informazioni, consulta [Policy gestite da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) o [Policy gestite da AWS per le funzioni dei processi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) nella *Guida per l’utente di IAM*.
+ **Applicazione delle autorizzazioni con privilegio minimo** - Quando si impostano le autorizzazioni con le policy IAM, concedere solo le autorizzazioni richieste per eseguire un’attività. È possibile farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come *autorizzazioni con privilegio minimo*. Per maggiori informazioni sull’utilizzo di IAM per applicare le autorizzazioni, consulta [Policy e autorizzazioni in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) nella *Guida per l’utente di IAM*.
+ **Condizioni d’uso nelle policy IAM per limitare ulteriormente l’accesso** - Per limitare l’accesso ad azioni e risorse è possibile aggiungere una condizione alle policy. Ad esempio, è possibile scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzando SSL. Puoi anche utilizzare le condizioni per concedere l'accesso alle azioni del servizio se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio CloudFormation. Per maggiori informazioni, consultare la sezione [Elementi delle policy JSON di IAM: condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) nella *Guida per l’utente di IAM*.
+ **Utilizzo dello strumento di analisi degli accessi IAM per convalidare le policy IAM e garantire autorizzazioni sicure e funzionali** - Lo strumento di analisi degli accessi IAM convalida le policy nuove ed esistenti in modo che aderiscano al linguaggio (JSON) della policy IAM e alle best practice di IAM. Lo strumento di analisi degli accessi IAM offre oltre 100 controlli delle policy e consigli utili per creare policy sicure e funzionali. Per maggiori informazioni, consultare [Convalida delle policy per il Sistema di analisi degli accessi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) nella *Guida per l’utente di IAM*.
+ **Richiedi l'autenticazione a più fattori (MFA**): se hai uno scenario che richiede utenti IAM o un utente root nel Account AWS tuo, attiva l'MFA per una maggiore sicurezza. Per richiedere la MFA quando vengono chiamate le operazioni API, aggiungere le condizioni MFA alle policy. Per maggiori informazioni, consultare [Protezione dell’accesso API con MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) nella *Guida per l’utente di IAM*.

Per maggiori informazioni sulle best practice in IAM, consulta [Best practice di sicurezza in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l’utente di IAM*.

## Autorizzazioni aggiuntive richieste per l'accesso completo
<a name="security_iam_id-based-policy-additional-permissions"></a>

Per utilizzare altri AWS servizi con cui è integrato VPC Lattice e l'intera suite di funzionalità VPC Lattice, è necessario disporre di autorizzazioni aggiuntive specifiche. [Queste autorizzazioni non sono incluse nella policy `VPCLatticeFullAccess` gestita a causa del rischio confuso di un'escalation dei privilegi secondari.](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html) 

È necessario allegare la seguente politica al proprio ruolo e utilizzarla insieme alla politica gestita. `VPCLatticeFullAccess`

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "firehose:TagDeliveryStream",
                "lambda:AddPermission",
                "s3:PutBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:PutResourcePolicy"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": [
                        "vpc-lattice.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/vpc-lattice.amazonaws.com/AWSServiceRoleForVpcLattice"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery*"
        }
    ]
}
```

------

Questa politica fornisce le seguenti autorizzazioni aggiuntive:
+ `iam:AttachRolePolicy`: consente di allegare la politica gestita specificata al ruolo IAM specificato. 
+ `iam:PutRolePolicy`: Consente di aggiungere o aggiornare un documento di policy in linea incorporato nel ruolo IAM specificato.
+ `s3:PutBucketPolicy`: consente di applicare una policy sui bucket a un bucket Amazon S3.
+ `firehose:TagDeliveryStream`: consente di aggiungere o aggiornare i tag per i flussi di distribuzione di Firehose.

## Esempi di policy basate sull'identità per VPC Lattice
<a name="security_iam_id-based-policy-examples"></a>

**Topics**
+ [

### Politica di esempio: gestione delle associazioni VPC a una rete di servizi
](#security_iam_id-based-policy-examples-vpc-to-service-network-association)
+ [

### Politica di esempio: creazione di associazioni di servizi a una rete di servizi
](#security_iam_id-based-policy-examples-service-to-service-network-association)
+ [

### Esempio di politica: aggiungere tag alle risorse
](#security_iam_id-based-policy-examples-tag-resources)
+ [

### Politica di esempio: creare un ruolo collegato al servizio
](#security_iam_id-based-policy-examples-service-linked-role)

### Politica di esempio: gestione delle associazioni VPC a una rete di servizi
<a name="security_iam_id-based-policy-examples-vpc-to-service-network-association"></a>

L'esempio seguente mostra una politica che offre agli utenti con questa politica l'autorizzazione a creare, aggiornare ed eliminare le associazioni VPC su una rete di servizi, ma solo per il VPC e la rete di servizi specificati nella condizione. Per ulteriori informazioni su come specificare le chiavi di condizione, consulta [Chiavi delle condizioni di policy per VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:CreateServiceNetworkVpcAssociation",
            "vpc-lattice:UpdateServiceNetworkVpcAssociation",
            "vpc-lattice:DeleteServiceNetworkVpcAssociation"
         ],
         "Resource": [
            "*"
         ],
         "Condition": {
            "StringEquals": { 
               "vpc-lattice:ServiceNetworkArn": "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-903004f88example",
               "vpc-lattice:VpcId": "vpc-1a2b3c4d"
            }
         }
      }
   ]
}
```

------

### Politica di esempio: creazione di associazioni di servizi a una rete di servizi
<a name="security_iam_id-based-policy-examples-service-to-service-network-association"></a>

Se non utilizzi le chiavi di condizione per controllare l'accesso alle risorse VPC Lattice, puoi invece specificare le ARNs risorse nell'`Resource`elemento per controllare l'accesso.

L'esempio seguente mostra una politica che limita le associazioni di servizi a una rete di servizi che gli utenti con questa politica possono creare specificando il servizio e la rete ARNs di servizi che possono essere utilizzati con l'azione API. `CreateServiceNetworkServiceAssociation` Per ulteriori informazioni sulla specificazione dei valori ARN, vedere. [Risorse politiche per VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources)

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:CreateServiceNetworkServiceAssociation"
         ],
         "Resource": [
            "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetworkserviceassociation/*",
            "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-04d5cc9b88example",
            "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-903004f88example"
         ]
      }
   ]
}
```

------

### Esempio di politica: aggiungere tag alle risorse
<a name="security_iam_id-based-policy-examples-tag-resources"></a>

L'esempio seguente mostra una politica che offre agli utenti con questa politica il permesso di creare tag sulle risorse VPC Lattice. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:TagResource"
         ],
         "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:*/*"
      }
   ]
}
```

------

### Politica di esempio: creare un ruolo collegato al servizio
<a name="security_iam_id-based-policy-examples-service-linked-role"></a>

VPC Lattice richiede le autorizzazioni per creare un ruolo collegato ai servizi la prima volta che un utente crea risorse VPC Lattice. Account AWS Se il ruolo collegato al servizio non esiste già, VPC Lattice lo crea nel tuo account. Il ruolo collegato al servizio fornisce le autorizzazioni a VPC Lattice in modo che possa chiamare altri utenti per tuo conto. Servizi AWS Per ulteriori informazioni, consulta [Utilizzo di ruoli collegati ai servizi per Amazon VPC Lattice](using-service-linked-roles.md).

Affinché la creazione automatica di un ruolo riesca, gli utenti devono disporre delle autorizzazioni per l'operazione `iam:CreateServiceLinkedRole`.

```
"Action": "iam:CreateServiceLinkedRole"
```

L'esempio seguente mostra una politica che fornisce agli utenti con questa politica l'autorizzazione a creare un ruolo collegato al servizio per VPC Lattice.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": "iam:CreateServiceLinkedRole",
         "Resource": "arn:aws:iam::*:role/aws-service-role/vpc-lattice.amazonaws.com/AWSServiceRoleForVpcLattice",
         "Condition": {
            "StringLike": {
               "iam:AWSServiceName":"vpc-lattice.amazonaws.com"
            }
         }
      }
   ]
}
```

------

Per ulteriori informazioni, consulta [Autorizzazioni del ruolo collegato ai servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) nella *Guida per l'utente IAM*.

# Utilizzo di ruoli collegati ai servizi per Amazon VPC Lattice
<a name="using-service-linked-roles"></a>

Amazon VPC Lattice utilizza un ruolo collegato al servizio per le autorizzazioni necessarie per chiamare altri utenti per tuo conto. Servizi AWS Per ulteriori informazioni, consulta [Ruoli collegati ai servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) nella *Guida per l’utente di IAM*.

VPC Lattice utilizza il ruolo collegato al servizio denominato. AWSServiceRoleForVpcLattice

## Autorizzazioni di ruolo collegate ai servizi per VPC Lattice
<a name="slr-permissions"></a>

Ai fini dell’assunzione del ruolo, il ruolo collegato ai servizi **AWSServiceRoleForVpcLattice** considera attendibile il seguente servizio:
+ `vpc-lattice.amazonaws.com`

La politica di autorizzazione dei ruoli denominata AWSVpcLatticeServiceRolePolicy consente a VPC Lattice di CloudWatch pubblicare metriche nel namespace. `AWS/VpcLattice` *Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html)il Managed Policy Reference.AWS *

Per consentire a un'entità IAM (come un utente, un gruppo o un ruolo) di creare, modificare o eliminare un ruolo collegato al servizio è necessario configurare le relative autorizzazioni. Per ulteriori informazioni, consulta [Politica di esempio: creare un ruolo collegato al servizio](security_iam_id-based-policies.md#security_iam_id-based-policy-examples-service-linked-role).

## Crea un ruolo collegato ai servizi per VPC Lattice
<a name="create-slr"></a>

Non hai bisogno di creare manualmente un ruolo collegato ai servizi. Quando crei risorse VPC Lattice nell'API Console di gestione AWS AWS , VPC Lattice crea automaticamente il ruolo collegato al servizio. AWS CLI

Se elimini questo ruolo collegato al servizio, è possibile ricrearlo seguendo lo stesso processo utilizzato per ricreare il ruolo nell’account. Quando crei risorse VPC Lattice, VPC Lattice crea nuovamente il ruolo collegato al servizio per te.

## Modifica un ruolo collegato ai servizi per VPC Lattice
<a name="edit-slr"></a>

Puoi modificare la descrizione dell'utilizzo di IAM. **AWSServiceRoleForVpcLattice** Per ulteriori informazioni, consulta [Edit a service-linked role description](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-service-linked-role.html#edit-service-linked-role-iam-console) nella *Guida per l’utente IAM*.

## Eliminare un ruolo collegato al servizio per VPC Lattice
<a name="delete-slr"></a>

Se non hai più bisogno di usare Amazon VPC Lattice, ti consigliamo di eliminarlo. **AWSServiceRoleForVpcLattice**

Puoi eliminare questo ruolo collegato al servizio solo dopo aver eliminato tutte le risorse VPC Lattice presenti nel tuo. Account AWS

Utilizza la console IAM AWS CLI, o l' AWS API per eliminare il ruolo collegato al servizio. **AWSServiceRoleForVpcLattice** Per ulteriori dettagli, consulta [Delete a service-linked role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr) nella *Guida per l’utente IAM*.

Dopo aver eliminato un ruolo collegato al servizio, VPC Lattice crea nuovamente il ruolo quando crei risorse VPC Lattice nel tuo. Account AWS

## Regioni supportate per i ruoli collegati ai servizi VPC Lattice
<a name="slr-regions"></a>

VPC Lattice supporta l'utilizzo di ruoli collegati ai servizi in tutte le regioni in cui il servizio è disponibile.

# AWS politiche gestite per Amazon VPC Lattice
<a name="managed-policies"></a>

Una policy AWS gestita è una policy autonoma creata e amministrata da. AWS AWS le politiche gestite sono progettate per fornire autorizzazioni per molti casi d'uso comuni, in modo da poter iniziare ad assegnare autorizzazioni a utenti, gruppi e ruoli.

Tieni presente che le policy AWS gestite potrebbero non concedere le autorizzazioni con il privilegio minimo per i tuoi casi d'uso specifici, poiché sono disponibili per tutti i clienti. AWS Si consiglia pertanto di ridurre ulteriormente le autorizzazioni definendo [policy gestite dal cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) specifiche per i propri casi d'uso.

Non è possibile modificare le autorizzazioni definite nelle politiche gestite. AWS Se AWS aggiorna le autorizzazioni definite in una politica AWS gestita, l'aggiornamento ha effetto su tutte le identità principali (utenti, gruppi e ruoli) a cui è associata la politica. AWS è più probabile che aggiorni una policy AWS gestita quando ne Servizio AWS viene lanciata una nuova o quando diventano disponibili nuove operazioni API per i servizi esistenti.

Per ulteriori informazioni, consultare [Policy gestite da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) nella *Guida per l'utente di IAM*.

## AWS politica gestita: VPCLattice FullAccess
<a name="vpc-lattice-fullaccess-policy"></a>

Questa policy fornisce l'accesso completo ad Amazon VPC Lattice e un accesso limitato ad altri servizi dipendenti. Include le autorizzazioni per eseguire le seguenti operazioni:
+ ACM: recupera l' SSL/TLS ARN del certificato per i nomi di dominio personalizzati.
+ CloudWatch — Visualizza i registri di accesso e i dati di monitoraggio.
+ CloudWatch Registri: configura e invia i registri di accesso ai registri. CloudWatch 
+ Amazon EC2: configura le interfacce di rete e recupera informazioni sulle istanze EC2 e. VPCs Viene utilizzato per creare configurazioni di risorse, gateway di risorse e gruppi target, configurare associazioni di entità VPC Lattice e registrare destinazioni.
+ Elastic Load Balancing: recupera informazioni su un Application Load Balancer per registrarlo come destinazione.
+ Firehose: recupera informazioni sui flussi di consegna utilizzati per archiviare i log di accesso.
+ Lambda — Recupera informazioni su una funzione Lambda per registrarla come destinazione.
+ Amazon RDS: recupera informazioni su cluster e istanze RDS.
+ Amazon S3: recupera informazioni sui bucket S3 utilizzati per archiviare i log di accesso.

Per vedere le autorizzazioni per questa policy, consulta [VPCLatticeFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeFullAccess.html) nella * Guida di riferimento sulle policy gestite da AWS *.

Per utilizzare altri AWS servizi con cui è integrato VPC Lattice e l'intera suite di funzionalità VPC Lattice, è necessario disporre di autorizzazioni aggiuntive specifiche. [Queste autorizzazioni non sono incluse nella policy `VPCLatticeFullAccess` gestita a causa del rischio confuso di un'escalation dei privilegi secondari.](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html) Per ulteriori informazioni, consulta [Autorizzazioni aggiuntive richieste per l'accesso completo](security_iam_id-based-policies.md#security_iam_id-based-policy-additional-permissions).

## AWS politica gestita: VPCLattice ReadOnlyAccess
<a name="vpc-lattice-read-onlyaccess-policy"></a>

Questa policy fornisce l'accesso in sola lettura ad Amazon VPC Lattice e l'accesso limitato ad altri servizi dipendenti. Include le autorizzazioni per eseguire le seguenti operazioni:
+ ACM: recupera l' SSL/TLS ARN del certificato per i nomi di dominio personalizzati.
+ CloudWatch — Visualizza i registri di accesso e i dati di monitoraggio.
+ CloudWatch Registri: visualizza le informazioni sulla consegna dei log per le sottoscrizioni ai log di accesso.
+ Amazon EC2: recupera informazioni sulle istanze EC2, crea gruppi target e VPCs registra obiettivi.
+ Elastic Load Balancing: recupera informazioni su un Application Load Balancer.
+ Firehose: recupera informazioni sui flussi di consegna per la consegna dei log di accesso.
+ Lambda: visualizza informazioni su una funzione Lambda.
+ Amazon RDS: recupera informazioni su cluster e istanze RDS.
+ Amazon S3: recupera informazioni sui bucket S3 per la consegna dei log di accesso.

Per vedere le autorizzazioni per questa policy, consulta [VPCLatticeReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeReadOnlyAccess.html) nella * Guida di riferimento sulle policy gestite da AWS *.

## AWS politica gestita: VPCLattice ServicesInvokeAccess
<a name="vpc-lattice-services-invoke-access-policy"></a>

Questa policy fornisce l'accesso per richiamare i servizi Amazon VPC Lattice.

Per vedere le autorizzazioni per questa policy, consulta [VPCLatticeServicesInvokeAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeServicesInvokeAccess.html) nella * Guida di riferimento sulle policy gestite da AWS *.

## AWS politica gestita: AWSVpc LatticeServiceRolePolicy
<a name="service-linked-role-policy"></a>

Questa policy è associata a un ruolo collegato al servizio denominato **AWSServiceRoleForVpcLattice**per consentire a VPC Lattice di eseguire azioni per tuo conto. Non è possibile attribuire questa policy alle entità IAM. Per ulteriori informazioni, consulta [Utilizzo di ruoli collegati ai servizi per Amazon VPC Lattice](using-service-linked-roles.md).

Per vedere le autorizzazioni per questa policy, consulta [AWSVpcLatticeServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html) nella * Guida di riferimento sulle policy gestite da AWS *.

## VPC Lattice si aggiorna alle policy gestite AWS
<a name="policy-updates"></a>

Visualizza i dettagli sugli aggiornamenti delle politiche AWS gestite per VPC Lattice da quando questo servizio ha iniziato a tenere traccia di queste modifiche. Per avvisi automatici sulle modifiche a questa pagina, iscriviti al feed RSS per la VPC Lattice User Guide.


| Modifica | Descrizione | Data | 
| --- | --- | --- | 
| [VPCLatticeFullAccess](#vpc-lattice-fullaccess-policy) | VPC Lattice aggiunge autorizzazioni di sola lettura per descrivere i cluster e le istanze di Amazon RDS. | 1 dicembre 2024 | 
| [VPCLatticeReadOnlyAccess](#vpc-lattice-read-onlyaccess-policy) | VPC Lattice aggiunge autorizzazioni di sola lettura per descrivere i cluster e le istanze di Amazon RDS. | 1 dicembre 2024 | 
| [AWSVpcLatticeServiceRolePolicy](#service-linked-role-policy) | VPC Lattice aggiunge le autorizzazioni per consentire a VPC Lattice di creare un'interfaccia di rete gestita dal richiedente. | 1 dicembre 2024 | 
| [VPCLatticeFullAccess](#vpc-lattice-fullaccess-policy) | VPC Lattice aggiunge una nuova policy per concedere le autorizzazioni per l'accesso completo ad Amazon VPC Lattice e l'accesso limitato ad altri servizi dipendenti. | 31 marzo 2023 | 
| [VPCLatticeReadOnlyAccess](#vpc-lattice-read-onlyaccess-policy) | VPC Lattice aggiunge una nuova policy per concedere le autorizzazioni per l'accesso in sola lettura ad Amazon VPC Lattice e l'accesso limitato ad altri servizi dipendenti. | 31 marzo 2023 | 
| [VPCLatticeServicesInvokeAccess](#vpc-lattice-services-invoke-access-policy) | VPC Lattice aggiunge una nuova policy per concedere l'accesso per richiamare i servizi Amazon VPC Lattice. | 31 marzo 2023 | 
| [AWSVpcLatticeServiceRolePolicy](#service-linked-role-policy) | VPC Lattice aggiunge le autorizzazioni al suo ruolo collegato ai servizi per consentire a VPC Lattice di pubblicare metriche nel namespace. CloudWatch AWS/VpcLattice La policy include il permesso di richiamare l'azione dell'API. AWSVpcLatticeServiceRolePolicy CloudWatch [PutMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html) Per ulteriori informazioni, consulta [Utilizzo di ruoli collegati ai servizi per Amazon VPC Lattice](using-service-linked-roles.md). | 5 dicembre 2022 | 
|  VPC Lattice ha iniziato a tracciare le modifiche  |  VPC Lattice ha iniziato a tracciare le modifiche per le sue AWS politiche gestite.  | 5 dicembre 2022 | 

# Convalida della conformità per Amazon VPC Lattice
<a name="compliance-validation"></a>

I revisori di terze parti valutano la sicurezza e la conformità di Amazon VPC Lattice nell'ambito di diversi programmi di AWS conformità. 

Per sapere se un Servizio AWS programma rientra nell'ambito di specifici programmi di conformità, consulta Servizi AWS la sezione [Scope by Compliance Program Servizi AWS](https://aws.amazon.com/compliance/services-in-scope/) e scegli il programma di conformità che ti interessa. Per informazioni generali, consulta Programmi di [AWS conformità Programmi](https://aws.amazon.com/compliance/programs/) di di .

È possibile scaricare report di audit di terze parti utilizzando AWS Artifact. Per ulteriori informazioni, consulta [Scaricamento dei report in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

La vostra responsabilità di conformità durante l'utilizzo Servizi AWS è determinata dalla sensibilità dei dati, dagli obiettivi di conformità dell'azienda e dalle leggi e dai regolamenti applicabili. Per ulteriori informazioni sulla responsabilità di conformità durante l'utilizzo Servizi AWS, consulta la [Documentazione AWS sulla sicurezza](https://docs.aws.amazon.com/security/).

# Accedi ad Amazon VPC Lattice utilizzando gli endpoint dell'interfaccia ()AWS PrivateLink
<a name="vpc-interface-endpoints"></a>

*Puoi stabilire una connessione privata tra il tuo VPC e Amazon VPC Lattice creando un endpoint VPC di interfaccia.* Gli endpoint di interfaccia sono alimentati da [AWS PrivateLink](https://aws.amazon.com/privatelink/)una tecnologia che consente di accedere privatamente a VPC Lattice APIs senza un gateway Internet, un dispositivo NAT, una connessione VPN o una connessione. Direct Connect Le istanze nel tuo VPC non necessitano di indirizzi IP pubblici per comunicare con VPC Lattice. APIs 

Ogni endpoint di interfaccia è rappresentato da una o più interfacce di [rete](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) nelle sottoreti.

## Considerazioni sugli endpoint VPC di interfaccia
<a name="vpc-endpoint-considerations"></a>

[https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html)

VPC Lattice supporta l'esecuzione di chiamate a tutte le sue azioni API dal tuo VPC. 

## Creazione di un endpoint VPC di interfaccia per VPC Lattice
<a name="vpc-endpoint-create"></a>

Puoi creare un endpoint VPC per il servizio VPC Lattice utilizzando la console Amazon VPC o il (). AWS Command Line Interface AWS CLI*Per ulteriori informazioni, consulta [Creare un endpoint VPC di interfaccia nella Guida](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html).AWS PrivateLink *

Crea un endpoint VPC per VPC Lattice utilizzando il seguente nome di servizio: 

`com.amazonaws.region.vpc-lattice`

Se abiliti il DNS privato per l'endpoint, puoi effettuare richieste API a VPC Lattice utilizzando il nome DNS predefinito per la regione, ad esempio. `vpc-lattice.us-east-1.amazonaws.com`

# Resilienza in Amazon VPC Lattice
<a name="disaster-recovery-resiliency"></a>

L'infrastruttura AWS globale è costruita attorno a zone di disponibilità. Regioni AWS 

Regioni AWS forniscono più zone di disponibilità fisicamente separate e isolate, collegate con reti a bassa latenza, ad alto throughput e altamente ridondanti. 

Con le zone di disponibilità è possibile progettare e gestire applicazioni e database che eseguono automaticamente il failover tra zone di disponibilità senza interruzioni. Le zone di disponibilità sono più disponibili, tolleranti ai guasti e scalabili rispetto alle infrastrutture a data center singolo o multiplo tradizionali. 

[Per ulteriori informazioni sulle zone di disponibilità, vedere Global Regioni AWS Infrastructure.AWS](https://aws.amazon.com/about-aws/global-infrastructure/)

# Sicurezza dell'infrastruttura in Amazon VPC Lattice
<a name="infrastructure-security"></a>

In quanto servizio gestito, Amazon VPC Lattice è protetto dalla sicurezza di rete AWS globale. Per informazioni sui servizi di AWS sicurezza e su come AWS protegge l'infrastruttura, consulta [AWS Cloud](https://aws.amazon.com/security/) Security. Per progettare il tuo AWS ambiente utilizzando le migliori pratiche per la sicurezza dell'infrastruttura, vedi [Infrastructure Protection](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) in *Security Pillar AWS Well‐Architected* Framework.

Utilizzi chiamate API AWS pubblicate per accedere a VPC Lattice attraverso la rete. I client devono supportare quanto segue:
+ Transport Layer Security (TLS). È richiesto TLS 1.2 ed è consigliato TLS 1.3.
+ Suite di cifratura con Perfect Forward Secrecy (PFS), ad esempio Ephemeral Diffie-Hellman (DHE) o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La maggior parte dei sistemi moderni, come Java 7 e versioni successive, supporta tali modalità.