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, prima crei unaAWS Lambdafunzione, che contiene la logica di valutazione della regola. Quindi, puoi associare la funzione a una regola Lambda personalizzata che crei inAWS Config.

Importante

Come best practice per la sicurezza quando lo consenteAWS Configautorizzazione per richiamare la funzione Lambda, si consiglia vivamente di limitare l'accesso alla politica basata sulle risorse per Lambda consourceARNe/osourceAccountIdnella richiesta di invocazione. Per ulteriori informazioni, consulta la pagina Best practice relative alla sicurezza diAWS LambdaPolicy basata sulle risorse .

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

UNLambda function (Funzione Lambda)è un codice personalizzato su cui carichiAWS Lambda, ed è invocato da eventi che gli vengono pubblicati da una fonte di eventi. Se la funzione Lambda è associata a una regola di Config,AWS Configlo richiama quando si verifica il trigger della regola. La funzione Lambda valuta quindi le informazioni di configurazione inviate daAWS Confige restituisce i risultati della valutazione. Per ulteriori informazioni sulle funzioni Lambda, consultaFonti di funzioni ed eventinellaAWS LambdaGuida per gli sviluppatori.

È possibile utilizzare un linguaggio di programmazione supportato daAWS Lambdaper creare una funzione Lambda per una regola Lambda personalizzata. Per semplificare questa operazione, è possibile personalizzare unAWS Lambdablueprint o riutilizza una funzione di esempio dalAWS ConfigRegolamento GitHub repository.

Piani AWS Lambda

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

  • config-rule-change-triggered— Attivato quandoAWSle configurazioni delle risorse cambiano.

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

AWS ConfigRegolamento GitHub magazzino

È disponibile un repository pubblico di funzioni di esempio per regole Lambda personalizzate su GitHub, un servizio di code hosting e condivisione basato sul web. Le funzioni di esempio sono sviluppate e condivise dalla community AWS. Se desideri utilizzare un esempio, puoi copiare il codice in una nuova funzione AWS Lambda. Per visualizzare il repository, consulta https://github.com/awslabs/aws-config-rules/.

Per creare la funzione per la regola personalizzata

  1. Accedere alla AWS Management Console e aprire la console di AWS Lambda all'indirizzo https://console.aws.amazon.com/lambda/.

  2. Verifica che nel menu AWS Management Console lo strumento di selezione della regione sia impostato su una regione che supporti le regole AWS Config. Per l'elenco delle regioni supportate, consultaAWS ConfigRegioni ed endpointnellaInformazioni generali di Amazon Web Services.

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

  4. SulUsa un pianopage, puoi scegliere una delle funzioni del piano perAWS ConfigRegole come punto di partenza, oppure puoi procedere senza un piano scegliendoSkip.

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

  6. SulInformazioni di basepagina, digita un nome e la 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 stai usando un piano, 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 è in grado di valutare i dati di eventi che AWS Config fornisce quando richiama la funzione:

    • Per le funzioni basate sul piano config-rule-change-triggered o per le funzioni attivate da modifiche di configurazione, i dati di evento corrispondono all'elemento di configurazione o all'oggetto dell'elemento di configurazione di dimensioni eccessive per la risorsa AWS che è stata modificata.

    • Per le funzioni basate sul piano config-rule-periodic o per le funzioni attivate con una frequenza da te decisa, i dati di evento corrispondono a un oggetto JSON che include informazioni su quando la valutazione è stata attivata.

    • Per entrambi i tipi di funzioni, AWS Config trasferisce i parametri della regola in formato JSON. È possibile definire quali parametri di regola vengono trasferiti quando si crea la regola Lambda personalizzata inAWS Config.

    • Per gli eventi di esempio che AWS Config pubblica quando richiama la funzione, consulta Esempio eventi per le regole AWS Config.

  10. PerRuolo di esecuzione, scegliCrea un nuovo ruolo daAWSPolicy templates (Modelli di policy).

  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 e scegliCrea funzione.

Creazione di una regola personalizzata in AWS Config

UtilizzaAWS Configper creare una regola Lambda personalizzata e associare la regola a una funzione Lambda.

Per creare una regola personalizzata

  1. Aprire la console AWS Config all'indirizzo https://console.aws.amazon.com/config/.

  2. NellaAWS Management Consoleverifica che il selettore della regione sia impostato sulla stessa regione in cui è stato creatoAWS Lambdafunzione per la tua regola Lambda personalizzata.

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

  4. SulSpecifica il tipo di regolapagina, scegliereCrea 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. Puoi specificare un ARN senza un qualificatore della versione o con qualsiasi altro qualificatore $LATEST. AWS Lambda supporta la funzione Versioni multiple e a ciascuna versione viene assegnato un ARN con un qualificatore. AWS Lambda usa il qualificatore $LATEST per la versione più recente.

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

    • Modifiche di configurazione–AWS Configrichiama la funzione Lambda quando rileva una modifica della configurazione.

    • Periodic (Periodico)–AWS Configrichiama la funzione Lambda alla frequenza scelta dall'utente (ad esempio, ogni 24 ore).

  8. Se i tipi di trigger per la regola includonoModifiche di configurazione, specificare una delle seguenti opzioni perAmbito delle modifichecon cuiAWS Configrichiama la funzione Lambda:

    • Tutte le modifiche— Quando una risorsa registrata daAWS Configviene creato, modificato o eliminato.

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

    • Tag— Quando viene creata, modificata o eliminata una risorsa con il tag specificato

  9. Se i tipi di trigger per la regola includonoPeriodic (Periodico), specificare ilFrequency (Frequenza)con cuiAWS Configrichiama la funzione Lambda.

  10. NellaParametrisezione, specificare tutti i parametri di regola che il tuoAWS Lambdavaluta funzione e il valore desiderato.

  11. Seleziona Successivo. SulRivedi e crea, verifica i dettagli della regola e selezionaAggiunta di funzione. La nuova regola viene visualizzata sulRegolamento(Certificato creato).

    Compliance (Conformità) mostrerà Evaluating... (Valutazione in corso...) finché AWS Config non riceve i risultati di valutazione dalla funzione AWS Lambda. 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à):

    • No results reported (Nessun risultato segnalato) – AWS Config le risorse sono state valutate 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.

    • No resources in scope (Nessuna risorsa nell'ambito) – AWS Config non riesce a valutare le risorse AWS registrate rispetto 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 ilAWS Configconsole, le autorizzazioni appropriate vengono create automaticamente per te. Se crei una regola Lambda personalizzata con ilAWS CLI, devi dareAWS Configl'autorizzazione a richiamare la funzione Lambda, utilizzandoaws lambda add-permissioncomando. Per ulteriori informazioni, consultaUtilizzo delle policy basate su risorse perAWS Lambda(Criteri delle funzioni Lambda)nellaAWS LambdaGuida per gli sviluppatori.

Prima di dareAWS ConfigPer invocare la funzione Lambda, consulta la sezione seguenteBest practice relative alla sicurezza diAWS LambdaPolicy basata sulle risorse.

Best practice relative alla sicurezza diAWS LambdaPolicy basata sulle risorse

Come best practice per la sicurezza, per evitare di concedere l'autorizzazione di richiamo per l'intero nome dell'entità del servizio (SPN) per chiamare la funzione Lambda, si consiglia vivamente di limitare l'accesso alla politica basata sulle risorse Lambda consourceARNe/osourceAccountIdnella richiesta di invocazione.

LasourceARNè l'ARN diAWS Configregola che richiama la funzione Lambda.

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

Limitare l'accesso alla politica basata sulle risorse Lambda aiuta a garantireAWS Lambdasta accedendo alle tue risorse solo per conto degli utenti e degli scenari attesi.

Per aggiungere l'autorizzazione basata su SPN, è necessario utilizzare la seguente CLI:

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

Per aggiungere SourceAccountId autorizzazione basata

Prima di creare la regola, è possibile aggiungeresourceAccountIdautorizzazioni basate su criteri basati 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 entrambi SourceArn e SourceAccountId autorizzazione basata

Dopo aver creato la regola, è possibile aggiungeresourceARNautorizzazioni basate su policy basate sulle risorse con la seguente interfaccia a riga di comando. Ciò consente a solo una regola specifica dell'ARN 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

Puoi creare regole Lambda personalizzate per eseguire valutazioni per i tipi di risorse non ancora registrati daAWS Config. Questa funzione è utile se si desidera valutare la conformità per tipi di risorse aggiuntiveAWS Configal momento non registra. Per un elenco dei tipi di risorse aggiuntive che è possibile valutare con le regole Lambda personalizzate, vedereAWSInformazioni di riferimento dei tipi di risorse.

Nota

L'elenco nellaAWS CloudFormationLa Guida per l'utente potrebbe contenere i tipi di risorse recentemente aggiunti non ancora disponibili per la creazione di regole Lambda personalizzate inAWS Config.AWS Configaggiunge il supporto dei tipi di risorse a intervalli regolari.

Esempio

  1. Desideri valutare gli archivi Amazon S3 Glacier nel tuo account. Le risorse vault di Amazon S3 Glacier non sono attualmente registrate daAWS Config.

  2. Crei unAWS Lambdafunzione che valuta se il vault Amazon S3 Glacier soddisfa i requisiti del tuo account.

  3. È possibile creare una regola Lambda personalizzata denominatavalutare-glacier-vaultse poi assegna il tuoAWS Lambdafunzione alla regola.

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

  5. AWS Config restituisce le valutazioni ed è possibile visualizzare i risultati di conformità per la regola.

Nota

Puoi visualizzare i dettagli della configurazione della timeline AWS Config e cercare le risorse nella console AWS Config per le risorse che AWS Config supporta. Se hai configurato AWS Config per registrare tutti i tipi di risorse, le risorse recentemente supportate verranno visualizzate automaticamente. Per ulteriori informazioni, consultare Tipi di risorsa supportati.