

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

# Esempi di sintassi delle policy di accesso di Amazon SQS personalizzata
<a name="sqs-creating-custom-policies-access-policy-examples"></a>

I seguenti sono esempi tipici di policy di accesso Amazon SQS.

## Esempio 1: Concedere l'autorizzazione a un account
<a name="one-account"></a>

La policy Amazon SQS di esempio seguente fornisce all'account Account AWS l'autorizzazione 111122223333 per inviare e ricevere dalla `queue2` di proprietà dell' Account AWS 444455556666.

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

****  

```
{   
   "Version":"2012-10-17",		 	 	 
   "Id": "UseCase1",
   "Statement" : [{
      "Sid": "1", 
      "Effect": "Allow",           
      "Principal": {
         "AWS": [
            "111122223333"
         ]
      },
      "Action": [
         "sqs:SendMessage",
         "sqs:ReceiveMessage"
      ], 
      "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2"  
   }]
}
```

------

## Esempio 2: Concedere l'autorizzazione a uno o più account
<a name="two-accounts"></a>

Il seguente esempio di policy Amazon SQS fornisce uno o più Account AWS accessi alle code di proprietà del tuo account per un periodo di tempo specifico. È necessario scrivere questa policy e caricarla in Amazon SQS utilizzando l'operazione [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html) perché l'operazione [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html) non consente di specificare una limitazione di tempo quando si concede l'accesso a una coda.

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

****  

```
{   
   "Version":"2012-10-17",		 	 	 
   "Id": "UseCase2",
   "Statement" : [{
      "Sid": "1", 
      "Effect": "Allow",           
      "Principal": {
         "AWS": [
            "111122223333",
            "444455556666"
         ]
      },
      "Action": [
         "sqs:SendMessage",
         "sqs:ReceiveMessage"
      ], 
      "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2",
      "Condition": {
         "DateLessThan": {
            "AWS:CurrentTime": "2009-06-30T12:00Z"
         }
      }   
   }]
}
```

------

## Esempio 3: Concedere autorizzazioni a richieste provenienti da istanze Amazon EC2
<a name="requests-from-ec2"></a>

La policy di esempio Amazon SQS seguente fornisce l'accesso a richieste provenienti da istanze Amazon EC2. Questo esempio si basa sull'esempio "[Esempio 2: Concedere l'autorizzazione a uno o più account](#two-accounts)": limita l'accesso a prima del 30 giugno 2009 alle 12.00 (UTC), limita l'accesso all'intervallo IP `203.0.113.0/24`. È necessario scrivere questa policy e caricarla su Amazon SQS utilizzando l'azione [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html) perché l'azione [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html) non consente di specificare una limitazione di indirizzo IP al momento di concedere l'accesso a una coda.

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

****  

```
{   
   "Version":"2012-10-17",		 	 	 
   "Id": "UseCase3",
   "Statement" : [{
      "Sid": "1", 
      "Effect": "Allow",           
      "Principal": {
         "AWS": [
            "111122223333"
         ]
      },
      "Action": [
         "sqs:SendMessage",
         "sqs:ReceiveMessage"
      ], 
      "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2",
      "Condition": {
         "DateLessThan": {
            "AWS:CurrentTime": "2009-06-30T12:00Z"
         },
         "IpAddress": {
            "AWS:SourceIp": "203.0.113.0/24"
         }
      }   
   }]
}
```

------

## Esempio 4: Negare l'accesso a un account specifico
<a name="deny-account"></a>

Il seguente esempio di policy di Amazon SQS nega un Account AWS accesso specifico alla tua coda. Questo esempio si basa sull'esempio "[Esempio 1: Concedere l'autorizzazione a un account](#one-account)": nega l'accesso a ciò che è specificato. Account AWSÈ necessario scrivere questa policy e caricarla in Amazon SQS utilizzando l'operazione [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html) perché l'operazione [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html) non consente di negare l'accesso a una coda (concede solo l'accesso a una coda). 

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

****  

```
{ 
   "Version":"2012-10-17",		 	 	 
   "Id": "UseCase4",
   "Statement" : [{
      "Sid": "1", 
      "Effect": "Deny",           
      "Principal": {
         "AWS": [
            "111122223333"
         ]
      },
      "Action": [
         "sqs:SendMessage",
         "sqs:ReceiveMessage"
      ], 
      "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2"   
   }]
}
```

------

## Esempio 5: Negare l'accesso se non è un endpoint VPC
<a name="deny-not-from-vpc"></a>

La seguente policy Amazon SQS di esempio limita l'accesso alla `queue1`: 111122223333 può eseguire le azioni [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) e [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) solo dall'ID dell'endpoint VPC `vpce-1a2b3c4d` (specificato usando la condizione `aws:sourceVpce`). Per ulteriori informazioni, consulta [Endpoint di Amazon Virtual Private Cloud per Amazon SQS](sqs-internetwork-traffic-privacy.md#sqs-vpc-endpoints).

**Nota**  
La condizione `aws:sourceVpce` non richiede un ARN per la risorsa dell'endpoint VPC, ma solo l'ID dell'endpoint VPC.
Puoi modificare l'esempio che segue per limitare tutte le operazioni per un determinato endpoint VPC negando tutte le operazioni Amazon SQS (`sqs:*`) nella seconda istruzione. Tuttavia, questa istruzione della policy stabilisce che tutte le operazioni (comprese le operazioni amministrative necessarie per modificare le autorizzazioni della coda) devono essere eseguite tramite l'endpoint VPC specifico definito nella policy, impedendo potenzialmente all'utente di modificare successivamente le autorizzazioni della coda.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id": "UseCase5",
   "Statement": [{
      "Sid": "1",
      "Effect": "Allow",
      "Principal": {
         "AWS": [
            "111122223333"
         ]
      },
      "Action": [
         "sqs:SendMessage",
         "sqs:ReceiveMessage"
      ],
         "Resource": "arn:aws:sqs:us-east-2:111122223333:queue1"
      },
      {
         "Sid": "2",
         "Effect": "Deny",
         "Principal": "*",
         "Action": [
            "sqs:SendMessage",
            "sqs:ReceiveMessage"
         ],
         "Resource": "arn:aws:sqs:us-east-2:111122223333:queue1",
         "Condition": {
            "StringNotEquals": {
               "aws:sourceVpce": "vpce-1a2b3c4d"
            }
         }
      }
   ]
}
```

------

# Utilizzo delle credenziali di sicurezza temporanee con Amazon SQS
<a name="sqs-using-temporary-security-credentials"></a>

Oltre a creare utenti con le proprie credenziali di sicurezza, IAM ti consente anche di concedere credenziali di sicurezza temporanee a qualsiasi utente, consentendogli di accedere ai tuoi servizi e risorse. AWS Puoi gestire utenti che hanno Account AWS. Puoi anche gestire gli utenti del tuo sistema che non ne hanno Account AWS (utenti federati). Inoltre, anche le applicazioni create per accedere alle AWS risorse possono essere considerate «utenti».

Queste credenziali di sicurezza temporanee sono utilizzate per effettuare delle richieste ad Amazon SQS. Le librerie API calcolano il valore di firma necessario utilizzando tali credenziali per autenticare la richiesta dell'utente. In caso di invio di richieste tramite l'utilizzo di credenziali scadute, Amazon SQS rifiuta la richiesta.

**Nota**  
Non puoi impostare una policy in base alle credenziali temporanee.

## Prerequisiti
<a name="temporary-security-credentials-prerequisites"></a>

1. Usare IAM per creare credenziali di sicurezza provvisorie:
   + Token di sicurezza
   + ID chiave di accesso
   + Secret Access Key

1. Prepara la tua stringa a effettuare l'accesso con l'ID chiave di accesso temporanea e il token di sicurezza.

1. Utilizza la Secret Access Key temporanea anziché la tua Secret Access Key per firmare la tua richiesta di API query.

**Nota**  
Quando invii la richiesta di API query firmata, utilizza l'ID chiave di accesso temporaneo anziché l'ID chiave di accesso e includi i token di sicurezza. Per ulteriori informazioni sul supporto IAM per le credenziali di sicurezza temporanee, consulta [Granting Temporary Access to Your AWS Resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/TokenBasedAuth.html) nella *IAM User Guide*. 

## Chiamare un'azione API query Amazon SQS utilizzando le credenziali di sicurezza temporanee
<a name="temporary-security-credentials-query-api"></a>

1. Richiedi un token di sicurezza temporaneo utilizzando AWS Identity and Access Management. Per ulteriori informazioni, consulta [Creazione di credenziali di sicurezza temporanee per abilitare l'accesso per utenti IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/CreatingSessionTokens.html) nella *Guida per l’utente IAM*.

   IAM restituisce un token di sicurezza, un ID chiave di accesso e una chiave di accesso segreta.

1. Prepare la tua query utilizzando l'ID chiave di accesso temporaneo anziché l'ID chiave di accesso e includi i token di sicurezza. Firma la tua richiesta utilizzando la Secret Access Key temporaneo anziché quella effettiva.

1. Invia la stringa della query firmata con l'ID chiave di accesso temporanea e il token di sicurezza.

   Nell'esempio seguente viene mostrato come utilizzare credenziali di sicurezza temporanee per autenticare una richiesta Amazon SQS. La struttura di *`AUTHPARAMS`* dipende dalla modalità di firma della richiesta API. Per ulteriori informazioni, consulta [Signing AWS API Requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) nel *Amazon Web Services General Reference*.

   ```
   https://sqs.us-east-2.amazonaws.com/
   ?Action=CreateQueue
   &DefaultVisibilityTimeout=40
   &QueueName=MyQueue
   &Attribute.1.Name=VisibilityTimeout
   &Attribute.1.Value=40
   &Expires=2020-12-18T22%3A52%3A43PST
   &SecurityToken=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   &AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE
   &Version=2012-11-05
   &AUTHPARAMS
   ```

   L'esempio seguente utilizza credenziali di sicurezza temporanee per inviare due messaggi con l'operazione `SendMessageBatch`.

   ```
   https://sqs.us-east-2.amazonaws.com/
   ?Action=SendMessageBatch
   &SendMessageBatchRequestEntry.1.Id=test_msg_001
   &SendMessageBatchRequestEntry.1.MessageBody=test%20message%20body%201
   &SendMessageBatchRequestEntry.2.Id=test_msg_002
   &SendMessageBatchRequestEntry.2.MessageBody=test%20message%20body%202
   &SendMessageBatchRequestEntry.2.DelaySeconds=60
   &Expires=2020-12-18T22%3A52%3A43PST
   &SecurityToken=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
   &AWSAccessKeyId=AKIAI44QH8DHBEXAMPLE
   &Version=2012-11-05
   &AUTHPARAMS
   ```

# Gestione degli accessi per code crittografate di Amazon SQS con politiche di privilegi minimi
<a name="sqs-least-privilege-policy"></a>

Puoi utilizzare Amazon SQS per lo scambio di dati sensibili tra applicazioni utilizzando la crittografia lato server (SSE) integrata con [AWS Key Management Service (KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html). Con l'integrazione di Amazon SQS e AWS KMS, puoi gestire centralmente le chiavi che proteggono Amazon SQS, nonché le chiavi che proteggono le altre risorse. AWS 

Più AWS servizi possono fungere da sorgenti di eventi che inviano eventi ad Amazon SQS. [Per consentire a una fonte di eventi di accedere alla coda crittografata di Amazon SQS, devi configurare la coda con una chiave gestita dal cliente.](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS Quindi, utilizza la policy chiave per consentire al servizio di utilizzare i metodi API richiesti. AWS KMS Il servizio richiede inoltre le autorizzazioni per autenticare l'accesso per consentire alla coda di inviare eventi. Puoi raggiungere questo obiettivo utilizzando una policy di Amazon SQS, che è una policy basata sulle risorse che puoi utilizzare per controllare l'accesso alla coda Amazon SQS e ai relativi dati.

Le seguenti sezioni forniscono informazioni su come controllare l'accesso alla coda crittografata di Amazon SQS tramite la policy di Amazon SQS e la policy chiave. AWS KMS Le policy di questa guida ti aiuteranno a ottenere il [privilegio minimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).

Questa guida descrive anche come le policy basate sulle risorse risolvono il [problema confused-deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) utilizzando le chiavi di contesto delle condizioni IAM globali [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn), [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid).

**Topics**
+ [

## Panoramica di
](#sqs-least-privilege-overview)
+ [

## Policy della chiave con privilegio minimo per Amazon SQS
](#sqs-least-privilege-use-case)
+ [

## Istruzioni di policy di Amazon SQS per la coda DLQ
](#sqs-policy-dlq)
+ [

## Prevenzione del problema "confused deputy" tra servizi
](#sqs-confused-deputy-prevention)
+ [

## Utilizza IAM Access Analyzer per esaminare l'accesso multi-account
](#sqs-cross-account-findings)

## Panoramica di
<a name="sqs-least-privilege-overview"></a>

In questo argomento, descriveremo un caso d'uso comune per illustrare come creare la policy della chiave e la policy di coda di Amazon SQS. Questo caso d’uso viene mostrato nell'immagine seguente.

![\[Pubblicazione di messaggi Amazon SNS in Amazon SQS.\]](http://docs.aws.amazon.com/it_it/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-least-privilege.png)


In questo esempio, il produttore del messaggio è un argomento di [Amazon Simple Notification Service (SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html), configurato per separare i messaggi dalla coda crittografata di Amazon SQS. Il consumatore di messaggi è un servizio di elaborazione, come una funzione [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html), un'istanza [Amazon Elastic Compute Cloud (EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) o un container [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html). La coda Amazon SQS viene quindi configurata per inviare messaggi non riusciti a una coda [DLQ](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html). Ciò è utile per eseguire il debug dell'applicazione o del sistema di messaggistica perché DLQs consente di isolare i messaggi non utilizzati per determinare il motivo per cui la loro elaborazione non è riuscita. Nella soluzione definita in questo argomento, un servizio di elaborazione come una funzione Lambda viene utilizzato per elaborare i messaggi archiviati nella coda Amazon SQS. Se l'utente dei messaggi si trova in un cloud privato virtuale (VPC), l'istruzione della policy [`DenyReceivingIfNotThroughVPCE`](#sqs-restrict-message-to-endpoint) inclusa in questa guida consente di limitare la ricezione dei messaggi a quel VPC specifico.

**Nota**  
Questa guida contiene solo le autorizzazioni IAM richieste sotto forma di istruzioni di policy. Per creare la policy, devi aggiungere le dichiarazioni alla tua policy Amazon SQS o alla AWS KMS tua policy chiave. Questa guida non fornisce istruzioni su come creare la coda o la chiave Amazon SQS. AWS KMS Per istruzioni su come creare queste risorse, consulta [Creazione di una coda Amazon SQS](creating-sqs-standard-queues.md#step-create-standard-queue) e [Creazione di chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html).   
La policy di Amazon SQS definita in questa guida non supporta il reindirizzamento dei messaggi direttamente nella stessa coda Amazon SQS o in un'altra. 

## Policy della chiave con privilegio minimo per Amazon SQS
<a name="sqs-least-privilege-use-case"></a>

In questa sezione, descriviamo le autorizzazioni con privilegi minimi richieste AWS KMS per la chiave gestita dal cliente che utilizzi per crittografare la tua coda Amazon SQS. Con queste autorizzazioni, puoi limitare l'accesso solo alle entità previste implementando il privilegio minimo. La policy della chiave deve contenere le seguenti istruzioni di policy, che descriveremo in dettaglio di seguito:
+ [AWS KMS Concedi le autorizzazioni di amministratore alla chiave](#sqs-use-case-kms-admin-permissions)
+ [Concedi l'accesso in sola lettura ai metadati della chiave](#sqs-use-case-read-only-permissions)
+ [Concedi ad Amazon SNS le autorizzazioni KMS per pubblicare i messaggi nella coda](#sqs-use-case-publish-messages-permissions)
+ [Consenti ai consumatori di decrittografare i messaggi dalla coda](#sqs-use-case-decrypt-messages-permissions)

### AWS KMS Concedi le autorizzazioni di amministratore alla chiave
<a name="sqs-use-case-kms-admin-permissions"></a>

Per creare una AWS KMS chiave, devi fornire le autorizzazioni di AWS KMS amministratore per il ruolo IAM che utilizzi per distribuire la chiave. AWS KMS Queste autorizzazioni di amministratore sono definite nella seguente istruzione di policy `AllowKeyAdminPermissions`. Quando aggiungi questa dichiarazione alla tua policy AWS KMS chiave, assicurati di sostituirla *<admin-role ARN>* con l'Amazon Resource Name (ARN) del ruolo IAM utilizzato per distribuire la AWS KMS chiave, gestire la AWS KMS chiave o entrambi. Questo può essere il ruolo IAM della tua pipeline di implementazione o il [ruolo di amministratore per la tua organizzazione](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_access.html) nelle [AWS Organizations](https://aws.amazon.com/organizations/).

```
{
  "Sid": "AllowKeyAdminPermissions",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "<admin-role ARN>"
    ]
  },
  "Action": [
    "kms:Create*",
    "kms:Describe*",
    "kms:Enable*",
    "kms:List*",
    "kms:Put*",
    "kms:Update*",
    "kms:Revoke*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:TagResource",
    "kms:UntagResource",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "*"
}
```

**Nota**  
In una policy AWS KMS chiave, il valore dell'`Resource`elemento deve essere`*`, il che significa «questa AWS KMS chiave». L'asterisco (`*`) identifica la AWS KMS chiave a cui è allegata la politica chiave.

### Concedi l'accesso in sola lettura ai metadati della chiave
<a name="sqs-use-case-read-only-permissions"></a>

Per concedere ad altri ruoli IAM l'accesso in sola lettura ai metadati della chiave, aggiungi l'istruzione `AllowReadAccessToKeyMetaData` alla policy della tua chiave. Ad esempio, la seguente dichiarazione consente di elencare tutte le AWS KMS chiavi del proprio account a fini di controllo. Questa istruzione concede all'utente AWS root l'accesso in sola lettura ai metadati chiave. Pertanto, qualsiasi principale IAM dell'account può avere accesso ai metadati della chiave se le relative policy basate sull'identità includono autorizzazioni elencate nella seguente istruzione: `kms:Describe*`, `kms:Get*` e `kms:List*`. Assicurati di sostituirla *<account-ID>* con le tue informazioni. 

```
{
  "Sid": "AllowReadAcesssToKeyMetaData",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::<accountID>:root"
    ]
  },
  "Action": [
    "kms:Describe*",
    "kms:Get*",
    "kms:List*"
  ],
  "Resource": "*"
}
```

### Concedi ad Amazon SNS le autorizzazioni KMS per pubblicare i messaggi nella coda
<a name="sqs-use-case-publish-messages-permissions"></a>

Per consentire al tuo argomento Amazon SNS di pubblicare messaggi nella coda crittografata di Amazon SQS, aggiungi l'informativa sulla policy `AllowSNSToSendToSQS` alla policy della chiave. Questa dichiarazione concede ad Amazon SNS le autorizzazioni per utilizzare AWS KMS la chiave per la pubblicazione nella tua coda Amazon SQS. Assicurati di sostituirla con le tue informazioni*<account-ID>*.

**Nota**  
`Condition`Nella dichiarazione limita l'accesso solo al servizio Amazon SNS nello stesso AWS account.

```
{
  "Sid": "AllowSNSToSendToSQS",
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "sns.amazonaws.com"
    ]
  },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:SourceAccount": "<account-id>"
    }
  }
}
```

### Consenti ai consumatori di decrittografare i messaggi dalla coda
<a name="sqs-use-case-decrypt-messages-permissions"></a>

La seguente istruzione `AllowConsumersToReceiveFromTheQueue` concede all'utente di messaggi Amazon SQS le autorizzazioni necessarie per decrittografare i messaggi ricevuti dalla coda crittografata di Amazon SQS. Quando alleghi la policy statement, sostituiscila *<consumer's runtime role ARN>* con l'ARN del ruolo di runtime IAM del consumer del messaggio.

```
{
  "Sid": "AllowConsumersToReceiveFromTheQueue",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "<consumer's execution role ARN>"
    ]
  },
  "Action": [
    "kms:Decrypt"
  ],
  "Resource": "*"
}
```

### Policy relativa al privilegio minimo per Amazon SQS
<a name="sqs-use-case-specific-policy"></a>

Questa sezione illustra le politiche di coda di Amazon SQS con privilegio minimo per il caso d'uso trattato in questa guida (ad esempio, da Amazon SNS ad Amazon SQS). La policy definita è progettata per prevenire accessi involontari utilizzando una combinazione delle istruzioni `Deny` e `Allow`. Le istruzioni `Allow` concedono l'accesso all'entità o alle entità previste. Le istruzioni `Deny` impediscono ad altre entità indesiderate di accedere alla coda di Amazon SQS, escludendo al contempo l'entità prevista dalla condizione della politica.

La policy di Amazon SQS include le seguenti istruzioni, che descriviamo in dettaglio di seguito:
+ [Limita le autorizzazioni di gestione di Amazon SQS](#sqs-use-case-restrict-permissions)
+ [Limita le azioni di coda di Amazon SQS dall'organizzazione specificata](#sqs-use-case-restrict-permissions-from-org)
+ [Concedi le autorizzazioni Amazon SQS ai consumatori](#sqs-use-grant-consumer-permissions)
+ [Applica la crittografia in transito](#sqs-encryption-in-transit)
+ [Limita la trasmissione di messaggi a un argomento specifico di Amazon SNS](#sqs-restrict-transmission-to-topic)
+ [(Opzionale) Limitazione della ricezione dei messaggi a un endpoint VPC specifico](#sqs-restrict-message-to-endpoint)

### Limita le autorizzazioni di gestione di Amazon SQS
<a name="sqs-use-case-restrict-permissions"></a>

La seguente istruzione della policy `RestrictAdminQueueActions` limita le autorizzazioni di gestione di Amazon SQS solo al ruolo o ai ruoli IAM utilizzati per implementare la coda, gestire la coda o entrambe le cose. Assicurarsi di sostituire *<placeholder values>* con le proprie informazioni. Specificare l'ARN del ruolo IAM utilizzato per distribuire la coda Amazon SQS, nonché il ruolo di amministratore che dovrebbe avere le autorizzazioni ARNs di gestione di Amazon SQS. 

```
{
  "Sid": "RestrictAdminQueueActions",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:AddPermission",
    "sqs:DeleteQueue",
    "sqs:RemovePermission",
    "sqs:SetQueueAttributes"
  ],
  "Resource": "<SQS Queue ARN>",
  "Condition": {
    "StringNotLike": {
      "aws:PrincipalARN": [
        "arn:aws:iam::<account-id>:role/<deployment-role-name>",
        "<admin-role ARN>"
      ]
    }
  }
}
```

### Limita le azioni di coda di Amazon SQS dall'organizzazione specificata
<a name="sqs-use-case-restrict-permissions-from-org"></a>

Per proteggere le tue risorse Amazon SQS dall'accesso esterno (accesso da parte di un'entità esterna all'[organizzazione AWS](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)), utilizza la seguente istruzione. Questa istruzione limita l'accesso alla coda di Amazon SQS all'organizzazione specificata in `Condition`. Assicurati di sostituirlo *<SQS queue ARN>* con l'ARN del ruolo IAM utilizzato per distribuire la coda Amazon SQS e poi con l'ID della *<org-id>* tua organizzazione. 

```
{
  "Sid": "DenyQueueActionsOutsideOrg",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:AddPermission",
    "sqs:ChangeMessageVisibility",
    "sqs:DeleteQueue",
    "sqs:RemovePermission",
    "sqs:SetQueueAttributes",
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "StringNotEquals": {
      "aws:PrincipalOrgID": [
        "<org-id>"
      ]
    }
  }
}
```

### Concedi le autorizzazioni Amazon SQS ai consumatori
<a name="sqs-use-grant-consumer-permissions"></a>

Per ricevere messaggi dalla coda Amazon SQS, devi fornire al consumatore dei messaggi le autorizzazioni necessarie. La seguente istruzione di policy concede al consumatore, da te specificato, le autorizzazioni necessarie per utilizzare i messaggi dalla coda di Amazon SQS. Quando aggiungi l'istruzione alla tua policy Amazon SQS, assicurati di sostituirla *<consumer's IAM runtime role ARN>* con l'ARN del ruolo di runtime IAM utilizzato dal consumatore e *<SQS queue ARN>* con l'ARN del ruolo IAM utilizzato per distribuire la coda Amazon SQS.

```
{
  "Sid": "AllowConsumersToReceiveFromTheQueue",
  "Effect": "Allow",
  "Principal": {
    "AWS": "<consumer's IAM execution role ARN>"
  },
  "Action": [
    "sqs:ChangeMessageVisibility",
    "sqs:DeleteMessage",
    "sqs:GetQueueAttributes",
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>"
}
```

Per impedire ad altre entità di ricevere messaggi dalla coda di Amazon SQS, aggiungi l'istruzione `DenyOtherConsumersFromReceiving` alla policy della coda di Amazon SQS. Questa istruzione limita il consumo di messaggi al consumatore specificato, senza consentire ad altri consumatori di accedervi, anche se le autorizzazioni di identità consentirebbero loro l'accesso. Assicurati di sostituire e con le tue informazioni*<SQS queue ARN>*. *<consumer’s runtime role ARN>*

```
{
  "Sid": "DenyOtherConsumersFromReceiving",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:ChangeMessageVisibility",
    "sqs:DeleteMessage",
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "StringNotLike": {
      "aws:PrincipalARN": "<consumer's execution role ARN>"
    }
  }
}
```

### Applica la crittografia in transito
<a name="sqs-encryption-in-transit"></a>

La seguente istruzione di policy `DenyUnsecureTransport` impone a consumatori e produttori di utilizzare canali sicuri (connessioni TLS) per inviare e ricevere messaggi dalla coda di Amazon SQS. Assicurati di sostituirlo *<SQS queue ARN>* con l'ARN del ruolo IAM utilizzato per distribuire la coda Amazon SQS.

```
{
  "Sid": "DenyUnsecureTransport",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:ReceiveMessage",
    "sqs:SendMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false"
    }
  }
}
```

### Limita la trasmissione di messaggi a un argomento specifico di Amazon SNS
<a name="sqs-restrict-transmission-to-topic"></a>

Il seguente è un esempio di istruzione di policy `AllowSNSToSendToTheQueue` che consente all'argomento Amazon SNS di inviare messaggi alla coda Amazon SQS. Assicurati di sostituirlo *<SQS queue ARN>* con l'ARN del ruolo IAM utilizzato per distribuire la coda Amazon SQS e con *<SNS topic ARN>* l'argomento ARN di Amazon SNS.

```
{
  "Sid": "AllowSNSToSendToTheQueue",
  "Effect": "Allow",
  "Principal": {
    "Service": "sns.amazonaws.com"
  },
  "Action": "sqs:SendMessage",
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "ArnLike": {
      "aws:SourceArn": "<SNS topic ARN>"
    }
  }
}
```

La seguente istruzione di policy `DenyAllProducersExceptSNSFromSending` impedisce ad altri produttori di inviare messaggi alla coda. Sostituisci *<SQS queue ARN>* e con le tue informazioni. *<SNS topic ARN>*

```
{
  "Sid": "DenyAllProducersExceptSNSFromSending",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": "sqs:SendMessage",
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "ArnNotLike": {
      "aws:SourceArn": "<SNS topic ARN>"
    }
  }
}
```

### (Opzionale) Limitazione della ricezione dei messaggi a un endpoint VPC specifico
<a name="sqs-restrict-message-to-endpoint"></a>

Per limitare la ricezione di messaggi solo a un [endpoint VPC](https://aws.amazon.com/about-aws/whats-new/2018/12/amazon-sqs-vpc-endpoints-aws-privatelink/) specifico, aggiungi la seguente istruzione di policy alla tua policy di coda di Amazon SQS. Questa istruzione impedisce a un utente che consuma messaggi di ricevere messaggi dalla coda a meno che i messaggi non provengano dall'endpoint VPC desiderato. Sostituisci *<SQS queue ARN>* con l'ARN del ruolo IAM utilizzato per distribuire la coda Amazon SQS e con *<vpce\$1id>* l'ID dell'endpoint VPC.

```
{
  "Sid": "DenyReceivingIfNotThroughVPCE",
  "Effect": "Deny",
  "Principal": "*",
  "Action": [
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "StringNotEquals": {
      "aws:sourceVpce": "<vpce id>"
    }
  }
}
```

## Istruzioni di policy di Amazon SQS per la coda DLQ
<a name="sqs-policy-dlq"></a>

Aggiungi le seguenti istruzioni di policy, identificate dal relativo ID, alla tua policy di accesso DLQ:
+ `RestrictAdminQueueActions`
+ `DenyQueueActionsOutsideOrg`
+ `AllowConsumersToReceiveFromTheQueue`
+ `DenyOtherConsumersFromReceiving`
+ `DenyUnsecureTransport`

Oltre ad aggiungere le precedenti istruzioni di policy alla tua policy di accesso DLQ, devi aggiungere anche un'istruzione per limitare la trasmissione di messaggi alle code di Amazon SQS, come descritto nella sezione seguente.

### Limitazione della trasmissione di messaggi a code Amazon SQS
<a name="sqs-dlq-restrict-permissions"></a>

Per limitare l'accesso solo alle code Amazon SQS dallo stesso account, aggiungi la seguente istruzione di policy `DenyAnyProducersExceptSQS` alla policy di coda DLQ. Questa istruzione non limita la trasmissione dei messaggi a una coda specifica perché prima di creare la coda principale devi implementare il DLQ, quindi non conoscerai l'ARN di Amazon SQS quando crei la DLQ. Se devi limitare l'accesso a una sola coda Amazon SQS, modifica la `aws:SourceArn` in `Condition` con l’ARN della tua coda di origine Amazon SQS, quando lo conosci.

```
{
  "Sid": "DenyAnyProducersExceptSQS",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": "sqs:SendMessage",
  "Resource": "<SQS DLQ ARN>",
  "Condition": {
    "ArnNotLike": {
      "aws:SourceArn": "arn:aws:sqs:<region>:<account-id>:*"
    }
  }
}
```

**Importante**  
Le policy di coda di Amazon SQS definite in questa guida non limitano l'operazione `sqs:PurgeQueue` a uno o più ruoli IAM specifici. L'azione `sqs:PurgeQueue` consente di eliminare tutti i messaggi nella coda Amazon SQS. Puoi anche utilizzare questa azione per apportare modifiche al formato del messaggio senza sostituire la coda Amazon SQS. Durante il debug di un'applicazione, puoi cancellare la coda di Amazon SQS per rimuovere messaggi potenzialmente errati. Durante il test dell'applicazione, puoi indirizzare un volume di messaggi elevato attraverso la coda di Amazon SQS e quindi eliminare la coda per ricominciare da capo prima di entrare in produzione. Il motivo per cui non si limita questa azione a un determinato ruolo è che questo ruolo potrebbe non essere noto durante l'implementazione della coda Amazon SQS. Dovrai aggiungere questa autorizzazione alla policy basata sull'identità del ruolo per poter eliminare la coda.

## Prevenzione del problema "confused deputy" tra servizi
<a name="sqs-confused-deputy-prevention"></a>

Il [confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) è un problema di sicurezza in cui un'entità che non dispone dell'autorizzazione per eseguire un'azione può costringere un'entità dotata di privilegi maggiori a eseguire l'azione. Per evitare che ciò accada, AWS fornisce strumenti che aiutano a proteggere il proprio account se si fornisce a terzi (cosiddetti cross-account) o ad altri AWS servizi (noti come cross-service) l'accesso alle risorse del proprio account. Le istruzioni di policy in questa sezione possono aiutarti a evitare il problema del "confused deputy" tra servizi.

La rappresentazione tra servizi può verificarsi quando un servizio (il servizio chiamante) effettua una chiamata a un altro servizio (il servizio chiamato). Il servizio chiamante può essere manipolato per utilizzare le proprie autorizzazioni e agire sulle risorse di un altro cliente, a cui normalmente non avrebbe accesso. Per contribuire alla protezione da questo problema, le policy basate sulle risorse definite in questo post utilizzano le chiavi di contesto delle condizioni IAM globali [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn), [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid). Ciò limita le autorizzazioni di cui dispone un servizio per una risorsa specifica, un account specifico o un'organizzazione specifica in AWS Organizations.

## Utilizza IAM Access Analyzer per esaminare l'accesso multi-account
<a name="sqs-cross-account-findings"></a>

Puoi utilizzare [AWS IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) per esaminare le policy di coda AWS KMS e le policy chiave di Amazon SQS e avvisarti quando una coda o AWS KMS una chiave Amazon SQS concede l'accesso a un'entità esterna. IAM Access Analyzer consente di identificare le [risorse](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-resources.html) nell'organizzazione e negli account che sono condivisi con un'entità esterna. Questa zona di fiducia può essere un AWS account o l'organizzazione all'interno di AWS Organizations che specifichi quando abiliti IAM Access Analyzer.

IAM Access Analyzer identifica le risorse condivise con responsabili esterni utilizzando un ragionamento basato sulla logica per analizzare le politiche basate sulle risorse nel tuo ambiente. AWS Per ogni istanza di una risorsa condivisa al di fuori della zona di fiducia, Access Analyzer genera una ricerca. I [risultati](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-findings.html) comprendono informazioni sull'accesso e sull'entità esterna a cui è concesso. È possibile rivedere i risultati per determinare se l'accesso è intenzionale e sicuro o se invece è involontario e rappresenta un rischio per la sicurezza. Per eventuali accessi non intenzionali, rivedi la policy interessata e correggila. Fai riferimento a questo [post del blog](https://aws.amazon.com/blogs/aws/identify-unintended-resource-access-with-aws-identity-and-access-management-iam-access-analyzer/) per ulteriori informazioni su come AWS IAM Access Analyzer identifica l'accesso non intenzionale alle tue risorse. AWS 

Per ulteriori informazioni su AWS IAM Access Analyzer, consulta la documentazione di [AWS IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) Access Analyzer.

# Autorizzazioni API Amazon SQS: riferimento a operazioni e risorse
<a name="sqs-api-permissions-reference"></a>

Quando configuri [Controllo accessi](security_iam_service-with-iam.md#access-control) e scrivi policy di autorizzazione che è possibile collegare a un'identità IAM, utilizza la tabella seguente come riferimento. L'elenco delle tabelle ogni azione di Amazon Simple Queue Service, le azioni corrispondenti per le quali è possibile concedere le autorizzazioni per eseguire l'azione e la AWS risorsa per la quale è possibile concedere le autorizzazioni.

Puoi specificare le operazioni nel campo `Action` della policy e il valore della risorsa nel campo `Resource`. Per specificare un'operazione, utilizzare il prefisso `sqs:` seguito dal nome dell'azione (ad esempio `sqs:CreateQueue`).

Attualmente, Amazon SQS supporta le [chiavi di contesto delle condizioni globali disponibili in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).

Utilizzare le barre di scorrimento per visualizzare il resto della tabella.


**API di Amazon Simple Queue Service e autorizzazioni richieste per le azioni**  
<a name="sqs-api-and-required-permissions-for-actions-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-api-permissions-reference.html)