Cifrado de datos en reposo en Step Functions - AWS Step Functions

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cifrado de datos en reposo en Step Functions

Lea el blog

AWS Step Functions siempre cifra los datos en reposo mediante un cifrado transparente del lado del servidor. El cifrado de los datos en reposo de forma predeterminada reduce la sobrecarga operativa y la complejidad que implica la protección de los datos confidenciales. Puede crear aplicaciones sensibles a la seguridad que cumplan con los estrictos requisitos normativos y de conformidad con el cifrado.

Si bien no puede deshabilitar esta capa de cifrado ni seleccionar un tipo de cifrado alternativo, puede añadir una segunda capa de cifrado sobre las claves de cifrado que ya AWS posee. Para ello, elija una clave gestionada por el cliente al crear su máquina de estado y sus recursos de actividad:

  • Claves administradas por el cliente: Step Functions admite el uso de una clave simétrica administrada por el cliente que usted crea, posee y administra para agregar una segunda capa de cifrado sobre el cifrado de AWS propiedad existente. Como usted tiene el control total de este cifrado, puede realizar dichas tareas como:

    • Establecer y mantener políticas de claves

    • Establecer y mantener IAM políticas y subvenciones

    • Habilitar y deshabilitar políticas de claves

    • Rotar el material criptográfico

    • Agregar etiquetas.

    • Crear alias de clave

    • Programar la eliminación de claves

    Para obtener más información, consulte la clave administrada por el cliente en la Guía para AWS Key Management Service desarrolladores.

Puede cifrar sus datos con una clave gestionada por el cliente para las máquinas y actividades AWS Step Functions estatales. Puede configurar una AWS KMS clave simétrica y un período de reutilización de la clave de datos al crear o actualizar una máquina de estados y al crear una actividad. El historial de ejecución y la definición de la máquina de estados se cifrarán con la clave aplicada a la máquina de estados. Las entradas de la actividad se cifrarán con la clave aplicada a la actividad.

Con AWS KMS las claves administradas por el cliente, puede proteger los datos de los clientes, incluida la información de salud protegida (PHI), contra el acceso no autorizado. Step Functions está integrado con CloudTrail, por lo que puede ver y auditar los eventos más recientes de la CloudTrail consola en el historial de eventos.

Para obtener más información AWS KMS, consulte ¿Qué es AWS Key Management Service?

nota

Step Functions permite automáticamente el cifrado en reposo utilizando claves AWS propias sin coste alguno. Sin embargo, se aplican AWS KMS cargos cuando se utiliza una clave gestionada por el cliente. Para obtener información sobre precios, consulte Precios de AWS Key Management Service.

Cifrar con una clave gestionada por el cliente

Step Functions descifra los datos de la carga útil con la AWS KMS clave gestionada por el cliente antes de pasarlos a otro servicio para realizar una tarea. Los datos se cifran en tránsito mediante Transport Layer Security ()TLS.

Cuando los datos se devuelven desde un servicio integrado, Step Functions los cifra con la AWS KMS clave gestionada por el cliente. Puede usar la misma clave para aplicar el cifrado de manera uniforme en muchos AWS servicios.

Puede utilizar una clave gestionada por el cliente con los siguientes recursos:

  • State Machine: tipos de flujo de trabajo estándar y exprés

  • Actividad

Puede especificar la clave de datos introduciendo un identificador de KMS clave, que Step Functions utiliza para cifrar los datos.

  • KMSID de clave: identificador de clave de una clave gestionada por el AWS KMS cliente en forma de identificador de clave, claveARN, nombre de alias o aliasARN.

Cree una máquina de estados con una clave gestionada por el cliente

Requisito previo: antes de poder crear una máquina de estados con AWS KMS claves administradas por el cliente, su usuario o rol debe tener AWS KMS permisos para DescribeKey yGenerateDataKey.

Puede realizar los siguientes pasos en la AWS consola, a través de los API recursos o aprovisionando la infraestructura mediante AWS CloudFormation recursos. (CloudFormation los ejemplos se presentan más adelante en esta guía).

Paso 1: Crear la AWS KMS clave

Puede crear una clave simétrica gestionada por el cliente con la AWS KMS consola o AWS KMS APIs.

Para crear una clave simétrica administrada por el cliente

Siga los pasos para crear una clave simétrica gestionada por el cliente que se indican en la Guía para desarrolladores de AWS Key Management Service .

nota

Opcional: al crear una clave, puede elegir administradores de claves. Los usuarios o roles seleccionados tendrán acceso a administrar la clave, por ejemplo, habilitando o deshabilitando la clave a través delAPI. También puede elegir Usuarios clave. A estos usuarios o roles se les concederá la posibilidad de utilizar la AWS KMS clave en operaciones criptográficas.

Paso 2: Defina la política AWS KMS clave

Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Cuando crea la clave administrada por el cliente, puede especificar una política de clave. Para obtener más información, consulte Administrar el acceso a las claves administradas por el cliente en la Guía para AWS Key Management Service desarrolladores.

El siguiente es un ejemplo de una política de AWS KMS claves de la consola, sin administradores clave ni usuarios clave:

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

Consulte la Guía para AWS Key Management Service desarrolladores para obtener información sobre cómo especificar los permisos en una política y solucionar problemas de acceso clave.

Paso 3: (opcional) Agregue una política de claves para cifrar CloudWatch los registros

Step Functions está integrado CloudWatch para el registro y la supervisión. Tiene la opción de cifrar los datos enviados a CloudWatch Logs. Para utilizar el registro cifrado, debe proporcionar acceso al servicio de entrega de registros en la política estatal de claves de máquina a AWS KMS las acciones. Puede cifrar los grupos de registros con la clave de máquina de estado o puede elegir otra clave específica para el grupo de registros (por ejemplo, la «clave del grupo de registros»).

Para habilitar la integración de CloudWatch registros cifrados en una máquina de estado, debe agregar lo siguiente a su política de AWS KMS claves:

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

La Condition sección restringe la AWS KMS clave a un único grupo ARN de registros.

También debe habilitar la prestación del servicio de registro para las integraciones con la siguiente política clave:

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

Consulte la documentación de CloudWatch registros para obtener más información sobre cómo configurar los permisos en la AWS KMS clave de su grupo de registros.

Paso 4: Crear una máquina de estados

Una vez que haya creado una clave y configurado la política, puede utilizarla para crear una nueva máquina de estados.

Al crear la máquina de estados, elija Configuración adicional y, a continuación, elija cifrar con una clave administrada por el cliente. A continuación, puede seleccionar su clave y establecer el período de reutilización de la clave de datos de 1 minuto a 15 minutos.

Si lo desea, puede habilitar el registro configurando un nivel de registro y eligiendo cifrar el grupo de registros con su AWS KMS clave.

nota

Solo puede habilitar el cifrado en un grupo de registros nuevo en la consola Step Functions. Para obtener información sobre cómo asociar una AWS KMS clave a un grupo de registros existente, consulte Asociar una AWS KMS clave a un grupo de registros.

Paso 5: invoque la máquina de estado cifrada con su AWS KMS clave

Puede invocar su máquina de estado cifrada como lo haría normalmente y sus datos se cifrarán con la clave gestionada por el cliente.

Para iniciar una ejecución de flujos de trabajo estándar y flujos de trabajo exprés asíncronos con claves administradas por el cliente, su función de ejecución requiere permisos y requisitos. kms:Decrypt kms:GenerateDataKey La función de ejecución para la ejecución de Synchronous Express requiere. kms:Decrypt Al crear una máquina de estados en la consola y elegir crear un nuevo rol, estos permisos se incluyen automáticamente.

Cree una actividad con una clave gestionada por el cliente

Crear una actividad de Step Functions con una clave gestionada por el cliente es similar a crear una máquina de estados con una clave gestionada por el cliente. Para poder crear una actividad con AWS KMS claves administradas por el cliente, tu usuario o rol solo necesita AWS KMS permisos para hacerloDescribeKey. Durante la creación de la actividad, usted elige la clave y establece los parámetros de configuración del cifrado.

Tenga en cuenta que los recursos de actividad de Step Functions permanecen inmutables. No puede actualizar una actividad encryptionConfiguration ARN de una actividad existente; debe crear un nuevo recurso de actividad. Las personas que llamen a los API puntos finales de la actividad deben tener kms:DescribeKey permisos para crear correctamente una actividad con una AWS KMS clave.

Cuando el cifrado por clave gestionada por el cliente está habilitado en una tarea de actividad, la función de ejecución de la máquina estatal requerirá un kms:GenerateDataKey kms:Decrypt permiso para la clave de actividad. Si está creando esta máquina de estados desde la consola Step Functions, la función de creación automática de roles añadirá estos permisos.

Limite las políticas de AWS KMS permisos con condiciones

Puede utilizar el contexto de cifrado en las políticas y IAM políticas clave conditions para controlar el acceso a su clave simétrica gestionada por el cliente. Para limitar el uso de una AWS KMS clave a las solicitudes de Step Functions en nombre de un rol específico, puedes usar la kms:ViaService condición.

Definir el alcance con el contexto de cifrado

Un contexto de cifrado es un conjunto opcional de pares clave-valor que pueden contener información contextual adicional sobre los datos.

AWS KMS utiliza el contexto de cifrado como datos autenticados adicionales para respaldar el cifrado autenticado. Al incluir un contexto de cifrado en una solicitud de cifrado de datos, AWS KMS vincula el contexto de cifrado a los datos cifrados. Para descifrar los datos, debe incluir el mismo contexto de cifrado en la solicitud.

Step Functions proporciona un contexto de cifrado en las operaciones AWS KMS criptográficas, donde la clave es aws:states:stateMachineArn para State Machines o aws:states:activityArn para Activities, y el valor es el recurso 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"}

El siguiente ejemplo muestra cómo limitar el uso de una AWS KMS clave para funciones de ejecución a máquinas de estado específicas con kms:EncryptionContext la clave de aws:states:stateMachineArn contexto:

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

Definir el alcance con kms: ViaService

La clave de kms:ViaService condición limita el uso de una AWS Key Management Service clave a las solicitudes de AWS servicios específicos.

El siguiente ejemplo de política usa la kms:ViaService condición para permitir que la AWS KMS clave se use para acciones específicas solo cuando la solicitud se origina en Step Functions de la ca-central-1 región, actuando en nombre de: ExampleRole

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

La kms:ViaService condición solo se aplica cuando la API persona que llama requiere AWS KMS permisos (por ejemplo,,,CreateStateMachine, CreateActivityGetActivityTask, etc.). Añadir una kms:ViaService condición a una función de ejecución puede impedir que se inicie una nueva ejecución o provocar un error en una ejecución en ejecución.

Permisos necesarios para las API personas que llaman

Para llamar a las API acciones de Step Functions que devuelven datos cifrados, las personas que llaman necesitan AWS KMS permisos. Como alternativa, algunas API acciones tienen una opción (METADATA_ONLY) para devolver solo metadatos, lo que elimina la necesidad de AWS KMS permisos. Consulte Step Functions API para obtener más información.

Para que una ejecución se complete correctamente cuando se utiliza el cifrado de claves gestionado por el cliente, la máquina de estado debe conceder la función de ejecución kms:GenerateDataKey y utilizar los kms:Decrypt permisos para AWS KMS las claves.

En la siguiente tabla se muestran los AWS KMS permisos que necesita para proporcionar a las personas que API llaman a Step Functions State Machine. Puede proporcionar los permisos en la política clave o en la IAM política del rol.

APIsutilizando la AWS KMS clave de State Machine Requerido por la persona que llama
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

En la siguiente tabla se muestran los AWS KMS permisos que necesitas para proporcionar a las personas que API llaman a Step Functions Activity. Puede proporcionar los permisos en la política clave o en la IAM política del rol.

APIsutilizando la AWS KMS clave de Activity Requerido por la persona que llama
CreateActivity km: DescribeKey
GetActivityTask kms:Decrypt
¿Cuándo concedo permisos al rol de persona que llama o de ejecución?

Cuando un IAM rol o un usuario llama a Step FunctionsAPI, el servicio Step Functions llama AWS KMS en nombre de la API persona que llama. En este caso, debe conceder el AWS KMS permiso a la API persona que llama. Cuando un rol de ejecución llama AWS KMS directamente, debes conceder AWS KMS permisos al rol de ejecución.

AWS CloudFormation recursos para la configuración de cifrado

AWS CloudFormation los tipos de recursos de Step Functions pueden aprovisionar recursos de estado, máquina y actividad con configuraciones de cifrado.

De forma predeterminada, Step Functions proporciona un cifrado transparente del lado del servidor. Ambos AWS::StepFunctions::ActivityAWS::StepFunctions::StateMachineaceptan una EncryptionConfiguration propiedad opcional que puede configurar una AWS KMS clave administrada por el cliente para el cifrado del lado del servidor.

Requisito previo: antes de poder crear una máquina de estados con AWS KMS claves administradas por el cliente, su usuario o rol debe tener AWS KMS permisos para DescribeKey y. GenerateDataKey

Las actualizaciones no StateMachine requieren interrupciones. Las actualizaciones de los recursos de la actividad requieren: reemplazo.

Para declarar una EncryptionConfigurationpropiedad en la AWS CloudFormation plantilla, utilice la siguiente sintaxis:

JSON

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

YAML

KmsKeyId: String KmsDataKeyReusePeriodSeconds: Integer Type: String

Propiedades

  • Tipo: opción de cifrado para la máquina o actividad de estado. Valores permitidos: CUSTOMER_MANAGED_KMS_KEY | AWS_OWNED_KEY

  • KmsKeyId- Alias, aliasARN, identificador de clave o clave ARN de la clave de cifrado simétrico que cifra la AWS KMS clave de datos. Para especificar una AWS KMS clave en una AWS cuenta diferente, el cliente debe usar la clave ARN o el alias. ARN Para obtener información al respecto kmsKeyId, consulte KeyIdlos AWS KMS documentos.

  • KmsDataKeyReusePeriodSeconds- Duración máxima durante la que se SFN reutilizarán las claves de datos. Cuando el período expire, Step Functions llamaráGenerateDataKey. Esta configuración solo se puede establecer cuando Type esCUSTOMER_MANAGED_KMS_KEY. El valor puede oscilar entre 60 y 900 segundos. El valor predeterminado es de 300 segundos.

AWS CloudFormation ejemplos

Ejemplo: StateMachine con clave gestionada por el cliente

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

Ejemplo: actividad con clave gestionada por el cliente

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 actualización del cifrado de una actividad requiere la creación de un recurso nuevo

La configuración de la actividad es inmutable y los nombres de los recursos deben ser únicos. Para configurar las claves de cifrado administradas por el cliente, debes crear una nueva actividad. Si intentas cambiar la configuración de tu CFN plantilla para una actividad existente, recibirás una ActivityAlreadyExists excepción.

Para actualizar tu actividad para incluir las claves gestionadas por el cliente, establece un nuevo nombre de actividad en la CFN plantilla. A continuación se muestra un ejemplo que crea una nueva actividad con una configuración de clave gestionada por el cliente:

Definición de actividad existente

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

Nueva definición de actividad

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

Supervisar el uso de la clave de cifrado

Cuando utilizas una clave gestionada por el AWS KMS cliente para cifrar tus recursos de Step Functions, puedes utilizarla CloudTrail para realizar un seguimiento de las solicitudes que Step Functions envía AWS KMS.

También puede utilizar el contexto de cifrado en registros de auditoría y en registros para identificar cómo se utiliza la clave administrada por el cliente. El contexto de cifrado también aparece en los registros generados por AWS CloudTrail.

Los siguientes ejemplos son CloudTrail eventos para DecryptDescribeKey, y GenerateDataKey para monitorear AWS KMS las operaciones llamadas por Step Functions para acceder a los datos cifrados por la clave administrada por el cliente:

Decrypt

Al acceder a una máquina o actividad de estados cifrados, Step Functions solicita a la Decrypt operación que utilice la clave de datos cifrados almacenada para acceder a los datos cifrados.

El siguiente evento de ejemplo registra la operación 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 utiliza la DescribeKey operación para comprobar si la clave gestionada por el AWS KMS cliente asociada a tu State Machine o a tu actividad existe en la cuenta y la región.

El siguiente evento de ejemplo registra la operación 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

Cuando habilita una clave gestionada por el AWS KMS cliente para su máquina de estado o actividad, Step Functions envía una GenerateDataKey solicitud para obtener una clave de datos para cifrar los datos de ejecución o definición de la máquina de estados.

El siguiente evento de ejemplo registra la operación 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

¿Qué ocurre si mi clave está marcada para ser eliminada o si se borra dentro? AWS KMS

Si la clave se borra o se marca para su eliminación en AWS KMS, se producirá un error en cualquier ejecución relacionada con ella. No se pueden iniciar nuevas ejecuciones hasta que elimines o cambies la clave asociada al flujo de trabajo. Tras eliminar una AWS KMS clave, todos los datos cifrados asociados a la ejecución del flujo de trabajo permanecerán cifrados y ya no se podrán descifrar, lo que hará que los datos sean irrecuperables.

¿Qué ocurre si una AWS KMS clave está deshabilitada? AWS KMS

Si una AWS KMS clave está deshabilitada AWS KMS, cualquier ejecución relacionada con ella fallará. No se pueden iniciar nuevas ejecuciones. Ya no podrá descifrar los datos cifrados con esa AWS KMS clave deshabilitada hasta que se vuelva a activar.

¿Qué ocurre con los eventos de cambio de estado de ejecución enviados a? EventBridge

La entrada, el resultado, el error y la causa de la ejecución no se incluirán en los eventos de cambio de estado de ejecución de los flujos de trabajo cifrados con la AWS KMS clave gestionada por el cliente.

Más información

Para obtener información sobre el cifrado de datos en reposo, consulte AWS Key Management Service los conceptos y las prácticas recomendadas de seguridad AWS Key Management Service en la Guía para AWS Key Management Service desarrolladores.