

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solução de problemas de um erro de acesso negado no Amazon SQS
<a name="troubleshooting-access-denied"></a>

Os tópicos a seguir abordam as causas mais comuns de erros `AccessDenied` ou `AccessDeniedException` nas chamadas de API do Amazon SQS. Para obter mais informações sobre como solucionar esses erros, consulte [Como soluciono erros "" ou "AccessDenied" em chamadas AccessDeniedException de API do Amazon SQS](https://repost.aws/knowledge-center/sqs-accessdenied-errors)? no *Guia do Centro de AWS Conhecimento*.

**Exemplos de mensagens de erro:**

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

**- ou -**

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

## Política de filas do Amazon SQS e política do IAM
<a name="sqs-queue-policy-iam-policy"></a>

Para verificar se o solicitante tem as permissões adequadas para realizar uma operação do Amazon SQS, faça o seguinte:
+ Identifique a entidade principal do IAM que está fazendo a chamada de API do Amazon SQS. Se a entidade principal do IAM for da mesma conta, nem a política de filas do Amazon SQS nem a política do AWS Identity and Access Management (IAM) devem incluir permissões para autorizar explicitamente o acesso à ação.
+ Se o a entidade principal for uma entidade do IAM:
  + É possível identificar o perfil ou usuário do IAM no canto superior direito do Console de gerenciamento da AWS ou usando o comando [`aws sts get-caller-identity`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/get-caller-identity.html).
  + Verifique as políticas do IAM relacionadas ao perfil ou usuário do IAM. É possível usar um dos seguintes métodos:
    + Teste as políticas do IAM com o [simulador de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html).
    + Analise os diferentes [tipos de política do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types).
  + Se necessário, [edite a política de usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html).
  + Verifique a política de filas e [edite](sqs-configure-add-permissions.md), se necessário.
+ Se o principal for um AWS serviço, a política de filas do Amazon SQS deve permitir explicitamente o acesso.
+ Se a entidade principal for entre contas, tanto a política de filas do Amazon SQS quanto a política do IAM devem permitir explicitamente o acesso.
+ Se a política usar um elemento condicional, verifique se a condição restringe o acesso.

**Importante**  
Uma negação explícita em qualquer política substitui uma permissão explícita. Aqui estão alguns exemplos básicos de [políticas do Amazon SQS](sqs-basic-examples-of-sqs-policies.md).

## AWS Key Management Service permissões
<a name="kms-permissions"></a>

Se sua fila do Amazon SQS tiver a [criptografia do lado do servidor (SSE)](sqs-server-side-encryption.md) ativada com um cliente gerenciado AWS KMS key, as permissões deverão ser concedidas tanto aos produtores quanto aos consumidores. Para confirmar se uma fila está criptografada, é possível usar o atributo `KmsMasterKeyId` atributo da API [`GetQueueAttributes`](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html) ou do console da fila em **Criptografia**.
+ [Permissões para produtores](sqs-key-management.md#send-to-encrypted-queue) exigidas:

  ```
  {
  "Effect": "Allow",
  "Action": [
      "kms:Decrypt",
      "kms:GenerateDataKey"
  ],
  "Resource": "<Key ARN>"
  }
  ```
+ [Permissões para consumidores](sqs-key-management.md#receive-from-encrypted-queue) exigidas:

  ```
  {
  "Effect": "Allow",
  "Action": [
      "kms:Decrypt"
  ],
  "Resource": "<Key ARN>"
  }
  ```
+ Permissões para [acesso entre contas](sqs-key-management.md) exigidas:

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

Escolha uma das seguintes opções para habilitar a criptografia de uma fila do Amazon SQS:
+ [SSE-Amazon SQS](sqs-server-side-encryption.md) (chave de criptografia criada e gerenciada pelo serviço Amazon SQS.)
+ [AWS chave padrão gerenciada](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) (alias/aws/sqs)
+ [Chave gerenciada pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)

No entanto, se você estiver usando uma [chave KMS AWS](sqs-key-management.md) gerenciada, não poderá modificar a política de chaves padrão. Portanto, para conceder acesso a outros serviços e contas cruzadas, use a chave gerenciada pelo cliente. Isso permite que você edite a política de chave.

## Política de endpoint da VPC
<a name="vpc-endpoint-policy"></a>

Se você acessar o [Amazon SQS por meio de um endpoint da Amazon Virtual Private Cloud (Amazon VPC)](sqs-internetwork-traffic-privacy.md#sqs-vpc-endpoints), a política de endpoint da VPC do Amazon SQS deverá permitir acesso. É possível criar uma política para endpoints da Amazon VPC para o Amazon SQS, em que você pode especificar o seguinte:

1. A entidade principal que pode realizar ações.

1. As ações que podem ser realizadas.

1. Os recursos aos quais as ações podem ser aplicadas.

No exemplo a seguir, a política de endpoint da VPC especifica que o usuário {{MyUser}} do IAM tem permissão para enviar mensagens para a fila do Amazon SQS. {{MyQueue}} Outras ações, usuários do IAM e recursos do Amazon SQS têm acesso negado por meio do endpoint da VPC.

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

## Política de controle de serviço da organização
<a name="organization-control-policy"></a>

Se você Conta da AWS pertence a uma organização, AWS Organizations as políticas podem impedir que você acesse suas filas do Amazon SQS. Por padrão, AWS Organizations as políticas não bloqueiam nenhuma solicitação para o Amazon SQS. No entanto, certifique-se de que suas AWS Organizations políticas não tenham sido configuradas para bloquear o acesso às filas do Amazon SQS. Para obter instruções sobre como verificar suas AWS Organizations políticas, consulte [Listar todas as políticas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_info-operations.html#list-all-pols-in-org) no *Guia AWS Organizations do usuário*.