

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

# Usa le chiavi di CalledVia contesto per Athena
<a name="security-iam-athena-calledvia"></a>

Quando un [principale](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) effettua una [richiesta](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-request) a AWS, AWS raccoglie le informazioni sulla richiesta in un *contesto di richiesta* che valuta e autorizza la richiesta. È possibile utilizzare l'elemento `Condition` di una policy JSON per confrontare le chiavi della richiesta con i valori chiave specificati nella policy. Le *chiavi di condizione globali* sono chiavi di condizione con un prefisso `aws:`.

## Informazioni sulla chiave di contesto aws:CalledVia
<a name="security-iam-athena-calledvia-the-awscalledvia-context-key"></a>

Puoi usare la chiave di contesto di condizione globale [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia) per confrontare i servizi nella policy con i servizi che hanno effettuato richieste per conto del principale IAM (utente o ruolo). Quando un principale effettua una richiesta a un Servizio AWS, tale servizio potrebbe utilizzare le credenziali del principale per effettuare richieste successive ad altri servizi. La chiave `aws:CalledVia` contiene un elenco ordinato di ciascun servizio nella catena che ha effettuato le richieste per conto dell'entità principale.

Specificando il nome principale del servizio per la chiave di `aws:CalledVia` contesto, è possibile rendere la chiave Servizio AWS di contesto specifica. Ad esempio, puoi utilizzare la chiave di condizione `aws:CalledVia` per limitare le richieste solo a quelle fatte da Athena. Per utilizzare la chiave di condizione `aws:CalledVia` in una policy con Athena, specifica il nome del principale del servizio Athena `athena.amazonaws.com`, come nell'esempio seguente.

```
 ...
    "Condition": {
        "ForAnyValue:StringEquals": { 
            "aws:CalledVia": "athena.amazonaws.com"
        }
    }
...
```

Puoi utilizzare la chiave di contesto `aws:CalledVia` per garantire che i chiamanti abbiano accesso a una risorsa (come una funzione Lambda) solo se chiamano la risorsa da Athena.

**Nota**  
La chiave di contesto `aws:CalledVia` non è compatibile con la funzionalità di propagazione delle identità attendibili.

## Aggiungi una chiave CalledVia contestuale per l'accesso alle funzioni Lambda
<a name="security-iam-athena-calledvia-example-policy-to-add-an-optional-calledvia-context-key-for-fine-grained-access-to-a-lambda-function"></a>

Athena richiede che il chiamante abbia le autorizzazioni `lambda:InvokeFunction` per chiamare la funzione Lambda associata alla query. L’istruzione seguente specifica che l’utente può invocare le funzioni Lambda solo da Athena.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:111122223333:function:OneAthenaLambdaFunction",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": "athena.amazonaws.com"
                }
            }
        }
    ]
}
```

------

L'esempio seguente mostra l'aggiunta dell'istruzione precedente a una policy che consente a un utente di eseguire e leggere una query federata. I principali autorizzati a eseguire queste operazioni possono eseguire query che specificano i cataloghi Athena associati a un'origine dati federata. Tuttavia, il principale non può accedere alla funzione Lambda associata a meno che la funzione non venga richiamata tramite Athena.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0", 
            "Effect": "Allow",
            "Action": [ 
                "athena:GetWorkGroup", 
                "s3:PutObject", 
                "s3:GetObject", 
                "athena:StartQueryExecution", 
                "s3:AbortMultipartUpload",  
                "athena:StopQueryExecution", 
                "athena:GetQueryExecution", 
                "athena:GetQueryResults", 
                "s3:ListMultipartUploadParts" 
            ], 
            "Resource": [ 
                "arn:aws:athena:*:111122223333:workgroup/WorkGroupName",
                "arn:aws:s3:::MyQueryResultsBucket/*", 
                "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*"
            ] 
        }, 
        {
            "Sid": "VisualEditor1", 
            "Effect": "Allow", 
            "Action": "athena:ListWorkGroups", 
            "Resource": "*" 
        }, 
        {
            "Sid": "VisualEditor2", 
            "Effect": "Allow", 
            "Action": 
                [ 
                "s3:ListBucket", 
                "s3:GetBucketLocation" 
                ], 
            "Resource": "arn:aws:s3:::MyLambdaSpillBucket" 
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:OneAthenaLambdaFunction", 
                "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction"
            ], 
            "Condition": {
                "ForAnyValue:StringEquals": { 
                    "aws:CalledVia": "athena.amazonaws.com"
                }
            }
        }            
    ]
}
```

------

Per ulteriori informazioni sulle chiavi di contesto `CalledVia`, consulta [Chiavi di contesto delle condizioni globali di AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) nella *Guida per l'utente di IAM*.