Perché il mio argomento Amazon SNS non riceve le notifiche di CloudWatch Events?

Ultimo aggiornamento: 10-09-2021

Ho impostato una regola Amazon CloudWatch Events per inviare notifiche al mio argomento Amazon Simple Notification Service (Amazon SNS). Perché il mio argomento Amazon SNS non riceve notifiche di eventi?

Risoluzione

Verifica che le destinazioni della regola CloudWatch Events si trovino nella stessa regione AWS della regola

Le destinazioni associate a una regola devono trovarsi nella stessa regione della regola. Per ulteriori informazioni, consulta Nozioni di base su Amazon CloudWatch Events.

Nota: per vedere la regione in cui si trova una risorsa AWS, consulta l’Amazon Resource Name (ARN) della risorsa.

Verifica la causa del problema esaminando i parametri “Invocations” e “FailedInvocations” della regola di CloudWatch Events

Nella console di CloudWatch, rivedi i parametri Invocations e FailedInvocations della regola di CloudWatch Event.

Se sono presenti punti dati per entrambi i parametri, la notifica della regola CloudWatch Events ha tentato di richiamare la destinazione ma l'invocazione non è riuscita. Per risolvere il problema, devi concedere a CloudWatch le autorizzazioni necessarie per pubblicare messaggi nel tuo argomento. Per istruzioni, consulta la sezione Conferma di avere concesso a CloudWatch le autorizzazioni necessarie per pubblicare messaggi nel tuo argomento di questo articolo.

Se sono presenti punti dati solo per il parametro Invocations, la notifica della regola CloudWatch Events non ha raggiunto la destinazione. Per risolvere il problema, correggi la configurazione errata sulla destinazione.

Per ulteriori informazioni, consulta Visualizzazione dei parametri disponibili nella guida per l'utente di CloudWatch.

Conferma di avere concesso a CloudWatch le autorizzazioni necessarie per pubblicare messaggi nel tuo argomento

La policy basata sulle risorse dell'argomento di Amazon SNS deve consentire a CloudWatch di pubblicare messaggi nell'argomento. Esamina la policy di AWS Identity and Access Management (IAM) del tuo argomento per verificare che disponga delle autorizzazioni richieste e aggiungile se necessario.

Importante: “events.amazonaws.com” deve essere indicato come valore “Servizio”. “sns:Publish” deve essere elencato come valore “Operazione”.

Per aggiungere le autorizzazioni richieste, segui le istruzioni in La mia regola viene eseguita ma non vedo alcun messaggio pubblicato nel mio argomento Amazon SNS.

Esempio di istruzione delle autorizzazioni IAM che consente a CloudWatch di pubblicare messaggi in un argomento Amazon SNS

{
    "Sid": "AWSEvents_ArticleEvent_Id4950650036948",
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": "sns:Publish",
    "Resource": "arn:aws:sns:us-east-1:123456789012:My_SNS_Topic"
}

(Per argomenti con crittografia lato server (SSE) attivata) Verifica che l'argomento disponga delle autorizzazioni richieste per AWS Key Management (AWS KMS)

L'argomento Amazon SNS deve utilizzare una chiave AWS KMS gestita dal cliente. Questa chiave KMS deve includere una policy delle chiavi personalizzata che conferisca a CloudWatch autorizzazioni sufficienti per l'utilizzo delle chiavi.

Per configurare le autorizzazioni AWS KMS richieste, procedi come segue:

1.    Crea una nuova chiave KMS gestita dal cliente e che includa le autorizzazioni necessarie per CloudWatch.

2.    Configura SSE per il tuo argomento Amazon SNS utilizzando la chiave KMS personalizzata appena creata.

3.    Configura le autorizzazioni di AWS KMS che consentono a CloudWatch di pubblicare messaggi nel tuo argomento crittografato.

Esempio di istruzione delle policy IAM che consente a CloudWatch di pubblicare messaggi in un argomento crittografato Amazon SNS

{
    "Sid": "Allow CWE to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
    ],
    "Resource": "*"
}

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?