View a markdown version of this page

Gestión de las ElastiCache notificaciones de Amazon SNS - Amazon ElastiCache

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.

Gestión de las ElastiCache notificaciones de Amazon SNS

Puede configurar ElastiCache el envío de notificaciones de eventos importantes del clúster mediante Amazon Simple Notification Service (Amazon SNS). En estos ejemplos, podrá configurar un clúster con el nombre de recurso de Amazon (ARN) de un tema de Amazon SNS para recibir notificaciones.

nota
  • En este tema, se da por sentado que se registró en Amazon SNS, que configuró un tema de Amazon SNS y se suscribió a dicho tema. Para obtener más información sobre cómo realizar esto, consulte la Guía para desarrolladores de Amazon Simple Notification

  • De forma predeterminada, API modify-replication-group afecta a todos los grupos de una región y no solo al grupo especificado actualmente. Si desea configurar un solo grupo específico de una región de forma diferente a los demás grupos, puede utilizar la opción --notification-topic-arn para crear un tema independiente para ese grupo.

Tema: requisito de política de acceso a SNS

Al configurar un tema de Amazon SNS para ElastiCache las notificaciones, la política de acceso del tema debe utilizar la clave de aws:SourceOwner condición, no. aws:SourceAccount Los temas de Amazon SNS recién creados están incluidos de forma predeterminada aws:SourceAccount en su política de acceso, que ElastiCache no admite notificaciones de eventos.

Si su tema de Amazon SNS utilizaaws:SourceAccount, ElastiCache no puede publicar notificaciones en el tema y establece automáticamente el estado del tema como inactivo. Las conmutaciones por error de Global Datastore y otras operaciones del clúster pueden provocar este error.

Para garantizar que ElastiCache las notificaciones funcionen correctamente, compruebe que su política de acceso a los temas de Amazon SNS incluya la siguiente declaración:

{ "Statement": [ { "Sid": "AllowElastiCachePublish", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:region:account-id:topic-name", "Condition": { "StringEquals": { "AWS:SourceOwner": "account-id" } } } ] }

Si ElastiCache muestra el estado de su tema de Amazon SNS como inactivo tras una conmutación por error u otra operación de clúster, compruebe la política de acceso del tema y sustitúyala por. aws:SourceAccount aws:SourceOwner A continuación, vuelva a activar la notificación en el clúster con la operación de la ModifyReplicationGroup API o la consola.

Para obtener más información sobre estas claves de condición, consulte aws: SourceAccount vs aws: SourceOwner en la Guía para desarrolladores de Amazon SNS.

Requisitos previos

Antes de configurar las notificaciones de Amazon SNS para ElastiCache, compruebe los siguientes requisitos:

  • El tema Amazon SNS debe estar en la misma AWS región que su ElastiCache clúster.

  • El tema Amazon SNS debe ser propiedad de la misma AWS cuenta que su ElastiCache clúster.

  • El tema de Amazon SNS no debe cifrarse con una clave AWS KMS gestionada por el cliente. ElastiCache no admite la publicación de notificaciones en temas de Amazon SNS cifrados con claves AWS KMS administradas por el cliente.

  • Debe tener permisos para modificar la política de acceso a los temas de Amazon SNS (sns:SetTopicAttributeso una política equivalente).

Otorgar ElastiCache permiso para publicar en tu tema de Amazon SNS

Para recibir notificaciones de eventos, debes conceder ElastiCache permiso para publicar mensajes en tu tema de Amazon SNS. Para ello, añada una política basada en recursos al tema de Amazon SNS que permita al director elasticache.amazonaws.com del servicio publicar mensajes.

La siguiente política concede ElastiCache el permiso necesario:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowElastiCachePublish", "Effect": "Allow", "Principal": { "Service": "elasticache.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:region:account-id:topic-name", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }

En la siguiente tabla se describen los componentes de la política.

Componente Valor Description (Descripción)
Principal elasticache.amazonaws.com El principal ElastiCache del servicio
Action sns:Publish El permiso mínimo requerido
Recurso ARN de tema El ARN de su tema específico de Amazon SNS
Condición: aws:SourceAccount Tu ID AWS de cuenta Restringe el acceso a las solicitudes que se originan en tu cuenta específica AWS

Concesión del permiso (consola)

Para conceder ElastiCache permiso para publicar en su tema de Amazon SNS (consola)
  1. Abra la consola de Amazon Simple Notification Service en https://console.aws.amazon.com/sns/.

  2. En el panel de navegación, elija Temas.

  3. Selecciona tu tema y selecciona Editar.

  4. Amplíe la sección Política de acceso.

  5. En el editor JSON, añada la declaración de política anterior.

  6. Seleccione Save changes (Guardar cambios).

Concesión del permiso (AWS CLI)

Guarde la política de acceso en un archivo denominado sns-policy.json y ejecute el siguiente comando:

Para Linux, macOS o Unix:

aws sns set-topic-attributes \ --topic-arn arn:aws:sns:region:account-id:topic-name \ --attribute-name Policy \ --attribute-value file://sns-policy.json \ --region region

Para Windows:

aws sns set-topic-attributes ^ --topic-arn arn:aws:sns:region:account-id:topic-name ^ --attribute-name Policy ^ --attribute-value file://sns-policy.json ^ --region region

Para comprobar que la política se aplicó correctamente, ejecute el siguiente comando:

Para Linux, macOS o Unix:

aws sns get-topic-attributes \ --topic-arn arn:aws:sns:region:account-id:topic-name \ --query 'Attributes.Policy' \ --output text \ --region region

Para Windows:

aws sns get-topic-attributes ^ --topic-arn arn:aws:sns:region:account-id:topic-name ^ --query 'Attributes.Policy' ^ --output text ^ --region region

Adición de un tema de Amazon SNS

En las siguientes secciones se muestra cómo añadir un tema de Amazon SNS mediante la AWS consola AWS CLI, la o la ElastiCache API.

Adición de un tema de Amazon SNS (Consola)

En el siguiente procedimiento se muestra cómo agregar un tema de Amazon SNS para un clúster. Cuando utilice Valkey o Redis OSS para añadir un tema de Amazon SNS para un grupo de replicación en el paso 2, en lugar de elegir un clúster, elija un grupo de replicación. A continuación, siga los mismos pasos restantes.

nota

Este proceso también se puede utilizar para modificar el tema de Amazon SNS.

A fin de agregar o modificar un tema de Amazon SNS para un clúster (Consola)
  1. Inicie sesión en la ElastiCache consola Consola de administración de AWS y ábrala en https://console.aws.amazon.com/elasticache/.

  2. En Clusters (Clústeres), elija el clúster en el que desee agregar o modificar un ARN de tema de Amazon SNS.

  3. Elija Modificar.

  4. En Modify Cluster (Modificar clúster) en Topic for SNS Notification (Tema para notificación SNS), elija el tema de SNS que desea agregar, o bien elija Manual ARN input (Entrada manual de ARN) y escriba el ARN del tema de Amazon SNS.

  5. Elija Modificar.

Añadir un tema de Amazon SNS (AWS CLI)

Para añadir o modificar un tema de Amazon SNS para un clúster, utilice el AWS CLI comando. modify-cache-cluster

El siguiente ejemplo de código agrega un ARN de tema de Amazon SNS a my-cluster.

Para Linux, macOS o Unix:

aws elasticache modify-cache-cluster \ --cache-cluster-id my-cluster \ --notification-topic-arn arn:aws:sns:us-west-2:123456789xxx:ElastiCacheNotifications

Para Windows:

aws elasticache modify-cache-cluster ^ --cache-cluster-id my-cluster ^ --notification-topic-arn arn:aws:sns:us-west-2:123456789xx:ElastiCacheNotifications

Para obtener más información, consulte modify-cache-cluster.

Añadir un tema de Amazon SNS (API) ElastiCache

A fin de agregar o modificar un tema de Amazon SNS para un clúster, realice una llamada a la acción ModifyCacheCluster con los siguientes parámetros:

  • CacheClusterId=my-cluster

  • TopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications

ejemplo
https://elasticache.amazon.com/ ?Action=ModifyCacheCluster &ApplyImmediately=false &CacheClusterId=my-cluster &NotificationTopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications &Version=2014-12-01 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

Para obtener más información, consulte ModifyCacheCluster.

Habilitación y deshabilitación de notificaciones de Amazon SNS

Puede habilitar o deshabilitar las notificaciones para un clúster. Los siguientes procedimientos muestran cómo deshabilitar las notificaciones de Amazon SNS.

Habilitación y deshabilitación de las notificaciones de Amazon SNS (Consola)

Para deshabilitar las notificaciones de Amazon SNS mediante el Consola de administración de AWS
  1. Inicie sesión en Consola de administración de AWS y abra la ElastiCache consola en https://console.aws.amazon.com/elasticache/.

  2. Para ver una lista de clústeres que ejecutan Memcached, elija Memcached en el panel de navegación.

    Para ver una lista de clústeres que ejecutan Valkey o Redis OSS, elija Valkey o Redis OSS en el panel de navegación.

  3. Elija la casilla situada a la izquierda del nombre del clúster cuya notificación desee modificar.

  4. Elija Modificar.

  5. En Modify Cluster, en Topic for SNS Notification, elija Disable Notifications.

  6. Elija Modificar.

Activación y desactivación de las notificaciones de Amazon SNS (AWS CLI)

Para deshabilitar las notificaciones de Amazon SNS, utilice el comando modify-cache-cluster con los siguientes parámetros:

Para Linux, macOS o Unix:

aws elasticache modify-cache-cluster \ --cache-cluster-id my-cluster \ --notification-topic-status inactive

Para Windows:

aws elasticache modify-cache-cluster ^ --cache-cluster-id my-cluster ^ --notification-topic-status inactive
nota

Si el clúster pertenece a un grupo de replicación, debe usar el comando de la CLI modify-replication-group para habilitar o deshabilitar las notificaciones de SNS.

Activación y desactivación de las notificaciones ElastiCache de Amazon SNS (API)

Para deshabilitar las notificaciones de Amazon SNS, realice una llamada a la acción ModifyCacheCluster con los siguientes parámetros:

  • CacheClusterId=my-cluster

  • NotificationTopicStatus=inactive

Esta llamada devuelve un resultado similar al siguiente:

ejemplo
https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheCluster &ApplyImmediately=false &CacheClusterId=my-cluster &NotificationTopicStatus=inactive &Version=2014-12-01 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

Prácticas recomendadas de seguridad para las políticas temáticas de Amazon SNS

Para ayudarte a proteger tu política temática de Amazon SNS, sigue estas prácticas recomendadas:

  • Incluya siempre la clave de aws:SourceAccount condición para evitar ataques de agentes confusos entre cuentas.

  • Utilice el nombre principal del elasticache.amazonaws.com servicio en lugar de los identificadores de AWS cuentas individuales.

  • Nunca lo use "Principal": {"AWS": "*"} sin claves de condición adicionales.

  • Otorgue solo los permisos mínimos requeridos (sns:Publishúnicamente).

  • Audite periódicamente las políticas de acceso a los temas de Amazon SNS.

Verificar que las notificaciones funcionan

Tras configurar la política de temas de Amazon SNS y añadir el tema al ElastiCache clúster, compruebe que las notificaciones funcionan:

  1. Active un ElastiCache evento, como un cambio de configuración en su clúster.

  2. Compruebe el punto de conexión de la suscripción a Amazon SNS (correo electrónico, función Lambda o cola de SQS) para ver el mensaje de notificación.

  3. En la consola de Amazon SNS, compruebe que el estado de la suscripción sea Confirmado.

Solución de problemas con las notificaciones de Amazon SNS

Si no recibes notificaciones de Amazon SNS de ElastiCache, comprueba lo siguiente:

La región no coincide

Compruebe que el tema de Amazon SNS se encuentra en la misma AWS región que su ElastiCache clúster.

Propiedad de la cuenta

Compruebe que el tema de Amazon SNS pertenece a la misma AWS cuenta que su ElastiCache clúster.

El estado de la cuenta es incorrecto

Comprueba que el aws:SourceAccount valor es tu ID de AWS cuenta exacto de 12 dígitos.

Cifrado de KMS

Compruebe que el tema de Amazon SNS no esté cifrado con una clave AWS KMS gestionada por el cliente. ElastiCache no admite la publicación en temas con AWS KMS cifrado administrado por el cliente.

Discrepancia del ARN del tema

Confirme que el ARN del tema de Amazon SNS de la política coincide exactamente con el ARN del tema adjunto a su clúster. ElastiCache

Suscripción no confirmada

Comprueba que tu suscripción a Amazon SNS esté en estado Confirmada.

Permisos insuficientes

Confirme que tiene sns:SetTopicAttributes permiso para modificar la política de acceso al tema.