Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwaltung von ElastiCache Amazon SNS SNS-Benachrichtigungen
Mit Amazon Simple Notification Service (Amazon SNS) können Sie konfigurieren ElastiCache , dass Benachrichtigungen für wichtige Cluster-Ereignisse gesendet werden. In diesen Beispielen konfigurieren Sie einen Cluster mit dem Amazon-Ressourcenname (ARN) eines Amazon-SNS-Themas, um Benachrichtigungen zu erhalten.
Anmerkung
In diesem Thema wird davon ausgegangen, dass Sie sich bei Amazon SNS angemeldet und ein Amazon-SNS-Thema eingerichtet und abonniert haben. Informationen dazu finden Sie im Entwicklerhandbuch zu Amazon Simple Notification Service.
Standardmäßig
API modify-replication-groupbetrifft das alle Gruppen in einer Region und nicht nur die aktuell angegebene Gruppe. Wenn Sie eine bestimmte Gruppe in einer Region anders konfigurieren möchten als die anderen Gruppen, können Sie die--notification-topic-arnOption verwenden, um ein separates Thema für diese Gruppe zu erstellen.
Anforderung an die Zugriffsrichtlinie für ein SNS-Thema
Wenn Sie ein Amazon SNS SNS-Thema für ElastiCache Benachrichtigungen konfigurieren, muss die Zugriffsrichtlinie des Themas den aws:SourceOwner Bedingungsschlüssel verwenden, nichtaws:SourceAccount. Neu erstellte Amazon SNS SNS-Themen sind standardmäßig aws:SourceAccount in ihrer Zugriffsrichtlinie enthalten, was ElastiCache keine Ereignisbenachrichtigungen unterstützt.
Wenn Ihr Amazon SNS SNS-Thema verwendetaws:SourceAccount, ElastiCache kann keine Benachrichtigungen zu dem Thema veröffentlichen und setzt den Themenstatus automatisch auf inaktiv. Global Datastore-Failover und andere Cluster-Operationen können diesen Fehler auslösen.
Um sicherzustellen, dass ElastiCache Benachrichtigungen korrekt funktionieren, stellen Sie sicher, dass Ihre Amazon SNS SNS-Themenzugriffsrichtlinie die folgende Aussage enthält:
{ "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" } } } ] }
Wenn Ihr Amazon SNS SNS-Themenstatus nach einem Failover oder einem anderen Cluster-Vorgang als inaktiv ElastiCache angezeigt wird, überprüfen Sie die Zugriffsrichtlinie des Themas und ersetzen aws:SourceAccount Sie sie durch. aws:SourceOwner Aktivieren Sie dann die Benachrichtigung auf dem Cluster mit dem ModifyReplicationGroup API-Vorgang oder der Konsole erneut.
Weitere Informationen zu diesen Bedingungsschlüsseln finden Sie unter aws: SourceAccount vs aws: SourceOwner im Amazon SNS Developer Guide.
Voraussetzungen
Bevor Sie Amazon SNS SNS-Benachrichtigungen für konfigurieren ElastiCache, überprüfen Sie die folgenden Anforderungen:
Das Amazon SNS SNS-Thema muss sich in derselben AWS Region wie Ihr ElastiCache Cluster befinden.
Das Amazon SNS SNS-Thema muss demselben AWS Konto gehören wie Ihr ElastiCache Cluster.
Das Amazon SNS SNS-Thema darf nicht mit einem vom Kunden verwalteten AWS KMS Schlüssel verschlüsselt werden. ElastiCache unterstützt nicht die Veröffentlichung von Benachrichtigungen zu Amazon SNS SNS-Themen, die mit vom Kunden verwalteten AWS KMS Schlüsseln verschlüsselt sind.
Sie müssen berechtigt sein, die Amazon SNS SNS-Themenzugriffsrichtlinie (
sns:SetTopicAttributesoder eine gleichwertige Richtlinie) zu ändern.
Erteilen der ElastiCache Erlaubnis zur Veröffentlichung in Ihrem Amazon SNS SNS-Thema
Um Veranstaltungsbenachrichtigungen zu erhalten, müssen Sie die ElastiCache Erlaubnis erteilen, Nachrichten zu Ihrem Amazon SNS SNS-Thema zu veröffentlichen. Dazu fügen Sie dem Amazon SNS SNS-Thema eine ressourcenbasierte Richtlinie hinzu, die es dem elasticache.amazonaws.com Service Principal ermöglicht, Nachrichten zu veröffentlichen.
Die folgende Richtlinie gewährt ElastiCache die erforderliche Genehmigung:
{ "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" } } } ] }
In der folgenden Tabelle werden die Richtlinienkomponenten beschrieben.
| Komponente | Wert | Description |
|---|---|---|
| Auftraggeber | elasticache.amazonaws.com |
Der ElastiCache Dienstprinzipal |
| Action | sns:Publish |
Die erforderliche Mindesterlaubnis |
| Ressource | Thema-ARN | Der ARN Ihres spezifischen Amazon SNS SNS-Themas |
Zustand: aws:SourceAccount |
Ihre AWS Konto-ID | Schränkt den Zugriff auf Anfragen ein, die von Ihrem spezifischen AWS Konto stammen |
Erteilung der Erlaubnis (Konsole)
Um die ElastiCache Erlaubnis zur Veröffentlichung in Ihrem Amazon SNS SNS-Thema zu erteilen (Konsole)
-
Öffnen Sie die Amazon Simple Notification Service-Konsole unter https://console.aws.amazon.com/sns/
. -
Wählen Sie im Navigationsbereich Themen aus.
-
Wählen Sie Ihr Thema aus und klicken Sie auf Bearbeiten.
-
Erweitern Sie den Abschnitt Zugriffsrichtlinie.
-
Fügen Sie im JSON-Editor die vorherige Richtlinienanweisung hinzu.
-
Wählen Sie Änderungen speichern aus.
Erteilung der Erlaubnis (AWS CLI)
Speichern Sie die Zugriffsrichtlinie in einer Datei mit dem Namen sns-policy.json und führen Sie dann den folgenden Befehl aus:
Für Linux, macOS oder 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
Für 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
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Richtlinie korrekt angewendet wurde:
Für Linux, macOS oder Unix:
aws sns get-topic-attributes \ --topic-arn arn:aws:sns:region:account-id:topic-name\ --query 'Attributes.Policy' \ --output text \ --regionregion
Für Windows:
aws sns get-topic-attributes ^ --topic-arn arn:aws:sns:region:account-id:topic-name^ --query 'Attributes.Policy' ^ --output text ^ --regionregion
Hinzufügen eines Amazon-SNS-Themas
In den folgenden Abschnitten erfahren Sie, wie Sie mithilfe der AWS Konsole, der oder der ElastiCache API ein Amazon SNS SNS-Thema hinzufügen. AWS CLI
Hinzufügen eines Amazon-SNS-Themas (Konsole)
Das folgende Verfahren zeigt Ihnen, wie Sie ein Amazon-SNS-Thema für einen Cluster hinzufügen. Wenn Sie Valkey oder Redis OSS verwenden, um in Schritt 2 ein Amazon SNS SNS-Thema für eine Replikationsgruppe hinzuzufügen, wählen Sie statt eines Clusters eine Replikationsgruppe aus. Folgen Sie dann den übrigen Schritten.
Anmerkung
Diese Vorgehensweise kann auch zum Ändern des Amazon-SNS-Themas verwendet werden.
So fügen Sie ein Amazon-SNS-Thema für einen Cluster hinzu oder ändern es (Konsole)
-
Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die ElastiCache Konsole unter https://console.aws.amazon.com/elasticache/
. -
Wählen Sie unter Cluster den Cluster aus, für den Sie einen Amazon-SNS-Thema-ARN hinzufügen oder ändern möchten.
-
Wählen Sie Ändern aus.
-
Wählen Sie im Feld Modify Cluster (Cluster ändern) unter Topic for SNS Notification (Thema für SNS-Benachrichtigung) das SNS-Thema aus, das Sie hinzufügen möchten, oder wählen Sie Manual ARN input (Manuelle ARN-Eingabe) aus und geben Sie den ARN des Amazon-SNS-Themas ein.
-
Wählen Sie Ändern aus.
Hinzufügen eines Amazon SNS SNS-Themas (AWS CLI)
Verwenden Sie den AWS CLI Befehlmodify-cache-cluster, um ein Amazon SNS SNS-Thema für einen Cluster hinzuzufügen oder zu ändern.
Das folgende Codebeispiel fügt einen Amazon-SNS-Themen-ARN zu my-cluster hinzu.
Für Linux, macOS oder Unix:
aws elasticache modify-cache-cluster \ --cache-cluster-idmy-cluster\ --notification-topic-arnarn:aws:sns:us-west-2:123456789xxx:ElastiCacheNotifications
Für Windows:
aws elasticache modify-cache-cluster ^ --cache-cluster-idmy-cluster^ --notification-topic-arnarn:aws:sns:us-west-2:123456789xx:ElastiCacheNotifications
Weitere Informationen finden Sie unter modify-cache-cluster.
Hinzufügen eines Amazon SNS SNS-Themas (ElastiCache API)
Rufen Sie zum Hinzufügen oder Ändern eines Amazon-SNS-Themas für einen Cluster die Aktion ModifyCacheCluster mit folgenden Parametern auf:
-
CacheClusterId=my-cluster -
TopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications
Beispiel
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>
Weitere Informationen finden Sie unter ModifyCacheCluster.
Aktivieren und Deaktivieren von Amazon-SNS-Benachrichtigungen
Sie können Benachrichtigungen für einen Cluster aktivieren oder deaktivieren. Das folgende Verfahren zeigt, wie Sie Amazon-SNS-Benachrichtigungen deaktivieren.
Aktivieren und Deaktivieren von Amazon-SNS-Benachrichtigungen (Konsole)
Um Amazon SNS SNS-Benachrichtigungen zu deaktivieren, verwenden Sie den AWS-Managementkonsole
-
Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die ElastiCache Konsole unter https://console.aws.amazon.com/elasticache/
. -
Um eine Liste der Cluster anzuzeigen, die Memcached ausführen, wählen Sie im Navigationsbereich Memcached.
Um eine Liste Ihrer Cluster anzuzeigen, auf denen Valkey oder Redis OSS ausgeführt werden, wählen Sie im Navigationsbereich Valkey oder Redis OSS aus.
-
Aktivieren Sie das Kontrollkästchen links neben dem Cluster, für den die Benachrichtigung geändert werden soll.
-
Wählen Sie Ändern aus.
-
Wählen Sie im Feld Modify Cluster unter Topic for SNS Notification die Option Disable Notifications aus.
-
Wählen Sie Ändern aus.
Amazon SNS SNS-Benachrichtigungen aktivieren und deaktivieren (AWS CLI)
Verwenden Sie zum Deaktivieren von Amazon-SNS-Benachrichtigungen den Befehl modify-cache-cluster mit folgenden Parametern:
Für Linux, macOS oder Unix:
aws elasticache modify-cache-cluster \ --cache-cluster-idmy-cluster\ --notification-topic-statusinactive
Für Windows:
aws elasticache modify-cache-cluster ^ --cache-cluster-idmy-cluster^ --notification-topic-statusinactive
Anmerkung
Wenn der Cluster zu einer Replikationsgruppe gehört, müssen Sie den CLI-Befehl verwenden, modify-replication-group um SNS-Benachrichtigungen zu aktivieren oder zu deaktivieren.
Amazon SNS SNS-Benachrichtigungen (ElastiCache API) aktivieren und deaktivieren
Rufen Sie zum Deaktivieren von Amazon-SNS-Benachrichtigungen die ModifyCacheCluster-Aktion mit folgenden Parametern auf:
-
CacheClusterId=my-cluster -
NotificationTopicStatus=inactive
Diese Aktion führt zu folgender oder einer ähnlichen Ausgabe:
Beispiel
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>
Bewährte Sicherheitsmethoden für Amazon SNS SNS-Themenrichtlinien
Um Ihre Amazon SNS SNS-Themenrichtlinie zu schützen, folgen Sie diesen bewährten Methoden:
Geben Sie immer den
aws:SourceAccountBedingungsschlüssel an, um kontenübergreifende, verwirrte Deputy-Angriffe zu verhindern.Verwenden Sie den
elasticache.amazonaws.com.rproxy.govskope.usService Principal anstelle einzelner AWS Konto-IDs.Niemals
"Principal": {"AWS": "*"}ohne zusätzliche Bedingungsschlüssel verwenden.Gewähren Sie nur die erforderlichen Mindestberechtigungen (
sns:Publishnur).Überprüfen Sie regelmäßig Ihre Amazon SNS SNS-Themenzugriffsrichtlinien.
Stellen Sie sicher, dass Benachrichtigungen funktionieren
Nachdem Sie die Amazon SNS SNS-Themenrichtlinie konfiguriert und das Thema zu Ihrem ElastiCache Cluster hinzugefügt haben, stellen Sie sicher, dass die Benachrichtigungen funktionieren:
Lösen Sie ein ElastiCache Ereignis aus, z. B. eine Konfigurationsänderung in Ihrem Cluster.
Suchen Sie in Ihrem Amazon SNS SNS-Abonnementendpunkt (E-Mail, Lambda-Funktion oder SQS-Warteschlange) nach der Benachrichtigung.
Vergewissern Sie sich, dass in der Amazon SNS SNS-Konsole der Abonnementstatus Bestätigt angezeigt wird.
Fehlerbehebung Amazon SNS SNS-Benachrichtigungen
Wenn Sie keine Amazon SNS SNS-Benachrichtigungen von erhalten ElastiCache, überprüfen Sie Folgendes:
- Regionen stimmen nicht überein
Stellen Sie sicher, dass sich das Amazon SNS SNS-Thema in derselben AWS Region wie Ihr ElastiCache Cluster befindet.
- Besitz des Kontos
Stellen Sie sicher, dass das Amazon SNS SNS-Thema demselben AWS Konto gehört wie Ihr ElastiCache Cluster.
- Falsche Konto-ID im Zustand
Vergewissern Sie sich, dass es sich bei dem
aws:SourceAccountWert um Ihre genaue 12-stellige AWS Konto-ID handelt.- KMS-Verschlüsselung
Stellen Sie sicher, dass das Amazon SNS SNS-Thema nicht mit einem vom Kunden verwalteten AWS KMS Schlüssel verschlüsselt ist. ElastiCache unterstützt keine Veröffentlichung zu Themen mit vom Kunden verwalteter AWS KMS Verschlüsselung.
- Thema: ARN-Mismatch
Vergewissern Sie sich, dass der Amazon SNS SNS-Thema-ARN in der Richtlinie genau mit dem ARN des Themas übereinstimmt, das mit Ihrem ElastiCache Cluster verknüpft ist.
- Unbestätigtes Abonnement
Vergewissern Sie sich, dass Ihr Amazon SNS SNS-Abonnement den Status Bestätigt hat.
- Unzureichende Berechtigungen
Bestätigen Sie, dass Sie
sns:SetTopicAttributesberechtigt sind, die Zugriffsrichtlinie des Themas zu ändern.