

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

# Utilizzo delle variabili di ambiente Lambda
<a name="configuration-envvars"></a>

È possibile utilizzare le variabili di ambiente per regolare il comportamento della funzione senza aggiornare il codice. Una variabile di ambiente è una coppia di stringhe archiviata nella configurazione specifica della versione di una funzione. Il runtime Lambda rende le variabili di ambiente disponibili per il codice e imposta variabili di ambiente aggiuntive che contengono informazioni sulla richiesta di funzione e invocazione.

**Nota**  
Per aumentare la sicurezza, consigliamo di utilizzare Gestione dei segreti AWS al posto delle variabili di ambiente per archiviare le credenziali del database e altre informazioni sensibili come chiavi API o token di autorizzazione. Per ulteriori informazioni, consulta [Uso dei segreti in Secrets Manager nelle funzioni Lambda](with-secrets-manager.md).

Le variabili di ambiente non vengono valutate prima dell'invocazione della funzione. Qualsiasi valore definito è considerato una stringa letterale e non espanso. Eseguire la valutazione della variabile nel codice funzione.

## Creazione delle variabili di ambiente Lambda
<a name="create-environment-variables"></a>

Puoi configurare le variabili di ambiente in Lambda utilizzando la console Lambda, (), AWS Command Line Interface (AWS CLI) o utilizzando un AWS SAM SDK. AWS Serverless Application Model AWS 

------
#### [ Console ]

Puoi definire le variabili di ambiente sulla versione non pubblicata della funzione. Quando pubblichi una versione, le variabili di ambiente sono bloccate per quella versione insieme ad altre [impostazioni di configurazioni specifiche della versione](configuration-versions.md).

È possibile creare una variabile di ambiente per la funzione definendo una chiave e un valore. La funzione utilizza il nome della chiave per recuperare il valore della variabile di ambiente.

**Per impostare le variabili di ambiente nella console Lambda**

1. Aprire la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda.

1. Scegliere una funzione.

1. Scegli **Configurazione**, quindi scegli **Variabili di ambiente**.

1. In **Environment variables (Variabili di ambiente)**, scegliere **Edit (Modifica)**.

1. Scegli **Add environment variable (Aggiungi variabile d'ambiente)**.

1. Inserisci una coppia chiave valore.

**Requisiti**
   + Le chiavi iniziano con una lettera e sono di almeno due caratteri.
   + Le chiavi contengono solo lettere, numeri e il carattere di sottolineatura (`_`).
   + Le chiavi non sono [riservate da Lambda](#configuration-envvars-runtime).
   + La dimensione totale di tutte le variabili di ambiente non supera i 4 KB.

1. Scegli **Save** (Salva).

**Generazione di un elenco di variabili di ambiente nell'editor di codice della console**

Puoi generare un elenco di variabili di ambiente nell'editor di codice Lambda. È un modo rapido per fare riferimento alle variabili di ambiente durante la scrittura del codice.

1. Scegli la scheda **Codice**.

1. Scorri verso il basso fino alla sezione **VARIABILI DI AMBIENTE** dell'editor di codice. Le variabili di ambiente esistenti sono elencate qui:  
![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/env-var.png)

1. Per creare nuove variabili di ambiente, scegli il segno più (![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/add-plus.png)):  
![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/create-env-var.png)

Le variabili di ambiente rimangono crittografate quando sono elencate nell'editor di codice della console. Se hai abilitato gli helper di crittografia per la crittografia in transito, tali impostazioni rimangono invariate. Per ulteriori informazioni, consulta [Protezione delle variabili di ambiente Lambda](configuration-envvars-encryption.md).

L'elenco delle variabili di ambiente è di sola lettura ed è disponibile solo nella console Lambda. Questo file non è incluso quando scarichi l'archivio di file .zip della funzione e non è possibile aggiungere variabili di ambiente caricando questo file.

------
#### [ AWS CLI ]

L'esempio seguente imposta due variabili di ambiente in una funzione denominata `my-function`.

```
aws lambda update-function-configuration \
  --function-name my-function \
  --environment "Variables={BUCKET=amzn-s3-demo-bucket,KEY=file.txt}"
```

Quando applichi le variabili di ambiente con il comando `update-function-configuration`, viene sostituito l'intero contenuto della struttura `Variables`. Per mantenere le variabili di ambiente esistenti quando ne aggiungi una nuova, includi tutti i valori esistenti nella richiesta.

Per ottenere la configurazione corrente, utilizza il comando `get-function-configuration`.

```
aws lambda get-function-configuration \
  --function-name my-function
```

Verrà visualizzato l’output seguente:

```
{
    "FunctionName": "my-function",
    "FunctionArn": "arn:aws:lambda:us-east-2:111122223333:function:my-function",
    "Runtime": "nodejs24.x",
    "Role": "arn:aws:iam::111122223333:role/lambda-role",
    "Environment": {
        "Variables": {
            "BUCKET": "amzn-s3-demo-bucket",
            "KEY": "file.txt"
        }
    },
    "RevisionId": "0894d3c1-2a3d-4d48-bf7f-abade99f3c15",
    ...
}
```

È possibile passare l'ID di revisione dall'output di `get-function-configuration` come parametro a `update-function-configuration`. Ciò garantisce che i valori non cambino da quando leggi la configurazione a quando la aggiorni.

Per configurare la chiave di crittografia di una funzione, imposta l'opzione `KMSKeyARN`.

```
aws lambda update-function-configuration \
  --function-name my-function \
  --kms-key-arn arn:aws:kms:us-east-2:111122223333:key/055efbb4-xmpl-4336-ba9c-538c7d31f599
```

------
#### [ AWS SAM ]

Per configurare le variabili di ambiente per la tua funzione, puoi utilizzare [AWS Serverless Application Model](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/serverless-getting-started.html ). Aggiorna le proprietà [Environment](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-environment) e [Variables](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html#cfn-lambda-function-environment-variables) nel tuo file `template.yaml`, quindi esegui [sam deploy.](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html)

**Example template.yaml**  

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: An AWS Serverless Application Model template describing your function.
Resources:
  my-function:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: .
      Description: ''
      MemorySize: 128
      Timeout: 120
      Handler: index.handler
      Runtime: nodejs24.x
      Architectures:
        - x86_64
      EphemeralStorage:
        Size: 10240
      Environment:
        Variables:
          BUCKET: amzn-s3-demo-bucket
          KEY: file.txt
      # Other function properties...
```

------
#### [ AWS SDKs ]

Per gestire le variabili di ambiente utilizzando un AWS SDK, utilizzate le seguenti operazioni API.
+ [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)
+ [GetFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html)
+ [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)

Per ulteriori informazioni, consulta la [documentazione dell'SDK AWS](https://aws.amazon.com/developer/tools/) relativa al linguaggio di programmazione preferito.

------

## Scenario di esempio per le variabili di ambiente
<a name="configuration-envvars-example"></a>

È possibile utilizzare le variabili di ambiente per personalizzare il comportamento delle funzioni nell'ambiente di test e nell'ambiente di produzione. Ad esempio, puoi creare due funzioni con stesso codice ma configurazione diversa. Una funzione si connette a un database di test e l'altra a un database di produzione. In questo caso, puoi utilizzare le variabili di ambiente per passare alla funzione il nome host e altri dettagli di connessione per il database. 

Nell'esempio seguente viene illustrato come definire l'host del database e il nome del database come variabili di ambiente.

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/console-env.png)


Se si desidera che l'ambiente di test generi più informazioni di debug rispetto all'ambiente di produzione, è possibile impostare una variabile di ambiente per configurare l'ambiente di test in modo da utilizzare una registrazione più dettagliata o una traccia più dettagliata.

Ad esempio, nell'ambiente di test, è possibile impostare una variabile di ambiente con la chiave `LOG_LEVEL` e un valore che indica un livello di log di debug o trace. Nel codice della funzione Lambda, puoi quindi utilizzare questa variabile di ambiente per impostare il livello di log.

I seguenti esempi di codice in Python e Node.js illustrano come è possibile raggiungere questo obiettivo. Questi esempi presuppongono che la variabile di ambiente abbia un valore `DEBUG` in Python o `debug` in Node.js.

------
#### [ Python ]

**Example Codice Python per impostare il livello di log**  

```
import os
import logging

# Initialize the logger
logger = logging.getLogger()

# Get the log level from the environment variable and default to INFO if not set
log_level = os.environ.get('LOG_LEVEL', 'INFO')

# Set the log level
logger.setLevel(log_level)

def lambda_handler(event, context):
    # Produce some example log outputs
    logger.debug('This is a log with detailed debug information - shown only in test environment')
    logger.info('This is a log with standard information - shown in production and test environments')
```

------
#### [ Node.js (ES module format) ]

**Example Codice Node.js per impostare il livello di log**  
Questo esempio utilizza la libreria di registrazione `winston`. Usa npm per aggiungere questa libreria al pacchetto di implementazione della funzione. Per ulteriori informazioni, consulta [Creazione di un pacchetto di implementazione .zip con dipendenze](nodejs-package.md#nodejs-package-create-dependencies).  

```
import winston from 'winston';

// Initialize the logger using the log level from environment variables, defaulting to INFO if not set
const logger = winston.createLogger({
   level: process.env.LOG_LEVEL || 'info',
   format: winston.format.json(),
   transports: [new winston.transports.Console()]
});

export const handler = async (event) => {
   // Produce some example log outputs
   logger.debug('This is a log with detailed debug information - shown only in test environment');
   logger.info('This is a log with standard information - shown in production and test environment');
   
};
```

------

## Recupero delle variabili di ambiente Lambda
<a name="retrieve-environment-variables"></a>

Per recuperare le variabili di ambiente nel codice della funzione, utilizza il metodo standard per il linguaggio di programmazione.

------
#### [ Node.js ]

```
let region = process.env.AWS_REGION
```

------
#### [ Python ]

```
import os
  region = os.environ['AWS_REGION']
```

**Nota**  
In alcuni casi, potrebbe essere necessario utilizzare il seguente formato:  

```
region = os.environ.get('AWS_REGION')
```

------
#### [ Ruby ]

```
region = ENV["AWS_REGION"]
```

------
#### [ Java ]

```
String region = System.getenv("AWS_REGION");
```

------
#### [ Go ]

```
var region = os.Getenv("AWS_REGION")
```

------
#### [ C\$1 ]

```
string region = Environment.GetEnvironmentVariable("AWS_REGION");
```

------
#### [ PowerShell ]

```
$region = $env:AWS_REGION
```

------

Lambda memorizza le variabili di ambiente in modo sicuro crittografandole quando inattive. Puoi [configurare Lambda per utilizzare una chiave di crittografia diversa](configuration-envvars-encryption.md), crittografare i valori delle variabili di ambiente sul lato client o impostare le variabili di ambiente in un CloudFormation modello con. Gestione dei segreti AWS

## Variabili di ambiente di runtime definite
<a name="configuration-envvars-runtime"></a>

I [tempi di esecuzione](lambda-runtimes.md) Lambda impostano diverse variabili di ambiente durante l'inizializzazione. La maggior parte delle variabili di ambiente fornisce informazioni sulla funzione o sul runtime. Le chiavi per queste variabili di ambiente sono *riservate* e non possono essere impostate nella configurazione della funzione.

**Variabili d'ambiente riservate**
+ `_HANDLER`: la posizione del gestore configurata nella funzione.
+ `_X_AMZN_TRACE_ID`: l'[intestazione di traccia X-Ray](services-xray.md). Questa variabile di ambiente cambia a ogni invocazione.
  + Questa variabile di ambiente non è definita per i runtime solo per il sistema operativo (la famiglia di runtime `provided`). Puoi impostare `_X_AMZN_TRACE_ID` per runtime personalizzati utilizzando l'intestazione di risposta `Lambda-Runtime-Trace-Id` dal [Chiamata successiva](runtimes-api.md#runtimes-api-next).
  + Per le versioni di runtime Java 17 e successive, questa variabile di ambiente non viene utilizzata. Lambda archivia invece le informazioni di tracciamento nella proprietà di sistema `com.amazonaws.xray.traceHeader`.
+ `AWS_DEFAULT_REGION`— L'impostazione predefinita Regione AWS in cui viene eseguita la funzione Lambda.
+ `AWS_REGION`— Il Regione AWS luogo in cui viene eseguita la funzione Lambda. Se immesso, questo valore sovrascrive `AWS_DEFAULT_REGION`.
  + Per ulteriori informazioni sull'utilizzo delle variabili di Regione AWS ambiente con AWS SDKs, vedete [AWS Region nella AWS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html#feature-region-sdk-compat) *SDKs and Tools Reference Guide*.
+ `AWS_EXECUTION_ENV`: l'[identificatore di runtime](lambda-runtimes.md), preceduto da `AWS_Lambda_`, ad esempio `AWS_Lambda_java8`. Questa variabile di ambiente non è definita per i runtime solo per il sistema operativo (la famiglia di runtime `provided`).
+ `AWS_LAMBDA_FUNCTION_NAME`: il nome della funzione.
+ `AWS_LAMBDA_FUNCTION_MEMORY_SIZE`: la quantità di memoria disponibile per la funzione in MB.
+ `AWS_LAMBDA_FUNCTION_VERSION`: la versione della funzione in esecuzione.
+ `AWS_LAMBDA_INITIALIZATION_TYPE`— Il tipo di inizializzazione della funzione, che è`on-demand`, `provisioned-concurrency``snap-start`, o`lambda-managed-instances`. Per informazioni, vedere [Configurazione della concorrenza fornita, o](provisioned-concurrency.md). [Migliorare le prestazioni di avvio con Lambda SnapStart](snapstart.md) [Istanze Lambda gestite](lambda-managed-instances.md)
+ `AWS_LAMBDA_LOG_GROUP_NAME`, `AWS_LAMBDA_LOG_STREAM_NAME` — Il nome del gruppo e dello stream Amazon CloudWatch Logs per la funzione. Le [variabili di `AWS_LAMBDA_LOG_STREAM_NAME` ambiente `AWS_LAMBDA_LOG_GROUP_NAME`](#configuration-envvars-runtime) e non sono disponibili nelle funzioni Lambda SnapStart .
+ `AWS_ACCESS_KEY`, `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN`: le chiavi di accesso ottenute dal [ruolo di esecuzione](lambda-intro-execution-role.md) della funzione.
+ `AWS_LAMBDA_RUNTIME_API`: ([Runtime personalizzato](runtimes-custom.md)) L'host e la porta dell'[API di runtime](runtimes-api.md).
+ `LAMBDA_TASK_ROOT`: il percorso del codice della funzione Lambda.
+ `LAMBDA_RUNTIME_DIR`: il percorso delle librerie di runtime.
+ `AWS_LAMBDA_MAX_CONCURRENCY`— (Solo istanze gestite Lambda) Il numero massimo di chiamate simultanee che Lambda invierà a un ambiente di esecuzione.
+ `AWS_LAMBDA_METADATA_API`— L'indirizzo del server [endpoint dei metadati](configuration-metadata-endpoint.md) nel formato (ad esempio,). `{ipv4_address}:{port}` `169.254.100.1:9001`
+ `AWS_LAMBDA_METADATA_TOKEN`[— Un token di autenticazione unico per l'ambiente di esecuzione corrente utilizzato per autenticare le richieste all'endpoint di metadati.](configuration-metadata-endpoint.md) Lambda genera questo token automaticamente al momento dell'inizializzazione.

Le seguenti variabili di ambiente aggiuntive non sono riservate e possono essere estese nella configurazione della funzione.

**Variabili d'ambiente non riservate**
+ `LANG` – Le impostazioni locali del runtime (`en_US.UTF-8`).
+ `PATH`: il percorso di esecuzione (`/usr/local/bin:/usr/bin/:/bin:/opt/bin`).
+ `LD_LIBRARY_PATH`: il percorso della libreria di sistema (`/var/lang/lib:/lib64:/usr/lib64:$LAMBDA_RUNTIME_DIR:$LAMBDA_RUNTIME_DIR/lib:$LAMBDA_TASK_ROOT:$LAMBDA_TASK_ROOT/lib:/opt/lib`).
+ `NODE_PATH` – ([Node.js](lambda-nodejs.md)) Il percorso della libreria Node.js (`/opt/nodejs/node12/node_modules/:/opt/nodejs/node_modules:$LAMBDA_RUNTIME_DIR/node_modules`).
+ `NODE_OPTIONS`: ([Node.js](lambda-nodejs.md)) per i runtime Node.js, puoi utilizzare `NODE_OPTIONS` per riattivare le funzionalità sperimentali che Lambda disabilita per impostazione predefinita.
+ `PYTHONPATH`: ([Python](lambda-python.md)) il percorso della libreria Python (`$LAMBDA_RUNTIME_DIR`).
+ `GEM_PATH` – ([Ruby](lambda-ruby.md)) Il percorso della libreria Ruby (`$LAMBDA_TASK_ROOT/vendor/bundle/ruby/3.3.0:/opt/ruby/gems/3.3.0`).
+ `AWS_XRAY_CONTEXT_MISSING` – Per il tracciamento X-Ray, Lambda imposta questo valore su `LOG_ERROR` per evitare di generare errori di runtime dall'SDK X-Ray.
+ `AWS_XRAY_DAEMON_ADDRESS` – Per il tracciamento X-Ray, l'indirizzo IP e la porta del daemon X-Ray.
+ `AWS_LAMBDA_DOTNET_PREJIT`: ([.NET](lambda-csharp.md)) imposta questa variabile per abilitare o disabilitare le ottimizzazioni di runtime specifiche di .NET. I valori includono `always`, `never` e `provisioned-concurrency`. Per ulteriori informazioni, consulta [Configurazione della simultaneità fornita per una funzione](provisioned-concurrency.md).
+ `TZ`: il fuso orario dell'ambiente (`:UTC`). L'ambiente di esecuzione utilizza NTP per sincronizzare l'orologio di sistema.

I valori di esempio mostrati riflettono i runtime più recenti. La presenza di variabili specifiche o dei loro valori può variare nei runtime precedenti.

# Protezione delle variabili di ambiente Lambda
<a name="configuration-envvars-encryption"></a>

Per proteggere le variabili di ambiente, è possibile utilizzare la crittografia lato server per proteggere i dati inattivi e la crittografia lato client per proteggere i dati in transito.

**Nota**  
Per aumentare la sicurezza del database, si consiglia di utilizzare Gestione dei segreti AWS al posto delle variabili di ambiente per archiviare le credenziali del database. Per ulteriori informazioni, consulta [Uso dei segreti in Secrets Manager nelle funzioni Lambda](with-secrets-manager.md).

**Sicurezza dei dati inattivi**  
Lambda fornisce sempre la crittografia lato server dei dati inattivi con un AWS KMS key. Per impostazione predefinita, Lambda utilizza un Chiave gestita da AWS. Se questo comportamento predefinito si adatta al flusso di lavoro, non è necessario impostare altro. Lambda li crea Chiave gestita da AWS nel tuo account e gestisce le autorizzazioni per te. AWS non ti addebita alcun costo per l'utilizzo di questa chiave.

Se preferisci, puoi invece fornire una chiave gestita AWS KMS dal cliente. È possibile eseguire questa operazione per avere il controllo sulla rotazione della chiave KMS o per soddisfare i requisiti dell'organizzazione per la gestione delle chiavi KMS. Quando si utilizza la chiave gestita dal cliente, solo gli utenti del tuo account con accesso alla chiave possono visualizzare o gestire le variabili di ambiente sulla funzione.

Le chiavi gestite dal cliente sono soggette a costi standard AWS KMS . Per ulteriori informazioni, consultare [Prezzi di AWS Key Management Service](https://aws.amazon.com/kms/pricing/).

**Sicurezza in transito**  
Per una maggiore sicurezza, è possibile abilitare gli helper per la crittografia in transito, assicurando così che le variabili di ambiente siano crittografate lato client per la protezione in transito.

**Per configurare la crittografia per le variabili di ambiente**

1. Usa AWS Key Management Service (AWS KMS) per creare qualsiasi chiave gestita dal cliente che Lambda possa utilizzare per la crittografia lato server e lato client. Per ulteriori informazioni, consulta [Creazione di chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) nella *AWS Key Management Service Guida per gli sviluppatori di *.

1. Utilizzando la console Lambda, accedere alla pagina **Edit environment variables (Modifica delle variabili di ambiente)**.

   1. Aprire la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda.

   1. Scegliere una funzione.

   1. Scegliere **Configurazione**, quindi scegliere **Variabili di ambiente** nella barra di navigazione sinistra.

   1. Nella sezione **Variabili di ambiente**, scegliere **Modifica**.

   1. Espandere **Encryption configuration (Configurazione della crittografia)**.

1. (Facoltativo) Abilita gli helper di crittografia della console per utilizzare la crittografia lato client per proteggere i dati in transito.

   1. In **Crittografia in transito**, scegliere **Enable helpers for encryption in transit (Abilita helper per la crittografia in transito)**.

   1. Per ogni variabile di ambiente per cui si desidera abilitare gli helper di crittografia della console, scegliere **Encrypt** (Crittografia) accanto alla variabile di ambiente.

   1.  In AWS KMS key Per crittografare in transito, scegli una chiave gestita dal cliente che hai creato all'inizio di questa procedura.

   1. Scegliere **Execution role policy (Policy del ruolo di esecuzione)** e copiare la policy. Questa policy concede l'autorizzazione al ruolo di esecuzione della funzione per decrittare le variabili di ambiente.

      Salvare la policy da utilizzare nell'ultima fase di questa procedura.

   1. Aggiungi il codice alla funzione che decritta le variabili di ambiente. Per visualizzare un esempio, scegli **Decritta frammento di segreto**.

1. (Facoltativo) Specifica la chiave gestita dal cliente per la crittografia dei dati inattivi.

   1. Scegliere **Use a customer master key (Utilizza una chiave master del cliente)**.

   1. Scegliere una chiave gestita dal cliente creata all'inizio di questa procedura.

1. Scegli **Save** (Salva).

1. Impostare le autorizzazioni.

   Se stai utilizzando una chiave gestita dal cliente con crittografia lato server, concedi le autorizzazioni a qualsiasi utente o ruolo che desideri possa visualizzare o gestire le variabili di ambiente sulla funzione. Per ulteriori informazioni, consulta [Gestione delle autorizzazioni per la chiave KMS di crittografia lato server](#managing-permissions-to-your-server-side-encryption-key).

   Se si abilita la crittografia lato client per la sicurezza in transito, la funzione richiede l'autorizzazione per chiamare l'operazione API `kms:Decrypt`. Aggiungere la policy salvata in precedenza in questa procedura al [ruolo di esecuzione](lambda-intro-execution-role.md) della funzione.

## Gestione delle autorizzazioni per la chiave KMS di crittografia lato server
<a name="managing-permissions-to-your-server-side-encryption-key"></a>

Non sono necessarie AWS KMS autorizzazioni affinché l'utente o il ruolo di esecuzione della funzione utilizzino la chiave di crittografia predefinita. Per utilizzare una chiave gestita dal cliente, occorre l'autorizzazione all'utilizzo della chiave. Lambda utilizza queste autorizzazioni per creare una concessione sulla chiave. Questo consente a Lambda di usarla per la crittografia.
+ `kms:ListAliases` – Per visualizzare i tasti nella console Lambda.
+ `kms:CreateGrant`, `kms:Encrypt` – Per configurare una chiave gestita dal cliente su una funzione.
+ `kms:Decrypt` – Per visualizzare e gestire le variabili di ambiente crittografate con la chiave gestita dal cliente.

Puoi ottenere queste autorizzazioni dalla tua politica di autorizzazioni basata sulle risorse Account AWS o sulla politica delle autorizzazioni basata sulle risorse di una chiave. `ListAliases`è fornito dalle [policy gestite per Lambda](access-control-identity-based.md). Le policy della chiave concedono le autorizzazioni rimanenti agli utenti del gruppo **Key users (Utenti chiave)**.

Gli utenti senza autorizzazioni `Decrypt` possono comunque gestire le funzioni, ma non possono visualizzare le variabili di ambiente o gestirle nella console Lambda. Per impedire a un utente di visualizzare le variabili di ambiente, aggiungere un'istruzione alle autorizzazioni dell'utente che nega l'accesso alla chiave predefinita, a una chiave gestita dal cliente o a tutte le chiavi.

**Example Policy IAM: negano l'accesso in base all'ARN della chiave**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-2:111122223333:key/3be10e2d-xmpl-4be4-bc9d-0405a71945cc"
        }
    ]
}
```

Per informazioni dettagliate sulla gestione delle autorizzazioni delle chiavi, consulta la pagina [Utilizzo delle policy delle chiavi in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.