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à.
Definizione delle autorizzazioni della funzione Lambda con un ruolo di esecuzione
Il ruolo di esecuzione di una funzione Lambda è un ruolo AWS Identity and Access Management (IAM) che concede alla funzione il permesso di accedere a AWS servizi e risorse. Ad esempio, potresti creare un ruolo di esecuzione con l'autorizzazione a inviare log ad Amazon CloudWatch e caricare AWS X-Ray dati di traccia su. Questa pagina fornisce informazioni su come creare, visualizzare e gestire il ruolo di esecuzione di una funzione Lambda.
Lambda assume automaticamente il tuo ruolo di esecuzione quando richiami la tua funzione. Dovresti evitare di chiamare manualmente sts:AssumeRole
per assumere il ruolo di esecuzione nel codice della funzione. Se il tuo caso d'uso richiede che il ruolo venga assunto autonomamente, dovrai includere il ruolo stesso come principale attendibile nella policy di attendibilità del ruolo. Per ulteriori informazioni su come modificare una politica di fiducia dei ruoli, vedere Modifica di una politica di fiducia dei ruoli (console) nella Guida per l'IAMutente.
Affinché Lambda assuma correttamente il tuo ruolo di esecuzione, la policy di fiducia del ruolo deve specificare il servizio Lambda principal (lambda.amazonaws.com
) come servizio affidabile.
Argomenti
- Creazione di un ruolo di esecuzione nella console IAM
- Creazione e gestione di ruoli con AWS CLI
- Garantisci l'accesso minimo ai privilegi per il tuo ruolo di esecuzione Lambda
- Visualizzazione e aggiornamento delle autorizzazioni nel ruolo di esecuzione
- Utilizzo delle politiche AWS gestite nel ruolo di esecuzione
- Utilizzo della funzione di origine ARN per controllare il comportamento di accesso alla funzione
Creazione di un ruolo di esecuzione nella console IAM
Per impostazione predefinita, Lambda crea un ruolo di esecuzione con autorizzazioni minime quando si crea una funzione nella console Lambda. In particolare, questo ruolo di esecuzione include la policy AWSLambdaBasicExecutionRole
gestita, che fornisce alla tua funzione le autorizzazioni di base per registrare gli eventi su Amazon CloudWatch Logs.
Le tue funzioni in genere richiedono autorizzazioni aggiuntive per eseguire attività più significative. Ad esempio, potresti avere una funzione Lambda che risponde a un evento aggiornando le voci in un database Amazon DynamoDB. Puoi creare un ruolo di esecuzione con le autorizzazioni necessarie utilizzando la console. IAM
Per creare un ruolo di esecuzione nella console IAM
-
Apri la pagina Ruoli
nella IAM console. -
Scegliere Crea ruolo.
-
In Tipo di entità attendibile, scegli Servizio AWS .
-
In Use case (Caso d'uso), scegli Lambda.
-
Scegli Next (Successivo).
-
Seleziona le politiche AWS gestite che desideri associare al tuo ruolo. Ad esempio, se la tua funzione deve accedere a DynamoDB, seleziona AWSLambdaDynamoDBExecutionRolela policy gestita.
-
Scegli Next (Successivo).
-
Immettere un Role name (Nome ruolo), quindi selezionare Create role (Crea ruolo).
Per istruzioni dettagliate, consulta Creazione di un ruolo per un AWS servizio (console) nella Guida per l'IAMutente.
Dopo aver creato il ruolo di esecuzione, associalo alla funzione. Quando crei una funzione nella console Lambda, puoi allegare qualsiasi ruolo di esecuzione creato in precedenza alla funzione. Se desideri associare un nuovo ruolo di esecuzione a una funzione esistente, segui i passaggi indicati inAggiornamento del ruolo di esecuzione di una funzione.
Creazione e gestione di ruoli con AWS CLI
Per creare un ruolo di esecuzione con AWS Command Line Interface (AWS CLI), utilizzate il create-role comando. Quando utilizzi questo comando, puoi specificare la policy di attendibilità in linea. La policy di attendibilità di un ruolo garantisce ai principali specificati l'autorizzazione per assumere tale ruolo. Nell'esempio seguente concedi al principale del servizio Lambda l'autorizzazione per assumere il ruolo. Nota che i requisiti per l'escape tra virgolette nella JSON stringa possono variare a seconda della shell in uso.
aws iam create-role \ --role-name lambda-ex \ --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}'
È inoltre possibile definire la politica di attendibilità per il ruolo utilizzando un JSON file separato. Nell'esempio seguente, trust-policy.json
è un file che si trova nella directory attuale.
Esempio trust-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
aws iam create-role \ --role-name lambda-ex \ --assume-role-policy-document file://trust-policy.json
Verrà visualizzato l'output seguente:
{ "Role": { "Path": "/", "RoleName": "lambda-ex", "RoleId": "AROAQFOXMPL6TZ6ITKWND", "Arn": "arn:aws:iam::123456789012:role/lambda-ex", "CreateDate": "2020-01-17T23:19:12Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }
Utilizza il comando attach-policy-to-role per aggiungere le autorizzazioni al ruolo. Il comando seguente aggiunge la politica AWSLambdaBasicExecutionRole
gestita al ruolo di lambda-ex
esecuzione.
aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Dopo aver creato il ruolo di esecuzione, associalo alla funzione. Quando crei una funzione nella console Lambda, puoi allegare qualsiasi ruolo di esecuzione creato in precedenza alla funzione. Se desideri associare un nuovo ruolo di esecuzione a una funzione esistente, segui i passaggi indicati inAggiornamento del ruolo di esecuzione di una funzione.
Garantisci l'accesso minimo ai privilegi per il tuo ruolo di esecuzione Lambda
Quando crei per la prima volta un IAM ruolo per la tua funzione Lambda durante la fase di sviluppo, a volte potresti concedere autorizzazioni oltre a quelle richieste. Prima di pubblicare la funzione nell'ambiente di produzione, una best practice consiste nel modificare la policy in modo da includere solo le autorizzazioni richieste. Per ulteriori informazioni, consulta Applica le autorizzazioni con privilegi minimi nella Guida per l'utente. IAM
Usa IAM Access Analyzer per identificare le autorizzazioni richieste per la politica del ruolo di esecuzione. IAM IAMAccess Analyzer esamina AWS CloudTrail i log nell'intervallo di date specificato e genera un modello di policy con solo le autorizzazioni utilizzate dalla funzione in quel periodo. È possibile utilizzare il modello per creare una policy gestita con autorizzazioni dettagliate e quindi collegarla al ruolo. IAM In questo modo, concedi solo le autorizzazioni necessarie al ruolo per interagire con le AWS risorse per il tuo caso d'uso specifico.
Per ulteriori informazioni, consulta Generare politiche basate sull'attività di accesso nella Guida per l'IAMutente.