¿Cómo puedo resolver los errores de autorización al intentar añadir suscriptores a un tema de Amazon SNS?
Recibo errores de autorización de AWS Identity and Access Management (IAM) al añadir suscriptores a mi tema de Amazon Simple Notification Service (Amazon SNS). ¿Cómo soluciono los errores?
Descripción breve
Cuando una entidad de IAM intenta añadir una suscripción a un tema de Amazon SNS sin suscribir los permisos de acción de la API, SNS devuelve el siguiente error:
An error occurred (AuthorizationError) when calling the Subscribe operation: User: your_IAM_user_or_role is not authorized to perform: sns:Subscribe on resource: YOUR_SNS_TOPIC_ARN
Nota: La entidad de IAM puede ser un usuario o un rol de IAM.
Para resolver el error, conceda permiso a la entidad de IAM para ejecutar la acción de suscribir la acción de la API en el tema de Amazon SNS.
Si recibe un error similar que termina en una «denegación explícita»
Elimine cualquier declaración de política que deniegue explícitamente a la entidad de IAM el acceso al recurso SNS.
Resolución
Si la entidad de IAM y el tema de SNS están en cuentas de AWS diferentes
Realice las dos acciones siguientes:
Adjunte una declaración de política de IAM a la entidad de IAM que permita a la entidad ejecutar la acción «sns:Subscribe»
Para obtener instrucciones, consulte Agregar y quitar permisos de la identidad de IAM. Adjunte el siguiente ejemplo de declaración de política de IAM:
Importante: Sustituya «YOUR_SNS_TOPIC_ARN» por su nombre de recurso de Amazon (ARN) del tema de Amazon SNS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SNSSubscribePermission", "Effect": "Allow", "Action": "sns:Subscribe", "Resource": "YOUR_SNS_TOPIC_ARN" } ] }
Adjunte una declaración de política de Amazon SNS a su política de acceso del tema que permita a la entidad de IAM ejecutar la acción «sns:Subscribe»
Para obtener instrucciones, consulte ¿Cómo edito mi política de acceso del tema de Amazon SNS? Adjunte el siguiente ejemplo de declaración de política de Amazon SNS:
Importante: Sustituya «YOUR_IAM USER/ROLE_ARN» por su ARN de la entidad de IAM. Sustituya «YOUR_SNS_TOPIC_ARN» por su ARN del tema de Amazon SNS.
{ "Sid": "AllowIAMEntity", "Effect": "Allow", "Principal": { "AWS": "YOUR_IAM USER/ROLE_ARN " }, "Action": "sns:Subscribe", "Resource": "YOUR_SNS_TOPIC_ARN" }
Si la entidad de IAM y el tema de SNS están en la misma cuenta
Realice una de las siguientes acciones, pero no ambas:
-o-
Para ver ejemplos de declaraciones de política, consulte la sección Si la entidad de IAM y el SNS están en cuentas de AWS diferentes de este artículo.
Comprobar que ni la política de la entidad de IAM ni la política de acceso del tema de SNS denieguen explícitamente el acceso al recurso de SNS
Revise la política de la entidad de IAM y la política de acceso del tema de SNS. A continuación, elimine cualquier declaración de política que deniegue explícitamente a la entidad de IAM el acceso al recurso SNS.
Para obtener más información, consulte La diferencia entre denegaciones explícitas e implícitas.
Información relacionada
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 10 meses