Segurança e permissões para as funções duráveis do Lambda - AWS Lambda

Segurança e permissões para as funções duráveis do Lambda

As funções duráveis do Lambda exigem permissões específicas do IAM para gerenciar as operações de ponto de verificação. Siga o princípio do privilégio mínimo concedendo somente as permissões de que sua função precisa.

Permissões da função de execução

O perfil de execução da sua função durável precisa de permissões para criar pontos de verificação e recuperar o estado de execução. A política a seguir mostra as permissões mínimas necessárias:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecution", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name:*" } ] }

Quando você cria uma função durável usando o console, o Lambda adiciona automaticamente essas permissões ao perfil de execução. Se você criar a função usando a AWS CLI ou o AWS CloudFormation, adicione essas permissões ao seu perfil de execução.

Princípio do privilégio mínimo

Defina o escopo do elemento Resource para ARNs de funções específicas em vez de usar curingas. Isso limita o perfil de execução a operações de ponto de verificação somente para as funções que precisem delas.

Exemplo: permissões com escopo definido para várias funções

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecution", "lambda:GetDurableExecutionState" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:orderProcessor:*", "arn:aws:lambda:us-east-1:123456789012:function:paymentHandler:*" ] } ] }

Como alternativa, é possível usar a política gerenciada pela AWS AWSLambdaBasicDurableExecutionRolePolicy, que inclui as permissões de execução duráveis necessárias junto às permissões básicas de execução do Lambda para o Amazon CloudWatch Logs.

Criptografia de estado

As funções duráveis do Lambda habilitam automaticamente a criptografia em repouso usando chaves de propriedade da AWS sem custos. Cada execução de função mantém um estado isolado que outras execuções não podem acessar. Não há suporte para chaves gerenciadas pelo cliente (CMK).

Os dados do ponto de verificação incluem:

  • Resultados da etapa e valores de retorno

  • Andamento e cronograma da execução

  • Informações de estado de espera

Os dados são criptografados em trânsito usando TLS quando o Lambda lê ou grava dados de pontos de verificação.

Criptografia personalizada com serializadores e desserializadores personalizados

Para requisitos críticos de segurança, é possível implementar seu próprio mecanismo de criptografia e descriptografia por meio de serializadores e desserializadores personalizados (SerDer) usando um SDK durável. Essa abordagem oferece controle total sobre as chaves de criptografia e os algoritmos usados para proteger os dados dos pontos de verificação.

Importante

Ao usar criptografia personalizada, você perde a visibilidade dos resultados da operação no console do Lambda e nas respostas de APIs. Os dados dos pontos de verificação aparecem criptografados no histórico de execução e não podem ser inspecionados sem a descriptografia.

O perfil de execução da sua função precisa das permissões kms:Encrypt e kms:Decrypt para a chave AWS KMS usada na implementação SerDer personalizada.

Registro em log do CloudTrail

O Lambda registra em log as operações de pontos de verificação como eventos de dados em AWS CloudTrail. É possível usar o CloudTrail para auditar a criação de pontos de verificação, rastrear alterações no estado de execução e monitorar o acesso a dados de execução duráveis.

As operações de pontos de verificação aparecem nos logs do CloudTrail com os nomes de eventos a seguir:

  • CheckpointDurableExecution: registrado em log quando uma etapa é concluída e um ponto de verificação é criado

  • GetDurableExecutionState: registrado em log quando o Lambda recupera o estado de execução durante a reprodução

Para habilitar o registro em log de eventos de dados para funções duráveis, configure uma trilha do CloudTrail para registrar em log eventos de dados do Lambda. Para obter mais informações, consulte Registro em log de eventos de dados no Guia do usuário do CloudTrail.

Exemplo: entrada de log do CloudTrail para operação de ponto de verificação

{ "eventVersion": "1.08", "eventTime": "2024-11-16T10:30:45Z", "eventName": "CheckpointDurableExecution", "eventSource": "lambda.amazonaws.com", "requestParameters": { "functionName": "myDurableFunction", "executionId": "exec-abc123", "stepId": "step-1" }, "responseElements": null, "eventType": "AwsApiCall" }

Considerações sobre o acesso entre contas

Se você invocar funções duráveis em várias contas da AWS, a conta chamadora precisará da permissão lambda:InvokeFunction, mas as operações de ponto de verificação sempre usarão o perfil de execução na conta da função. A conta chamadora não pode acessar diretamente os dados do ponto de verificação ou o estado de execução.

Esse isolamento garante que os dados do ponto de verificação permaneçam seguros na conta da função, mesmo quando invocados a partir de contas externas.

Recursos de segurança herdados do Lambda

As funções duráveis herdam todos os atributos de segurança, governança e conformidade do Lambda, incluindo conectividade VPC, criptografia variável de ambiente, filas de mensagens não entregues, simultaneidade reservada, URLs de funções, assinatura de código e certificações de conformidade (SOC, PCI DSS, HIPAA etc.).

Para obter informações detalhadas sobre os recursos de segurança do Lambda, consulte Segurança no AWS Lambda no Guia do desenvolvedor do Lambda. As únicas considerações adicionais de segurança para funções duráveis são as permissões de ponto de verificação documentadas neste guia.