Chiffrement des données au repos dans Step Functions - AWS Step Functions

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.

Chiffrement des données au repos dans Step Functions

Lisez le blogue

En savoir plus sur les clés gérées par le client dans Renforcer la sécurité des données grâce à une clé gérée par le client AWS KMS

AWS Step Functions chiffre toujours vos données au repos à l'aide d'un chiffrement transparent côté serveur. Le chiffrement des données au repos par défaut réduit les frais opérationnels et la complexité liés à la protection des données sensibles. Vous pouvez créer des applications sensibles en termes de sécurité qui répondent aux exigences réglementaires et de conformité strictes en matière de chiffrement.

Bien que vous ne puissiez pas désactiver cette couche de chiffrement ou sélectionner un autre type de chiffrement, vous pouvez ajouter une deuxième couche de chiffrement aux clés de chiffrement AWS détenues existantes en choisissant une clé gérée par le client lorsque vous créez votre machine d'état et vos ressources d'activité :

  • Clés gérées par le client — Step Functions prend en charge l'utilisation d'une clé symétrique gérée par le client que vous créez, détenez et gérez afin d'ajouter une deuxième couche de chiffrement au chiffrement AWS détenu existant. Étant donné que vous avez le contrôle total de cette couche de chiffrement, vous pouvez effectuer les tâches suivantes :

    • Établissement et gestion des stratégies de clé

    • Établir et maintenir IAM des politiques et des subventions

    • Activation et désactivation des stratégies de clé

    • Rotation des matériaux de chiffrement de clé

    • Ajout de balises

    • Création d'alias de clé

    • Planification des clés pour la suppression

    Pour plus d'informations, consultez la section clé gérée par le client dans le guide du AWS Key Management Service développeur.

Vous pouvez chiffrer vos données à l'aide d'une clé gérée par le client pour les machines d' AWS Step Functions État et les activités. Vous pouvez configurer une période de réutilisation des AWS KMS clés symétriques et des clés de données lors de la création ou de la mise à jour d'une State Machine et lors de la création d'une activité. L'historique d'exécution et la définition de la machine d'état seront chiffrés avec la clé appliquée à la machine d'état. Les entrées d'activité seront cryptées avec la clé appliquée à l'activité.

Grâce aux AWS KMS clés gérées par le client, vous pouvez protéger les données des clients, y compris les informations de santé protégées (PHI), contre tout accès non autorisé. Step Functions est intégré CloudTrail, ce qui vous permet de visualiser et d'auditer les événements les plus récents de la CloudTrail console dans l'historique des événements.

Pour plus d'informations AWS KMS, voir Qu'est-ce que c'est AWS Key Management Service ?

Note

Step Functions active automatiquement et gratuitement le chiffrement au repos à l'aide de clés AWS détenues par nos soins. Toutefois, AWS KMS des frais s'appliquent lors de l'utilisation d'une clé gérée par le client. Pour plus d’informations sur la tarification, consultez Tarification AWS Key Management Service.

Chiffrement à l'aide d'une clé gérée par le client

Step Functions déchiffre les données de charge utile à l'aide de votre AWS KMS clé gérée par le client avant de les transmettre à un autre service pour effectuer une tâche. Les données sont cryptées en transit à l'aide de Transport Layer Security (TLS).

Lorsque des données sont renvoyées par un service intégré, Step Functions les chiffre à l'aide de votre AWS KMS clé gérée par le client. Vous pouvez utiliser la même clé pour appliquer le chiffrement de manière cohérente à de nombreux AWS services.

Vous pouvez utiliser une clé gérée par le client avec les ressources suivantes :

  • State Machine : types de flux de travail standard et express

  • Activité

Vous pouvez spécifier la clé de données en saisissant un identifiant de KMS clé, que Step Functions utilise pour chiffrer vos données.

  • KMSID de clé : identifiant de clé pour une clé gérée par le AWS KMS client sous la forme d'un identifiant de clé, d'une cléARN, d'un nom d'alias ou d'un aliasARN.

Création d'une machine à états avec une clé gérée par le client

Prérequis : Avant de pouvoir créer une machine à états avec des AWS KMS clés gérées par le client, votre utilisateur ou votre rôle doit disposer AWS KMS des autorisations nécessaires pour DescribeKey etGenerateDataKey.

Vous pouvez effectuer les étapes suivantes dans la AWS console, via ou en provisionnant l'APIinfrastructure via AWS CloudFormation des ressources. (CloudFormation des exemples sont présentés plus loin dans ce guide.)

Étape 1 : créer une AWS KMS clé

Vous pouvez créer une clé symétrique gérée par le client à l'aide de la AWS KMS console ou AWS KMS APIs.

Pour créer une clé symétrique gérée par le client

Suivez les étapes de la rubrique Création d'une clé symétrique gérée par le client dans le Guide du développeur AWS Key Management Service .

Note

Facultatif : lors de la création d'une clé, vous pouvez choisir les administrateurs des clés. Les utilisateurs ou rôles sélectionnés auront accès à la gestion de la clé, par exemple en activant ou en désactivant la clé via leAPI. Vous pouvez également sélectionner Utilisateurs clés. Ces utilisateurs ou rôles seront autorisés à utiliser la AWS KMS clé dans des opérations cryptographiques.

Étape 2 : définir une politique AWS KMS clé

Les politiques de clés contrôlent l’accès à votre clé gérée par le client. Chaque clé gérée par le client doit avoir exactement une stratégie de clé, qui contient des instructions qui déterminent les personnes pouvant utiliser la clé et comment elles peuvent l’utiliser. Lorsque vous créez votre clé gérée par le client, vous pouvez spécifier une stratégie de clé. Pour plus d'informations, consultez la section Gestion de l'accès aux clés gérées par le client dans le Guide du AWS Key Management Service développeur.

Voici un exemple de politique AWS KMS clé depuis la console, sans administrateurs clés ni utilisateurs clés :

{ "Version": "2012-10-17", "Id": "key-consolepolicy-1", "Statement": [ { "Sid": "Enable IAM User Permissions for the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" } ] }

Consultez le guide du AWS Key Management Service développeur pour plus d'informations sur la spécification des autorisations dans une politique et la résolution des problèmes d'accès par clé.

Étape 3 : (Facultatif) Ajouter une politique clé pour chiffrer les journaux CloudWatch

Step Functions est intégré CloudWatch pour la journalisation et la surveillance. Vous avez la possibilité de chiffrer les données envoyées à CloudWatch Logs. Pour utiliser la journalisation chiffrée, vous devez fournir un accès au service de livraison de journaux dans la politique de clé des AWS KMS actions de la machine d'état. Vous pouvez chiffrer les groupes de journaux à l'aide de la clé de la machine d'état, ou vous pouvez choisir une autre clé spécifiquement pour le groupe de journaux (par exemple, « clé de groupe de journaux »).

Pour activer l'intégration des CloudWatch journaux chiffrés pour une machine à états, vous devez ajouter les éléments suivants à votre politique en matière de AWS KMS clés :

{ "Id": "key-consolepolicy-logging", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable log service for a single log group", "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnEquals": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:region:account-id:log-group:log-group-name" } } } ] }
Note

La Condition section limite la AWS KMS clé à un seul groupe ARN de journaux.

Vous devez également activer la fourniture de services de journalisation pour les intégrations avec la politique clé suivante :

{ "Sid": "Enable log service delivery for integrations", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "kms:Decrypt*", "Resource": "*" }
Note

Consultez la documentation sur les CloudWatch journaux pour en savoir plus sur la définition des autorisations sur la AWS KMS clé de votre groupe de journaux.

Étape 4 : Création d'une machine à états

Après avoir créé une clé et configuré la politique, vous pouvez utiliser cette clé pour créer une nouvelle machine à états.

Lors de la création de la machine d'état, choisissez Configuration supplémentaire, puis choisissez de chiffrer avec une clé gérée par le client. Vous pouvez ensuite sélectionner votre clé et définir la période de réutilisation de la clé de données entre 1 minute et 15 minutes.

Vous pouvez éventuellement activer la journalisation en définissant un niveau de journalisation et en choisissant de chiffrer le groupe de journaux avec votre AWS KMS clé.

Note

Vous ne pouvez activer le chiffrement que sur un nouveau groupe de journaux dans la console Step Functions. Pour savoir comment associer une AWS KMS clé à un groupe de journaux existant, voir Associer une AWS KMS clé à un groupe de journaux.

Étape 5 : Invoquez une machine à états chiffrée avec votre AWS KMS clé

Vous pouvez appeler votre machine d'état cryptée comme vous le feriez normalement, et vos données seront chiffrées avec votre clé gérée par le client.

Pour démarrer une exécution pour les flux de travail standard et les flux de travail express asynchrones avec des clés gérées par le client, votre rôle d'exécution nécessite des autorisations kms:Decrypt et des kms:GenerateDataKey autorisations. Le rôle d'exécution pour l'exécution de Synchronous Express nécessitekms:Decrypt. Lorsque vous créez une machine à états dans la console et que vous choisissez de créer un nouveau rôle, ces autorisations sont automatiquement incluses pour vous.

Création d'une activité à l'aide d'une clé gérée par le client

La création d'une activité Step Functions avec une clé gérée par le client est similaire à la création d'une machine à états avec une clé gérée par le client. Avant de pouvoir créer une activité avec des AWS KMS clés gérées par le client, votre utilisateur ou votre rôle n'a besoin que d' AWS KMS autorisations pourDescribeKey. Lors de la création de l'activité, vous choisissez la clé et définissez les paramètres de configuration du chiffrement.

Notez que les ressources d'activité de Step Functions restent immuables. Vous ne pouvez pas mettre à jour le encryptionConfiguration pour une activité ARN d'une activité existante ; vous devez créer une nouvelle ressource d'activité. Les appelants aux API points de terminaison d'activité doivent disposer des kms:DescribeKey autorisations nécessaires pour créer correctement une activité avec une AWS KMS clé.

Lorsque le chiffrement de clé géré par le client est activé sur une tâche d'activité, le rôle d'exécution de la machine d'état nécessite une kms:GenerateDataKey kms:Decrypt autorisation pour la clé d'activité. Si vous créez cette machine à états à partir de la console Step Functions, la fonction de création automatique de rôles ajoutera ces autorisations.

Étendre les politiques AWS KMS d'autorisation assorties de conditions

Vous pouvez utiliser le contexte de chiffrement dans les politiques clés et les IAM politiques conditions afin de contrôler l'accès à votre clé symétrique gérée par le client. Pour limiter l'utilisation d'une AWS KMS clé aux demandes émanant de Step Functions au nom d'un rôle spécifique, vous pouvez utiliser la kms:ViaService condition.

Délimitation du champ d'application avec le contexte de chiffrement

Un contexte de chiffrement est un ensemble facultatif de paires clé-valeur qui contient des informations contextuelles supplémentaires sur les données.

AWS KMS utilise le contexte de chiffrement comme données authentifiées supplémentaires pour prendre en charge le chiffrement authentifié. Lorsque vous incluez un contexte de chiffrement dans une demande de chiffrement de données, AWS KMS lie le contexte de chiffrement aux données chiffrées. Pour déchiffrer les données, vous devez inclure le même contexte de chiffrement dans la demande.

Step Functions fournit un contexte de chiffrement pour les opérations AWS KMS cryptographiques, où la clé est aws:states:stateMachineArn pour State Machines ou aws:states:activityArn pour Activities, et la valeur est la ressource Amazon Resource Name (ARN).

"encryptionContext": {"aws:states:stateMachineArn": "arn:aws:states:region:123456789012:stateMachine:state_machine_name"}
"encryptionContext": {"aws:states:activityArn": "arn:aws:states:region:123456789012:activity:activity_name"}

L'exemple suivant montre comment limiter l'utilisation d'une AWS KMS clé pour les rôles d'exécution à des machines d'état spécifiques dotées kms:EncryptionContext d'une clé aws:states:stateMachineArn contextuelle :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow KMS Permissions for StepFunctionsWorkflowExecutions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:aa-example-1:1234567890:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws:states:stateMachineArn": "arn:aws:states:aa-example-1:1234567890:stateMachine:MyStateMachine" } } } ] }

Dépistage avec km : ViaService

La clé de kms:ViaService condition limite l'utilisation d'une AWS Key Management Service clé aux demandes émanant de AWS services spécifiques.

L'exemple de politique suivant utilise kms:ViaService cette condition pour autoriser l'utilisation de la AWS KMS clé pour des actions spécifiques uniquement lorsque la demande provient de Step Functions de la ca-central-1 région, agissant pour le ExampleRole compte de :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow access for Key Administrators in a region", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::1234567890:role/ExampleRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "states.ca-central-1.amazonaws.com" } } } ] }
Note

La kms:ViaService condition n'est applicable que lorsque AWS KMS des autorisations sont requises par l'APIappelant (par exempleCreateStateMachine,CreateActivity,GetActivityTask, etc.). L'ajout d'une kms:ViaService condition à un rôle d'exécution peut empêcher le démarrage d'une nouvelle exécution ou provoquer l'échec d'une exécution en cours.

Autorisations requises pour les API appelants

Pour appeler des API actions Step Functions renvoyant des données chiffrées, les appelants ont besoin d' AWS KMS autorisations. Par ailleurs, certaines API actions comportent une option (METADATA_ONLY) permettant de renvoyer uniquement les métadonnées, ce qui élimine l'obligation d'obtenir des AWS KMS autorisations. Reportez-vous aux Step Functions API pour plus d'informations.

Pour qu'une exécution soit réussie lors de l'utilisation du chiffrement par clé géré par le client, le rôle d'exécution doit être accordé kms:GenerateDataKey et kms:Decrypt les autorisations pour les AWS KMS clés utilisées par la machine d'état doivent être utilisées.

Le tableau suivant indique les AWS KMS autorisations dont vous avez besoin pour fournir aux API appelants Step Functions State Machine. Vous pouvez fournir les autorisations dans la politique clé ou dans la IAM politique du rôle.

APIsen utilisant la AWS KMS clé de State Machine Requis par l'appelant
CreateStateMachine km :DescribeKey, km : GenerateDataKey
UpdateStateMachine km :DescribeKey, km : GenerateDataKey
DescribeStateMachine kms:Decrypt
DescribeStateMachineForExecution kms:Decrypt
StartExecution --
StartSyncExecution kms:Decrypt
SendTaskSuccess --
SendTaskFailure --
StopExecution --
RedriveExecution --
DescribeExecution kms:Decrypt
GetExecutionHistory kms:Decrypt

Le tableau suivant indique les AWS KMS autorisations dont vous avez besoin pour fournir aux API appelants Step Functions Activity. Vous pouvez fournir les autorisations dans la politique clé ou dans la IAM politique du rôle.

APIsen utilisant la AWS KMS clé d'activité Requis par l'appelant
CreateActivity km : DescribeKey
GetActivityTask kms:Decrypt
Quand dois-je accorder des autorisations à l'appelant ou au rôle d'exécution ?

Lorsqu'un IAM rôle ou un utilisateur appelle les Step FunctionsAPI, le service Step Functions appelle AWS KMS au nom de l'APIappelant. Dans ce cas, vous devez accorder AWS KMS l'autorisation à l'APIappelant. Lorsqu'un rôle d'exécution appelle AWS KMS directement, vous devez accorder AWS KMS des autorisations sur le rôle d'exécution.

AWS CloudFormation ressources pour la configuration du chiffrement

AWS CloudFormation les types de ressources pour Step Functions peuvent fournir des ressources d'état, de machine et d'activité avec des configurations de chiffrement.

Par défaut, Step Functions fournit un chiffrement transparent côté serveur. Les deux AWS::StepFunctions::Activityet AWS::StepFunctions::StateMachineacceptez une EncryptionConfiguration propriété facultative qui permet de configurer une AWS KMS clé gérée par le client pour le chiffrement côté serveur.

Prérequis : Avant de pouvoir créer une machine à états avec des AWS KMS clés gérées par le client, votre utilisateur ou votre rôle doit disposer AWS KMS des autorisations nécessaires pour DescribeKey etGenerateDataKey.

Les mises à jour ne StateMachine nécessitent aucune interruption. Les mises à jour des ressources d'activité nécessitent : Remplacement.

Pour déclarer une EncryptionConfigurationpropriété dans votre AWS CloudFormation modèle, utilisez la syntaxe suivante :

JSON

{ "KmsKeyId" : String, "KmsDataKeyReusePeriodSeconds" : Integer, "Type" : String }

YAML

KmsKeyId: String KmsDataKeyReusePeriodSeconds: Integer Type: String

Propriétés

  • Type : option de chiffrement pour la machine à états ou l'activité. Valeurs autorisées : CUSTOMER_MANAGED_KMS_KEY | AWS_OWNED_KEY

  • KmsKeyId- Alias, aliasARN, ID de clé ou clé ARN de la clé de chiffrement symétrique qui chiffre la AWS KMS clé de données. Pour spécifier une AWS KMS clé dans un autre AWS compte, le client doit utiliser la clé ARN ou l'aliasARN. Pour plus d'informations concernant kmsKeyId, voir KeyIddans la AWS KMS documentation.

  • KmsDataKeyReusePeriodSeconds- Durée maximale pendant laquelle les clés de données SFN seront réutilisées. Lorsque le délai expirera, Step Functions appelleraGenerateDataKey. Ce paramètre ne peut être défini que lorsque Type est défini surCUSTOMER_MANAGED_KMS_KEY. La valeur peut être comprise entre 60 et 900 secondes. La valeur par défaut est de 300 secondes.

AWS CloudFormation exemples

Exemple : StateMachine avec clé gérée par le client

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a Step Functions State Machine. Resources: MyStateMachine: Type: AWS::StepFunctions::StateMachine Properties: StateMachineName: HelloWorld-StateMachine Definition: StartAt: PassState States: PassState: Type: Pass End: true RoleArn: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/example" EncryptionConfiguration: KmsKeyId: !Ref MyKmsKey KmsDataKeyReusePeriodSeconds: 100 Type: CUSTOMER_MANAGED_KMS_KEY MyKmsKey: Type: AWS::KMS::Key Properties: Description: Symmetric KMS key used for encryption/decryption

Exemple : activité avec clé gérée par le client

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a Step Functions Activity. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: ActivityWithKmsEncryption EncryptionConfiguration: KmsKeyId: !Ref MyKmsKey KmsDataKeyReusePeriodSeconds: 100 Type: CUSTOMER_MANAGED_KMS_KEY MyKmsKey: Type: AWS::KMS::Key Properties: Description: Symmetric KMS key used for encryption/decryption

La mise à jour du chiffrement pour une activité nécessite la création d'une nouvelle ressource

La configuration des activités est immuable et les noms des ressources doivent être uniques. Pour définir des clés de chiffrement gérées par le client, vous devez créer une nouvelle activité. Si vous tentez de modifier la configuration d'une activité existante dans votre CFN modèle, vous recevrez une ActivityAlreadyExists exception.

Pour mettre à jour votre activité afin d'inclure des clés gérées par le client, définissez un nouveau nom d'activité dans votre CFN modèle. Voici un exemple de création d'une nouvelle activité avec une configuration de clé gérée par le client :

Définition de l'activité existante

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a new Step Functions Activity. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: ActivityName EncryptionConfiguration: Type: AWS_OWNED_KEY

Nouvelle définition de l'activité

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a Step Functions Activity. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: ActivityWithKmsEncryption EncryptionConfiguration: KmsKeyId: !Ref MyKmsKey KmsDataKeyReusePeriodSeconds: 100 Type: CUSTOMER_MANAGED_KMS_KEY MyKmsKey: Type: AWS::KMS::Key Properties: Description: Symmetric KMS key used for encryption/decryption

Surveillance de l'utilisation de vos clés de chiffrement

Lorsque vous utilisez une clé gérée par le AWS KMS client pour chiffrer vos ressources Step Functions, vous pouvez l'utiliser CloudTrail pour suivre les demandes auxquelles Step Functions envoie. AWS KMS

Vous pouvez également utiliser le contexte de chiffrement dans les enregistrements d'audit et les journaux pour identifier la manière dont la clé gérée par le client est utilisée. Le contexte de chiffrement apparaît également dans les journaux générés par AWS CloudTrail.

Les exemples suivants sont des CloudTrail événements destinés à DecryptDescribeKey, et GenerateDataKey pour surveiller les AWS KMS opérations appelées par Step Functions afin d'accéder aux données chiffrées par votre clé gérée par le client :

Decrypt

Lorsque vous accédez à une machine ou à une activité chiffrée, Step Functions appelle l'Decryptopération pour utiliser la clé de données cryptée stockée afin d'accéder aux données cryptées.

L'exemple d'événement suivant enregistre l'opération Decrypt :

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-07-05T21:06:27Z", "mfaAuthenticated": "false" } }, "invokedBy": "states.amazonaws.com" }, "eventTime": "2024-07-05T21:12:21Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "aa-example-1", "sourceIPAddress": "states.amazonaws.com", "userAgent": "states.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "encryptionContext": { "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1" } }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey

Step Functions utilise cette DescribeKey opération pour vérifier si la clé gérée par le AWS KMS client associée à votre State Machine ou à votre activité existe dans le compte et dans la région.

L'exemple d'événement suivant enregistre l'opération DescribeKey :

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-07-05T21:06:27Z", "mfaAuthenticated": "false" } }, "invokedBy": "states.amazonaws.com" }, "eventTime": "2024-07-05T21:12:21Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "aa-example-1", "sourceIPAddress": "states.amazonaws.com", "userAgent": "states.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }
GenerateDataKey

Lorsque vous activez une clé gérée par le AWS KMS client pour votre machine à états ou votre activité, Step Functions envoie une GenerateDataKey demande pour obtenir une clé de données permettant de chiffrer les données de définition ou d'exécution de la machine d'état.

L'exemple d'événement suivant enregistre l'opération GenerateDataKey :

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-07-05T21:06:27Z", "mfaAuthenticated": "false" } }, "invokedBy": "states.amazonaws.com" }, "eventTime": "2024-07-05T21:12:21Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "aa-example-1", "sourceIPAddress": "states.amazonaws.com", "userAgent": "states.amazonaws.com", "requestParameters": { "keySpec": "AES_256", "encryptionContext": { "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1" }, "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

FAQs

Que se passe-t-il si ma clé est marquée pour être supprimée ou supprimée AWS KMS ?

Si la clé est supprimée ou marquée pour être supprimée AWS KMS, toutes les exécutions en cours associées échoueront. Les nouvelles exécutions ne peuvent pas être démarrées tant que vous n'avez pas supprimé ou modifié la clé associée au flux de travail. Après la suppression d'une AWS KMS clé, toutes les données cryptées associées à l'exécution du flux de travail restent cryptées et ne peuvent plus être déchiffrées, ce qui les rend irrécupérables.

Que se passe-t-il si une AWS KMS clé est désactivée dans AWS KMS ?

Si une AWS KMS clé est désactivée dans AWS KMS, toutes les exécutions en cours associées échoueront. Il n'est pas possible de démarrer de nouvelles exécutions. Vous ne pouvez plus déchiffrer les données chiffrées sous cette AWS KMS clé désactivée tant qu'elle n'est pas réactivée.

Qu'advient-il des événements de modification du statut d'exécution envoyés à EventBridge ?

L'entrée, la sortie, l'erreur et la cause ne seront pas incluses pour les événements de changement de statut d'exécution pour les flux de travail chiffrés à l'aide de votre AWS KMS clé gérée par le client.

En savoir plus

Pour plus d'informations sur le chiffrement des données au repos, consultez AWS Key Management Service les concepts et les meilleures pratiques de sécurité AWS Key Management Service décrits dans le guide du AWS Key Management Service développeur.