Criptografia de dados em repouso no Step Functions - AWS Step Functions

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criptografia de dados em repouso no Step Functions

Leia o blog

AWS Step Functions sempre criptografa seus dados em repouso usando criptografia transparente do lado do servidor. A criptografia de dados em repouso por padrão reduz os custos operacionais indiretos e a complexidade envolvidos na proteção de dados confidenciais. É possível criar aplicações confidenciais que atendem a requisitos rigorosos de conformidade e regulamentação de criptografia.

Embora você não possa desabilitar essa camada de criptografia ou selecionar um tipo de criptografia alternativo, você pode adicionar uma segunda camada de criptografia sobre as chaves de criptografia de AWS propriedade existentes escolhendo uma chave gerenciada pelo cliente ao criar sua máquina de estado e recursos de atividade:

  • Chaves gerenciadas pelo cliente — O Step Functions suporta o uso de uma chave simétrica gerenciada pelo cliente que você cria, possui e gerencia para adicionar uma segunda camada de criptografia sobre a criptografia existente AWS . Como você tem controle total dessa camada de criptografia, é possível realizar tarefas como:

    • Estabelecer e manter as políticas de chave

    • Estabelecer e manter concessões e políticas do IAM

    • Habilitar e desabilitar políticas de chaves

    • Alternar os materiais de criptografia de chave

    • Adicionar etiquetas

    • Criar réplicas de chaves

    • Programar chaves para exclusão

    Para ter mais informações, consulte customer managed key no Guia do desenvolvedor do AWS Key Management Service .

Você pode criptografar seus dados usando uma chave gerenciada pelo cliente para máquinas e atividades de AWS Step Functions estado. Você pode configurar uma AWS KMS chave simétrica e um período de reutilização da chave de dados ao criar ou atualizar uma máquina de estado e ao criar uma atividade. O histórico de execução e a definição da máquina de estado serão criptografados com a chave aplicada à máquina de estado. As entradas da atividade serão criptografadas com a chave aplicada à atividade.

Com AWS KMS as chaves gerenciadas pelo cliente, você pode proteger os dados do cliente que incluem informações de saúde protegidas (PHI) contra acesso não autorizado. O Step Functions é integrado ao CloudTrail, para que você possa visualizar e auditar os eventos mais recentes no CloudTrail console no histórico de eventos.

Para obter informações sobre AWS KMS, consulte O que é AWS Key Management Service?

nota

O Step Functions ativa automaticamente a criptografia em repouso usando chaves AWS próprias sem nenhum custo. No entanto, AWS KMS cobranças são aplicadas ao usar uma chave gerenciada pelo cliente. Para obter mais informações sobre preços, consulte Preços do AWS Key Management Service.

Criptografar com uma chave gerenciada pelo cliente

O Step Functions descriptografa os dados da carga útil com sua AWS KMS chave gerenciada pelo cliente antes de passá-los para outro serviço para realizar uma tarefa. Os dados são criptografados em trânsito usando Transport Layer Security (TLS).

Quando os dados são retornados de um serviço integrado, o Step Functions criptografa os dados com sua AWS KMS chave gerenciada pelo cliente. Você pode usar a mesma chave para aplicar a criptografia de forma consistente em vários AWS serviços.

É possível usar uma chave gerenciada pelo cliente com os seguintes recursos:

  • Máquina de estado: tipos de fluxo de trabalho padrão e expresso.

  • Atividades

Você pode especificar a chave de dados inserindo um ID de KMS chave, que o Step Functions usa para criptografar seus dados.

  • KMSID de chave — identificador de chave para uma chave gerenciada pelo AWS KMS cliente na forma de ID de chave, chaveARN, nome de alias ou ARN alias.

Criar uma máquina de estado com uma chave gerenciada pelo cliente

Pré-requisito: antes de criar uma máquina de estado com AWS KMS chaves gerenciadas pelo cliente, seu usuário ou função deve ter AWS KMS permissões para e. DescribeKey GenerateDataKey

Você pode executar as etapas a seguir no AWS console, por meio doAPI, ou provisionando a infraestrutura por meio AWS CloudFormation de recursos. (CloudFormation exemplos são apresentados posteriormente neste guia.)

Etapa 1: criar AWS KMS chave

Você pode criar uma chave simétrica gerenciada pelo cliente com o AWS KMS console ou AWS KMS APIs.

Para criar uma chave simétrica gerenciada pelo cliente

Siga as etapas de Criar uma chave simétrica gerenciada pelo cliente no Guia do desenvolvedor do AWS Key Management Service .

nota

Opcional: ao criar uma chave, você pode escolher Administradores de chaves. Os usuários ou funções selecionados terão acesso para gerenciar a chave, como ativar ou desativar a chave por meio doAPI. Também é possível escolher Usuários de chaves. Esses usuários ou funções terão a capacidade de usar a AWS KMS chave em operações criptográficas.

Etapa 2: definir a política de AWS KMS chaves

As políticas de chaves controlam o acesso à chave gerenciada pelo cliente. Cada chave gerenciada pelo cliente deve ter exatamente uma política de chaves, que contém declarações que determinam quem pode usar a chave e como pode usá-la. Ao criar a chave gerenciada pelo cliente, é possível especificar uma política de chave. Para ter informações, consulte Managing access to customer managed keys no Guia do desenvolvedor do AWS Key Management Service .

Veja a seguir um exemplo de política de AWS KMS chaves do console, sem administradores de chaves ou usuários de chaves:

{ "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 o Guia do desenvolvedor do AWS Key Management Service para ter informações sobre como especificar permissões em uma política e solucionar problemas de acesso à chave.

Etapa 3: Adicionar política de chaves para criptografar registros CloudWatch

O Step Functions é integrado CloudWatch para registro e monitoramento. Ao habilitar a criptografia do lado do servidor para sua máquina de estado usando sua própria KMS chave e habilitar a integração de CloudWatch registros, você deve permitir delivery.logs.amazonaws.com a kms:Decrypt ação de sua AWS KMS política de chaves:

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

Se você habilitar a criptografia da máquina de estado com uma AWS KMS chave e sua máquina de estado tiver a integração de CloudWatch registros ativada, a função de execução da máquina de estado precisará da seguinte 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:*" } } } ] }

Etapa 4: Criptografar grupo de CloudWatch registros (opcional)

Você pode ativar a criptografia dos registros em um grupo de CloudWatch registros usando sua própria AWS KMS chave. Para fazer isso, você também deve adicionar a política a seguir a essa AWS KMS chave.

nota

Você pode escolher AWS KMS chaves iguais ou diferentes para criptografar seus registros e suas definições de máquina de estado.

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

A Condition seção restringe a AWS KMS chave a um único grupo ARN de registros.

nota

Consulte a documentação de CloudWatch registros para saber mais sobre como definir permissões na AWS KMS chave do seu grupo de registros.

Etapa 5: criar uma máquina de estado

Depois que você criar uma chave e configurar a política, poderá usar a chave para criar uma máquina de estado.

Ao criar a máquina de estado, escolha Configuração adicional e opte por criptografar com a chave gerenciada pelo cliente. Depois, é possível selecionar a chave e definir o período de reutilização da chave de dados de 1 minuto a 15 minutos.

Opcionalmente, você pode ativar o registro definindo um nível de registro e escolhendo criptografar o grupo de registros com sua AWS KMS chave.

nota

Só é possível habilitar a criptografia em um novo grupo de logs no console do Step Functions. Para saber como associar uma AWS KMS chave a um grupo de registros existente, consulte Associar uma AWS KMS chave a um grupo de registros.

Para iniciar com êxito a execução de fluxos de trabalho padrão e expressos assíncronos com chaves gerenciadas pelo cliente, o perfil de execução exige permissões kms:Decrypt e kms:GenerateDataKey. O perfil para execução de expresso assíncrono exige kms:Decrypt. Quando você cria uma máquina de estado no console e escolhe Criar um perfil, essas permissões são incluídas automaticamente para você.

Veja abaixo um exemplo de política de perfil de execução:

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

Etapa 6: Invoque a máquina de estado criptografada com sua AWS KMS chave

É possível invocar a máquina de estado criptografada como é feito normalmente, e os dados serão criptografados com a chave gerenciada pelo cliente.

Criar uma atividade com uma chave gerenciada pelo cliente

A criação de uma atividade do Step Functions com uma chave gerenciada pelo cliente é semelhante à criação de uma máquina de estado com uma chave gerenciada pelo cliente. Antes de criar uma atividade com AWS KMS chaves gerenciadas pelo cliente, seu usuário ou função só precisa de AWS KMS permissões paraDescribeKey. Durante a criação da atividade, você escolhe a chave e define os parâmetros de configuração de criptografia.

Observe que os recursos da atividade do Step Functions permanecem imutáveis. Você não pode atualizar o encryptionConfiguration para uma atividade ARN de uma atividade existente; você deve criar um novo recurso de atividade. Os chamadores dos API endpoints da Atividade devem ter kms:DescribeKey permissões para criar com êxito uma atividade com uma AWS KMS chave.

Quando a criptografia de chave gerenciada pelo cliente está habilitada em uma tarefa de atividade, o perfil de execução da máquina de estado exige uma permissão kms:GenerateDataKey e kms:Decrypt para a chave de atividade. Se você estiver criando essa máquina de estado no console do Step Functions, o recurso de criação automática de perfil adicionará essas permissões.

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

Defina políticas de AWS KMS permissão com condições

Você pode usar o contexto de criptografia nas principais políticas e IAM políticas conditions para controlar o acesso à sua chave simétrica gerenciada pelo cliente. Para limitar o uso de uma AWS KMS chave às solicitações de Step Functions em nome de uma função específica, você pode usar a kms:ViaService condição.

Definir o escopo com contexto de criptografia

Um contexto de criptografia é um conjunto opcional de pares de chave/valor que pode conter informações contextuais adicionais sobre os dados.

AWS KMS usa o contexto de criptografia como dados autenticados adicionais para oferecer suporte à criptografia autenticada. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados, AWS KMS vincula o contexto de criptografia aos dados criptografados. Para descriptografar os dados, você inclui o mesmo contexto de criptografia na solicitação.

Step Functions fornece um contexto de criptografia em operações AWS KMS criptográficas, em que a chave é aws:states:stateMachineArn para State Machines ou aws:states:activityArn para Activities, e o valor é o 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"}

O exemplo a seguir mostra como limitar o uso de uma AWS KMS chave para funções de execução a máquinas de estado específicas com kms:EncryptionContext e a chave 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" } } } ] }

Escopo com kms: ViaService

A chave de kms:ViaService condição limita o uso de uma AWS Key Management Service chave às solicitações de AWS serviços especificados.

O exemplo de política a seguir usa a kms:ViaService condição para permitir que a AWS KMS chave seja usada para ações específicas somente quando a solicitação se origina de Step Functions na ca-central-1 região, agindo em nome do 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

A kms:ViaService condição só é aplicável quando AWS KMS as permissões são exigidas pelo API chamador (por exemplo,,CreateStateMachine, CreateActivityGetActivityTask, etc.). Adicionar uma condição kms:ViaService a um perfil de execução pode impedir que uma nova execução seja iniciada ou causar a falha de uma execução em andamento.

Permissões necessárias para API chamadores

Para chamar API ações do Step Functions que retornam dados criptografados, os chamadores precisam de AWS KMS permissões. Como alternativa, algumas API ações têm a opção (METADATA_ONLY) de retornar somente metadados, eliminando a exigência de AWS KMS permissões. Consulte Step Functions API para obter informações.

Para que uma execução seja concluída com êxito ao usar a criptografia de chave gerenciada pelo cliente, é necessário conceder a função de execução kms:GenerateDataKey e kms:Decrypt as permissões para AWS KMS as chaves usadas pela máquina de estado.

A tabela a seguir mostra as AWS KMS permissões que você precisa fornecer aos API chamadores do Step Functions para APIs usar a AWS KMS chave de uma máquina de estado. Você pode fornecer as permissões para a política principal ou IAM política da função.

APIsusando a AWS KMS chave do State Machine Exigido pelo chamador
CreateStateMachine kms:DescribeKey, kms:GenerateDataKey
UpdateStateMachine kms:DescribeKey, kms:GenerateDataKey
DescribeStateMachine kms:Descriptografar
DescribeStateMachineForExecution kms:Descriptografar
StartExecution --
StartSyncExecution kms:Descriptografar
SendTaskSuccess --
SendTaskFailure --
StopExecution --
RedriveExecution --
DescribeExecution kms:Descriptografar
GetExecutionHistory kms:Descriptografar

A tabela a seguir mostra as AWS KMS permissões que você precisa fornecer aos API chamadores do Step Functions para APIs usar a AWS KMS chave de uma atividade. Você pode fornecer as permissões na política ou IAM política de chaves para a função.

APIsusando a AWS KMS chave da atividade Exigido pelo chamador
CreateActivity kms:DescribeKey
GetActivityTask kms:Descriptografar
Quando conceder permissões ao chamador ou ao perfil de execução?

Quando uma IAM função ou usuário chama o Step FunctionsAPI, o serviço Step Functions chama AWS KMS em nome do API chamador. Nesse caso, você deve conceder AWS KMS permissão ao API chamador. Quando uma função de execução é chamada AWS KMS diretamente, você deve conceder AWS KMS permissões sobre a função de execução.

AWS CloudFormation recursos para configuração de criptografia

AWS CloudFormation os tipos de recursos do Step Functions podem provisionar recursos de máquina de estado e atividade com configurações de criptografia.

Por padrão, o Step Functions fornece criptografia transparente do lado do servidor. Ambos AWS::StepFunctions::ActivityAWS::StepFunctions::StateMachineaceitam uma EncryptionConfiguration propriedade opcional que pode configurar uma AWS KMS chave gerenciada pelo cliente para criptografia no lado do servidor.

Pré-requisito: antes de criar uma máquina de estado com AWS KMS chaves gerenciadas pelo cliente, seu usuário ou função deve ter AWS KMS permissões para e. DescribeKey GenerateDataKey

As atualizações para StateMachine requerem nenhuma interrupção. As atualizações dos recursos da atividade requerem Substituição.

Para declarar uma EncryptionConfigurationpropriedade em seu AWS CloudFormation modelo, use a seguinte sintaxe:

JSON

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

YAML

KmsKeyId: String KmsDataKeyReusePeriodSeconds: Integer Type: String

Properties

  • Tipo: opção de criptografia para a máquina de estado ou a atividade. Valores permitidos: CUSTOMER_MANAGED_KMS_KEY | AWS_OWNED_KEY

  • KmsKeyId- Alias, aliasARN, ID da chave ou chave ARN da chave de criptografia simétrica que criptografa a AWS KMS chave de dados. Para especificar uma AWS KMS chave em uma AWS conta diferente, o cliente deve usar a chave ARN ou o aliasARN. Para obter informações sobre kmsKeyId isso, consulte KeyIdnos AWS KMS documentos.

  • KmsDataKeyReusePeriodSeconds- Duração máxima pela qual SFN reutilizará as chaves de dados. Quando o período expirar, o Step Functions chamará GenerateDataKey. Essa configuração só pode ser definida quando o Tipo é CUSTOMER_MANAGED_KMS_KEY. O valor pode variar de sessenta a novecentos segundos. O padrão é 300 segundos.

AWS CloudFormation exemplos

Exemplo: StateMachine com chave gerenciada pelo 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

Exemplo: atividade com chave gerenciada pelo 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

A atualização da criptografia de uma atividade requer a criação de um recurso.

A configuração da atividade é imutável e os nomes dos recursos devem ser exclusivos. Para definir chaves gerenciadas pelo cliente para criptografia, é necessário criar uma atividade. Se você tentar alterar a configuração em seu CFN modelo para uma atividade existente, receberá uma ActivityAlreadyExists exceção.

Para atualizar sua atividade para incluir chaves gerenciadas pelo cliente, defina um novo nome de atividade em seu CFN modelo. Abaixo é apresentado um exemplo que cria uma atividade com uma configuração de chave gerenciada pelo cliente:

Definição de atividade 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

Nova definição de atividade

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

Monitorar o uso de chaves de criptografia

Quando você usa uma chave gerenciada pelo AWS KMS cliente para criptografar seus recursos do Step Functions, você pode usar CloudTrail para rastrear as solicitações enviadas pelo Step Functions. AWS KMS

Também é possível usar o contexto de criptografia em registros e logs de auditoria para identificar como a chave gerenciada pelo cliente está sendo usada. O contexto de criptografia também aparece nos logs gerados pelo AWS CloudTrail.

Os exemplos a seguir são CloudTrail eventos paraDecrypt,DescribeKey, e GenerateDataKey para monitorar AWS KMS operações chamadas por Step Functions para acessar dados criptografados pela chave gerenciada pelo cliente:

Decrypt

Quando você acessa uma máquina de chave ou uma atividade, o Step Functions chama a operação Decrypt para usar a chave de dados criptografados armazenada para acessar os dados criptografados.

O evento de exemplo a seguir registra a operação 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

O Step Functions usa a operação DescribeKey para verificar se a chave do AWS KMS gerenciada pelo cliente associada à máquina de estado ou à atividade existe na conta e na região.

O evento de exemplo a seguir registra a operação 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

Quando você ativa uma chave gerenciada pelo AWS KMS cliente para sua Máquina de Estado ou Atividade, o Step Functions envia uma GenerateDataKey solicitação para obter uma chave de dados para a definição ou os dados de execução da máquina de estado criptografada.

O evento de exemplo a seguir registra a operação 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

O que acontece se minha chave for marcada para exclusão ou excluída no AWS KMS?

Se a chave for excluída ou marcada para exclusão em AWS KMS, qualquer execução em execução relacionada falhará. Novas execuções não podem ser iniciadas até que você remova ou altere a chave associada ao fluxo de trabalho. Depois que uma AWS KMS chave for excluída, todos os dados criptografados associados à execução do fluxo de trabalho permanecerão criptografados e não poderão mais ser descriptografados, tornando os dados irrecuperáveis.

O que acontece se uma AWS KMS chave for desativada AWS KMS?

Se uma AWS KMS chave for desativada AWS KMS, qualquer execução em execução relacionada falhará. Novas execuções não podem ser iniciadas. Você não pode mais descriptografar os dados criptografados com essa AWS KMS chave desativada até que ela seja reativada.

O que acontece com os eventos de alteração do status de execução enviados para EventBridge?

A entrada, a saída, o erro e a causa da execução não serão incluídos em eventos de alteração do status de execução de fluxos de trabalho criptografados usando sua AWS KMS chave gerenciada pelo cliente.

Saiba mais

Para ter informações sobre criptografia de dados em repouso, consulte AWS Key Management Service concepts e security best practices for AWS Key Management Service no Guia do desenvolvedor do AWS Key Management Service .