Gestion des clés - Amazon Simple Notification 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 des clés

Les sections suivantes fournissent des informations sur l’utilisation des clés gérées dans AWS Key Management Service (AWS KMS). Pour en savoir plus sur

Note

Amazon SNS prend uniquement en charge que les clés KMS de chiffrement symétriques. Vous ne pouvez utiliser aucun autre type de clé KMS pour crypter les ressources de votre service. Pour savoir si une clé KMS est symétrique, consultez Identification de clés asymétriques KMS.

Estimation des coûts AWS KMS

Pour prévoir les coûts et mieux comprendre votre facture AWS, vous souhaiterez peut-être connaître la fréquence à laquelle Amazon SNS utilise votre AWS KMS key.

Note

Bien que la formule ci-après puisse vous donner une très bonne idée des coûts à prévoir, les coûts réels risquent d’être plus élevés en raison de la nature distribuée d’Amazon SNS.

Pour calculer le nombre de demandes d’API (R) par rubrique, utilisez la formule suivante :

R = B / D * (2 * P)

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 – Amazon SNS réutilise une clé de données pour une durée maximale de 5 minutes).

P est le nombre de principaux de publication qui envoient des messages à la rubrique Amazon SNS.

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’appels d’API AWS KMS pour 1 éditeur et 1 rubrique

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 de 5 minutes (300 secondes).

  • Il y a 1 rubrique.

  • Il y a 1 principal de publication.

2,678,400 / 300 * (2 * 1) = 17,856

Exemple 2 : calcul du nombre d’appels d’API AWS KMS pour plusieurs éditeurs et 2 rubriques

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 de 5 minutes (300 secondes).

  • Il y a 2 rubriques.

  • La première rubrique comporte 3 principals de publication.

  • La deuxième en compte 5.

(2,419,200 / 300 * (2 * 3)) + (2,419,200 / 300 * (2 * 5)) = 129,024

Configuration des autorisations AWS KMS

Avant de pouvoir utiliser le chiffrement SSE, vous devez configurer les politiques d'AWS KMS key pour autoriser le chiffrement de rubriques, ainsi que le chiffrement et le déchiffrement de messages. Pour obtenir des exemples et des informations supplémentaires sur les autorisations AWS KMS, consultez Autorisations de l'API AWS KMS : référence des actions et ressources dans le Guide du développeurAWS Key Management Service. Pour plus d'informations sur la configuration d'une rubrique Amazon SNS avec le chiffrement côté serveur, consultez Configurer une rubrique Amazon SNS avec le chiffrement côté serveur.

Note

Vous pouvez également gérer les autorisations pour les clés KMS à chiffrement symétrique à l'aide de politiques IAM. Pour plus d’informations, consultez Utilisation de politiques IAM avec AWS KMS.

Alors que vous pouvez configurer des autorisations globales pour envoyer et recevoir des messages à destination et en provenance d'Amazon SNS, AWS KMS exige que l'ARN complet des clés KMS de régions spécifiques soit explicitement nommé dans la section Resource d'une politique IAM.

Vous devez aussi vous assurer que les stratégies de clés de la AWS KMS key accordent les autorisations nécessaires. Pour cela, nommez les mandataires qui produisent et consomment des messages chiffrés dans Amazon SNS en tant qu’utilisateurs dans la stratégie de clé KMS.

Vous pouvez également spécifier les actions AWS KMS requises et l'ARN KMS dans une politique IAM affectée aux principaux qui publient des messages chiffrés dans Amazon SNS et s'y abonnent. Pour en savoir plus, consultez la section Gestion de l'accès à AWS KMS dans le Guide du développeur AWS Key Management Service.

Si vous sélectionnez une clé gérée par le client pour votre rubrique Amazon SNS et que vous utilisez des alias pour contrôler l'accès aux clés KMS à l'aide de politiques IAM ou de stratégies de clés KMS avec la clé de condition kms:ResourceAliases, veillez à ce qu'un alias soit également associé à la clé gérée par le client sélectionnée. Pour plus d'informations sur l'utilisation d'alias pour contrôler l'accès aux clés KMS, consultez Utilisation d'alias pour contrôler l'accès aux clés KMS dans le Guide du développeur AWS Key Management Service.

Autoriser un utilisateur à envoyer des messages à une rubrique avec chiffrement SSE

Le diffuseur de publication doit disposer des autorisations kms:GenerateDataKey* et kms:Decrypt pour la AWS KMS key.

{ "Statement": [{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": "arn:aws:sns:*:123456789012:MyTopic" }] }

Activer la compatibilité entre des sources d’événements à partir de services AWS et de rubriques chiffrées

Plusieurs services AWS publient des évènements dans des rubriques Amazon SNS. Pour permettre à ces sources d’événements d’utiliser des rubriques chiffrés, vous devez effectuer les opérations suivantes.

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

  2. Pour permettre au service AWS d'avoir les autorisations kms:GenerateDataKey* et kms:Decrypt, ajoutez l'instruction suivante à la politique de la clé KMS.

    { "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }] }
    Source de l’événement principal du service
    Amazon CloudWatch cloudwatch.amazonaws.com
    Amazon CloudWatch Events events.amazonaws.com
    AWS CodeCommit codecommit.amazonaws.com
    AWS CodeStar codestar-notifications.amazonaws.com
    AWS Database Migration Service dms.amazonaws.com
    AWS Directory Service ds.amazonaws.com
    Amazon DynamoDB dynamodb.amazonaws.com
    Amazon Inspector inspector.amazonaws.com
    Amazon Redshift redshift.amazonaws.com
    Amazon RDS events.rds.amazonaws.com
    Amazon S3 Glacier glacier.amazonaws.com
    Amazon Simple Email Service ses.amazonaws.com
    Amazon Simple Storage Service s3.amazonaws.com
    AWS Snowball importexport.amazonaws.com
    AWSSystems Manager Incident Manager

    AWS Systems Manager Incident Manager comprend deux principes de service :

    ssm-incidents.amazonaws.com; ssm-contacts.amazonaws.com
    Note

    Certaines sources d’évènements Amazon SNS nécessitent que vous fournissiez un rôle IAM (plutôt que le principal du service) dans la politique AWS KMS key :

  3. Ajoutez les clés de condition aws:SourceAccount et aws:SourceArn à la politique basée sur les ressources KMS pour protéger davantage la clé KMS contre les attaques de l'adjoint confus. Reportez-vous à la liste des documents spécifiques au service (ci-dessus) pour connaître les détails précis de chaque cas.

    Important

    L'ajout du aws:SourceAccount et de aws:SourceArn à une politique AWS KMS n'est pas pris en charge pour les rubriques EventBridge-to-encrypted.

    { "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "customer-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:service:region:customer-account-id:resource-type:customer-resource-id" } } }
  4. Activez le chiffrement SSE pour votre rubrique à l’aide de votre clé KMS.

  5. Fournissez l’ARN de la rubrique chiffré à la source de l’événement.

Erreurs AWS KMS

Lorsque vous utilisez Amazon SNS et AWS KMS, vous risquez de rencontrer des erreurs. La liste suivante décrit les erreurs et les solutions de dépannage possibles.

KMSAccessDeniedException

Le texte chiffré désigne une clé qui n'existe pas ou à laquelle vous n'avez pas accès.

Code d'état HTTP : 400

KMSDisabledException

La demande a été rejetée, car la clé KMS spécifiée n'est pas activée.

Code d'état HTTP : 400

KMSInvalidStateException

La demande a été rejetée, car l'état de la ressource spécifiée n'est pas valide pour cette demande. Pour plus d'informations, consultez États de clé de AWS KMS keys dans le Manuel du développeur AWS Key Management Service.

Code d'état HTTP : 400

KMSNotFoundException

La requête a été rejetée, car l'entité ou la ressource spécifiée est introuvable.

Code d'état HTTP : 400

KMSOptInRequired

L’ID de clé d’accès AWS a besoin d’un abonnement pour le service.

Code d'état HTTP : 403

KMSThrottlingException

La demande a été refusée suite à une limitation des demandes. Pour plus d'informations sur cette limitation, consultez Quotas dans le Manuel du développeur AWS Key Management Service.

Code d'état HTTP : 400