View a markdown version of this page

Sicurezza e autorizzazioni per le funzioni durevoli Lambda - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Sicurezza e autorizzazioni per le funzioni durevoli Lambda

AWS Lambda le funzioni durevoli richiedono autorizzazioni IAM specifiche per eseguire e gestire esecuzioni durevoli. Segui il principio del privilegio minimo concedendo solo le autorizzazioni necessarie a ciascun principale.

Autorizzazioni IAM per funzioni durevoli

Per la maggior parte delle azioni API di esecuzione duratura, Lambda autorizza la richiesta in base all'ARN di esecuzione durevole, non all'ARN della funzione. Un'esecuzione duratura è una risorsa secondaria della versione di una funzione e il relativo ARN estende l'ARN della funzione:

arn:aws:lambda:region:account-id:function:function-name:qualifier/durable-execution/execution-name/execution-id

Il qualificatore in un ARN di esecuzione durevole è sempre $LATEST o un numero di versione.

Se la policy specifica un ARN di funzione non qualificato nell'elemento Resource, Lambda rifiuta la richiesta perché un ARN non qualificato non corrisponde mai a un ARN di esecuzione durevole. Per concedere l'accesso, aggiungi uno schema di qualificazione alla funzione ARN:

  • arn:aws:lambda:us-east-1:123456789012:function:my-function:*— Corrisponde alle esecuzioni durevoli di ogni versione.

  • arn:aws:lambda:us-east-1:123456789012:function:my-function:1/durable-execution/*— Corrisponde solo alle esecuzioni durevoli della versione 1.

La maggior parte delle policy utilizza il :* modulo perché i numeri di versione possono cambiare a ogni distribuzione.

Gli alias non si applicano ai permessi di esecuzione duraturi

È possibile richiamare una funzione durevole tramite un alias, ma l'ARN dell'esecuzione risultante contiene il numero di versione risolta.

Autorizzazioni del ruolo di esecuzione

Il ruolo di esecuzione della funzione durevole deve disporre delle autorizzazioni per creare checkpoint e recuperare lo stato di esecuzione. La seguente politica mostra le autorizzazioni minime richieste:

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

Quando si crea una funzione durevole utilizzando la console, Lambda aggiunge automaticamente queste autorizzazioni al ruolo di esecuzione. Se crei la funzione usando AWS CLI o AWS CloudFormation, aggiungi queste autorizzazioni al tuo ruolo di esecuzione.

Affinché Lambda possa assumere il tuo ruolo di esecuzione, la politica di fiducia del ruolo deve specificare Lambda service principal (lambda.amazonaws.com) come servizio affidabile. L'esempio seguente mostra una politica di fiducia che concede a Lambda l'autorizzazione ad assumere il ruolo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Principio del privilegio minimo

Limita l'Resourceelemento agli ARN di funzioni specifiche invece di usare caratteri jolly. Ciò limita il ruolo di esecuzione alle operazioni di checkpoint solo per le funzioni che ne hanno bisogno.

Esempio Autorizzazioni con ambito per più funzioni
{ "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:*" ] } ] }

In alternativa, puoi utilizzare la policy AWS gestita AWSLambdaBasicDurableExecutionRolePolicy che include le autorizzazioni di esecuzione durature richieste insieme alle autorizzazioni di esecuzione Lambda di base per Amazon Logs. CloudWatch

Autorizzazioni per la gestione di esecuzioni durevoli

Lambda autorizza il lambda:GetDurableExecutionlambda:GetDurableExecutionHistory, e le lambda:StopDurableExecution azioni contro l'ARN di esecuzione durevole.

Per elencare le esecuzioni durevoli di una funzione, usa. lambda:ListDurableExecutionsByFunction Lambda autorizza questa azione contro la funzione ARN indicata nella richiesta. Le seguenti regole si applicano alla corrispondenza degli ARN:

  • Una politica che concede la funzione non qualificata ARN soddisfa solo le richieste che utilizzano il nome della funzione non qualificata.

  • Una policy che concede un ARN qualificato corrisponde solo alle richieste che utilizzano un nome di funzione qualificato.

Per ulteriori informazioni, consulta Funzioni di riferimento nella sezione Risorse delle policy.

Per abbinare le richieste effettuate con entrambe le forme del nome della funzione, includi sia l'ARN della funzione non qualificata che quella qualificata, come mostra la seguente politica:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageDurableExecutions", "Effect": "Allow", "Action": [ "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:StopDurableExecution" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:*" }, { "Sid": "ListDurableExecutions", "Effect": "Allow", "Action": "lambda:ListDurableExecutionsByFunction", "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction", "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:*" ] } ] }

Autorizzazioni per l'invio di callback

Il sistema esterno che invia un risultato di callback utilizza le azioni lambda:SendDurableExecutionCallbackSuccesslambda:SendDurableExecutionCallbackFailure, e. lambda:SendDurableExecutionCallbackHeartbeat

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SendCallbacks", "Effect": "Allow", "Action": [ "lambda:SendDurableExecutionCallbackSuccess", "lambda:SendDurableExecutionCallbackFailure", "lambda:SendDurableExecutionCallbackHeartbeat" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:*" } ] }

Lambda autorizza le richieste di callback rispetto all'ARN dell'esecuzione durevole che ha creato il callback.

Crittografia statale

Le funzioni Lambda durable crittografano i dati di esecuzione a riposo. L'esecuzione di ogni funzione mantiene uno stato isolato a cui le altre esecuzioni non possono accedere. È possibile configurare una chiave gestita dal cliente per crittografare i dati di esecuzione durevoli. Per ulteriori informazioni, consulta Crittografia AWS Lambda dati di esecuzione durevoli.

I dati del checkpoint includono:

  • Risultati ed errori delle fasi

  • Input di richiamo concatenati

Per l'elenco completo dei dati di esecuzione durevoli crittografati a riposo, vedere. Cosa è crittografato

Tutti i dati vengono crittografati in transito utilizzando TLS quando Lambda legge o scrive i dati dei checkpoint.

Crittografia personalizzata con serializzatori e deserializzatori personalizzati

Per i requisiti di sicurezza critici, puoi implementare il tuo meccanismo di crittografia e decrittografia utilizzando serializzatori e deserializzatori personalizzati () utilizzando un SDK durevole. SerDer Questo approccio offre il pieno controllo sulle chiavi di crittografia e sugli algoritmi utilizzati per proteggere i dati dei checkpoint.

Importante

Quando si utilizza la crittografia personalizzata, si perde la visibilità dei risultati delle operazioni nella console Lambda e nelle risposte API. I dati del checkpoint appaiono crittografati nella cronologia delle esecuzioni e non possono essere esaminati senza decrittografia.

Requisiti kms:Encrypt e kms:Decrypt autorizzazioni per il ruolo di esecuzione della funzione per la AWS KMS chiave utilizzata nell'implementazione personalizzata. SerDer

CloudTrail registrazione

Lambda registra le operazioni dei checkpoint come eventi di dati in. AWS CloudTrailÈ possibile utilizzarlo CloudTrail per verificare la creazione dei checkpoint, tenere traccia delle modifiche allo stato di esecuzione e monitorare l'accesso a dati di esecuzione durevoli.

Le operazioni relative ai checkpoint vengono CloudTrail visualizzate nei log con i seguenti nomi di evento:

  • CheckpointDurableExecution- Registrato quando viene completato un passaggio e viene creato un checkpoint

  • GetDurableExecutionState- Registrato quando Lambda recupera lo stato di esecuzione durante la riproduzione

Per abilitare la registrazione degli eventi di dati per funzioni durature, configura un CloudTrail percorso per registrare gli eventi dei dati Lambda. Per ulteriori informazioni, consulta Registrazione degli eventi relativi ai dati nella Guida per l' CloudTrail utente.

Esempio: immissione del CloudTrail registro per il funzionamento del checkpoint

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

Cross-account considerazioni

Se si richiamano funzioni permanenti su più AWS account, l'account chiamante richiede l'lambda:InvokeFunctionautorizzazione, ma le operazioni di checkpoint utilizzano sempre il ruolo di esecuzione nell'account della funzione. L'account chiamante non può accedere direttamente ai dati del checkpoint o allo stato di esecuzione.

Questo isolamento garantisce che i dati dei checkpoint rimangano protetti all'interno dell'account della funzione, anche se richiamati da account esterni.

Funzionalità di sicurezza Lambda ereditate

Le funzioni durevoli ereditano tutte le funzionalità di sicurezza, governance e conformità da Lambda. Queste includono la connettività VPC, la crittografia delle variabili di ambiente, le code di lettere morte, la concorrenza riservata, gli URL delle funzioni, la firma del codice e le certificazioni di conformità come SOC, PCI DSS e HIPAA.

Per informazioni dettagliate sulle funzionalità di sicurezza di Lambda, consulta Security in nella Lambda Developer Guide. AWS Lambda Le uniche considerazioni aggiuntive sulla sicurezza per le funzioni durevoli sono le autorizzazioni IAM documentate in questa guida.