Gestion SQS des clés Amazon - Amazon Simple Queue Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion SQS des clés Amazon

Amazon SQS s'intègre à AWS Key Management Service (KMS) pour gérer les KMSclés de chiffrement côté serveur ()SSE. Consultez Le chiffrement est au repos sur Amazon SQS pour SSE obtenir des informations et des définitions relatives à la gestion des clés. Amazon SQS utilise des KMS clés pour valider et sécuriser les clés de données qui chiffrent et déchiffrent les messages. Les sections suivantes fournissent des informations sur l'utilisation des KMS clés et des clés de données dans le SQS service Amazon.

Configuration des autorisations AWS KMS

Chaque KMS clé doit être associée à une politique clé. Notez que vous ne pouvez pas modifier la politique relative aux clés d'une KMS clé AWS gérée pour AmazonSQS. La politique relative à cette KMS clé inclut l'autorisation pour tous les principaux du compte (autorisés à utiliser AmazonSQS) d'utiliser des files d'attente cryptées.

Pour une KMS clé gérée par le client, vous devez configurer la politique de clé afin d'ajouter des autorisations pour chaque producteur et consommateur de file d'attente. Pour ce faire, vous nommez le producteur et le consommateur en tant qu'utilisateurs dans la politique KMS clé. Pour plus d'informations sur AWS KMS les autorisations, consultez les AWS KMS ressources et les opérations ou la référence aux AWS KMS API autorisations dans le Guide du AWS Key Management Service développeur.

Vous pouvez également spécifier les autorisations requises dans une IAM politique attribuée aux principaux responsables de la production et de la consommation de messages chiffrés. Pour plus d'informations, consultez la section Utilisation des IAM politiques avec AWS KMS dans le Guide du AWS Key Management Service développeur.

Note

Bien que vous puissiez configurer des autorisations globales pour envoyer et recevoir depuis AmazonSQS, AWS KMS il est nécessaire ARN de nommer explicitement toutes les KMS clés dans des régions spécifiques dans la Resource section d'une IAM politique.

Configuration KMS des autorisations pour les AWS services

Plusieurs AWS services agissent comme des sources d'événements qui peuvent envoyer des événements aux SQS files d'attente Amazon. Pour permettre à ces sources d'événements de fonctionner avec des files d'attente chiffrées, vous devez créer une KMS clé gérée par le client et ajouter des autorisations dans la politique des clés afin que le service utilise les AWS KMS API méthodes requises. Effectuez les étapes suivantes pour configurer les autorisations.

Avertissement

Lorsque vous modifiez la KMS clé de chiffrement de vos SQS messages Amazon, sachez que les messages existants chiffrés avec l'ancienne KMS clé resteront chiffrés avec cette clé. Pour déchiffrer ces messages, vous devez conserver l'ancienne KMS clé et vous assurer que sa politique en matière de clés accorde à Amazon SQS les autorisations pour kms:Decrypt etkms:GenerateDataKey. Après la mise à jour avec une nouvelle KMS clé pour chiffrer les nouveaux messages, assurez-vous que tous les messages existants chiffrés avec l'ancienne KMS clé sont traités et retirés de la file d'attente avant de supprimer ou de désactiver l'ancienne KMS clé.

  1. Créez une KMS clé gérée par le client. Pour plus d’informations, consultez Création des clés dans le Guide du développeur AWS Key Management Service .

  2. Pour autoriser la source de l'événement de AWS service à utiliser les kms:GenerateDataKey API méthodes kms:Decrypt et, ajoutez l'instruction suivante à la politique KMS clé.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }] }

    Remplacez « service » dans l'exemple ci-dessus par le nom de service de la source de l'événement. Les sources d'événements incluent les services suivants.

    Source de l'événement Nom du service
    CloudWatch Événements Amazon events.amazonaws.com
    Notifications d'événements Amazon S3 s3.amazonaws.com
    Abonnements aux SNS rubriques Amazon sns.amazonaws.com
  3. Configurez une SSE file d'attente existante à l'aide ARN de votre KMS clé.

  4. Fournissez le nom ARN de la file d'attente cryptée à la source de l'événement.

Configurer AWS KMS les autorisations pour les producteurs

Lorsque la période de réutilisation de la clé de données expire, le prochain appel du producteur vers SendMessage ou SendMessageBatch déclenche également des appels vers kms:Decrypt et kms:GenerateDataKey. L'appel à kms:Decrypt a pour but de vérifier l'intégrité de la nouvelle clé de données avant de l'utiliser. Par conséquent, le producteur doit disposer des kms:GenerateDataKey autorisations kms:Decrypt et pour la KMS clé.

Ajoutez la déclaration suivante à la IAM politique du producteur. N'oubliez pas d'utiliser les ARN valeurs correctes pour la ressource clé et la ressource de file d'attente.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Configurer AWS KMS les autorisations pour les consommateurs

Lorsque la période de réutilisation de la clé de données expire, le prochain appel du consommateur vers ReceiveMessage déclenche également un appel de kms:Decrypt, pour vérifier l'intégrité de la nouvelle clé de données avant de l'utiliser. Par conséquent, le consommateur doit avoir l'kms:Decryptautorisation d'utiliser toute KMS clé utilisée pour chiffrer les messages dans la file d'attente spécifiée. Si la file d'attente agit comme une file d'attente de lettres mortes, le consommateur doit également avoir l'kms:Decryptautorisation d'utiliser toute KMS clé utilisée pour chiffrer les messages dans la file d'attente source. Ajoutez la déclaration suivante à la IAM politique du consommateur. N'oubliez pas d'utiliser les ARN valeurs correctes pour la ressource clé et la ressource de file d'attente.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Configurer AWS KMS les autorisations avec une protection adjointe confuse

Lorsque le mandataire dans une instruction de stratégie de clé est un principal de service AWS, vous pouvez utiliser les clés de condition globales aws:SourceArn ou aws:SourceAccount pour vous protéger contre le scénario de député confus. Pour utiliser ces clés de condition, définissez la valeur sur le Amazon Resource Name (ARN) de la ressource en cours de chiffrement. Si vous ne connaissez pas ARN la ressource, utilisez-la aws:SourceAccount plutôt.

Dans cette politique KMS clé, une ressource spécifique provenant d'un service appartenant au compte 111122223333 est autorisée à KMS demander Decrypt des GenerateDataKey actions, qui se produisent lors de SSE l'utilisation d'AmazonSQS.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "<replaceable>service</replaceable>.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:service::111122223333:resource" ] } } }] }

Lorsque vous utilisez des SQS files d'attente Amazon SSE activées, les services suivants sont pris en charge aws:SourceArn :

  • Amazon SNS

  • Amazon S3

  • CloudWatch Évènements

  • AWS Lambda

  • CodeBuild

  • Profils des clients Amazon Connect

  • AWS Auto Scaling

  • Amazon Chime

Présentation de la période de réutilisation des clés de données

La période de réutilisation des clés de données définit la durée maximale pendant laquelle Amazon peut SQS réutiliser la même clé de données. Lorsque la période de réutilisation des clés de données prend fin, Amazon SQS génère une nouvelle clé de données. Notez les instructions suivantes concernant la période de réutilisation.

  • Une période de réutilisation plus courte améliore la sécurité, mais entraîne un plus grand nombre d'appels AWS KMS, ce qui peut entraîner des frais au-delà du niveau gratuit.

  • Bien que la clé de données soit mise en cache séparé pour le chiffrement et le déchiffrement, la période de réutilisation s'applique aux deux copies de cette clé.

  • Lorsque la période de réutilisation des clés de données prend fin, le prochain appel SendMessage ou déclenche SendMessageBatch généralement un appel à la AWS KMS GenerateDataKey méthode pour obtenir une nouvelle clé de données. De plus, les prochains appels à SendMessage et ReceiveMessage déclencheront chacun un appel AWS KMS Decrypt pour vérifier l'intégrité de la clé de données avant de l'utiliser.

  • Les principaux (Comptes AWS ou utilisateurs) ne partagent pas les clés de données (les messages envoyés par des principaux uniques reçoivent toujours des clés de données uniques). Par conséquent, le volume d'appels AWS KMS est un multiple du nombre de principaux uniques utilisés pendant la période de réutilisation des clés de données.

Estimation AWS KMS des coûts

Pour prévoir les coûts et mieux comprendre votre AWS facture, vous souhaiterez peut-être savoir à quelle fréquence Amazon SQS utilise votre KMS clé.

Note

Bien que la formule suivante puisse vous donner une très bonne idée des coûts attendus, les coûts réels peuvent être plus élevés en raison de la nature distribuée d'AmazonSQS.

Pour calculer le nombre de API demandes (R) par file d'attente, utilisez la formule suivante :

R = (B / D) * (2 * P + C)

B est la période de facturation (en secondes).

D est la période de réutilisation des clés de données (en secondes).

Pest le nombre de producteurs principaux qui envoient des données vers la SQS file d'attente Amazon.

Cest le nombre de clients principaux qui reçoivent des informations de la SQS file d'attente Amazon.

Important

En général, les mandataires productifs ont un coût deux fois plus élevé que celui des mandataires consommateurs. Pour de plus amples informations, veuillez consulter Présentation de la période de réutilisation des clés de données.

Si le producteur et le consommateur ont des utilisateurs différents, le coût augmente.

Voici des exemples de calcul. Pour obtenir des informations précises sur la tarification, consultez Tarification AWS Key Management Service.

Exemple 1 : calcul du nombre d' AWS KMS APIappels pour 2 principaux et 1 file d'attente

Cet exemple suppose que :

  • La période de facturation va du 1er au 31 janvier (2 678 400 secondes).

  • La période de réutilisation des clés de données est définie sur 5 minutes (300 secondes).

  • Il y a 1 file d'attente.

  • Il y a 1 mandataire productif et 1 mandataire consommateur.

(2,678,400 / 300) * (2 * 1 + 1) = 26,784

Exemple 2 : calcul du nombre d' AWS KMS APIappels pour plusieurs producteurs et consommateurs et pour deux files d'attente

Cet exemple suppose que :

  • La période de facturation va du 1er au 28 février (2 419 200 secondes).

  • La période de réutilisation des clés de données est définie sur 24 heures (86 400 secondes).

  • Il y a 2 files d'attente.

  • La première file d'attente comporte 3 mandataires productifs et 1 mandataire consommateur.

  • La seconde file d'attente comporte 5 mandataires productifs et 2 mandataires consommateurs.

(2,419,200 / 86,400 * (2 * 3 + 1)) + (2,419,200 / 86,400 * (2 * 5 + 2)) = 532

AWS KMS erreurs

Lorsque vous travaillez avec Amazon SQS AWS KMS, il est possible que vous rencontriez des erreurs. Les références suivantes décrivent les erreurs et les solutions de dépannage possibles.