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 necesitan cumplimiento estricto de cifrado y requisitos normativos.

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

    • Establecimiento y mantenimiento de concesiones y políticas de IAM

    • 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 información, consulte las claves administradas por el cliente en la Guía para desarrolladores de AWS Key Management Service .

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 estado se cifrarán con la clave aplicada a la máquina de estado. 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 información al respecto 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.

Cifrado con una clave administrada 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 administrada por el cliente con los siguientes recursos:

  • Máquina de estado: tipos de flujo de trabajo estándar y rápido

  • 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.

Creación de una máquina de estado con una clave administrada 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 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 del. API También puede elegir Usuarios clave. A estos usuarios o roles se les otorgará la posibilidad de usar 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 Administración del acceso a las claves en la Guía para desarrolladores de AWS Key Management Service .

El siguiente es un ejemplo de política AWS KMS clave 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 desarrolladores de AWS Key Management Service para obtener información sobre cómo especificar permisos en una política y cómo solucionar problemas de acceso a las claves.

Paso 3: Añadir una política de claves para cifrar CloudWatch los registros

Step Functions está integrado CloudWatch para el registro y la supervisión. Cuando habilita el cifrado del lado del servidor para su máquina de estado con su propia KMS clave y habilita la integración de CloudWatch registros, debe permitir la kms:Decrypt acción delivery.logs.amazonaws.com según su política de AWS KMS claves:

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

Si habilitas el cifrado de la máquina de estado con una AWS KMS clave y la máquina de estado tiene habilitada la integración de CloudWatch los registros, la función de ejecución de la máquina de estado necesita la siguiente política:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKMSPermissionForCloudWatchLogGroup", "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:region:accountId:key/keyId", "Condition": { "StringEquals": { "kms:EncryptionContext:SourceArn": "arn:aws:logs:region:accountId:*" } } } ] }

Paso 4: Cifrar el grupo de CloudWatch registros (opcional)

Puede habilitar el cifrado de los registros de un grupo de CloudWatch registros con su propia AWS KMS clave. Para ello, también debe añadir la siguiente política a esa AWS KMS clave.

nota

Puede elegir la misma AWS KMS clave o diferentes para cifrar los registros y las definiciones de la máquina de estados.

{ "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 de registros. ARN

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 5: Crear una máquina de estado

Después de crear una clave y configurar la política, puede utilizarla para crear una nueva máquina de estado.

Al crear la máquina de estado, seleccione 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 optando por 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 de 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.

Para iniciar correctamente una ejecución de flujos de trabajo estándar y flujos de trabajo rápido asíncronos con claves administradas por el cliente, su función de ejecución requiere permisos kms:Decrypt y kms:GenerateDataKey. El rol de ejecución para la ejecución de rápida síncrona requiere kms:Decrypt. Al crear una máquina de estado en la consola y seleccionar Crear un nuevo rol, estos permisos se incluyen automáticamente.

A continuación, se muestra un ejemplo de política para el rol de ejecución:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKMSPermissionsForStepFunctionsWorkflowExecutions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/keyId" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws:states:stateMachineArn": [ "arn:aws:states:us-east-1:123456789012:stateMachine:stateMachineName" ] } } } ] }

Paso 6: 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.

Creación de una actividad con una clave administrada por el cliente

Crear una actividad de Step Functions con una clave administrada por el cliente es similar a crear una máquina de estado 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 ARN de una actividad existente; debe crear un nuevo recurso de actividad. encryptionConfiguration 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 administrada por el cliente está habilitado en una tarea de actividad, la función de ejecución de la máquina de estado requerirá un permiso kms:GenerateDataKey para la clave de actividad kms:Decrypt. Si está creando esta máquina de estado desde la consola Step Functions, la característica de creación automática de roles añadirá estos permisos.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKMSPermissionsForStepFunctionsActivities", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/keyId" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws:states:activityArn": [ "arn:aws:states:us-east-1:123456789012:activity:activityName" ] } } } ] }

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.

Análisis del alcance con 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:us-east-1:123456789012:stateMachine:stateMachineName"}
"encryptionContext": {"aws:states:activityArn": "arn:aws:states:us-east-1:123456789012:activity:activityName"}

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:us-east-1:123456789012:key/keyId" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws:states:stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:stateMachineName" } } } ] }

Analizar 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::123456789012:role/ExampleRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "states.us-east-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 condición kms:ViaService 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 API las 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 los 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 debe proporcionar a las personas que API llaman a Step Functions para APIs utilizar la AWS KMS clave de una máquina de estado. Puedes proporcionar los permisos a la política clave o a la IAM política del rol.

APIsutilizando la AWS KMS clave de State Machine Requerido por quien realiza la llamada
CreateStateMachine kms:DescribeKey, kms:GenerateDataKey
UpdateStateMachine kms:DescribeKey, kms:GenerateDataKey
DescribeStateMachine kms:Descifrar
DescribeStateMachineForExecution kms:Descifrar
StartExecution --
StartSyncExecution kms:Descifrar
SendTaskSuccess --
SendTaskFailure --
StopExecution --
RedriveExecution --
DescribeExecution kms:Descifrar
GetExecutionHistory kms:Descifrar

En la siguiente tabla se muestran los AWS KMS permisos que debes proporcionar a las personas que API llaman a Step Functions para APIs usar la AWS KMS clave de una actividad. Puedes 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 quien realiza la llamada
CreateActivity kms:DescribeKey
GetActivityTask kms:Descifrar
¿Cuándo concedo permisos al rol de llamada o al rol 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 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: Sustitución.

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 más información al respecto kmsKeyId, consulta KeyIdlos AWS KMS documentos.

  • KmsDataKeyReusePeriodSeconds- Duración máxima durante la que se SFN reutilizarán las claves de datos. Cuando el período caduque, Step Functions llamará a GenerateDataKey. Esta configuración solo se puede establecer cuando el Tipo es CUSTOMER_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 administrada 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, debe 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 administrada 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

Supervisión del uso de sus claves 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

Cuando accede a una máquina de estado o actividad cifrada, Step Functions llama a la operación Decrypt para utilizar la clave de datos cifrada almacenada y 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 operación DescribeKey para verificar si la clave administrada por el cliente de AWS KMS asociada con su máquina de estado o actividad existe en la cuenta y 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 habilitas una clave gestionada por el AWS KMS cliente para tu 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 su eliminación o si se borra en AWS KMS?

Si la clave se elimina o se marca para su eliminación AWS KMS, se producirá un error en cualquier ejecución relacionada con ella. No se pueden iniciar nuevas ejecuciones hasta que elimine o cambie 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 los conceptos sobre AWS Key Management Service y las mejores prácticas de seguridad para AWS Key Management Service en la guía para desarrolladores de AWS Key Management Service .