

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Solución de problemas de error de acceso rechazado en Amazon SQS
<a name="troubleshooting-access-denied"></a>

En los siguientes temas se describen las causas más comunes de los errores `AccessDenied` o `AccessDeniedException` en las llamadas a la API de Amazon SQS. Para obtener más información sobre cómo solucionar estos errores, consulte [¿Cómo soluciono los errores «» o «AccessDenied» en las llamadas a la API de Amazon SQS](https://repost.aws/knowledge-center/sqs-accessdenied-errors)? AccessDeniedException en la Guía del Centro de *AWS Conocimiento*.

**Ejemplos de mensajes de error:**

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

**-o bien-**

```
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 colas y política de IAM de Amazon SQS
<a name="sqs-queue-policy-iam-policy"></a>

Para comprobar si el solicitante tiene los permisos adecuados para realizar una operación de Amazon SQS, haga lo siguiente:
+ Identifique la entidad principal de IAM que realiza la llamada a la API de Amazon SQS. Si la entidad principal de IAM es de la misma cuenta, la política de colas de Amazon SQS o la política de AWS Identity and Access Management (IAM) deben incluir permisos que permitan explícitamente el acceso a la acción.
+ Si la entidad principal es una entidad de IAM:
  + Para comprobar su rol o usuario de IAM, consulte la esquina superior derecha de la Consola de administración de AWS o utilice el comando [`aws sts get-caller-identity`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/get-caller-identity.html).
  + Compruebe las políticas de IAM asociadas al usuario o rol de IAM. Puede usar uno de los métodos siguientes:
    + Pruebe las políticas de IAM con el [simulador de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html).
    + Revisar los diferentes [tipos de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types).
  + Si es necesario, [edite la política de usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html).
  + Compruebe la política de colas y [edítela](sqs-configure-add-permissions.md) si es necesario.
+ Si el principal es un AWS servicio, la política de colas de Amazon SQS debe permitir el acceso de forma explícita.
+ Si la entidad principal es una entidad principal multicuenta, tanto la política de colas de Amazon SQS como la política de IAM deben permitir el acceso de forma explícita.
+ Si la política utiliza un elemento de condición, compruebe que la condición restrinja el acceso.

**importante**  
Una denegación explícita en cualquier política invalida todos los permisos concedidos. Estos son algunos ejemplos básicos de [políticas de Amazon SQS](sqs-basic-examples-of-sqs-policies.md).

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

Si su cola de Amazon SQS tiene el [cifrado del lado del servidor (SSE)](sqs-server-side-encryption.md) activado y una opción gestionada por el cliente AWS KMS key, se deben conceder permisos tanto a los productores como a los consumidores. Para confirmar si una cola está cifrada, puede utilizar el atributo `KmsMasterKeyId` de la API [`GetQueueAttributes`](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html) o la consola de colas, en **Cifrado**.
+ Permisos [necesarios para los productores](sqs-key-management.md#send-to-encrypted-queue):

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

  ```
  {
  "Effect": "Allow",
  "Action": [
      "kms:Decrypt"
  ],
  "Resource": "<Key ARN>"
  }
  ```
+ Permisos necesarios para el [acceso entre cuentas](sqs-key-management.md):

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

Elija una de las siguientes opciones para habilitar el cifrado de una cola de Amazon SQS:
+ [SSE-Amazon SQS](sqs-server-side-encryption.md) (clave de cifrado creada y administrada por el servicio de Amazon SQS).
+ [AWS clave gestionada por defecto](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) (alias/aws/sqs)
+ [Clave administrada por el cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)

Sin embargo, si utiliza una [clave KMS AWS](sqs-key-management.md) administrada, no puede modificar la política de claves predeterminada. Por lo tanto, para proporcionar acceso a otros servicios y entre cuentas, utilice la clave administrada por el cliente. Esto le permite editar la política de claves.

## Política de punto de conexión de VPC
<a name="vpc-endpoint-policy"></a>

Si accede a [Amazon SQS a través de un punto de conexión de Amazon Virtual Private Cloud (Amazon VPC)](sqs-internetwork-traffic-privacy.md#sqs-vpc-endpoints), la política de puntos de conexión de VPC de Amazon SQS debe permitir el acceso. Puede crear una política para los puntos de conexión de Amazon VPC correspondiente a Amazon SQS, en la que podrá especificar lo siguiente:

1. La entidad principal que puede realizar acciones.

1. Las acciones que se pueden realizar.

1. Los recursos en los que se pueden llevar a cabo las acciones.

En el siguiente ejemplo, la política de puntos finales de la VPC especifica que el usuario {{MyUser}} de IAM puede enviar mensajes a la cola de Amazon SQS. {{MyQueue}} A otras acciones, a los usuarios de IAM y a los recursos de Amazon SQS se les niega el acceso a través del punto de conexión de 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 control de servicios de la organización
<a name="organization-control-policy"></a>

Si Cuenta de AWS pertenece a una organización, AWS Organizations las políticas pueden impedir que acceda a sus colas de Amazon SQS. De forma predeterminada, AWS Organizations las políticas no bloquean ninguna solicitud a Amazon SQS. Sin embargo, asegúrese de que sus AWS Organizations políticas no se hayan configurado para bloquear el acceso a las colas de Amazon SQS. Para obtener instrucciones sobre cómo comprobar sus AWS Organizations políticas, consulte [Listar todas las políticas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_info-operations.html#list-all-pols-in-org) en la Guía del *AWS Organizations usuario*.