Pourquoi les notifications d'événements Amazon S3 ne sont-elles pas envoyées à une file d'attente Amazon SQS utilisant un chiffrement côté serveur ?

Date de la dernière mise à jour : 16/08/2021

Les notifications d'événements Amazon Simple Storage Service (Amazon S3) ne sont pas envoyées dans ma file d'attente Amazon Simple Queue Service (Amazon SQS). Par exemple, je ne reçois pas de notifications d'événements Amazon S3 ObjectCreated lorsqu'un objet est téléchargé dans le compartiment S3. Le chiffrement côté serveur (SSE) est activé sur ma file d'attente Amazon SQS.

Comment recevoir des notifications d'événements S3 dans une file d'attente Amazon SQS qui utilise le chiffrement côté serveur (SSE) ?

Résolution

Pour configurer et envoyer des notifications d'événements S3 à une file d'attente Amazon SQS qui utilise le chiffrement SSE, procédez comme suit :

Créer une clé AWS KMS gérée par le client et configurer la politique de clé

Vous pouvez chiffrer les files d'attente Amazon SQS et les rubriques Amazon Simple Notification Service (Amazon SNS) avec une clé AWS Key Management Service (AWS KMS) gérée par le client. Toutefois, vous devez accorder les autorisations du principal de service Amazon S3 pour utiliser des rubriques ou des files d'attente chiffrées.

Remarque : la clé KMS gérée AWS par défaut ne peut pas être modifiée. Vous devez utiliser une clé gérée par le client pour le processus suivant et ajouter des autorisations à la clé KMS pour autoriser l'accès à un principal de service spécifié.

Pour accorder les autorisations du principal de service Amazon S3, ajoutez l'instruction suivante à la politique de clé gérée par le client :

Remarque : remplacez « arn:aws:iam።"111122223333":root » par votre Amazon Resource Name (ARN) de compte racine.

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

Créer une file d'attente SQS et accorder des autorisations à Amazon S3

1.    Créez une file d'attente Amazon SQS configurée pour utiliser le chiffrement SSE. Pour plus d'informations, consultez la section Configuration du chiffrement côté serveur (SSE) pour une file d'attente (console).

2.    Pour autoriser Amazon S3 à envoyer des messages à la file d'attente, ajoutez l'instruction d'autorisations suivante à la file d'attente SQS :

Remarque : remplacez la valeur Ressource par votre ARN de file d'attente SQS, AWS:SourceAccount par votre ID de compte source AWS et aws:SourceArn par votre ARN de compartiment Amazon S3.

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

Dans l'exemple précédent d'instruction d'autorisations, le compartiment S3 hellobucket, appartenant au compte client 123456789, peut envoyer des notifications d'événements ObjectCreated à la file d'attente SQS spécifiée.

Créer un événement S3

Pour ajouter un événement Amazon S3 à votre compartiment, procédez comme suit :

1.    Ouvrez la console S3, puis choisissez le nom avec hyperlien pour votre compartiment S3.

2.    Dans l'onglet Propriétés, choisissez Créer une notification d'événement.
Pour Nom de l'événement, saisissez un nom.
Pour Types d'événements, sélectionnez les types d'événements pour lesquels vous souhaitez recevoir des notifications.
Pour Destination, choisissez File d'attente SQS.
Pour File d'attente SQS, choisissez votre file d'attente.

3.    Choisissez Enregistrer les modifications.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?