

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
<a name="lambda-intro-execution-role"></a>

Il ruolo di esecuzione di una funzione Lambda è un ruolo AWS Identity and Access Management (IAM) che concede alla funzione l'autorizzazione all'accesso Servizi AWS e alle 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 `sts:AssumeRole` manualmente 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 policy di attendibilità del ruolo, consulta [Modifica di una policy di attendibilità del ruolo (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy) nella Guida per l'utente di IAM.

Affinché Lambda possa assumere correttamente il ruolo di esecuzione, la [policy di attendibilità](#permissions-executionrole-api) del ruolo deve specificare il principale del servizio Lambda (`lambda.amazonaws.com`) come servizio attendibile.

**Topics**
+ [

## Creazione di un ruolo di esecuzione nella console di IAM
](#permissions-executionrole-console)
+ [

## Creazione e gestione dei ruoli con AWS CLI
](#permissions-executionrole-api)
+ [

## Garantisci l'accesso minimo ai privilegi per il tuo ruolo di esecuzione Lambda
](#permissions-executionrole-least-privilege)
+ [

# Visualizzazione e aggiornamento delle autorizzazioni nel ruolo di esecuzione
](permissions-executionrole-update.md)
+ [

# Utilizzo delle politiche AWS gestite nel ruolo di esecuzione
](permissions-managed-policies.md)
+ [

# Utilizzo dell'ARN della funzione di origine per controllare il comportamento di accesso alla funzione
](permissions-source-function-arn.md)

## Creazione di un ruolo di esecuzione nella console di IAM
<a name="permissions-executionrole-console"></a>

Per impostazione predefinita, Lambda crea un ruolo di esecuzione con autorizzazioni minime quando si [crea una funzione nella console Lambda](getting-started.md#getting-started-create-function). In particolare, questo ruolo di esecuzione include la [policy `AWSLambdaBasicExecutionRole` gestita](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaBasicExecutionRole.html), che fornisce alla tua funzione le autorizzazioni di base per registrare gli eventi su Amazon CloudWatch Logs. Puoi selezionare **Crea ruolo predefinito nella sezione** **Autorizzazioni**.

Puoi scegliere un ruolo esistente selezionando **Usa un altro ruolo nella sezione** **Autorizzazioni**. Se la tua funzione Lambda necessita di autorizzazioni aggiuntive per eseguire attività come l'aggiornamento delle voci in un database Amazon DynamoDB in risposta agli eventi, puoi creare un ruolo di esecuzione personalizzato con le autorizzazioni necessarie. Per fare ciò, seleziona **Usa un altro ruolo** nella sezione **Autorizzazioni, che apre un cassetto in cui puoi personalizzare le tue autorizzazioni**.

**Per configurare un ruolo di esecuzione dalla console**

1. Inserisci **il nome del ruolo** nella sezione Dettagli del ruolo.

1. Nella sezione **Politica**, seleziona **Usa politica esistente**.

1. Seleziona le politiche AWS gestite che desideri allegare al tuo ruolo. Ad esempio, se la tua funzione deve accedere a DynamoDB, seleziona la policy gestita da **DBExecutionDynamo AWSLambda Role**.

1. Scegli **Crea ruolo**.

In alternativa, quando [crei una funzione nella console Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html#getting-started-create-function), 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 in [Aggiornamento del ruolo di esecuzione di una funzione](permissions-executionrole-update.md).

## Creazione e gestione dei ruoli con AWS CLI
<a name="permissions-executionrole-api"></a>

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. I requisiti per l'escape delle virgolette nella stringa JSON variano in base alla shell.

```
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"}]}'
```

Puoi inoltre definire la policy di attendibilità per il ruolo utilizzando un file JSON separato. Nell'esempio seguente, `trust-policy.json` è un file che si trova nella directory attuale.

**Example 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
```

Utilizza il comando **attach-policy-to-role** per aggiungere le autorizzazioni al ruolo. Il seguente comando aggiunge la policy gestita da `AWSLambdaBasicExecutionRole` al ruolo di esecuzione `lambda-ex`.

```
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, collegalo alla funzione. Quando si [crea una funzione nella console Lambda](getting-started.md#getting-started-create-function), potrai collegare alla funzione qualsiasi ruolo di esecuzione creato in precedenza. Se desideri associare un nuovo ruolo di esecuzione a una funzione esistente, segui i passaggi indicati in [Aggiornamento del ruolo di esecuzione di una funzione](permissions-executionrole-update.md#update-execution-role).

## Garantisci l'accesso minimo ai privilegi per il tuo ruolo di esecuzione Lambda
<a name="permissions-executionrole-least-privilege"></a>

Quando si crea per la prima volta un ruolo IAM per la funzione Lambda durante la fase di sviluppo, a volte è possibile concedere altre autorizzazioni oltre a quanto richiesto. 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 [Applicazione delle autorizzazioni del privilegio minimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) nella *Guida per l'utente di IAM*.

Utilizzare IAM Access Analyzer per identificare le autorizzazioni necessarie per la policy del ruolo di esecuzione IAM. IAM Access Analyzer esamina i tuoi AWS CloudTrail 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 granulari 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 [Generazione di policy basate sull'attività di accesso](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_generate-policy.html) nella *Guida per l'utente di IAM*.

# Visualizzazione e aggiornamento delle autorizzazioni nel ruolo di esecuzione
<a name="permissions-executionrole-update"></a>

Questo argomento spiega come visualizzare e aggiornare il [ruolo di esecuzione](lambda-intro-execution-role.md) della funzione.

**Topics**
+ [

## Visualizzazione del ruolo di esecuzione di una funzione
](#view-execution-role)
+ [

## Aggiornamento del ruolo di esecuzione di una funzione
](#update-execution-role)

## Visualizzazione del ruolo di esecuzione di una funzione
<a name="view-execution-role"></a>

Per visualizzare il ruolo di esecuzione di una funzione, usa la console Lambda.

**Per visualizzare il ruolo di esecuzione di una funzione (console)**

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

1. Scegliere il nome della funzione.

1. Scegli **Configuration** (Configurazione), quindi **Permissions** (Autorizzazioni).

1. In **Ruolo di esecuzione**, puoi visualizzare il ruolo attualmente utilizzato come ruolo di esecuzione della funzione. Per comodità, puoi visualizzare tutte le risorse e le azioni a cui la funzione può accedere nella sezione **Riepilogo delle risorse**. Puoi anche scegliere un servizio dal menu a discesa per visualizzare tutte le autorizzazioni relative a tale servizio.

## Aggiornamento del ruolo di esecuzione di una funzione
<a name="update-execution-role"></a>

È possibile aggiungere o rimuovere le autorizzazioni da un ruolo di esecuzione della funzione in qualsiasi momento, oppure configurare la funzione per l'utilizzo di un altro ruolo. Se la funzione richiede l'accesso a qualsiasi altro servizio o risorsa, è necessario aggiungere le autorizzazioni necessarie al ruolo di esecuzione.

Quando aggiungi le autorizzazioni alla funzione, aggiorni anche il relativo codice o la configurazione. Questa operazione forza l'arresto e la sostituzione delle istanze della funzione in esecuzione che hanno credenziali obsolete.

Per aggiornare il ruolo di esecuzione di una funzione, usa la console Lambda.

**Per aggiornare il ruolo di esecuzione della funzione (console)**

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

1. Scegliere il nome della funzione.

1. Scegli **Configuration** (Configurazione), quindi **Permissions** (Autorizzazioni).

1. In **Ruolo di esecuzione**, scegli **Modifica**.

1. Se desideri aggiornare la tua funzione in modo da utilizzare un ruolo diverso come ruolo di esecuzione, scegli il nuovo ruolo nel menu a discesa sotto **Ruolo esistente**.
**Nota**  
Se desideri aggiornare le autorizzazioni all'interno di un ruolo di esecuzione esistente, puoi farlo solo nella console AWS Identity and Access Management (IAM).

   Se desideri creare un nuovo ruolo da utilizzare come ruolo di esecuzione, scegli **Crea un nuovo ruolo dai modelli di AWS policy** in **Ruolo di esecuzione**. Quindi, inserisci un nome per il tuo nuovo ruolo in **Nome ruolo** e specifica le politicy che desideri collegare al nuovo ruolo in **Modelli di policy**.

1. Seleziona **Salva**.

# Utilizzo delle politiche AWS gestite nel ruolo di esecuzione
<a name="permissions-managed-policies"></a>

Le seguenti politiche AWS gestite forniscono le autorizzazioni necessarie per utilizzare le funzionalità Lambda.


| Modifica | Descrizione | Data | 
| --- | --- | --- | 
|  **[ AWSLambdaMSKExecutionRuolo](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaMSKExecutionRole)**: Lambda ha aggiunto l'autorizzazione [kafka: DescribeCluster V2](https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-clusters-clusterarn.html#v2-clusters-clusterarnget) a questa policy.  |  `AWSLambdaMSKExecutionRole`concede le autorizzazioni per leggere e accedere ai record da un cluster Amazon Managed Streaming for Apache Kafka (Amazon MSK), gestire interfacce di ENIs rete elastiche () e scrivere nei log. CloudWatch   |  17 giugno 2022  | 
|  **[ AWSLambdaBasicExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole)**— Lambda ha iniziato a tracciare le modifiche a questa politica.  |  `AWSLambdaBasicExecutionRole` concede le autorizzazioni per caricare i log su CloudWatch.  |  14 febbraio 2022  | 
|  **[ AWSLambdaDynamo DBExecution Role](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole)** — Lambda ha iniziato a tenere traccia delle modifiche a questa politica.  |  `AWSLambdaDynamoDBExecutionRole`concede le autorizzazioni per leggere i record da un flusso Amazon DynamoDB e scrivere nei log. CloudWatch   |  14 febbraio 2022  | 
|  **[ AWSLambdaKinesisExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaKinesisExecutionRole)**— Lambda ha iniziato a tracciare le modifiche a questa politica.  |  `AWSLambdaKinesisExecutionRole`concede le autorizzazioni per leggere eventi da un flusso di dati Amazon Kinesis e scrivere su Logs. CloudWatch   |  14 febbraio 2022  | 
|  **[ AWSLambdaMSKExecutionRuolo](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaMSKExecutionRole)**: Lambda ha iniziato a tenere traccia delle modifiche a questa politica.  |  `AWSLambdaMSKExecutionRole`concede le autorizzazioni per leggere e accedere ai record da un cluster Amazon Managed Streaming for Apache Kafka (Amazon MSK), gestire interfacce di ENIs rete elastiche () e scrivere nei log. CloudWatch   |  14 febbraio 2022  | 
|  **[ AWSLambdaSQSQueueExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaSQSQueueExecutionRole)**— Lambda ha iniziato a tracciare le modifiche a questa politica.  |  `AWSLambdaSQSQueueExecutionRole`concede le autorizzazioni per leggere un messaggio da una coda Amazon Simple Queue Service (Amazon SQS) e scrivere nei log. CloudWatch   |  14 febbraio 2022  | 
|  **[ AWSLambdaVPCAccessExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole)**— Lambda ha iniziato a tracciare le modifiche a questa politica.  |  `AWSLambdaVPCAccessExecutionRole`concede le autorizzazioni per la gestione all' ENIs interno di un Amazon VPC e la scrittura nei log. CloudWatch   |  14 febbraio 2022  | 
|  **[ AWSXRayDaemonWriteAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess)**— Lambda ha iniziato a tracciare le modifiche a questa politica.  |  `AWSXRayDaemonWriteAccess` concede le autorizzazioni per caricare i dati non elaborati su X-Ray.  |  14 febbraio 2022  | 
|  **[ CloudWatchLambdaInsightsExecutionRolePolicy](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy)**— Lambda ha iniziato a tracciare le modifiche a questa politica.  |  `CloudWatchLambdaInsightsExecutionRolePolicy`concede le autorizzazioni per scrivere metriche di runtime a CloudWatch Lambda Insights.  |  14 febbraio 2022  | 
|  **[AmazonS3 — ObjectLambdaExecutionRolePolicy](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy)** Lambda ha iniziato a tracciare le modifiche a questa politica.  |  `AmazonS3ObjectLambdaExecutionRolePolicy`concede le autorizzazioni per interagire con l'oggetto Lambda di Amazon Simple Storage Service (Amazon S3) e per scrivere su Logs. CloudWatch   |  14 febbraio 2022  | 

Per alcune funzionalità, la console Lambda tenta di aggiungere autorizzazioni mancanti al ruolo di esecuzione in una policy gestita dal cliente. Queste policy possono diventare numerose. Aggiungere le policy gestite AWS pertinenti al ruolo di esecuzione prima di abilitare le funzionalità per evitare la creazione di policy aggiuntive.

Quando si utilizza una [mappatura origine eventi](invocation-eventsourcemapping.md) per invocare la funzione, Lambda utilizza il ruolo di esecuzione per leggere i dati dell'evento. Ad esempio, la mappatura dell'origine eventi per Kinesis legge gli eventi provenienti da un flusso di dati e li invia alla funzione in batch. 

Quando un servizio assume un ruolo nel tuo account, puoi includere le chiavi di contesto delle condizioni globali `aws:SourceAccount` e `aws:SourceArn` nella policy di attendibilità del ruolo per limitare l'accesso al ruolo solo alle richieste generate dalle risorse previste. Per ulteriori informazioni consulta [Prevenzione del problema "confused deputy" tra servizi per AWS Security Token Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html#cross-service-confused-deputy-prevention).

Oltre alle policy AWS gestite, la console Lambda fornisce modelli per la creazione di policy personalizzate con autorizzazioni per casi d'uso aggiuntivi. Quando si crea una funzione nella console Lambda, è possibile scegliere di creare un nuovo ruolo di esecuzione con le autorizzazioni da uno o più modelli. Questi modelli vengono applicati automaticamente al momento della creazione di una funzione da un blueprint, oppure quando si configurano le opzioni che richiedono l'accesso ad altri servizi. [Modelli di esempio sono disponibili nell'archivio di questa guida. GitHub](https://github.com/awsdocs/aws-lambda-developer-guide/tree/master/iam-policies)

# Utilizzo dell'ARN della funzione di origine per controllare il comportamento di accesso alla funzione
<a name="permissions-source-function-arn"></a>

È normale che il codice della funzione Lambda effettui richieste API ad altri Servizi AWS. Per effettuare queste richieste, Lambda genera un insieme effimero di credenziali assumendo il ruolo di esecuzione della tua funzione. Queste credenziali sono disponibili come variabili d'ambiente durante l'invocazione della funzione. Quando si lavora con AWS SDKs, non è necessario fornire le credenziali per l'SDK direttamente nel codice. Per impostazione predefinita, la catena di fornitori di credenziali controlla in sequenza ogni punto in cui è possibile impostare le credenziali e seleziona la prima disponibile, in genere le variabili d'ambiente (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN`).

Lambda inserisce la funzione di origine ARN nel contesto delle credenziali se la richiesta è una richiesta AWS API proveniente dall'ambiente di esecuzione. Lambda inserisce anche l'ARN della funzione di origine per le seguenti richieste API AWS che Lambda effettua per tuo conto al di fuori dell'ambiente di esecuzione:


| Servizio | Azione | Motivo | 
| --- | --- | --- | 
| CloudWatch Registri | CreateLogGroup, CreateLogStream, PutLogEvents |  Per archiviare i log in un gruppo di CloudWatch log Logs  | 
| X-Ray | PutTraceSegments |  Invio dei dati di traccia a X-Ray  | 
| Amazon EFS | ClientMount |  Connessione di una funzione a un file system Amazon Elastic File System (Amazon EFS)  | 

Le altre chiamate AWS API che Lambda effettua al di fuori dell'ambiente di esecuzione per tuo conto utilizzando lo stesso ruolo di esecuzione non contengono la funzione di origine ARN. Esempi di tali chiamate API al di fuori dell'ambiente di esecuzione includono:
+ Chiama a AWS Key Management Service (AWS KMS) per crittografare e decrittografare automaticamente le variabili di ambiente.
+ Chiamate ad Amazon Elastic Compute Cloud (Amazon EC2) per creare interfacce ENIs di rete elastiche () per una funzione abilitata al VPC.
+ [Chiamate a Servizi AWS, come Amazon Simple Queue Service (Amazon SQS), per la lettura da un'origine di eventi configurata come mappatura delle sorgenti di eventi.](invocation-eventsourcemapping.md)

Con l'ARN della funzione di origine nel contesto delle credenziali puoi verificare se una chiamata alla tua risorsa proviene dal codice di una funzione Lambda specifica. Per verificarlo, usa la chiave di condizione `lambda:SourceFunctionArn` in una policy basata sulle identità IAM o una [policy di controllo dei servizi (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html).

**Nota**  
Non puoi utilizzare la chiave di condizione `lambda:SourceFunctionArn` nelle policy basate sulle risorse.

Implementando questa condizione nelle tue policy basate sull'identità SCPs, puoi oppure implementare controlli di sicurezza per le azioni API che il tuo codice funzionale esegue su altri. Servizi AWS Questo ha alcune funzioni di sicurezza chiave, come aiutarti a identificare l'origine di una perdita di credenziali.

**Nota**  
La chiave di condizione `lambda:SourceFunctionArn` è diversa dalle chiavi di condizione `lambda:FunctionArn` e `aws:SourceArn`. La chiave di condizione `lambda:FunctionArn` si applica solo a [mappature di origine eventi](invocation-eventsourcemapping.md) e aiuta a definire quali funzioni può richiamare l'origine eventi. La chiave di `aws:SourceArn` condizione si applica solo alle politiche in cui la funzione Lambda è la risorsa di destinazione e aiuta a definire quali altre Servizi AWS risorse possono richiamare quella funzione. La chiave di `lambda:SourceFunctionArn` condizione può essere applicata a qualsiasi policy o SCP basata sull'identità per definire le funzioni Lambda specifiche che dispongono delle autorizzazioni per effettuare chiamate API specifiche ad altre risorse. AWS 

Per utilizzare `lambda:SourceFunctionArn` nella tua policy, includila come condizione con uno qualsiasi degli [operatori di condizione ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN). Il valore della chiave deve essere un ARN valido.

Ad esempio, supponiamo che il codice della funzione Lambda effettui una chiamata `s3:PutObject` che si rivolge a un determinato bucket Amazon S3. Potresti volere che solo una funzione Lambda specifica abbia accesso `s3:PutObject` a quel bucket. In questo caso, il ruolo di esecuzione della funzione deve avere una policy collegata simile alla seguente:

**Example policy che concede l'accesso a una funzione Lambda specifica a una risorsa Amazon S3**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleSourceFunctionArn",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::lambda_bucket/*",
            "Condition": {
                "ArnEquals": {
                    "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda"
                }
            }
        }
    ]
}
```

Questa policy consente l'accesso `s3:PutObject` solo se l'origine è la funzione Lambda con ARN `arn:aws:lambda:us-east-1:123456789012:function:source_lambda`. La policy non consente l'accesso `s3:PutObject` ad alcun'altra identità chiamante. Ciò è vero anche se una funzione o entità diversa effettua una chiamata `s3:PutObject` con lo stesso ruolo di esecuzione.

**Nota**  
La chiave di condizione `lambda:SourceFunctionARN` non supporta gli alias delle funzioni o le versioni delle funzioni Lambda. Se utilizzi l'ARN per una particolare versione o alias di una funzione, la tua funzione non avrà l'autorizzazione per eseguire l'azione specificata. Assicurarsi di utilizzare l'ARN non completo per la funzione senza un suffisso di versione o alias.

Puoi anche usare in. `lambda:SourceFunctionArn` SCPs Ad esempio, supponiamo di voler limitare l'accesso al bucket al codice di una singola funzione Lambda o a chiamate da un cloud privato virtuale (VPC) Amazon specifico. L'SCP seguente illustra questo scenario.

**Example politica che nega l'accesso ad Amazon S3 in condizioni specifiche**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:*"
            ],
            "Resource": "arn:aws:s3:::lambda_bucket/*",
            "Effect": "Deny",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceVpc": [
                        "vpc-12345678"
                    ]
                }
            }
        },
        {
            "Action": [
                "s3:*"
            ],
            "Resource": "arn:aws:s3:::lambda_bucket/*",
            "Effect": "Deny",
            "Condition": {
                "ArnNotEqualsIfExists": {
                    "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda"
                }
            }
        }
    ]
}
```

Questa policy nega tutte le azioni S3 a meno che non provengano da una specifica funzione Lambda con ARN `arn:aws:lambda:*:123456789012:function:source_lambda` o a meno che non provengano dal VPC specificato. L'operatore `StringNotEqualsIfExists` dice a IAM di elaborare questa condizione solo se la chiave `aws:SourceVpc` è presente nella richiesta. Allo stesso modo, IAM considera l'operatore `ArnNotEqualsIfExists` solo se esiste `lambda:SourceFunctionArn`.