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à.
Quando un principale effettua una richiesta 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 su aws:CalledVia chiave di contesto
È possibile utilizzare il aws:CalledViachiave di contesto globale per confrontare i servizi inclusi nella policy con i servizi che hanno effettuato richieste per conto del responsabile 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
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ò richiamare le funzioni Lambda solo da Athena.
{
"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.
{
"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 nella Guida per l'utente di IAM.