View a markdown version of this page

Criptografia de dados de execução durável do AWS Lambda - AWS Lambda

Criptografia de dados de execução durável do AWS Lambda

Com as funções duráveis do AWS Lambda, você pode criar aplicações resilientes de várias etapas que funcionam por até um ano usando pontos de verificação para recuperar cada execução de falhas, reproduzindo o trabalho concluído.

O Lambda sempre criptografa os dados em repouso de execução durável. Além disso, você pode configurar sua própria chave gerenciada pelo cliente AWS KMS na função para controle de rotação, visibilidade de auditoria ou conformidade. Com uma chave gerenciada pelo cliente, somente as entidades principais que você autorizar podem ler os dados de execução.

Como a criptografia funciona

Uma execução durável do Lambda usa a mesma chave KMS com a qual começou durante toda a vida útil. Alterar ou remover a chave na função afeta somente as execuções iniciadas após a alteração. Consulte Quando a chave gerenciada pelo cliente não está disponível para saber como uma execução durável se comporta quando sua chave não está disponível.

As chaves gerenciadas pelo cliente incorrem em cobranças do AWS KMS padrão. Para obter detalhes de preço, consulte Definição de preço do AWS Key Management Service.

O que é criptografado

Quando você configura uma chave gerenciada pelo cliente em uma função durável, o Lambda usa essa chave para criptografar os seguintes dados em repouso de execução durável:

  • A carga útil de entrada que você transmite com cada solicitação Invoke.

  • Os dados do ponto de verificação persistiram pela API CheckpointDurableExecution, incluindo os resultados das etapas, os erros das etapas e as entradas de invocação encadeadas.

  • Resultados e erros de execução.

  • Resultados e erros de retorno de chamada que você envia por meio de SendDurableExecutionCallbackSuccess e SendDurableExecutionCallbackFailure.

As chaves de execução durável e de função são independentes

O nível de função KMSKeyArn que criptografa as variáveis do ambiente, os pacotes de implantação .zip e os snapshots do SnapStart é separado de KMSKeyArn em DurableConfig, que criptografa os dados de execução durável. Configurar um não configura o outro. É possível usar a mesma chave do KMS para ambas ou usar diferentes chaves do KMS.

Configuração da criptografia da chave gerenciada pelo cliente

A configuração da criptografia da chave gerenciada pelo cliente para uma função durável é um processo de três etapas. Conclua as etapas a seguir na ordem.

Criar uma chave gerenciada pelo cliente

As funções duráveis oferecem suporte às chaves do KMS de criptografia simétrica na mesma região da AWS da função. Chaves entre regiões não são compatíveis. Para criar uma chave simétrica gerenciada pelo cliente, siga as etapas para Criar chaves do KMS de criptografia simétrica no Guia do desenvolvedor do AWS Key Management Service.

Permissões

Você concede as permissões do AWS KMS por meio da política de chave do KMS.

A configuração de uma chave gerenciada pelo cliente requer permissões do AWS KMS na entidade principal que cria ou atualiza a função. A invocação de uma função durável não exige permissões do AWS KMS no chamador; o Lambda executa a criptografia com sua entidade principal do serviço.

Política de chave

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. Em uma política de chave, Resource: "*" se refere somente à chave do KMS à qual a política está vinculada, não a todas as chaves do KMS em sua conta.

A política de chave de uma função durável concede a cada entidade principal apenas as ações do AWS KMS de que ela precisa, com escopo definido pelo ARN da função e do serviço. As seções a seguir descrevem as declarações, as condições e um exemplo completo.

Declarações da política necessárias

A política concede os seguintes recursos:

  • Habilitar as permissões do usuário do IAM. Concede acesso incondicional à raiz da conta para gerenciar a chave. Essa declaração não usa condições porque definir o escopo impede que você rotacione, atualize ou exclua a chave.

  • Permita que o Lambda use essa chave para funções duráveis. Concede kms:GenerateDataKey e kms:Decrypt à entidade principal do serviço do Lambda.

  • Permita que o perfil de execução da função descriptografe os dados de execução durável. Concede o perfil de execução kms:Decrypt para ler o estado e progredir na execução.

  • Permita que o autor da função descreva essa chave. Concede kms:DescribeKey para que o Lambda possa validar se a chave é simétrica e está habilitada durante CreateFunction ou UpdateFunctionConfiguration.

  • Permita que o autor da função valide essa chave para uma função específica. Concede kms:GenerateDataKey e kms:Decrypt, portanto o Lambda pode validar as principais permissões e acessos com o contexto de criptografia da função durante CreateFunction ou UpdateFunctionConfiguration. Isso confirma que a política de chave aceita chamadas para essa função específica antes que a função seja criada ou atualizada.

  • Permita os operadores de execução durável. Concede aos operadores kms:Decrypt para chamadas para GetDurableExecution e GetDurableExecutionHistory com IncludeExecutionData=true, GetDurableExecutionState, StopDurableExecution e as APIs de retorno de chamada.

Como prática recomendada, use entidades principais separadas para o perfil de execução, o autor da função e o operador da execução durável para que cada identidade tenha somente os recursos necessários.

Condições recomendadas para a política

A política usa as seguintes condições para reduzir o acesso:

  • kms:ViaService restringe o uso de chaves às solicitações roteadas pelo Lambda. Aplicar isso ao perfil de execução, ao autor da função e às declarações do operador impede que eles usem a chave diretamente pelo AWS KMS.

  • aws:SourceArn e aws:SourceAccount protegem contra o problema de representante confuso entre serviços. O Lambda encaminha esses valores quando faz chamadas do AWS KMS usando suas próprias credenciais de serviço. Essa condição se aplica somente à declaração da entidade principal do serviço do Lambda. O perfil de execução, o autor da função e as instruções do operador chamam o AWS KMS com as credenciais da sessão de acesso direto do chamador, que não carregam esses cabeçalhos.

  • kms:EncryptionContext:aws:lambda:FunctionArn define o escopo da chave para uma função específica. O Lambda adiciona isso ao contexto de criptografia em cada chamada do AWS KMS para obter dados de execução durável.

O exemplo a seguir combina as declarações e condições acima.

exemplo Política de chave para funções duráveis
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow Lambda to use this key for durable functions", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } }, { "Sid": "Allow the function execution role to decrypt durable execution data", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/myDurableFunctionRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } }, { "Sid": "Allow the function author to describe this key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/FunctionAuthor" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com" } } }, { "Sid": "Allow the function author to validate this key for a specific function", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/FunctionAuthor" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } }, { "Sid": "Allow durable execution operators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/DurableExecutionOperator" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "lambda.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" } } } ] }

Para obter mais informações sobre as políticas de chaves do AWS KMS, consulte Como alterar uma política de chave no Guia do desenvolvedor do AWS Key Management Service.

Configurar uma chave gerenciada pelo cliente em uma função durável.

Você configura a chave gerenciada pelo cliente para os dados de execução durável por meio do campo KMSKeyArn do objeto DurableConfig. Defina-a ao criar a função com CreateFunction; atualize-a em uma função durável existente com UpdateFunctionConfiguration.

Lambda console
Para configurar uma chave gerenciada pelo cliente em uma função durável atual
  1. Abra a página Funções do console do Lambda.

  2. Escolha uma função durável.

  3. Escolha Configuração e depois escolha Execução durável na barra de navegação esquerda.

  4. Escolha Editar.

  5. Em Criptografia, escolha Usar uma chave gerenciada pelo cliente e, em seguida, escolha uma chave do KMS na lista.

  6. Escolha Salvar.

AWS CLI

Para configurar a chave gerenciada pelo cliente ao criar uma função

No exemplo create-function a seguir, a opção --durable-config especifica o ARN da chave gerenciada pelo cliente junto com o tempo limite de execução durável e o período de retenção.

aws lambda create-function \ --function-name myDurableFunction \ --runtime nodejs24.x \ --handler index.handler \ --role arn:aws:iam::111122223333:role/myDurableFunctionRole \ --zip-file fileb://function.zip \ --durable-config '{"KMSKeyArn":"arn:aws:kms:us-east-1:111122223333:key/key-id","ExecutionTimeout":3600,"RetentionPeriodInDays":30}'

Para configurar uma chave gerenciada pelo cliente em uma função durável atual

Use o comando update-function-configuration. Inclua todos os campos DurableConfig que você deseja manter, pois --durable-config substitui o objeto inteiro.

aws lambda update-function-configuration \ --function-name myDurableFunction \ --durable-config '{"KMSKeyArn":"arn:aws:kms:us-east-1:111122223333:key/key-id","ExecutionTimeout":3600,"RetentionPeriodInDays":30}'

Para remover a chave gerenciada pelo cliente de uma função durável

Omita KMSKeyArn de --durable-config. As execuções atuais continuam usando a chave gerenciada pelo cliente com a qual iniciaram. Já as novas execuções usam a criptografia padrão.

aws lambda update-function-configuration \ --function-name myDurableFunction \ --durable-config '{"ExecutionTimeout":3600,"RetentionPeriodInDays":30}'
AWS CloudFormation

Em um recurso AWS::Lambda::Function, configure a propriedade KMSKeyArn de DurableConfig:

Resources: MyDurableFunction: Type: AWS::Lambda::Function Properties: FunctionName: myDurableFunction Runtime: nodejs24.x Handler: index.handler Role: !GetAtt MyDurableFunctionRole.Arn Code: ZipFile: | // Your durable function code DurableConfig: KMSKeyArn: "arn:aws:kms:us-east-1:111122223333:key/key-id" ExecutionTimeout: 3600 RetentionPeriodInDays: 30
Importante

Cada execução durável usa a chave gerenciada pelo cliente que foi configurada na função quando ela foi iniciada. A alteração ou remoção da chave afeta somente as execuções iniciadas após a alteração; as execuções em andamento continuam usando a chave com a qual iniciaram até serem concluídas ou falharem.

Leitura de dados de execução durável

Duas APIs de leitura retornam os dados de execução durável:

  • GetDurableExecution retorna o estado atual de uma única execução, incluindo sua carga útil de entrada, os dados mais recentes do ponto de verificação e as informações sobre resultados ou erros.

  • GetDurableExecutionHistory retorna a lista ordenada de eventos que a execução emitiu, mostrando as entradas e os resultados do ponto de verificação, as entradas e os resultados da invocação em cadeia e o resultado final.

Ambas as APIs aceitam um parâmetro de solicitação IncludeExecutionData. Quando IncludeExecutionData é true, o Lambda usa as credenciais do chamador para chamar kms:Decrypt na chave gerenciada pelo cliente. O Lambda então retorna os dados de execução descriptografados na resposta. A identidade do chamador deve estar kms:Decrypt na chave gerenciada pelo cliente.

Quando IncludeExecutionData é false, o Lambda não chama AWS KMS nem descriptografa os dados de execução, e a resposta define ExecutionDataIncluded como false. A resposta ainda inclui DurableConfig, o que reflete o ARN da chave gerenciada pelo cliente que a execução usou. IncludeExecutionData é definida como false por padrão, então os chamadores que precisam apenas de metadados não precisam de permissões do AWS KMS.

Exemplo: resposta GetDurableExecution com IncludeExecutionData=false

{ "DurableExecutionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction:execution:exec-abc123", "DurableExecutionName": "exec-abc123", "FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction", "StartTimestamp": 1733256000, "Status": "RUNNING", "ExecutionDataIncluded": false, "DurableConfig": { "ExecutionTimeout": 3600, "KMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/key-id", "RetentionPeriodInDays": 30 } }

Invocações em cadeia

Quando uma função durável usa invocação em cadeia para chamar outra função durável, o Lambda trata a execução secundária como uma execução durável independente: ela tem sua própria ID de execução, seu próprio fluxo de ponto de verificação e sua própria chave gerenciada pelo cliente. A configuração da chave gerenciada pelo cliente definida como principal não tem efeito nos dados da secundária e a configuração da chave gerenciada pelo cliente secundária não tem efeito nos dados da principal.

Permissões

A entidade principal de serviço do Lambda deve ter kms:GenerateDataKey e kms:Decrypt na chave gerenciada pelo cliente da função secundária. Se as funções principal e secundária usarem chaves gerenciadas pelo cliente diferentes, você concederá acesso à entidade principal do serviço em cada chave separadamente. O perfil de execução da função principal não precisa de permissões na chave gerenciada pelo cliente secundária.

Identificar qual chave criptografou qual execução

GetDurableExecution e ListDurableExecutionsByFunction retornam o ARN da chave gerenciada pelo cliente que criptografou cada execução. Use essas APIs para confirmar qual chave estava em vigor quando uma execução principal ou secundária foi iniciada.

Armazenamento em cache de chaves de dados

Para reduzir o volume de chamadas do AWS KMS e melhorar a disponibilidade durante interrupções no serviço, o Lambda armazena em cache uma chave de dados gerada a partir da chave gerenciada pelo cliente por até 15 minutos. Enquanto o cache está aquecido, o Lambda reutiliza a mesma chave de dados nas operações de uma execução e nas execuções iniciadas durante a janela de cache.

Custo

O custo de AWS KMS por execução permanece baixo porque o Lambda chama GenerateDataKey no máximo uma vez por janela de cache, não uma vez por ponto de verificação. Com altas taxas de solicitação, o custo por execução cai ainda mais porque mais execuções compartilham cada chave de dados em cache. Você é cobrado pelas chamadas do AWS KMS que o Lambda efetivamente fizer, não por cada ponto de verificação ou leitura.

Estabilidade estática

As chaves de dados permanecem em cache por até 15 minutos. As alterações na sua chave entrarão em vigor na próxima atualização do cache. Durante interrupções prolongadas de serviço, o Lambda continua atendendo a partir do cache, mantendo as execuções em andamento.

CloudTrail

O armazenamento em cache de chaves de dados significa que você vê menos eventos GenerateDataKey no CloudTrail do que execuções ou pontos de verificação. Para obter exemplos de eventos, consulte Monitoramento das chaves do KMS para funções duráveis.

Quando a chave gerenciada pelo cliente não está disponível

Se a chave gerenciada pelo cliente com a qual uma execução foi iniciada estiver desativada, programada para exclusão ou tiver seu acesso revogado por meio da política de chave, a execução não poderá mais progredir. No próximo ponto de verificação, o Lambda falha na execução com um erro AWS KMS que não pode ser repetido. A restauração do acesso à chave não retoma automaticamente a execução. Você deve iniciar uma nova execução.

As APIs que leem ou gravam cargas úteis também falham quando a chave não está disponível. Elas podem retornar uma das seguintes exceções:

  • KMSAccessDeniedException: o Lambda não conseguiu descriptografar os dados da execução durável porque o acesso à chave do KMS foi negado.

  • KMSDisabledException: o Lambda não conseguiu descriptografar os dados da execução durável porque a chave do KMS está desativada.

  • KMSInvalidStateException: o Lambda não conseguiu descriptografar os dados da execução durável porque o estado da chave do KMS não é válido para Decrypt.

  • KMSNotFoundException: o Lambda não conseguiu descriptografar os dados da execução durável porque a chave do KMS não foi encontrada.

A restauração do acesso à chave do KMS permite que essas APIs de leitura tenham êxito novamente em execuções que já falharam. As execuções que falharam continuam com falha; você deve iniciar uma nova execução.

Para inspecionar os metadados de execução enquanto a chave do KMS não estiver disponível, chame GetDurableExecution com IncludeExecutionData=false. Isso retorna o status da execução, os carimbos de data/hora e DurableConfig (incluindo o ARN da chave do KMS) sem chamar AWS KMS.

Como o Lambda armazena em cache as chaves de dados, a desativação de uma chave não tem efeito imediato. Para obter detalhes, consulte Armazenamento em cache de chaves de dados.

Importante

A exclusão de uma chave do KMS da qual as execuções em andamento ou retidas ainda dependam destrói permanentemente essas execuções e seu histórico.

Monitoramento das chaves do KMS para funções duráveis

Ao usar uma chave gerenciada pelo cliente com uma função durável, é possível usar AWS CloudTrail para rastrear as chamadas do AWS KMS que o Lambda fizer por você. Para obter orientações gerais sobre como pesquisar eventos do AWS KMS, consulte Pesquisar atividade da API do AWS KMS.

Para confirmar se o Lambda está usando sua chave conforme o esperado, procure esses campos em cada evento:

  • eventName: um de GenerateDataKey, Decrypt ou DescribeKey

  • eventSource: kms.amazonaws.com

  • userIdentity.invokedBy: lambda.amazonaws.com

  • requestParameters.encryptionContext.aws:lambda:FunctionArn: o ARN da função durável

Os exemplos a seguir são eventos do CloudTrail de uma chamada CreateFunction ou UpdateFunctionConfiguration que configura uma chave gerenciada pelo cliente em uma função durável. O Lambda emite três chamadas do AWS KMS para validar a chave: uma DescribeKey verdadeira, e GenerateDataKey e Decrypt simuladas.

GenerateDataKey

Quando você define ou altera KMSKeyArn em DurableConfig, o Lambda emite uma GenerateDataKey simulada na chave gerenciada pelo cliente para validar se a política de chave permite que o Lambda derive chaves de dados para o contexto de criptografia dessa função. A simulação não executa nenhum trabalho criptográfico, mas registra um evento completo do CloudTrail. O exemplo de evento a seguir registra a operação GenerateDataKey simulada:

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:example", "arn": "arn:aws:sts::111122223333:assumed-role/FunctionAuthor/example", "accountId": "111122223333", "accessKeyId": "ASIA123456789EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::111122223333:role/FunctionAuthor", "accountId": "111122223333", "userName": "FunctionAuthor" }, "attributes": { "creationDate": "2026-01-15T16:54:42Z", "mfaAuthenticated": "false" } }, "invokedBy": "lambda.amazonaws.com" }, "eventTime": "2026-01-15T16:55:00Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "lambda.amazonaws.com", "userAgent": "lambda.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionContext": { "aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" }, "dryRun": true, "keyId": "arn:aws:kms:us-east-1:111122223333:key/key-id", "keySpec": "AES_256" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0EXAMPLE" }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/key-id" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Decrypt

Quando você define ou altera KMSKeyArn em DurableConfig, o Lambda emite também uma Decrypt simulada na chave gerenciada pelo cliente para validar se a política de chave permite que o Lambda descriptografe os dados para o contexto de criptografia dessa função. A simulação usa IGNORE_CIPHERTEXT e, portanto, nenhum texto cifrado verdadeiro é necessário. O exemplo de evento a seguir registra a operação Decrypt simulada:

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:example", "arn": "arn:aws:sts::111122223333:assumed-role/FunctionAuthor/example", "accountId": "111122223333", "accessKeyId": "ASIA123456789EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::111122223333:role/FunctionAuthor", "accountId": "111122223333", "userName": "FunctionAuthor" }, "attributes": { "creationDate": "2026-01-15T16:54:42Z", "mfaAuthenticated": "false" } }, "invokedBy": "lambda.amazonaws.com" }, "eventTime": "2026-01-15T16:55:00Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "lambda.amazonaws.com", "userAgent": "lambda.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionContext": { "aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:myDurableFunction" }, "dryRun": true, "keyId": "arn:aws:kms:us-east-1:111122223333:key/key-id", "dryRunModifiers": ["IGNORE_CIPHERTEXT"], "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0EXAMPLE" }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/key-id" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey

Quando você define ou altera KMSKeyArn em DurableConfig, o Lambda chama DescribeKey para confirmar se a chave é simétrica e está ativada antes de aceitar a alteração. Ao contrário das sondagens GenerateDataKey e Decrypt, essa é uma chamada verdadeira, não uma simulação. O evento de exemplo a seguir registra a operação DescribeKey:

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123456789EXAMPLE:example", "arn": "arn:aws:sts::111122223333:assumed-role/FunctionAuthor/example", "accountId": "111122223333", "accessKeyId": "ASIA123456789EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123456789EXAMPLE", "arn": "arn:aws:iam::111122223333:role/FunctionAuthor", "accountId": "111122223333", "userName": "FunctionAuthor" }, "attributes": { "creationDate": "2026-01-15T16:54:42Z", "mfaAuthenticated": "false" } }, "invokedBy": "lambda.amazonaws.com" }, "eventTime": "2026-01-15T16:55:00Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-east-1", "sourceIPAddress": "lambda.amazonaws.com", "userAgent": "lambda.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-east-1:111122223333:key/key-id" }, "responseElements": null, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/key-id" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }