Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gestion des ElastiCache notifications Amazon SNS
Vous pouvez configurer ElastiCache l'envoi de notifications pour les événements importants du cluster à l'aide d'Amazon Simple Notification Service (Amazon SNS). Dans ces exemples, vous allez configurer un cluster avec l'Amazon Resource Name (ARN) d'une rubrique Amazon SNS pour recevoir des notifications.
Note
Cette rubrique suppose que vous êtes inscrit à Amazon SNS, que vous avez souscrit à une rubrique Amazon SNS et que vous l'avez configurée. Pour plus d'informations sur Amazon SNS, veuillez consulter le Guide du développeur d'Amazon Simple Notification Service.
Par défaut,
API modify-replication-groupcela affecte tous les groupes d'une région et pas seulement le groupe actuellement spécifié. Si vous souhaitez configurer un groupe spécifique dans une région différemment des autres groupes, vous pouvez utiliser l'--notification-topic-arnoption permettant de créer une rubrique distincte pour ce groupe.
Exigence en matière de politique d'accès aux rubriques SNS
Lorsque vous configurez une rubrique Amazon SNS pour les ElastiCache notifications, la politique d'accès de la rubrique doit utiliser la clé de aws:SourceOwner condition, et non. aws:SourceAccount Les rubriques Amazon SNS récemment créées sont définies par défaut aws:SourceAccount dans leur politique d'accès, qui ElastiCache ne prend pas en charge les notifications d'événements.
Si votre rubrique Amazon SNS utiliseaws:SourceAccount, vous ElastiCache ne pouvez pas publier de notifications relatives à cette rubrique et définit automatiquement le statut de la rubrique comme inactif. Les basculements de Global Datastore et d'autres opérations de cluster peuvent déclencher cette erreur.
Pour garantir le bon fonctionnement ElastiCache des notifications, vérifiez que votre politique d'accès aux rubriques Amazon SNS inclut la déclaration suivante :
{ "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 le statut de votre rubrique Amazon SNS ElastiCache indique qu'il est inactif après un basculement ou une autre opération de cluster, vérifiez la politique d'accès de la rubrique et remplacez-la par. aws:SourceAccount aws:SourceOwner Réactivez ensuite la notification sur le cluster à l'aide de l'opération ModifyReplicationGroup API ou de la console.
Pour plus d'informations sur ces clés de condition, consultez aws : SourceAccount vs aws : SourceOwner dans le manuel Amazon SNS Developer Guide.
Conditions préalables
Avant de configurer les notifications Amazon SNS pour ElastiCache, vérifiez les exigences suivantes :
Le sujet Amazon SNS doit se trouver dans la même AWS région que votre ElastiCache cluster.
La rubrique Amazon SNS doit appartenir au même AWS compte que votre ElastiCache cluster.
La rubrique Amazon SNS ne doit pas être chiffrée à l'aide d'une clé gérée AWS KMS par le client. ElastiCache ne prend pas en charge la publication de notifications sur les rubriques Amazon SNS chiffrées à l'aide de clés gérées AWS KMS par le client.
Vous devez disposer des autorisations nécessaires pour modifier la politique d'accès aux rubriques Amazon SNS (
sns:SetTopicAttributesou équivalent).
Octroi de l' ElastiCache autorisation de publication sur votre rubrique Amazon SNS
Pour recevoir des notifications d'événements, vous devez ElastiCache autoriser la publication de messages sur votre rubrique Amazon SNS. Pour ce faire, ajoutez une politique basée sur les ressources à la rubrique Amazon SNS qui autorise le directeur elasticache.amazonaws.com du service à publier des messages.
La politique suivante accorde ElastiCache l'autorisation requise :
{ "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" } } } ] }
Le tableau suivant décrit les composants de la politique.
| Composant | Value | Description |
|---|---|---|
| Principal | elasticache.amazonaws.com |
Le directeur ElastiCache du service |
| Action | sns:Publish |
L'autorisation minimale requise |
| Ressource | ARN de la rubrique | L'ARN de votre rubrique Amazon SNS spécifique |
État : aws:SourceAccount |
L'identifiant AWS de votre compte | Restreint l'accès aux demandes provenant de votre compte spécifique AWS |
Octroi d'une autorisation (console)
Pour ElastiCache autoriser la publication sur votre rubrique Amazon SNS (console)
-
Ouvrez la console Amazon Simple Notification Service à l'adresse https://console.aws.amazon.com/sns/
. -
Dans le volet de navigation, choisissez Rubriques.
-
Sélectionnez votre sujet, puis choisissez Modifier.
-
Développez la section Politique d'accès.
-
Dans l'éditeur JSON, ajoutez la déclaration de politique précédente.
-
Sélectionnez Enregistrer les modifications.
Octroi d'une autorisation (AWS CLI)
Enregistrez la politique d'accès dans un fichier nommésns-policy.json, puis exécutez la commande suivante :
Pour Linux, macOS ou 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
Pour 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
Pour vérifier que la politique a été correctement appliquée, exécutez la commande suivante :
Pour Linux, macOS ou Unix :
aws sns get-topic-attributes \ --topic-arn arn:aws:sns:region:account-id:topic-name\ --query 'Attributes.Policy' \ --output text \ --regionregion
Pour Windows :
aws sns get-topic-attributes ^ --topic-arn arn:aws:sns:region:account-id:topic-name^ --query 'Attributes.Policy' ^ --output text ^ --regionregion
Ajout d'une rubrique Amazon SNS
Les sections suivantes expliquent comment ajouter une rubrique Amazon SNS à l'aide de la AWS console, de l'API ou de l' AWS CLI API. ElastiCache
Ajout d'une rubrique Amazon SNS (console)
La procédure suivante vous indique comment ajouter une rubrique Amazon SNS pour un cluster. Lorsque vous utilisez Valkey ou Redis OSS pour ajouter une rubrique Amazon SNS pour un groupe de réplication à l'étape 2, au lieu de choisir un cluster, choisissez un groupe de réplication. Suivez ensuite les mêmes étapes restantes.
Note
Ce processus permet également de modifier la rubrique Amazon SNS.
Pour ajouter ou modifier une rubrique Amazon SNS pour un cluster (console)
-
Connectez-vous à la ElastiCache console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/elasticache/
. -
Dans Clusters, choisissez le cluster pour lequel vous souhaitez ajouter ou modifier un ARN de rubrique Amazon SNS.
-
Sélectionnez Modifier.
-
Dans Modify Cluster (Modifier le cluster) sous Topic for SNS Notification (Rubrique pour notification SNS), choisissez la rubrique SNS que vous voulez ajouter ou choisissez Manual ARN input (Saisie d'ARN manuelle) et tapez l'ARN de la rubrique Amazon SNS.
-
Sélectionnez Modifier.
Ajout d'une rubrique Amazon SNS (AWS CLI)
Pour ajouter ou modifier une rubrique Amazon SNS pour un cluster, utilisez la AWS CLI commande. modify-cache-cluster
L'exemple de code suivant ajoute un ARN de rubrique Amazon SNS à my-cluster.
Pour Linux, macOS ou Unix :
aws elasticache modify-cache-cluster \ --cache-cluster-idmy-cluster\ --notification-topic-arnarn:aws:sns:us-west-2:123456789xxx:ElastiCacheNotifications
Pour Windows :
aws elasticache modify-cache-cluster ^ --cache-cluster-idmy-cluster^ --notification-topic-arnarn:aws:sns:us-west-2:123456789xx:ElastiCacheNotifications
Pour plus d'informations, consultez modify-cache-cluster.
Ajout d'une rubrique Amazon SNS (API) ElastiCache
Pour ajouter ou modifier une rubrique Amazon SNS pour un cluster, appelez l'action ModifyCacheCluster avec les paramètres suivants :
-
CacheClusterId=my-cluster -
TopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications
Exemple
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>
Pour de plus amples informations, veuillez consulter ModifyCacheCluster.
Activation et désactivation des notifications Amazon SNS
Vous pouvez activer ou désactiver les notifications pour un cluster. Les procédures suivantes vous expliquent comment désactiver les notifications Amazon SNS.
Activation et désactivation des notifications Amazon SNS (console)
Pour désactiver les notifications Amazon SNS à l'aide du AWS Management Console
-
Connectez-vous à la ElastiCache console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/elasticache/
. -
Pour consulter une liste de vos clusters exécutant Memcached, dans le volet de navigation, sélectionnez Memcached.
Pour voir la liste de vos clusters exécutant Valkey ou Redis OSS, dans le volet de navigation, choisissez Valkey ou Redis OSS.
-
Cochez la case à gauche du cluster pour lequel vous souhaitez modifier la notification.
-
Sélectionnez Modifier.
-
Dans Modifier le cluster sous Rubrique pour notification SNS, choisissez Désactiver les notifications.
-
Sélectionnez Modifier.
Activation et désactivation des notifications Amazon SNS (AWS CLI)
Pour désactiver les notifications Amazon SNS, utilisez la commande modify-cache-cluster avec les paramètres suivants :
Pour Linux, macOS ou Unix :
aws elasticache modify-cache-cluster \ --cache-cluster-idmy-cluster\ --notification-topic-statusinactive
Pour Windows :
aws elasticache modify-cache-cluster ^ --cache-cluster-idmy-cluster^ --notification-topic-statusinactive
Note
Lorsque le cluster appartient à un groupe de réplication, vous devez utiliser la commande CLI modify-replication-group pour activer ou désactiver les notifications SNS.
Activation et désactivation des notifications ElastiCache Amazon SNS (API)
Pour désactiver les notifications Amazon SNS, appelez l'action ModifyCacheCluster avec les paramètres suivants :
-
CacheClusterId=my-cluster -
NotificationTopicStatus=inactive
Cet appel vous renvoie des informations semblables à ce qui suit :
Exemple
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>
Bonnes pratiques de sécurité pour les politiques relatives aux rubriques Amazon SNS
Pour garantir la sécurité de votre politique relative aux rubriques Amazon SNS, suivez les meilleures pratiques suivantes :
Incluez toujours la clé de
aws:SourceAccountcondition pour éviter les attaques d'adjoints confus entre comptes multiples.Utilisez le principal du
elasticache.amazonaws.com.rproxy.govskope.usservice plutôt que les identifiants de AWS compte individuels.Ne jamais utiliser
"Principal": {"AWS": "*"}sans clés de condition supplémentaires.N'accordez que les autorisations minimales requises (
sns:Publishuniquement).Vérifiez régulièrement vos politiques d'accès aux rubriques Amazon SNS.
Vérifier que les notifications fonctionnent
Après avoir configuré la politique relative aux rubriques Amazon SNS et ajouté la rubrique à votre ElastiCache cluster, vérifiez que les notifications fonctionnent :
Déclenchez un ElastiCache événement, tel qu'un changement de configuration sur votre cluster.
Vérifiez la présence du message de notification sur le point de terminaison de votre abonnement Amazon SNS (e-mail, fonction Lambda ou file d'attente SQS).
Dans la console Amazon SNS, vérifiez que le statut de l'abonnement indique Confirmé.
Résolution des problèmes liés aux notifications Amazon SNS
Si vous ne recevez pas de notifications Amazon SNS de la part d'Amazon ElastiCache, vérifiez les points suivants :
- Incompatibilité entre les régions
Vérifiez que le sujet Amazon SNS se trouve dans la même AWS région que votre ElastiCache cluster.
- Propriété du compte
Vérifiez que la rubrique Amazon SNS appartient au même AWS compte que votre ElastiCache cluster.
- Identifiant de compte incorrect en bon état
Vérifiez que la
aws:SourceAccountvaleur correspond exactement à 12 chiffres de votre identifiant de AWS compte.- Chiffrement KMS
Vérifiez que la rubrique Amazon SNS n'est pas chiffrée à l'aide d'une clé gérée AWS KMS par le client. ElastiCache ne prend pas en charge la publication dans des rubriques dont le AWS KMS chiffrement est géré par le client.
- Incompatibilité de l'ARN du sujet
Vérifiez que l'ARN de la rubrique Amazon SNS indiqué dans la politique correspond exactement à l'ARN de la rubrique associée à votre ElastiCache cluster.
- Abonnement non confirmé
Vérifiez que le statut de votre abonnement Amazon SNS est confirmé.
- Autorisations insuffisantes
Vérifiez que vous êtes
sns:SetTopicAttributesautorisé à modifier la politique d'accès du sujet.