Perché le notifiche degli eventi di Amazon S3 non vengono inviate a una coda Amazon SQS che utilizza la crittografia lato server?

5 minuti di lettura
0

Le notifiche di eventi Amazon Simple Storage Service (Amazon S3) non vengono inviate alla mia coda Amazon Simple Queue Service (Amazon SQS) con crittografia lato server (SSE).

Risoluzione

Completa questi passaggi per configurare e inviare notifiche di eventi S3 a una coda Amazon SQS che utilizza la crittografia lato server (SSE).

Creare una chiave AWS KMS gestita dal cliente e configurare la policy della chiave

È necessario crittografare le code di Amazon SQS con una chiave del servizio AWS di gestione delle chiavi (AWS KMS) gestita dal cliente. Quindi, concedi al servizio Amazon S3 le autorizzazioni principali per lavorare con code crittografate.

**Nota:**non è possibile modificare la chiave KMS predefinita gestita da AWS. È invece necessario utilizzare una chiave gestita dal cliente per questo processo. È inoltre necessario aggiungere autorizzazioni alla chiave AWS KMS per consentire l'accesso a un service principale specificato.

Per concedere le autorizzazioni principali del servizio Amazon S3, aggiungi questa dichiarazione alla policy delle chiavi gestite dal cliente:

{  "Version": "2012-10-17",
  "Id": "example-ID",
  "Statement": [
    {
      "Sid": "example-statement-ID",
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Enable IAM User Permissions",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::"111122223333":root"
      },
      "Action": "kms:*",
      "Resource": "*"
    }
  ]
}

**Nota:**sostituisci "arn:aws:iam::"111122223333":root" con il tuo ARN.

Creare una coda SQS e concedere le autorizzazioni Amazon S3

  1. Crea una coda Amazon SQS configurata per utilizzare SSE. Per ulteriori informazioni, consulta Configuring server-side encryption (SSE) for a queue (console).
  2. Per consentire ad Amazon S3 di inviare messaggi alla coda, aggiungi questa dichiarazione di autorizzazioni alla coda SQS:
{  "Version": "2012-10-17",
  "Id": "example-ID",
  "Statement": [
    {
      "Sid": "example-statement-ID",
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": "SQS:SendMessage",
      "Resource": "arn:aws:sqs:us-east-1:111122223333:sqs-s3-kms-same-account",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:s3:*:*:hellobucket"
        }
      }
    }
  ]
}

Nota: sostituisci il valore della Risorsa con l'ARN della coda SQS, aws:SourceAccount con l'ID del tuo account di origine AWS e aws:SourceArn con il tuo bucket ARN di Amazon S3.

Nell'esempio precedente, il bucket S3 hellobucket per l'account cliente 123456789 può inviare notifiche di eventi ObjectCreated alla coda SQS specificata. Per ulteriori informazioni sulle autorizzazioni richieste per lavorare con le code SQS crittografate, consulta Key management.

Creare un evento S3

Per aggiungere un evento Amazon S3 per il tuo bucket, completa questi passaggi:

  1. Apri la console S3, quindi scegli il nome con collegamento ipertestuale per il tuo bucket S3.
  2. Dalla scheda Proprietà, seleziona Crea notifica di evento.
  3. Nella pagina Crea notifica di evento, inserisci queste informazioni:
    In Nome evento, inserisci un nome.
    In Tipi di evento, seleziona i tipi di eventi per i quali desideri ricevere notifiche.
    In Destinazione, seleziona la coda SQS.
    In Coda SQS, seleziona la tua coda.
  4. Clicca su Salva modifiche.

Verificare che il tipo di evento Amazon S3 sia configurato correttamente

Quando configuri una notifica di eventi Amazon S3, devi specificare i tipi di eventi supportati per far sì che Amazon S3 invii la notifica. Se nel tuo bucket Amazon S3 si verifica un tipo di evento che non hai specificato, Amazon S3 non invia la notifica.

Verificare che i filtri per i nomi delle chiavi degli oggetti siano in formato con codifica URL

Se le notifiche degli eventi sono configurate per utilizzare il filtro dei nomi delle chiavi degli oggetti, le notifiche vengono pubblicate solo per oggetti con prefissi o suffissi specifici.

Se usi caratteri speciali nei tuoi prefissi o suffissi, devi inserirli nel formato con codifica URL. Per ulteriori informazioni, consulta Configuring event notifications using object key name filtering.

Nota: un carattere jolly ("*") non può essere usato nei filtri come prefisso o suffisso per rappresentare alcun carattere.

Assicurarsi che esistano tutte le destinazioni degli eventi

L'errore "Unable to validate the following destination configurations" si verifica quando non esiste una destinazione del bucket di notifica di eventi Amazon S3.

Se hai configurato una notifica di evento per inviare eventi a una destinazione che non esiste più, devi rimuovere questi eventi. Assicurati di rimuovere gli eventi prima di aggiornare la configurazione delle notifiche degli eventi.

**Nota:**È consigliabile utilizzare l'API PutBucketNotificationConfiguration per eliminare tutti gli eventi con destinazioni inesistenti.

Controllare il bucket S3 e le regioni di coda SQS

Non puoi inviare notifiche da un bucket S3 in una regione AWS a una coda Amazon SQS in un'altra regione. Puoi però impostare un argomento Amazon Simple Notification Service (Amazon SNS) come destinazione del bucket S3 con una coda Amazon SQS in una regione diversa. Amazon SNS supporta l'invio di notifiche in più regioni alle code di Amazon SQS e alle funzioni AWS Lambda.

Per ulteriori informazioni, consulta Sending Amazon SNS messages to an Amazon SQS queue or Lambda function in a different Region.

Confermare l'invio dei messaggi alla coda Amazon SQS

Utilizza la metrica NumberOfMessagesSent di Amazon CloudWatch per verificare che i messaggi siano stati inviati alla coda Amazon SQS.

Per ulteriori informazioni, consulta Why is my Amazon SQS queue not receiving messages?

Risolvere i problemi con il Supporto AWS

Se i passaggi precedenti non risolvono il problema, contatta il Supporto AWS. Includi il RequestID e il timestamp con il fuso orario delle chiamate API non riuscite nella tua corrispondenza.

Informazioni correlate

How can I get my Amazon SQS subscription to successfully receive a notification from my Amazon SNS topic?

Amazon S3 Event Notifications

Procedura dettagliata: Configuring a bucket for notifications (SNS topic or SQS queue)

AWS UFFICIALE
AWS UFFICIALEAggiornata 7 mesi fa