¿Cómo puedo resolver el error de la operación de publicación en Amazon SNS?

3 minutos de lectura
0

Recibo un error en Amazon Simple Notification Service (Amazon SNS). El error se produce cuando utilizo una subred e intento publicar mi tema de SNS desde una instancia de Amazon Elastic Compute Cloud (Amazon EC2) con varias cuentas.

Breve descripción

Si recibe un error de autorización al llamar a la operación de publicar, complete los pasos de la sección Verificar los permisos del rol de IAM de la instancia de EC2 y de la política de acceso al tema de SNS.

Si tiene problemas con un tema de SNS que utiliza el cifrado del servidor y recibe el error «KMSAccessDenied», complete los pasos de la sección Verificar la configuración de la clave de KMS y los permisos del rol de IAM de EC2.

Nota: Si su instancia de EC2 no puede conectarse a Internet con una puerta de enlace de Internet, consulte ¿Por qué mi instancia de Amazon EC2 no puede conectarse a Internet mediante una puerta de enlace de Internet?

Resolución

Verificar los permisos del rol de IAM de la instancia EC2 y de la política de acceso al tema SNS

Una configuración errónea de los permisos del rol de AWS Identity and Access Management (IAM) para su instancia de EC2 y de la política de acceso al tema de Amazon SNS puede provocar el siguiente error:

"An error occurred (AuthorizationError) when calling the Publish operation: User: arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role/i-0123456789f804d is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-east-2:123456789012:cross-account-ec2-sns."

Para resolver este error, consulte ¿Cómo publico en un tema de Amazon SNS desde una instancia de Amazon EC2 con varias cuentas mediante una función de IAM EC2?

Verificar la configuración de la clave de KMS y los permisos del rol de IAM de EC2

Si los permisos para el rol de IAM de su instancia de EC2 y la política de claves de AWS Key Management Service (AWS KMS) de su clave de AWS KMS (clave KMS) son incorrectos, puede recibir el siguiente error:

An error occurred (KMSAccessDenied) when calling the Publish operation: null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Re
quest ID: IDNumber; Proxy: null)

Nota: El error anterior solo se produce cuando su tema de SNS utiliza el cifrado del servidor.

Para resolver el error, compruebe la configuración de la clave de KMS y los permisos de la política de claves de AWS KMS:

1.Confirme que la clave de KMS esté habilitada.

2.Confirme que su rol de IAM de instancia de EC2 puede ejecutar kms:GenerateDataKey* y kms:Decrypt en la política de claves de AWS KMS. Esta es la política de claves de la clave de KMS que se utiliza para el cifrado del servidor en su tema de SNS. Por ejemplo:

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role"
  },
  "Action": [
    "kms:GenerateDataKey*",
    "kms:Decrypt"
  ],
  "Resource": "*"
}

3.Confirme que los permisos kms:GenerateDataKey* y kms:Decrypt estén asociados al rol de IAM de su instancia de EC2.

Nota: Se recomienda proporcionar los privilegios mínimos necesarios. Por lo tanto, asegúrese de reemplazar el valor recurso por su ARN de la clave de KMS en la siguiente política de rol de IAM:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
      ],
      "Resource": "*"
    }
  ]
}

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años