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-groupafecta 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-arnpara 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)
-
Abra la consola de Amazon Simple Notification Service en https://console.aws.amazon.com/sns/
. -
En el panel de navegación, elija Temas.
-
Selecciona tu tema y selecciona Editar.
-
Amplíe la sección Política de acceso.
-
En el editor JSON, añada la declaración de política anterior.
-
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 \ --regionregion
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 ^ --regionregion
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 \ --regionregion
Para Windows:
aws sns get-topic-attributes ^ --topic-arn arn:aws:sns:region:account-id:topic-name^ --query 'Attributes.Policy' ^ --output text ^ --regionregion
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)
-
Inicie sesión en la ElastiCache consola Consola de administración de AWS y ábrala en https://console.aws.amazon.com/elasticache/
. -
En Clusters (Clústeres), elija el clúster en el que desee agregar o modificar un ARN de tema de Amazon SNS.
-
Elija Modificar.
-
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.
-
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-idmy-cluster\ --notification-topic-arnarn:aws:sns:us-west-2:123456789xxx:ElastiCacheNotifications
Para Windows:
aws elasticache modify-cache-cluster ^ --cache-cluster-idmy-cluster^ --notification-topic-arnarn: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
-
Inicie sesión en Consola de administración de AWS y abra la ElastiCache consola en https://console.aws.amazon.com/elasticache/
. -
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.
-
Elija la casilla situada a la izquierda del nombre del clúster cuya notificación desee modificar.
-
Elija Modificar.
-
En Modify Cluster, en Topic for SNS Notification, elija Disable Notifications.
-
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-idmy-cluster\ --notification-topic-statusinactive
Para Windows:
aws elasticache modify-cache-cluster ^ --cache-cluster-idmy-cluster^ --notification-topic-statusinactive
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:SourceAccountcondición para evitar ataques de agentes confusos entre cuentas.Utilice el nombre principal del
elasticache.amazonaws.com.rproxy.goskope.comservicio 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:
Active un ElastiCache evento, como un cambio de configuración en su clúster.
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.
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:SourceAccountvalor 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:SetTopicAttributespermiso para modificar la política de acceso al tema.