Regole Lambda personalizzate (esempio generale) - AWS Config

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à.

Regole Lambda personalizzate (esempio generale)

Completa la procedura seguente per creare una regola Lambda personalizzata. Per creare una regola Lambda personalizzata, devi prima creare una AWS Lambda funzione che contiene la logica di valutazione per la regola. Quindi, associa la funzione a una regola Lambda personalizzata creata in AWS Config.

Importante

Come best practice di sicurezza per consentire l' AWS Config autorizzazione a richiamare la funzione Lambda, consigliamo vivamente di limitare l'accesso nella politica basata sulle risorse per sourceARN sourceAccountId Lambda con e/o nella richiesta di invoca. Per ulteriori informazioni, consulta Best practice di sicurezza per la policy AWS Lambda basata sulle risorse.

Creazione di una funzione AWS Lambda per una regola di configurazione personalizzata

Una funzione Lambda è codice personalizzato su cui si carica e viene richiamata da eventi pubblicati su di essa da un'origine di eventi. AWS Lambda Se la funzione Lambda è associata a una regola Config, la AWS Config richiama quando si verifica l'attivazione della regola. La funzione Lambda valuta quindi le informazioni di configurazione inviate da AWS Config e restituisce i risultati di valutazione. Per ulteriori informazioni sulle funzioni Lambda, consulta Origini di eventi e funzioni nella Guida per gli sviluppatori di AWS Lambda .

È possibile utilizzare un linguaggio di programmazione supportato da AWS Lambda per creare una funzione Lambda per una regola Lambda personalizzata. Per semplificare questa attività, è possibile personalizzare un AWS Lambda blueprint o riutilizzare una funzione di esempio dal repository Rules. AWS Config GitHub

Piani AWS Lambda

La AWS Lambda console fornisce funzioni di esempio, o blueprint, che è possibile personalizzare aggiungendo la propria logica di valutazione. Quando si crea una funzione, è possibile scegliere uno dei seguenti piani:

  • config-rule-change-triggered— Attivato quando le configurazioni AWS delle risorse cambiano.

  • config-rule-periodic— Attivato con una frequenza scelta dall'utente (ad esempio, ogni 24 ore).

AWS Config Archivio delle regole GitHub

È disponibile un archivio pubblico di funzioni di esempio per le regole Lambda personalizzate, un servizio GitHub di hosting e condivisione di codice basato sul Web. Le funzioni di esempio sono sviluppate e fornite dalla community. AWS Se si desidera utilizzare un esempio, è possibile copiarne il codice in una nuova AWS Lambda funzione. Per visualizzare il repository, consulta https://github.com/awslabs/aws-config-rules/.

Per creare la funzione per la regola personalizzata
  1. Accedi AWS Management Console e apri la AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/.

  2. Nel AWS Management Console menu, verifica che il selettore di regione sia impostato su una regione che supporta AWS Config le regole. Per un elenco delle regioni supportate, consultaRegioni ed endpoint di AWS Config nei Riferimenti generali di Amazon Web Services.

  3. Scegliere Create a Lambda function (Crea una funzione Lambda).

  4. Nella pagina Usa un blueprint, puoi scegliere una delle funzioni del blueprint per le AWS Config regole come punto di partenza oppure puoi procedere senza un blueprint scegliendo Ignora.

  5. Nella pagina Configure triggers (Configura trigger) scegli Next (Successivo).

  6. Nella pagina Informazioni di base, digita un nome e una descrizione.

  7. Per Runtime, scegli il linguaggio di programmazione in cui è scritta la funzione.

  8. In Code entry type (Tipo di immissione codice), scegli il tipo di voce preferito. Se utilizzi uno schema, mantieni il codice preconfigurato.

  9. Fornisci il codice utilizzando il metodo richiesto dal tipo di immissione codice selezionato. Se stai usando un piano, il codice della funzione viene fornito nell'editor di codice ed è possibile personalizzarlo per includere la propria logica di valutazione. Il codice può valutare i dati degli eventi AWS Config forniti quando richiama la funzione:

    • Per le funzioni basate sul config-rule-change-triggeredblueprint o per le funzioni attivate da modifiche alla configurazione, i dati dell'evento sono l'elemento di configurazione o un oggetto di elemento di configurazione sovradimensionato per la risorsa che è stata modificata. AWS

    • Per le funzioni basate sul config-rule-periodicblueprint o per le funzioni attivate con una frequenza scelta dall'utente, i dati dell'evento sono un oggetto JSON che include informazioni su quando è stata attivata la valutazione.

    • Per entrambi i tipi di funzioni, AWS Config passa i parametri delle regole in formato JSON. Puoi definire quali parametri della regola trasmettere quando crei la regola Lambda personalizzata in AWS Config.

    • Ad esempio, gli eventi che vengono AWS Config pubblicati quando richiama la tua funzione, vedi. Esempio eventi per le regole AWS Config

  10. In Ruolo di esecuzione, scegli Crea nuovo ruolo dai modelli di policy di AWS .

  11. In Role Name (Nome ruolo) digita un nome.

  12. In Policy templates (Modelli di policy), scegli AWS Config Rules permission (Autorizzazione regole di configurazione).

  13. Verifica i dettagli, quindi scegli Crea funzione.

Creazione di una regola personalizzata in AWS Config

Da utilizzare AWS Config per creare una regola Lambda personalizzata e associarla a una funzione Lambda.

Per creare una regola personalizzata
  1. Apri la AWS Config console all'indirizzo https://console.aws.amazon.com/config/.

  2. Nel AWS Management Console menu, verifica che il selettore di regione sia impostato sulla stessa regione in cui hai creato la AWS Lambda funzione per la tua regola Lambda personalizzata.

  3. Nella pagina Rules (Regole) scegli Add rule (Aggiungi regola).

  4. Nella pagina Specifica il tipo di regola, scegli Crea regola personalizzata.

  5. Nella pagina Configure rule (Configura regola) digita un nome e la descrizione.

  6. Per l' ARN della funzione AWS Lambda , specifica l'ARN che AWS Lambda ha assegnato per la funzione.

    Nota

    L'ARN che specifichi in questo passaggio non deve includere il qualificatore $LATEST. È possibile specificare un ARN senza un qualificatore di versione o con qualsiasi altro qualificatore. $LATEST AWS Lambda supporta il controllo delle versioni delle funzioni e a ciascuna versione viene assegnato un ARN con un qualificatore. AWS Lambda utilizza il $LATEST qualificatore per la versione più recente.

  7. Per Trigger type (Tipo di trigger) scegli una o entrambe le opzioni seguenti:

    • Modifiche alla configurazione: AWS Config richiama la funzione Lambda quando rileva una modifica alla configurazione.

    • Periodico: AWS Config richiama la funzione Lambda alla frequenza scelta (ad esempio, ogni 24 ore).

  8. Se i tipi di trigger per la tua regola includono modifiche alla configurazione, specifica una delle seguenti opzioni per Ambito delle modifiche con cui AWS Config richiama la tua funzione Lambda:

    • Tutte le modifiche: quando una risorsa registrata da AWS Config viene creata, modificata o eliminata.

    • Risorse: quando viene creata, modificata o eliminata una risorsa che corrisponde al tipo o al tipo più identificatore specificato.

    • Tag: quando viene creata, modificata o eliminata una risorsa con il tag specificato

  9. Se i tipi di trigger per la tua regola includono Periodic, specifica la Frequenza con cui AWS Config richiama la funzione Lambda.

  10. Nella sezione Parametri, specifica tutti i parametri della regola valutati dalla AWS Lambda funzione e il valore desiderato.

  11. Seleziona Successivo. Nella pagina Verifica e crea, verifica i dettagli della regola e seleziona Aggiungi funzione regola. La nuova regola viene visualizzata nella pagina Regole.

    Verrà visualizzato Conformità in corso di valutazione... fino a quando non AWS Config riceve i risultati della valutazione dalla tua AWS Lambda funzione. Se la regola e la funzione funzionano come previsto, viene visualizzato un riepilogo dei risultati dopo alcuni minuti. È possibile aggiornare i risultati con il pulsante di aggiornamento.

    Se la regola o la funzione non funziona correttamente, è possibile visualizzare uno dei risultati seguenti per Compliance (Conformità):

    • Nessun risultato riportato: hai AWS Config valutato le tue risorse rispetto alla regola. L'ambito della regola non si applica alle risorse AWS , le risorse specificate sono state eliminate oppure sono stati eliminati i risultati della valutazione. Per ottenere i risultati della valutazione, aggiorna la regola, modifica l'ambito o seleziona Re-evaluate (Valuta di nuovo).

      Questo messaggio potrebbe essere visualizzato anche nel caso in cui non vengano segnalati risultati di valutazione per la regola.

    • Nessuna risorsa inclusa: AWS Config non è possibile valutare le AWS risorse registrate in base a questa regola perché nessuna delle risorse rientra nell'ambito della regola. Puoi scegliere quali risorse AWS Config registra nella pagina Settings (Impostazioni).

    • Evaluations failed (Valutazioni non riuscite) Per le informazioni che possono aiutare a determinare il problema, scegli il nome della regola per aprire la relativa pagina dei dettagli e visualizzare il messaggio di errore.

Nota

Quando crei una regola Lambda personalizzata con la AWS Config console, vengono create automaticamente le autorizzazioni appropriate. Se crei una regola Lambda personalizzata con AWS CLI, devi dare il AWS Config permesso di richiamare la funzione Lambda utilizzando il comando. aws lambda add-permission Per ulteriori informazioni, consulta Using Resource-Based Policies for ( AWS Lambda Lambda Function Policies) nella Developer Guide.AWS Lambda

Prima di concedere AWS Config il permesso di richiamare la funzione Lambda, consulta la sezione seguente. Best practice di sicurezza per la policy AWS Lambda basata sulle risorse

Best practice di sicurezza per la policy AWS Lambda basata sulle risorse

Come best practice di sicurezza, per evitare di concedere l'autorizzazione di richiamata all'intero nome del principale del servizio (SPN) per chiamare la funzione Lambda, è fortemente consigliato limitare l'accesso nella policy Lambda basata sulle risorse inserendo sourceARN e/o sourceAccountId nella richiesta di richiamata.

sourceARNÈ l'ARN della AWS Config regola che richiama la funzione Lambda.

sourceAccountId è l'ID dell'account dell'utente che ha creato la regola.

La limitazione dell'accesso nella policy basata sulle risorse di Lambda aiuta a garantire che l'accesso alle risorse AWS Lambda avvenga solo per conto degli utenti e degli scenari previsti.

Per aggiungere l'autorizzazione basata sull'SPN, è necessario utilizzare la seguente interfaccia a riga di comando

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com

Per aggiungere autorizzazioni basate SourceAccountId

Prima di creare la regola, puoi aggiungere l'autorizzazione basata su sourceAccountId alla policy basata sulle risorse con la seguente interfaccia a riga di comando

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com --source-account your account ID

Per aggiungere entrambe le autorizzazioni SourceArn e quelle SourceAccountId basate

Dopo aver creato la regola, puoi aggiungere l'autorizzazione basata su sourceARN alla policy basata sulle risorse con la seguente interfaccia a riga di comando. Ciò consente solo a un ARN specifico della regola di richiamare la funzione Lambda.

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com --source-account your account ID --source-arn ARN of the created config rule

Valutazione tipi di risorse aggiuntive

È possibile creare regole Lambda personalizzate per eseguire valutazioni per tipi di risorse non ancora registrati da. AWS Config Ciò è utile se desideri valutare la conformità di altri tipi di risorse che attualmente AWS Config non vengono registrati. Per un elenco degli ulteriori tipi di risorse che è possibile valutare con le regole Lambda personalizzate, consulta Informazioni di riferimento dei tipi di risorse AWS.

Nota

Quando si crea una Lambda personalizzata per un tipo di risorsa non registrato da AWS Config, la regola deve avere il tipo di trigger periodico. Il tipo di trigger per le modifiche alla configurazione non è supportato. Per ulteriori informazioni, consulta Modalità di valutazione e tipi di trigger per AWS Config le regole.

Esempio
  1. Desideri valutare i vault Amazon S3 Glacier nell'account. Le risorse del vault Amazon S3 Glacier non sono attualmente registrate da AWS Config.

  2. Crei una AWS Lambda funzione che valuta se i tuoi vault di Amazon S3 Glacier soddisfano i requisiti del tuo account.

  3. Crei una regola Lambda personalizzata denominata evaluate-glacier-vaultse quindi assegni la tua AWS Lambda funzione alla regola.

  4. AWS Config richiama la tua funzione Lambda e quindi valuta i vault di Amazon S3 Glacier rispetto alla tua regola.

  5. AWS Config restituisce le valutazioni e puoi visualizzare i risultati di conformità della tua regola.

Nota

È possibile visualizzare i dettagli di configurazione nella AWS Config sequenza temporale e cercare risorse nella AWS Config console per individuare le risorse che AWS Config supportano. Se hai configurato AWS Config la registrazione di tutti i tipi di risorse, le nuove risorse supportate verranno registrate automaticamente. Per ulteriori informazioni, consulta Tipi di risorsa supportati.