Configurazione della firma del codice per AWS 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à.

Configurazione della firma del codice per AWS Lambda

La firma del codice AWS Lambda aiuta a garantire che nelle funzioni Lambda venga eseguito solo codice affidabile. Quando si attiva la firma del codice per una funzione, Lambda controlla ogni distribuzione del codice e verifica che il pacchetto di codice sia firmato da un'origine attendibile.

Nota

Le funzioni definite come immagini di container non supportano la firma del codice.

Per verificare l'integrità del codice, utilizzare AWS Signer per creare pacchetti di codice con firma digitale per funzioni e livelli. Quando un utente tenta di distribuire un pacchetto di codice, Lambda esegue controlli di convalida sul pacchetto di codice prima di accettarne la distribuzione. Poiché i controlli di convalida della firma del codice vengono eseguiti al momento della distribuzione, non vi è alcun impatto sulle prestazioni nell'esecuzione delle funzioni.

Puoi utilizzare AWS Signer anche per creare profili di firma. È possibile utilizzare un profilo di firma per creare il pacchetto di codice firmato. Utilizza AWS Identity and Access Management (IAM) per controllare chi può firmare pacchetti di codice e creare profili di firma. Per ulteriori informazioni, consultare Autenticazione e controllo degli accessi nel manuale Guida per l'utente di AWS Signer.

Per abilitare la firma del codice per una funzione, creare una configurazione di firma del codice e collegarla alla funzione. Una configurazione di firma del codice definisce un elenco di profili di firma consentiti e le operazioni delle policy da eseguire in caso di esito negativo dei controlli di convalida.

I livelli Lambda seguono lo stesso formato del pacchetto di codice firmato dei pacchetti di codici della funzione. Quando si aggiunge un livello a una funzione per la quale è attivata la firma del codice, Lambda verifica che il livello sia firmato da un profilo di firma consentito. Quando si attiva la firma del codice per una funzione, tutti i livelli aggiunti alla funzione devono essere firmati anche da uno dei profili di firma consentiti.

Utilizzare IAM per controllare chi può creare configurazioni di firma del codice. In genere, è consentito solo a utenti amministrativi specifici di avere questa capacità. Inoltre, è possibile impostare delle policy IAM per imporre agli sviluppatori di creare solo funzioni per le quali è abilitata la firma del codice.

È possibile configurare la firma del codice per registrare le modifiche su AWS CloudTrail. Le implementazioni delle funzioni riuscite e bloccate vengono registrate CloudTrail con informazioni sui controlli di firma e convalida.

Puoi configurare la firma del codice per le tue funzioni utilizzando la console Lambda, il AWS Command Line Interface (AWS CLI) e il AWS Serverless Application Model (AWS SAM). AWS CloudFormation

Non sono previsti costi aggiuntivi per l'utilizzo di AWS Signer o per la firma del codice. AWS Lambda

Convalida della firma

Lambda esegue i seguenti controlli di convalida quando si distribuisce un pacchetto di codice firmato alla funzione:

  1. Integrità - Convalida che il pacchetto di codice non sia stato modificato dopo la firma. Lambda confronta l'hash del pacchetto con l'hash della firma.

  2. Scadenza - Convalida che la firma del pacchetto di codice non sia scaduta.

  3. Mancata corrispondenza - Convalida che il pacchetto di codice sia firmato con uno dei profili di firma consentiti per la funzione Lambda. Si verifica una mancata corrispondenza anche se non è presente una firma.

  4. Revoca - Convalida che la firma del pacchetto di codice non sia stata revocata.

La policy di convalida della firma definito nella configurazione della firma del codice determina quale delle seguenti azioni sia eseguito da Lambda se uno dei controlli di convalida ha esito negativo:

  • Avvisa - Lambda consente la distribuzione del pacchetto di codice, ma emette un avviso. Lambda emette una nuova CloudWatch metrica Amazon e memorizza anche l'avviso nel registro. CloudTrail

  • Applica - Lambda emette un avviso (lo stesso dell'azione Avvisa) e blocca la distribuzione del pacchetto di codice.

È possibile configurare la policy per i controlli di convalida di scadenza, mancata corrispondenza e revoca. Si noti che non è possibile configurare una policy per il controllo dell'integrità. Se il controllo dell'integrità non riesce, Lambda blocca la distribuzione.

Prerequisiti di configurazione

Prima di configurare la firma del codice per una funzione Lambda, usa AWS Signer per effettuare le seguenti operazioni:

  • Creare uno o più profili di firma.

  • Utilizzare un profilo di firma per creare un pacchetto di codice firmato per la funzione.

Per ulteriori informazioni, consultare la sezione Creazione di profili di firma (Console) nella Guida per lo sviluppatore di AWS Signer.

Creazione delle configurazioni di firma del codice

Una configurazione di firma del codice definisce un elenco di profili di firma consentiti e la policy di convalida della firma.

Per creare una configurazione di firma del codice (console)
  1. Aprire la pagina Configurazioni di firma del codice della console Lambda.

  2. Scegli Create configuration (Crea configurazione).

  3. In Description (Descrizione), immettere un nome descrittivo per la configurazione.

  4. In Signing profiles (Profili di firma) aggiungere fino a 20 profili di firma alla configurazione.

    1. Per l'ARN della versione del profilo di firma, scegliere l'ARN (Amazon Resource Name) di una versione del profilo oppure inserire l'ARN.

    2. Per aggiungere un profilo di firma aggiuntivo, scegliere Add signing profiles (Aggiungi profili di firma).

  5. In Signature validation policy (Policy di convalida della firma), scegliere Warn (Avvisa) o Enforce (Applica).

  6. Scegli Create configuration (Crea configurazione).

Aggiornamento di una configurazione di firma del codice

Quando si aggiorna una configurazione di firma del codice, le modifiche influiscono sulle distribuzioni future di funzioni a cui è collegata la configurazione della firma del codice.

Per aggiornare una configurazione di firma del codice (console)
  1. Aprire la pagina Configurazioni di firma del codice della console Lambda.

  2. Selezionare una configurazione di firma del codice da aggiornare, quindi scegliere Edit (Modifica).

  3. In Description (Descrizione), immettere un nome descrittivo per la configurazione.

  4. In Signing profiles (Profili di firma) aggiungere fino a 20 profili di firma alla configurazione.

    1. Per l'ARN della versione del profilo di firma, scegliere l'ARN (Amazon Resource Name) di una versione del profilo oppure inserire l'ARN.

    2. Per aggiungere un profilo di firma aggiuntivo, scegliere Add signing profiles (Aggiungi profili di firma).

  5. In Signature validation policy (Policy di convalida della firma), scegliere Warn (Avvisa) o Enforce (Applica).

  6. Seleziona Salvataggio delle modifiche.

Eliminazione di una configurazione di firma del codice

È possibile eliminare una configurazione di firma del codice solo se non viene utilizzata da alcuna funzione.

Per eliminare una configurazione di firma del codice (console)
  1. Aprire la pagina Configurazioni di firma del codice della console Lambda.

  2. Selezionare una configurazione di firma del codice da eliminare e quindi scegliere Delete (Elimina).

  3. Per confermare, scegliere di nuovo Delete (Elimina).

Abilitazione della firma del codice per una funzione

Per abilitare la firma del codice per una funzione, è necessario associare una configurazione di firma del codice alla funzione.

Per associare una configurazione di firma del codice a una funzione (console)
  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegliere la funzione per la quale si desidera abilitare la firma del codice.

  3. Apri la scheda Configurazione.

  4. Scorri verso il basso e scegli Code signature.

  5. Scegli Modifica.

  6. In Edit code signing (Modifica della firma del codice), scegliere una configurazione di firma del codice per questa funzione.

  7. Selezionare Salva.

Configurazione delle policy IAM

Per concedere l'autorizzazione a un utente di accedere alle operazioni dell'API di firma del codice, allegare una o più istruzioni delle policy alla policy dell'utente. Per ulteriori informazioni sulle policy utente, consulta Utilizzo di politiche IAM basate sull'identità in Lambda.

La seguente istruzione di policy di esempio concede l'autorizzazione per creare, aggiornare e recuperare le configurazioni di firma del codice.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CreateCodeSigningConfig", "lambda:UpdateCodeSigningConfig", "lambda:GetCodeSigningConfig" ], "Resource": "*" } ] }

Gli amministratori possono utilizzare la chiave di condizione CodeSigningConfigArn per specificare le configurazioni di firma del codice che gli sviluppatori devono utilizzare per creare o aggiornare le funzioni.

La seguente istruzione di policy di esempio concede l'autorizzazione per creare una funzione. La dichiarazione di policy include una condizione lambda:CodeSigningConfigArn per specificare la configurazione di firma del codice consentita. Lambda blocca qualsiasi richiesta API CreateFunction se il relativo parametro CodeSigningConfigArn è mancante o non corrisponde al valore nella condizione.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowReferencingCodeSigningConfig", "Effect": "Allow", "Action": [ "lambda:CreateFunction", ], "Resource": "*", "Condition": { "StringEquals": { "lambda:CodeSigningConfigArn": “arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0d4518bd353a0a7c6” } } } ] }

Configurazione di firma del codice con l'API Lambda

Per gestire le configurazioni di firma del codice con AWS CLI o AWS SDK, utilizza le seguenti operazioni API:

Per gestire la configurazione di firma del codice per una funzione, utilizzare le seguenti operazioni API: