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.
Amazon Simple Notification Service se integra con AWS Identity and Access Management (IAM) para que pueda especificar qué acciones de Amazon SNS puede realizar un usuario suyo con los Cuenta de AWS recursos de Amazon SNS. Puede especificar un tema determinado de la política. Por ejemplo, puede utilizar variables cuando crea una política de IAM a fin de conceder permiso a determinados usuarios de su organización para utilizar la acción Publish
en temas específicos de su Cuenta de AWS. Para obtener más información, consulte Variables de las políticas en la Guía del usuario de IAM.
importante
El uso de Amazon SNS con IAM no cambia la forma de utilizar Amazon SNS. No hay cambios en las acciones de Amazon SNS ni acciones nuevas de Amazon SNS relacionados con los usuarios y el control de acceso.
Para ver ejemplos de políticas que abarcan acciones y recursos de Amazon SNS, consulte Ejemplos de políticas para Amazon SNS.
Uso en conjunto de políticas y roles de IAM y Amazon SNS
Las políticas de IAM se utilizan para restringir el acceso de los usuarios a acciones y temas de Amazon SNS. Una política de IAM puede restringir el acceso únicamente a los usuarios de su AWS cuenta, no a otros. Cuentas de AWS
Puede utilizar una política de Amazon SNS con un tema determinado para restringir quién puede trabajar en ese tema (por ejemplo, quién puede publicar mensajes en el tema, quién puede suscribirse al tema, etcétera). Las políticas de Amazon SNS pueden conceder acceso a otros Cuentas de AWS usuarios o a los propios usuarios. Cuenta de AWS
Con el fin de otorgar a sus usuarios permisos para sus temas de Amazon SNS, puede utilizar políticas de IAM, políticas de Amazon SNS o ambas. La mayoría de las veces, puede conseguir los mismos resultados con ambas. Por ejemplo, en el siguiente diagrama se muestra una política de IAM y una política de Amazon SNS equivalentes. La política de IAM permite la acción de Amazon Subscribe
SNS para el tema denominado topic_xyz en Cuenta de AWS tu página. La política de IAM está vinculada a los usuarios Bob y Susan (lo que significa que Bob y Susan tienen los permisos establecidos en la política). Con la política de Amazon SNS, también se les concede a Bob y Susan permiso para obtener acceso a Subscribe
en relación con topic_xyz.

nota
En el ejemplo anterior se muestran políticas sencillas sin condiciones. Puede especificar una condición determinada en cualquiera de las dos políticas y obtener el mismo resultado.
Hay una diferencia entre las políticas de AWS IAM y Amazon SNS: el sistema de políticas de Amazon SNS te permite conceder permisos a Cuentas de AWS otras personas, mientras que la política de IAM no.
Basándose en sus necesidades, decida el uso que quiere hacer de ambos sistemas para administrar los permisos. Los siguientes ejemplos muestran cómo funcionan conjuntamente los dos sistemas de política.
ejemplo 1
En este ejemplo, se aplica a Bob tanto una política de IAM como una política de Amazon SNS. La política de IAM le otorga permiso para hablar Subscribe
sobre cualquiera Cuenta de AWS de los temas, mientras que la política de Amazon SNS le otorga permiso para Publish
usarlo en un tema específico (topic_xyz). El siguiente diagrama ilustra este concepto.

Si Bob enviara una solicitud para suscribirse a cualquier tema de la AWS cuenta, la política de IAM permitiría esa acción. Si Bob quiere enviar una solicitud para publicar un mensaje en topic_xyz, la política de Amazon SNS permitirá la acción.
ejemplo 2
En este ejemplo, nos basamos en el ejemplo 1 (en el que se aplican dos políticas a Bob). Supongamos que Bob publica mensajes en topic_xyz que no debería haber publicado y usted decide quitarle por completo su capacidad para publicar en temas. Para ello, lo más fácil es agregar una política de IAM que le deniegue acceso a la acción Publish
en todos los temas. Esta tercera política anula la política de Amazon SNS que anteriormente le daba permiso para publicar en topic_xyz, ya que una denegación explícita siempre anula una instrucción “permitir” (para obtener más información sobre la lógica de evaluación de políticas, consulte Lógica de evaluación). El siguiente diagrama ilustra este concepto.

Para ver ejemplos de políticas que abarcan acciones y recursos de Amazon SNS, consulte Ejemplos de políticas para Amazon SNS.
Formato de ARN de recursos de Amazon SNS
Para Amazon SNS, los temas son el único tipo de recurso que puede especificar en una política. A continuación se muestra el formato de nombre de recurso de Amazon (ARN) para los temas.
arn:aws:sns:region
:account_ID
:topic_name
Para obtener más información al respecto ARNs, consulte la ARNsGuía del usuario de IAM.
El siguiente es un ARN de un tema denominado MyTopic en la región us-east-2, que pertenece a 123456789012. Cuenta de AWS
arn:aws:sns:us-east-2:123456789012:MyTopic
Si tuviera un tema nombrado MyTopic en cada una de las distintas regiones que admite Amazon SNS, puede especificar los temas con el siguiente ARN.
arn:aws:sns:*:123456789012:MyTopic
Puede utilizar los caracteres comodín * e ? en el nombre del tema. Por ejemplo, el ejemplo siguiente podría hacer referencia a todos los temas creados por Bob a los que ha puesto el prefijo bob_
.
arn:aws:sns:*:123456789012:bob_*
Para facilitarle su tarea, cuando crea un tema, Amazon SNS devuelve el ARN del tema en la respuesta.
Acciones de API de Amazon SNS
En una política de IAM, puede especificar cualquier acción que Amazon SNS ofrezca. Sin embargo, las acciones ConfirmSubscription
y Unsubscribe
no requieren autenticación, lo que significa que, incluso si especifica dichas acciones en una política, IAM no restringirá el acceso de los usuarios a estas acciones.
Cada acción que especifique en una política debe ir prefijada con la cadena en minúsculas sns:
. Para especificar todas las acciones de Amazon SNS, utilizaría, por ejemplo, sns:*
. Para obtener una lista de las acciones, vaya a la Referencia de la API de Amazon Simple Notification Service.
Claves de política de Amazon SNS
Amazon SNS implementa las siguientes claves de política AWS amplias, además de algunas claves específicas del servicio.
Para ver una lista de las claves de condición compatibles con cada una de ellas Servicio de AWS, consulte las acciones, los recursos y las claves de condición de la Guía del Servicios de AWS usuario de IAM. Para obtener una lista de las claves de condición que se pueden utilizar en varias Servicios de AWS, consulte las claves de contexto de condición AWS globales en la Guía del usuario de IAM.
Amazon SNS utiliza las siguientes claves específicas de servicio. Utilice estas claves en políticas que restringen el acceso a solicitudes Subscribe
.
-
sns:Endpoint: la URL, la dirección de correo electrónico o el ARN de una solicitud
Subscribe
o una suscripción confirmada anteriormente. Utilícela con las condiciones de la cadena (consulte Ejemplos de políticas para Amazon SNS) para restringir el acceso a puntos de enlace específicos (por ejemplo, *@yourcompany.com). -
sns:Protocol: el valor
protocol
de una solicitudSubscribe
o de una suscripción confirmada anteriormente. Utilícela con las condiciones de la cadena (consulte Ejemplos de políticas para Amazon SNS) para restringir la publicación en protocolos de entrega (por ejemplo, https).
Ejemplos de políticas para Amazon SNS
En esta sección, se muestran varias políticas sencillas para controlar el acceso de los usuarios a Amazon SNS.
nota
En el futuro, Amazon SNS podría agregar nuevas acciones que deberán, lógicamente, incluirse en una de las políticas siguientes, en función de los objetivos indicados en esta.
ejemplo 1: Permitir a un grupo crear y administrar temas
En este ejemplo, creamos una política que concede acceso a CreateTopic
, ListTopics
, SetTopicAttributes
y DeleteTopic
.
{
"Statement": [{
"Effect": "Allow",
"Action": ["sns:CreateTopic", "sns:ListTopics", "sns:SetTopicAttributes", "sns:DeleteTopic"],
"Resource": "*"
}]
}
ejemplo 2: Permitir que el grupo de TI publique mensajes en un tema determinado
En este ejemplo, creamos un grupo de TI y asignamos una política que concede acceso a Publish
en el tema de interés específico.
{
"Statement": [{
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:*:123456789012:MyTopic"
}]
}
ejemplo 3: Ofrezca a los usuarios la Cuenta de AWS posibilidad de suscribirse a los temas
En este ejemplo, creamos una política que concede acceso a la acción Subscribe
, con condiciones de coincidencia de la cadena para las claves de política sns:Protocol
y sns:Endpoint
.
{
"Statement": [{
"Effect": "Allow",
"Action": ["sns:Subscribe"],
"Resource": "*",
"Condition": {
"StringLike": {
"sns:Endpoint": "*@example.com"
},
"StringEquals": {
"sns:Protocol": "email"
}
}
}]
}
ejemplo 4: Permitir a un socio publicar mensajes en un tema determinado
Puede utilizar una política de Amazon SNS o una política de IAM para permitir a un socio publicar en un tema concreto. Si tu socio tiene una Cuenta de AWS, podría ser más fácil usar una política de Amazon SNS. Sin embargo, cualquier miembro de la empresa del socio que posea las credenciales AWS de seguridad podría publicar mensajes sobre el tema. En este ejemplo se presupone que quiere limitar el acceso a una determinada persona (o aplicación). Para ello, debe tratar al socio como un usuario de su propia compañía y utilizar una política de IAM en vez de una política de Amazon SNS.
Para este ejemplo, creamos un grupo denominado WidgetCo que representa a la empresa asociada; creamos un usuario para la persona (o aplicación) específica de la empresa asociada que necesita acceso y, a continuación, incluimos al usuario en el grupo.
A continuación, adjuntamos una política que concede al grupo Publish
acceso al tema específico mencionado WidgetPartnerTopic.
También queremos evitar que el WidgetCo grupo haga cualquier otra cosa con los temas, por lo que añadimos una declaración que deniega el permiso a cualquier acción de Amazon SNS que no sea Publish
sobre cualquier tema que no sea. WidgetPartnerTopic Este paso es necesario solo si existe una política amplia en cualquier otra parte del sistema que concede a los usuarios un acceso amplio a Amazon SNS.
{
"Statement": [{
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:*:123456789012:WidgetPartnerTopic"
},
{
"Effect": "Deny",
"NotAction": "sns:Publish",
"NotResource": "arn:aws:sns:*:123456789012:WidgetPartnerTopic"
}
]
}