Usa le chiavi di CalledVia contesto per Athena - Amazon Athena

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

Quando un preside fa una richiesta a AWS, AWS raccoglie le informazioni sulla richiesta in un contesto di richiesta che valuta e autorizza la richiesta. È possibile utilizzare l'Conditionelemento di una JSON politica per confrontare le chiavi nel contesto della richiesta con i valori chiave specificati nella politica. Le chiavi di condizione globali sono chiavi di condizione con un prefisso aws:.

Informazioni su aws:CalledVia chiave di contesto

È possibile utilizzare aws:CalledViachiave di contesto globale per confrontare i servizi inclusi nella politica con i servizi che hanno effettuato le richieste per conto del IAM principale (utente o ruolo). Quando un preside 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 creare la chiave di contesto Servizio AWS-specifico. 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 sui CalledVia tasti condizionali, consulta AWS chiavi di contesto delle condizioni globali nella Guida IAM per l'utente.