Notes d'utilisation du chiffrement de DynamoDB au repos - Amazon DynamoDB

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.

Notes d'utilisation du chiffrement de DynamoDB au repos

Lorsque vous utilisez un chiffrement au repos dans Amazon DynamoDB, tenez compte des considérations suivantes.

Toutes les données des tables sont chiffrées

Le chiffrement au repos côté serveur est activé sur toutes les données de tables DynamoDB et ne peut pas être désactivé. Vous ne pouvez pas chiffrer uniquement un sous-ensemble d'éléments dans une table.

La fonction de chiffrement au repos chiffre uniquement les données lorsque qu'elles sont statiques (au repos) sur un support de stockage permanent. Si la sécurité des données est un élément important pour les données en transit ou en cours d'utilisation, vous devrez peut-être prendre des mesures supplémentaires :

  • Données en transit : toutes vos données dans DynamoDB sont chiffrées en transit. Par défaut, les communications avec DynamoDB utilisent le protocole HTTPS qui protège le trafic réseau à l'aide du chiffrement Secure Sockets Layer (SSL)/Transport Layer Security (TLS).

  • Données en cours d'utilisation : protégez vos données avant de les envoyer à DynamoDB à l'aide d'un chiffrement côté client. Pour plus d'informations, consultez Chiffrement côté client et côté serveur dans le Guide du développeur de client de chiffrement Amazon DynamoDB.

Vous pouvez utiliser des flux avec des tables chiffrées. Les flux de DynamoDB sont toujours chiffrés avec une clé de chiffrement au niveau de la table. Pour plus d’informations, consultez Modifier la récupération de données pour DynamoDB Streams.

Les sauvegardes de DynamoDB sont chiffrées, et le chiffrement est également activé dans les tables restaurées à partir de ces sauvegardes. Vous pouvez utiliser la clé Clé détenue par AWS Clé gérée par AWS, ou la clé gérée par le client pour chiffrer vos données de sauvegarde. Pour plus d’informations, consultez Utilisation de la sauvegarde et de la restauration à la demande pour DynamoDB.

Les index secondaires locaux et les index secondaires globaux sont chiffrés à l'aide de la même clé que la table de base.

Types de chiffrement

Note

Les clés gérées par le client ne sont pas prises en charge dans Global Table Version 2017. Si vous souhaitez utiliser une clé de ce type dans une table globale DynamoDB, vous devez mettre à niveau cette table vers Global Table Version 2019, puis l'activer.

Sur le AWS Management Console, le type de chiffrement correspond à l'utilisation KMS de la clé gérée par le client Clé gérée par AWS ou de la clé gérée par le client pour chiffrer vos données. Le type de chiffrement est DEFAULT lorsque vous utilisez la clé Clé détenue par AWS. Dans l'API Amazon DynamoDB, le type de chiffrement correspond à l'utilisation de la clé gérée par le KMS client ou de la clé gérée Clé gérée par AWS par le client. Si le type de chiffrement n'est pas spécifié, vos données sont chiffrées avec la clé Clé détenue par AWS. Vous pouvez basculer entre la clé Clé détenue par AWS Clé gérée par AWS, et la clé gérée par le client à tout moment. Vous pouvez utiliser la console, le AWS Command Line Interface (AWS CLI) ou l'API Amazon DynamoDB pour changer les clés de chiffrement.

Notez que les limites suivantes s'appliquent lors de l'utilisation des clés gérées par le client :

  • Vous ne pouvez pas utiliser une clé gérée par le client avec des clusters DynamoDB Accelerator (DAX). Pour plus d’informations, consultez Chiffrement au repos DAX.

  • Vous pouvez utiliser une clé gérée par le client pour chiffrer les tables qui utilisent des transactions. Cependant, pour assurer la durabilité de la propagation des transactions, une copie de la demande de transaction est temporairement stockée par le service et chiffrée à l'aide d'une clé Clé détenue par AWS. Les données validées dans vos tables et index secondaires sont toujours chiffrées au repos à l'aide de votre clé gérée par le client.

  • Vous pouvez utiliser une clé gérée par le client pour chiffrer les tables qui utilisent Contributor Insights. Cependant, les données transmises à Amazon CloudWatch sont cryptées avec un Clé détenue par AWS.

  • Lorsque vous passez à une nouvelle clé gérée par le client, veillez à conserver la clé d'origine activée jusqu'à ce que le processus soit terminé. AWS aura toujours besoin de la clé d'origine pour déchiffrer les données avant de les chiffrer avec la nouvelle clé. Le processus sera terminé lorsque le statut SSEdescription de la table sera ACTIVÉ et que le KMS MasterKeyArn de la nouvelle clé gérée par le client sera affiché. À ce stade, la clé d'origine peut être désactivée ou planifiée en vue de sa suppression.

  • Une fois la nouvelle clé gérée par le client affichée, la table et toutes les nouvelles sauvegardes à la demande sont chiffrées avec la nouvelle clé.

  • Toutes les sauvegardes à la demande existantes restent chiffrées avec la clé gérée par le client utilisée lors de la création de ces sauvegardes. Vous aurez besoin de la même clé pour restaurer ces sauvegardes. Vous pouvez identifier la clé pour la période au cours de laquelle chaque sauvegarde a été créée en utilisant l' DescribeBackup API pour afficher la SSEdescription de cette sauvegarde.

  • Si vous désactivez votre clé gérée par le client ou planifiez sa suppression, toutes les données dans DynamoDB Streams restent sujettes à une durée de vie de 24 heures. Toutes les données d'activité non récupérées sont éligibles à la suppression lorsqu'elles ont plus de 24 heures.

  • Si vous désactivez votre clé gérée par le client ou planifiez sa suppression, les suppressions liées au Time-to-live (TTL) continuent pendant 30 minutes. Ces suppressions TTL continuent d'être effectuées dans DynamoDB Streams et sont sujettes à un intervalle de suppression/conservation standard.

    Pour plus d'informations, consultez les sections Activation des clés et Suppression de clés.

Utilisation des clés KMS et des clés de données

La fonctionnalité de chiffrement DynamoDB au repos utilise AWS KMS key une et une hiérarchie de clés de données pour protéger les données de votre table. DynamoDB utilise la même hiérarchie de clés pour protéger les DynamoDB Streams, les tables globales et les sauvegardes lorsqu'ils sont écrits sur un support durable.

Nous vous recommandons de planifier votre stratégie de chiffrement avant d'implémenter votre table dans DynamoDB. Si vous stockez des données sensibles ou confidentielles dans DynamoDB, pensez à inclure le chiffrement côté client dans votre stratégie. Vous pourrez ainsi chiffrer les données au plus près de leur origine et garantir leur protection tout au long de leur cycle de vie. Pour en savoir plus, consultez la documentation sur le client de chiffrement DynamoDB.

AWS KMS key

Le chiffrement au repos protège vos tables DynamoDB sous une AWS KMS key. Par défaut, DynamoDB utilise une Clé détenue par AWS, c'est-à-dire une clé de chiffrement à locataires multiples créée et gérée dans un compte de service DynamoDB. Toutefois, vous pouvez chiffrer vos tables DynamoDB sous une clé gérée par le client pour DynamoDB (aws/dynamodb) dans votre Compte AWS. Vous pouvez sélectionner une autre clé KMS pour chaque table. La clé KMS que vous sélectionnez pour une table est également utilisée pour chiffrer ses index secondaires, flux et sauvegardes locaux et globaux.

Vous sélectionnez la clé KMS pour une table lorsque vous créez ou mettez à jour la table. Vous pouvez modifier la clé KMS d'une table à tout moment, soit dans la console DynamoDB, soit en utilisant l'opération. UpdateTable Le processus de commutation des clés est transparent et ne provoque pas d'interruption ou de dégradation du service.

Important

DynamoDB ne prend en charge que les clés KMS symétriques. Vous ne pouvez pas utiliser une clé KMS asymétrique pour chiffrer vos tables DynamoDB.

Utilisez une clé gérée par le client pour obtenir les fonctions suivantes.

Utilisez le Clé gérée par AWS si vous avez besoin de l'une des fonctionnalités suivantes :

Cependant, il Clé détenue par AWS est gratuit et son utilisation n'est pas prise en compte dans les quotas de AWS KMS ressources ou de demandes. Les clés sont gérées par le client et Clés gérées par AWS des frais sont facturés pour chaque appel d'API. AWS KMS Des quotas s'appliquent à ces clés KMS.

Clés de table

DynamoDB utilise la clé KMS de la table pour générer et chiffrer une clé de données unique pour la table, appelée clé de table. La clé de table est conservée pendant toute la durée de vie de la table chiffrée.

La clé de table est utilisée en tant que clé de chiffrement de clé. DynamoDB utilise cette clé de table pour protéger les clés de chiffrement des données utilisées pour chiffrer les données de la table. DynamoDB génère une clé de chiffrement des données unique pour chaque structure sous-jacente dans une table, mais plusieurs éléments de table peuvent être protégés par la même clé de chiffrement des données.


              Chiffrement d'une table DynamoDB avec chiffrement au repos

Lorsque vous accédez pour la première fois à une table chiffrée, DynamoDB envoie une demande d'utilisation de la clé KMS AWS KMS pour déchiffrer la clé de table. Ensuite, il utilise la clé de table en texte brut pour déchiffrer les clés de chiffrement de données et utilise les clés de chiffrement de données en texte brut pour déchiffrer les données de table.

DynamoDB stocke et utilise la clé de table et les clés de chiffrement des données en dehors de. AWS KMS Il protège toutes les clés avec les clés de chiffrement Advanced Encryption Standard (AES) et 256 bits. Ensuite, il stocke les clés chiffrées avec les données chiffrées afin qu'elles soient disponibles pour déchiffrer les données de table à la demande.

Si vous modifiez la clé KMS de votre table, DynamoDB génère une nouvelle clé de table. Il utilise ensuite la nouvelle clé de table pour chiffrer de nouveau les clés de chiffrement des données.

Mise en cache des clés de table

Pour éviter d'appeler AWS KMS chaque opération DynamoDB, DynamoDB met en cache les clés de table en texte brut pour chaque appelant en mémoire. Si DynamoDB reçoit une demande pour la clé de table mise en cache après cinq minutes d'inactivité, il envoie une nouvelle demande AWS KMS pour déchiffrer la clé de table. Cet appel capturera toutes les modifications apportées aux politiques d'accès de la clé KMS dans AWS KMS ou AWS Identity and Access Management (IAM) depuis la dernière demande de déchiffrement de la clé de table.

Autoriser l'utilisation de votre clé KMS

Si vous utilisez une clé gérée par le client ou la Clé gérée par AWS dans votre compte pour protéger votre table DynamoDB, les politiques associées à cette clé KMS doivent accorder à DynamoDB l'autorisation de l'utiliser en votre nom. Le contexte d'autorisation de DynamoDB inclut sa politique clé et octroie à cette dernière les autorisations nécessaires pour l'utiliser. Clé gérée par AWS

Vous avez un contrôle total des politiques et des octrois sur une clé gérée par le client. La Clé gérée par AWS est dans votre compte, vous pouvez donc consulter ses politiques et octrois. Mais, comme il est géré par AWS, vous ne pouvez pas modifier les politiques.

DynamoDB n'a pas besoin d'autorisation supplémentaire pour utiliser la Clé détenue par AWSvaleur par défaut afin de protéger les tables DynamoDB de votre. Compte AWS

Politique clé pour un Clé gérée par AWS

Quand DynamoDB utilise la Clé gérée par AWS pour DynamoDB (aws/dynamodb) dans les opérations cryptographiques, il le fait au nom de l'utilisateur qui accède à la ressource DynamoDB. La politique clé sur le Clé gérée par AWS donne à tous les utilisateurs du compte l'autorisation d'utiliser le Clé gérée par AWS pour des opérations spécifiées. Toutefois, l'autorisation est accordée uniquement lorsque DynamoDB effectue cette demande pour le compte de l'utilisateur. La ViaService condition énoncée dans la politique des clés n'autorise aucun utilisateur à utiliser le, Clé gérée par AWS sauf si la demande provient du service DynamoDB.

Cette politique clé, comme les politiques de toutes Clés gérées par AWS, est établie par AWS. Vous ne pouvez pas la modifier, mais vous pouvez la visualiser à tout moment. Pour plus d'informations, consultez Affichage d'une stratégie de clé.

Les instructions de politique de la politique de clé ont l'effet suivant :

  • Autorisez les utilisateurs du compte à utiliser le Clé gérée par AWS for DynamoDB dans les opérations cryptographiques lorsque la demande provient de DynamoDB en leur nom. La politique autorise également les utilisateurs à créer des octrois pour la clé KMS.

  • Autorise les identités IAM autorisées dans le compte à afficher les propriétés du Clé gérée par AWS pour DynamoDB et à révoquer l'octroi qui permet à DynamoDB d'utiliser la clé KMS. DynamoDB utilise des octrois pour les opérations de maintenance en cours.

  • Permet à DynamoDB d'effectuer des opérations en lecture seule pour trouver le Clé gérée par AWS DynamoDB dans votre compte.

{ "Version" : "2012-10-17", "Id" : "auto-dynamodb-1", "Statement" : [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:CallerAccount" : "111122223333", "kms:ViaService" : "dynamodb.us-west-2.amazonaws.com" } } }, { "Sid" : "Allow direct access to key metadata to the account", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource" : "*" }, { "Sid" : "Allow DynamoDB Service with service principal name dynamodb.amazonaws.com to describe the key directly", "Effect" : "Allow", "Principal" : { "Service" : "dynamodb.amazonaws.com" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*" ], "Resource" : "*" } ] }

Politique de clé pour une clé gérée par le client

Lorsque vous sélectionnez une clé gérée par le client pour protéger une table DynamoDB, DynamoDB obtient l'autorisation d'utiliser la clé KMS pour le compte du principal qui effectue la sélection. Ce principal, un utilisateur ou un rôle, doit disposer des autorisations requises par DynamoDB sur la clé KMS. Vous pouvez fournir ces autorisations dans une politique de clé, une politique IAM ou un octroi.

DynamoDB requiert au minimum les autorisations suivantes sur une clé gérée par le client :

Par exemple, l'exemple de politique de clé suivant fournit uniquement les autorisations requises. La politique a les effets suivants :

  • Elle permet à DynamoDB d'utiliser la clé KMS dans les opérations cryptographiques et de créer des octrois, mais seulement lorsque ce service agit pour le compte des principals du compte qui ont l'autorisation d'utiliser DynamoDB. Si les principals spécifiés dans l'instruction de politique n'ont pas l'autorisation d'utiliser DynamoDB, l'appel échoue, même lorsqu'il provient du service DynamoDB.

  • La clé de ViaService condition kms : autorise les autorisations uniquement lorsque la demande provient de DynamoDB au nom des principaux acteurs répertoriés dans la déclaration de politique. Ces principals ne peuvent pas appeler ces opérations directement. Notez que la commande valeur kms:ViaService, dynamodb.*.amazonaws.com, possède un astérisque (*) dans la position Région. DynamoDB doit être autorisé à être indépendant de tout élément Région AWS particulier afin de pouvoir effectuer des appels interrégionaux afin de prendre en charge les tables globales DynamoDB.

  • Elle accorde aux administrateurs de clés KMS (utilisateurs qui peuvent endosser le rôle db-team) un accès en lecture seule à la clé KMS et l'autorisation de révoquer les octrois, en particulier les octrois requis par DynamoDB pour protéger la table.

Avant d'utiliser un exemple de politique clé, remplacez les exemples de principes par des principes réels provenant de votre. Compte AWS

{ "Id": "key-policy-dynamodb", "Version":"2012-10-17", "Statement": [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/db-lead"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService" : "dynamodb.*.amazonaws.com" } } }, { "Sid": "Allow administrators to view the KMS key and revoke grants", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/db-team" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" } ] }

Utilisation d'octrois pour autoriser DynamoDB

En plus des politiques de clé, DynamoDB utilise des octrois pour définir des autorisations sur une clé gérée par un client ou sur la Clé gérée par AWS pour DynamoDB (aws/dynamodb). Pour consulter les subventions associées à une clé KMS de votre compte, utilisez l'ListGrantsopération. DynamoDB n'a pas besoin d'octrois, ni d'autorisations supplémentaires, pour utiliser la Clé détenue par AWS et protéger votre table.

DynamoDB utilise les autorisations d'octroi lorsqu'il effectue des tâches de maintenance système en arrière-plan et de protection des données en continu. Il utilise également des octrois pour générer les clés de table.

Chaque octroi est spécifique à une table. Si le compte inclut plusieurs tables chiffrées avec la même clé KMS, il existe un octroi de chaque type pour chaque table. L'autorisation est limitée par le contexte de chiffrement DynamoDB, qui inclut le nom de la table et l'ID, et elle inclut Compte AWS l'autorisation de retirer la subvention si elle n'est plus nécessaire.

Pour créer les octrois, DynamoDB doit être autorisé à appeler CreateGrant au nom de l'utilisateur qui a créé la table chiffrée. En Clés gérées par AWS effet, DynamoDB kms:CreateGrant obtient l'autorisation de la politique des clés, qui permet aux utilisateurs du compte d'CreateGrantappeler la clé KMS uniquement lorsque DynamoDB fait la demande au nom d'un utilisateur autorisé.

La politique de clé peut également permettre au compte de révoquer l'octroi sur la clé KMS. Toutefois, si vous révoquez l'octroi sur une table chiffrée active, DynamoDB n'est pas en mesure de protéger ni de maintenir la table.

Client de chiffrement DynamoDB

Un contexte de chiffrement est un ensemble de paires clé-valeur qui contiennent des données non secrètes arbitraires. Lorsque vous incluez un contexte de chiffrement dans une demande de chiffrement de données, lie AWS KMS cryptographiquement le contexte de chiffrement aux données chiffrées. Pour déchiffrer les données, vous devez transmettre le même contexte de chiffrement.

DynamoDB utilise le même contexte de chiffrement dans AWS KMS toutes les opérations cryptographiques. Si vous utilisez une clé gérée par le client ou une Clé gérée par AWS pour protéger votre table DynamoDB, vous pouvez utiliser le contexte de chiffrement pour identifier l'utilisation de la clé KMS dans les enregistrements d'audit et les journaux. Il apparaît également en texte clair dans les journaux, tels que AWS CloudTrailAmazon CloudWatch Logs.

Le contexte de chiffrement peut également être utilisé comme condition d'autorisation dans les politiques et les octrois. DynamoDB utilise le contexte de chiffrement pour limiter les autorisations qui autorisent l'accès à la clé gérée par le client Clé gérée par AWS ou à votre compte et à votre région.

Dans ses demandes adressées à AWS KMS, DynamoDB utilise un contexte de chiffrement avec deux paires clé-valeur.

"encryptionContextSubset": { "aws:dynamodb:tableName": "Books" "aws:dynamodb:subscriberId": "111122223333" }
  • Table – La première paire clé-valeur identifie la table chiffrée par DynamoDB. La clé est aws:dynamodb:tableName. La valeur correspond au nom de la table.

    "aws:dynamodb:tableName": "<table-name>"

    Par exemple :

    "aws:dynamodb:tableName": "Books"
  • Compte – La deuxième paire clé-valeur identifie le Compte AWS. La clé est aws:dynamodb:subscriberId. La valeur correspond à l'ID de compte.

    "aws:dynamodb:subscriberId": "<account-id>"

    Par exemple :

    "aws:dynamodb:subscriberId": "111122223333"

Surveillance de l'interaction DynamoDB avec AWS KMS

Si vous utilisez une clé gérée par le client ou une clé Clé gérée par AWSpour protéger vos tables DynamoDB, vous pouvez AWS CloudTrail utiliser les journaux pour suivre les demandes que DynamoDB envoie en votre nom. AWS KMS

Les demandes GenerateDataKey, Decrypt et CreateGrant sont présentées dans cette section. En outre, DynamoDB utilise DescribeKeyune opération pour déterminer si la clé KMS que vous avez sélectionnée existe dans le compte et dans la région. Il utilise également une RetireGrantopération pour supprimer une autorisation lorsque vous supprimez une table.

GenerateDataKey

Lorsque vous activez le chiffrement au repos sur une table, DynamoDB crée une clé de table unique. Il envoie une GenerateDataKeydemande AWS KMS qui spécifie la clé KMS de la table.

L'événement qui enregistre l'opération GenerateDataKey est similaire à l'exemple d'événement suivant. L'utilisateur est le compte de service DynamoDB. Les paramètres incluent l'Amazon Resource Name (ARN) de la clé KMS, un spécificateur de clé qui nécessite une clé de 256 bits et le contexte de chiffrement qui identifie la table et le Compte AWS.

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:17Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Services", "aws:dynamodb:subscriberId": "111122223333" }, "keySpec": "AES_256", "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "229386c1-111c-11e8-9e21-c11ed5a52190", "eventID": "e3c436e9-ebca-494e-9457-8123a1f5e979", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333", "sharedEventID": "bf915fa6-6ceb-4659-8912-e36b69846aad" }
Decrypt

Lorsque vous accédez à une table DynamoDB chiffrée, DynamoDB a besoin de déchiffrer la clé de table pour pouvoir déchiffrer les clés situées au-dessous dans la hiérarchie. Il déchiffre ensuite les données de la table. Pour déchiffrer la clé de table. DynamoDB envoie une demande AWS KMS de déchiffrement qui indique la clé KMS de la table.

L'événement qui enregistre l'opération Decrypt est similaire à l'exemple d'événement suivant. L'utilisateur principal est Compte AWS celui qui accède à la table. Les paramètres incluent la clé de table cryptée (sous forme de blob de texte chiffré) et le contexte de chiffrement qui identifie la table et le. Compte AWS AWS KMS déduit l'ID de la clé KMS à partir du texte chiffré.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T16:42:15Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDT3HGFQZX4RY6RU", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T16:42:39Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "responseElements": null, "requestID": "11cab293-11a6-11e8-8386-13160d3e5db5", "eventID": "b7d16574-e887-4b5b-a064-bf92f8ec9ad3", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }
CreateGrant

Lorsque vous utilisez une clé gérée par le client ou une Clé gérée par AWS pour protéger votre table DynamoDB, DynamoDB utilise des octrois pour autoriser le service à assurer une protection continue des données, ainsi que des tâches de maintenance et de durabilité. Ces octrois ne sont pas requis sur les Clé détenue par AWS.

Les octrois que DynamoDB crée sont spécifiques à une table. Le principal de la CreateGrantdemande est l'utilisateur qui a créé la table.

L'événement qui enregistre l'opération CreateGrant est similaire à l'exemple d'événement suivant. Les paramètres incluent l'Amazon Resource Name (ARN) de la clé KMS de la table, le principal bénéficiaire et le principal de retrait (le service DynamoDB), ainsi que les opérations couvertes par l'octroi. Il inclut également une contrainte qui exige que toutes les opération de chiffrement utilisent le contexte de chiffrement spécifié.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T00:12:02Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:15Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "retiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "constraints": { "encryptionContextSubset": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "granteePrincipal": "dynamodb.us-west-2.amazonaws.com", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ] }, "responseElements": { "grantId": "5c5cd4a3d68e65e77795f5ccc2516dff057308172b0cd107c85b5215c6e48bde" }, "requestID": "2192b82a-111c-11e8-a528-f398979205d8", "eventID": "a03d65c3-9fee-4111-9816-8bf96b73df01", "readOnly": false, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }