View a markdown version of this page

Gestione delle ElastiCache notifiche Amazon SNS - Amazon ElastiCache

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione delle ElastiCache notifiche Amazon SNS

Puoi configurare l'invio ElastiCache di notifiche per importanti eventi del cluster utilizzando Amazon Simple Notification Service (Amazon SNS). Negli esempi che seguono, verrà configurato un cluster con l'Amazon Resource Name (ARN) di un argomento Amazon SNS per la ricezione di notifiche.

Nota
  • Tale argomento presuppone l'avvenuta registrazione a Amazon SNS, nonché la configurazione e sottoscrizione di un argomento Amazon SNS. Per ulteriori informazioni su come procedere, consultare la Guida per gli sviluppatori di Amazon Simple Notification Service.

  • Per impostazione predefinita, ha API modify-replication-group effetto su tutti i gruppi di una regione e non solo sul gruppo attualmente specificato. Se desideri configurare un gruppo specifico in una regione in modo diverso rispetto agli altri gruppi, puoi utilizzare l'--notification-topic-arnopzione per creare un argomento separato per quel gruppo.

Requisito della politica di accesso agli argomenti SNS

Quando configuri un argomento Amazon SNS per ElastiCache le notifiche, la politica di accesso dell'argomento deve utilizzare la chiave di aws:SourceOwner condizione, non. aws:SourceAccount Gli argomenti Amazon SNS appena creati sono impostati come impostazione predefinita aws:SourceAccount nella loro politica di accesso, che ElastiCache non supporta le notifiche di eventi.

Se il tuo argomento Amazon SNS utilizzaaws:SourceAccount, ElastiCache non può pubblicare notifiche sull'argomento e imposta automaticamente lo stato dell'argomento su inattivo. I failover di Global Datastore e altre operazioni del cluster possono causare questo errore.

Per garantire il corretto funzionamento ElastiCache delle notifiche, verifica che la policy di accesso agli argomenti di Amazon SNS includa la seguente dichiarazione:

{ "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" } } } ] }

Se ElastiCache mostra lo stato dell'argomento Amazon SNS come inattivo dopo un failover o un'altra operazione del cluster, controlla la politica di accesso dell'argomento e sostituiscilo con. aws:SourceAccount aws:SourceOwner Quindi riattiva la notifica sul cluster con l'operazione ModifyReplicationGroup API o la console.

Per ulteriori informazioni su queste chiavi di condizione, consulta aws: SourceAccount vs aws: SourceOwner nella Amazon SNS Developer Guide.

Prerequisiti

Prima di configurare le notifiche di Amazon SNS per ElastiCache, verifica i seguenti requisiti:

  • L'argomento Amazon SNS deve trovarsi nella stessa AWS regione del cluster ElastiCache.

  • L'argomento Amazon SNS deve appartenere allo stesso AWS account del cluster. ElastiCache

  • L'argomento Amazon SNS non deve essere crittografato con una chiave gestita AWS KMS dal cliente. ElastiCache non supporta la pubblicazione di notifiche su argomenti di Amazon SNS crittografati con chiavi gestite AWS KMS dal cliente.

  • È necessario disporre delle autorizzazioni per modificare la policy di accesso agli argomenti di Amazon SNS sns:SetTopicAttributes (o equivalente).

Concessione ElastiCache dell'autorizzazione alla pubblicazione sul tuo argomento Amazon SNS

Per ricevere notifiche sugli eventi, devi concedere ElastiCache l'autorizzazione a pubblicare messaggi sul tuo argomento Amazon SNS. A tale scopo, aggiungi una policy basata sulle risorse all'argomento Amazon SNS che consente al responsabile del elasticache.amazonaws.com servizio di pubblicare messaggi.

La seguente politica concede ElastiCache l'autorizzazione richiesta:

{ "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" } } } ] }

La tabella seguente descrive i componenti della politica.

Componente Valore Description
Principale elasticache.amazonaws.com Il responsabile ElastiCache del servizio
Azione sns:Publish L'autorizzazione minima richiesta
Risorsa Topic ARN (ARN argomento) L'ARN del tuo argomento specifico su Amazon SNS
Condizione: aws:SourceAccount L'ID AWS del tuo account Limita l'accesso alle richieste provenienti dal tuo account specifico AWS

Concessione dell'autorizzazione (console)

Per concedere ElastiCache l'autorizzazione alla pubblicazione sul tuo argomento Amazon SNS (console)
  1. Apri la console Amazon Simple Notification Service all'indirizzo https://console.aws.amazon.com/sns/.

  2. Nel pannello di navigazione, scegli Argomenti.

  3. Seleziona l'argomento e scegli Modifica.

  4. Espandi la sezione Politica di accesso.

  5. Nell'editor JSON, aggiungi la dichiarazione di policy precedente.

  6. Scegli Save changes (Salva modifiche).

Concessione dell'autorizzazione (AWS CLI)

Salva la politica di accesso in un file denominatosns-policy.json, quindi esegui il comando seguente:

Per 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

Per 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

Per verificare che la politica sia stata applicata correttamente, esegui il comando seguente:

Per 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

Per Windows:

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

Aggiungere un argomento Amazon SNS.

Le seguenti sezioni mostrano come aggiungere un argomento Amazon SNS utilizzando la AWS console AWS CLI, l'o l' ElastiCache API.

Aggiunta di un argomento Amazon SNS (console)

Nella seguente procedura viene mostrato come aggiungere un argomento Amazon SNS a un cluster. Quando utilizzi Valkey o Redis OSS per aggiungere un argomento Amazon SNS per un gruppo di replica nella fase 2, invece di scegliere un cluster, scegli un gruppo di replica. Quindi segui gli stessi passaggi rimanenti.

Nota

Attenendosi alla presente procedura, è anche possibile modificare l'argomento Amazon SNS.

Per aggiungere o modificare l'argomento Amazon SNS per un cluster (console)
  1. Accedi a AWS Management Console e apri la ElastiCache console all'indirizzo https://console.aws.amazon.com/elasticache/.

  2. In Clusters (Cluster), scegliere il cluster al quale aggiungere o di cui modificare un ARN d'argomento Amazon SNS.

  3. Scegli Modifica.

  4. In Modify Cluster (Modifica cluster) nella sezione Topic for SNS Notification (Argomento per notifica SNS), scegliere l'argomento SNS da aggiungere o scegliere Manual ARN input (Input ARN manuale) e digitare l'ARN dell'argomento Amazon SNS.

  5. Scegli Modifica.

Aggiungere un argomento Amazon SNS (AWS CLI)

Per aggiungere o modificare un argomento Amazon SNS per un cluster, usa il AWS CLI comando. modify-cache-cluster

L'esempio di codice riportato di seguito rappresenta l'aggiunta di un ARN d'argomento Amazon SNS a my-cluster.

Per 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

Per Windows:

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

Per ulteriori informazioni, consulta modify-cache-cluster.

Aggiungere un argomento Amazon SNS (API) ElastiCache

Per aggiungere o modificare l'argomento Amazon SNS di un cluster, occorre chiamare l'operazione ModifyCacheCluster con i seguenti parametri:

  • CacheClusterId=my-cluster

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

Esempio
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>

Per ulteriori informazioni, consulta ModifyCacheCluster.

Attivazione e disattivazione delle notifiche Amazon SNS

È possibile, in base alle proprie esigenze, abilitare o disabilitare le notifiche relative a un cluster. La seguente procedura mostra come disabilitare le notifiche Amazon SNS.

Attivazione e disattivazione delle notifiche Amazon SNS (Console)

Per disabilitare le notifiche di Amazon SNS utilizzando AWS Management Console
  1. Accedi a AWS Management Console e apri la ElastiCache console all'indirizzo https://console.aws.amazon.com/elasticache/.

  2. Per visualizzare l'elenco dei cluster che eseguono Memcached, scegliere Memcached (Memcached) nel pannello di navigazione.

    Per visualizzare un elenco dei cluster che eseguono Valkey o Redis OSS, nel pannello di navigazione scegli Valkey o Redis OSS.

  3. Scegliere la casella a sinistra del cluster di cui modificare le notifiche.

  4. Scegli Modifica.

  5. In Modify Cluster (Modifica cluster) nella sezione Topic for SNS Notification (Argomento per notifica SNS), scegliere Disable Notifications (Disabilita notifiche).

  6. Scegli Modifica.

Abilitazione e disabilitazione delle notifiche Amazon SNS (AWS CLI)

Per disabilitare le notifiche Amazon SNS, occorre utilizzare il comando modify-cache-cluster con i seguenti parametri:

Per Linux, macOS o Unix:

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

Per Windows:

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

Quando il cluster appartiene a un gruppo di replica, è necessario utilizzare il modify-replication-group comando CLI per abilitare o disabilitare le notifiche SNS.

Abilitazione e disabilitazione delle notifiche ElastiCache Amazon SNS (API)

Per disabilitare le notifiche Amazon SNS, occorre chiamare l'operazione ModifyCacheCluster con i seguenti parametri:

  • CacheClusterId=my-cluster

  • NotificationTopicStatus=inactive

Questa chiamata restituisce un output simile al seguente:

Esempio
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>

Best practice di sicurezza per le policy tematiche di Amazon SNS

Per proteggere la tua policy tematica di Amazon SNS, segui queste best practice:

  • Includi sempre il aws:SourceAccount criterio delle condizioni per evitare attacchi diretti confusi tra account diversi.

  • Utilizza il codice principale del elasticache.amazonaws.com servizio anziché gli ID dei singoli AWS account.

  • Non utilizzare mai "Principal": {"AWS": "*"} senza chiavi di condizione aggiuntive.

  • Concedi solo le autorizzazioni minime richieste (sns:Publishsolo).

  • Verifica regolarmente le policy di accesso agli argomenti di Amazon SNS.

Verifica del funzionamento delle notifiche

Dopo aver configurato la policy tematica di Amazon SNS e aver aggiunto l'argomento al ElastiCache cluster, verifica che le notifiche funzionino:

  1. Attiva un ElastiCache evento, ad esempio una modifica della configurazione sul cluster.

  2. Controlla l'endpoint dell'abbonamento Amazon SNS (e-mail, funzione Lambda o coda SQS) per il messaggio di notifica.

  3. Nella console Amazon SNS, verifica che lo stato dell'abbonamento sia Confermato.

Risoluzione dei problemi relativi alle notifiche di Amazon SNS

Se non ricevi notifiche Amazon SNS da ElastiCache, verifica quanto segue:

Mancata corrispondenza tra le regioni

Verifica che l'argomento Amazon SNS si trovi nella stessa AWS regione del clusterElastiCache .

Proprietà dell'account

Verifica che l'argomento Amazon SNS AWS appartenga allo stesso account del cluster. ElastiCache

ID account errato nella condizione

Verifica che il aws:SourceAccount valore sia l'ID esatto a 12 cifre del tuo AWS account.

Crittografia KMS

Verifica che l'argomento Amazon SNS non sia crittografato con una chiave gestita AWS KMS dal cliente. ElastiCache non supporta la pubblicazione su argomenti con AWS KMS crittografia gestita dal cliente.

Argomento: ARN mismatch

Verifica che l'ARN dell'argomento Amazon SNS nella policy corrisponda esattamente all'ARN dell'argomento associato al cluster. ElastiCache

Abbonamento non confermato

Verifica che il tuo abbonamento ad Amazon SNS sia nello stato Confermato.

Autorizzazioni insufficienti

Conferma di avere sns:SetTopicAttributes l'autorizzazione a modificare la politica di accesso dell'argomento.