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 subsídios e IAM policies

    • 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 se aplicam 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

É possível especificar a chave de dados inserindo um ID de chave do KMS, que o Step Functions usa para criptografar os dados.

  • ID da chave KMSidentificador da chave gerenciada pelo AWS KMS cliente na forma de ID da chave, ARN da chave, nome do alias ou ARN do 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 realizar as etapas a seguir no AWS console, por meio da API 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 os perfis selecionados terão acesso para gerenciar a chave, como habilitá-la ou desabilitá-la por meio da API. 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 chave KMS e habilitar a integração de CloudWatch registros, você deve permitir delivery.logs.amazonaws.com a kms:Decrypt ação de sua política de chaves: AWS KMS

{ "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 ARN do grupo 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 optando por 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. Não é possível atualizar a encryptionConfiguration de um ARN de atividade existente; é necessário criar um recurso de atividade. Os chamadores para os endpoints da Activity API 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" ] } } } ] }

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

É possível usar o contexto de criptografia nas políticas de chave e nas políticas do IAM como conditions e controlar o acesso à 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 máquinas de estado ou aws:states:activityArn para atividades, 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 chamador da API (por exemplo,CreateStateMachine,CreateActivity,GetActivityTask, 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 chamadores de API

Para chamar ações de API do Step Functions que exibem dados criptografados, os chamadores precisam de permissões do AWS KMS . Como alternativa, algumas ações da API têm uma opção (METADATA_ONLY) para retornar somente metadados, eliminando a exigência de AWS KMS permissões. Consulte a API do Step Functions para ter 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 chamadores da API Step Functions para APIs usar a AWS KMS chave de uma máquina de estado. É possível fornecer as permissões à política de chave ou à política do IAM do perfil.

APIs usando 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 chamadores da API Step Functions para APIs usar a AWS KMS chave de uma atividade. É possível fornecer as permissões na política de chave ou na política do IAM do perfil.

APIs usando 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 função ou usuário do IAM chama a API Step Functions, o serviço Step Functions chama AWS KMS em nome do chamador da API. Nesse caso, você deve conceder AWS KMS permissão ao chamador da API. 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, alias ARN, ID da chave ou ARN da chave de criptografia AWS KMS simétrica que criptografa a chave de dados. Para especificar uma AWS KMS chave em uma AWS conta diferente, o cliente deve usar o ARN da chave ou o alias ARN. Para obter informações sobre kmsKeyId isso, consulte KeyIdnos AWS KMS documentos.

  • KmsDataKeyReusePeriodSeconds- Duração máxima pela qual o 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 no modelo do CFN para uma atividade existente, receberá uma exceção ActivityAlreadyExists.

Para atualizar a atividade e incluir chaves gerenciadas pelo cliente, defina um novo nome de atividade no modelo do CFN. 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 .