Salta al contenuto

Perché il mio topic Amazon SNS non ha ricevuto notifiche di EventBridge?

4 minuti di lettura
0

Ho impostato una regola Amazon EventBridge per inviare notifiche al mio topic Amazon Simple Notification Service (Amazon SNS). Tuttavia, il mio topic Amazon SNS non ha ricevuto le notifiche degli eventi.

Risoluzione

Verifica che le destinazioni della regola EventBridge si trovino nella stessa Regione della regola

Le destinazioni che associ a una regola devono trovarsi nella stessa Regione AWS della regola.

Nota: per individuare la Regione in cui si trova una risorsa AWS, consulta il nome della risorsa Amazon (ARN).

Esamina le metriche "Invocations" e "FailedInvocations" della regola EventBridge per determinare il problema

Utilizza la console Amazon CloudWatch per esaminare le metriche Invocations e FailedInvocations della regola EventBridge.

Se sono presenti punti dati per entrambe le metriche, la notifica della regola EventBridge ha tentato di invocare la destinazione ma l'invocazione non è riuscita. Per risolvere il problema, devi concedere a EventBridge le autorizzazioni necessarie per pubblicare messaggi sul topic. Per istruzioni, consulta la sezione Verifica di aver concesso a EventBridge le autorizzazioni necessarie per pubblicare messaggi sul tpoic in questo articolo.

Se sono presenti punti dati solo per la metrica Invocations, la notifica della regola EventBridge non ha raggiunto la destinazione. Per risolvere il problema, riconfigura la regola per la destinazione.

Verifica di aver concesso a EventBridge le autorizzazioni necessarie per pubblicare messaggi sul topic

La policy basata sulle risorse del topic Amazon SNS deve consentire a EventBridge di pubblicare messaggi sul topic. Controlla la policy AWS Identity and Access Management (AWS IAM) del topic per accertarti che abbia le autorizzazioni richieste. Se la policy non ha autorizzazioni richieste, aggiungile.

Importante: devi indicare events.amazonaws.com come valore per Service e sns:Publish come valore per Action.

Esempio di istruzione di autorizzazione IAM che consente a EventBridge di pubblicare messaggi su un topic 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"
}

Verifica che il ruolo di esecuzione consenta a EventBridge di pubblicare sulla destinazione

Il ruolo di esecuzione IAM assegnato alla destinazione delle regole EventBridge richiede una relazione di attendibilità con il servizio EventBridge. Assicurati che la policy di attendibilità dei ruoli includa EventBridge (events.amazonaws.com) come entità attendibile. Se la policy di attendibilità non include le autorizzazioni richieste, aggiornala per concedere a EventBridge l'autorizzazione ad assumere il ruolo.

Esempio di istruzione di relazione di attendibilità IAM che consente a EventBridge di assumere il ruolo di esecuzione della destinazione:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "ACCOUNT-ID",
                    "aws:SourceArn": "EVENTBRIDGE-RULE-ARN"
                }
            }
        }
    ]
}

Importante: indica events.amazonaws.com come valore per Service e sns:AssumeRole come valore per Action. Sostituisci ACCOUNT-ID con l'ID del tuo account AWS e EVENTBRIDGE_RULE_ARN con il tuo ARN.

(Per topic con SSE attivato) Verifica che il topic abbia le autorizzazioni AWS KMS richieste

Il topic Amazon SNS deve utilizzare una chiave gestita dal cliente del Servizio AWS di gestione delle chiavi (AWS KMS). La chiave AWS KMS deve includere una policy della chiave personalizzata che autorizzi EventBridge a utilizzare la chiave.

Per configurare le autorizzazioni AWS KMS richieste, completa i seguenti passaggi:

  1. Crea una nuova chiave gestita dal cliente e accertati di includere le autorizzazioni richieste per EventBridge (events.amazonaws.com).
  2. Utilizza la chiave gestita dal cliente per configurare la crittografia lato server (SSE) per il topic Amazon SNS.
  3. Configura le autorizzazioni AWS KMS che consentono a EventBridge di pubblicare messaggi sul topic crittografato (events.amazonaws.com).

Esempio di istruzione di policy IAM che consente a EventBridge di pubblicare messaggi su un topic Amazon SNS crittografato:

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