

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

# Risolvi un errore di accesso negato in Amazon SQS
<a name="troubleshooting-access-denied"></a>

I seguenti argomenti trattano le cause `AccessDenied` o `AccessDeniedException` gli errori più comuni nelle chiamate API di Amazon SQS. Per ulteriori informazioni su come risolvere questi errori, consulta [Come si risolvono gli errori "" o "AccessDenied" nelle chiamate API AccessDeniedException di Amazon SQS](https://repost.aws/knowledge-center/sqs-accessdenied-errors)? *nella Knowledge Center Guide.AWS *

**Esempi di messaggi di errore:**

```
An error occurred (AccessDenied) when calling the SendMessage operation: Access to
        the resource https://sqs.us-east-1.amazonaws.com/ is denied.
```

**- oppure -**

```
An error occurred (KMS.AccessDeniedException) when calling the SendMessage
        operation: User: arn:aws:iam::xxxxx:user/xxxx is not authorized to perform:
        kms:GenerateDataKey on resource: arn:aws:kms:us-east-1:xxxx:key/xxxx with an explicit
        deny.
```

## Politica di coda di Amazon SQS e politica IAM
<a name="sqs-queue-policy-iam-policy"></a>

Per verificare se il richiedente dispone delle autorizzazioni appropriate per eseguire un'operazione Amazon SQS, procedi come segue:
+ Identifica il principale IAM che effettua la chiamata all'API Amazon SQS. Se il principale IAM proviene dallo stesso account, la policy di coda di Amazon SQS o la policy AWS Identity and Access Management (IAM) devono includere le autorizzazioni per consentire esplicitamente l'accesso all'azione.
+ Se il principale è un'entità IAM:
  + Puoi identificare il tuo utente o ruolo IAM controllando l'angolo in alto a destra di o utilizzando il Console di gestione AWS comando. [`aws sts get-caller-identity`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/get-caller-identity.html)
  + Controlla tutte le policy IAM collegate al ruolo o all'utente IAM. È possibile utilizzare uno dei seguenti metodi:
    + Testa le policy IAM con IAM Policy [Simulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html).
    + Esamina i vari [tipi di policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types).
  + Se necessario, [modifica la policy utente IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html).
  + Controlla la politica di coda e [modificala](sqs-configure-add-permissions.md) se necessario.
+ Se il principale è un AWS servizio, la policy di coda di Amazon SQS deve consentire esplicitamente l'accesso.
+ Se il principale è un account principale, sia la policy di coda di Amazon SQS che la policy IAM devono consentire esplicitamente l'accesso.
+ Se la policy utilizza un elemento condizionale, verifica che la condizione limiti l'accesso.

**Importante**  
Un rifiuto esplicito in entrambi i criteri ha la precedenza su un permesso esplicito. Ecco alcuni esempi di base di policy di [Amazon SQS.](sqs-basic-examples-of-sqs-policies.md)

## AWS Key Management Service autorizzazioni
<a name="kms-permissions"></a>

Se la tua coda Amazon SQS ha la [crittografia lato server (SSE)](sqs-server-side-encryption.md) attivata con un servizio gestito dal cliente AWS KMS key, le autorizzazioni devono essere concesse sia ai produttori che ai consumatori. **Per confermare se una coda è crittografata, puoi utilizzare l'`KmsMasterKeyId`attributo [`GetQueueAttributes`](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html)API o dalla console di coda in Encryption.**
+ [Autorizzazioni richieste per i produttori](sqs-key-management.md#send-to-encrypted-queue):

  ```
  {
  "Effect": "Allow",
  "Action": [
      "kms:Decrypt",
      "kms:GenerateDataKey"
  ],
  "Resource": "<Key ARN>"
  }
  ```
+ [Autorizzazioni richieste per i consumatori](sqs-key-management.md#receive-from-encrypted-queue):

  ```
  {
  "Effect": "Allow",
  "Action": [
      "kms:Decrypt"
  ],
  "Resource": "<Key ARN>"
  }
  ```
+ Autorizzazioni richieste per l'accesso [tra](sqs-key-management.md) account diversi:

  ```
  {
  "Effect": "Allow",
  "Action": [         
      "kms:DescribeKey",
      "kms:Decrypt",
      "kms:ReEncrypt",
      "kms:GenerateDataKey"
  ],
  "Resource": "<Key ARN>"
  }
  ```

Scegli una delle seguenti opzioni per abilitare la crittografia per una coda Amazon SQS:
+ [SSE-Amazon SQS](sqs-server-side-encryption.md) (chiave di crittografia creata e gestita dal servizio Amazon SQS).
+ [AWS chiave predefinita gestita](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) (alias/aws/sqs)
+ [Chiave gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)

Tuttavia, se utilizzi una [chiave KMS AWS](sqs-key-management.md) gestita, non puoi modificare la politica delle chiavi predefinita. Pertanto, per fornire l'accesso ad altri servizi e account multipli, utilizza la chiave gestita dal cliente. In questo modo è possibile modificare la politica chiave.

## Policy degli endpoint VPC
<a name="vpc-endpoint-policy"></a>

Se accedi ad [Amazon SQS tramite un endpoint Amazon Virtual Private Cloud (Amazon VPC), la policy degli endpoint VPC di Amazon SQS deve consentire l'](sqs-internetwork-traffic-privacy.md#sqs-vpc-endpoints)accesso. Puoi creare una policy per gli endpoint Amazon VPC per Amazon SQS, in cui puoi specificare quanto segue:

1. Il principale che può eseguire azioni.

1. Le azioni che possono essere eseguite.

1. Le risorse sui cui si possono eseguire azioni.

Nell'esempio seguente, la policy degli endpoint VPC specifica che l'utente IAM {{MyUser}} è autorizzato a inviare messaggi alla coda Amazon SQS. {{MyQueue}} Ad altre azioni, agli utenti IAM e alle risorse Amazon SQS viene negato l'accesso tramite l'endpoint VPC.

```
{
   "Statement": [{
      "Action": ["sqs:SendMessage"],
      "Effect": "Allow",
      "Resource": "arn:aws:sqs:us-east-2:123456789012:{{MyQueue}}",
      "Principal": {
        "AWS": "arn:aws:iam:123456789012:user/{{MyUser}}"
      }
   }]
}
```

## Politica di controllo dei servizi dell'organizzazione
<a name="organization-control-policy"></a>

Se fai Account AWS parte di un'organizzazione, AWS Organizations le policy possono impedirti di accedere alle code di Amazon SQS. Per impostazione predefinita, AWS Organizations le policy non bloccano alcuna richiesta ad Amazon SQS. Tuttavia, assicurati che AWS Organizations le tue policy non siano state configurate per bloccare l'accesso alle code di Amazon SQS. Per istruzioni su come controllare le tue AWS Organizations politiche, consulta [Elenco di tutte le politiche nella Guida](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_info-operations.html#list-all-pols-in-org) per l'*AWS Organizations utente*.