Consenti l'accesso alla query federata Athena
Negli esempi di policy di autorizzazione in questo argomento vengono illustrate le operazioni consentite obbligatorie e le risorse per le quali sono consentite. Esamina attentamente queste policy e modificale in base ai tuoi requisiti prima di collegarle a identità IAM.
Per informazioni sul collegamento di policy alle identità IAM, consulta Aggiunta e rimozione di autorizzazioni alle identità IAM nella Guida per l'utente di IAM.
Esempio : consenti a un principale IAM di eseguire e restituire risultati utilizzando la query federata Athena
La seguente policy di autorizzazione basata su identità consente operazioni richieste da un utente o un altro principale IAM per utilizzare la query federata Athena. I principali autorizzati a eseguire queste operazioni sono in grado di eseguire query che specificano i cataloghi Athena associati a un'origine dati federata.
| Operazioni consentite | Spiegazione |
|---|---|
|
Autorizzazioni Athena richieste per eseguire query federate. |
|
Autorizzazioni Athena necessarie per eseguire query di visualizzazione federate. L'azione è necessaria per le visualizzazioni |
|
Consente alle query di richiamare le funzioni AWS Lambda per le funzioni AWS Lambda specificate nel blocco Resource. Ad esempio, arn:aws:lambda:*:, dove MyAthenaLambdaFunction specifica il nome di una funzione Lambda da richiamare. Più funzioni possono essere specificate come mostrato nell'esempio. |
|
Le autorizzazioni
|
Esempio : consente a un principale IAM di creare un connettore origine dati
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "lambda:CreateFunction", "lambda:ListVersionsByFunction", "iam:CreateRole", "lambda:GetFunctionConfiguration", "iam:AttachRolePolicy", "iam:PutRolePolicy", "lambda:PutFunctionConcurrency", "iam:PassRole", "iam:DetachRolePolicy", "lambda:ListTags", "iam:ListAttachedRolePolicies", "iam:DeleteRolePolicy", "lambda:DeleteFunction", "lambda:GetAlias", "iam:ListRolePolicies", "iam:GetRole", "iam:GetPolicy", "lambda:InvokeFunction", "lambda:GetFunction", "lambda:ListAliases", "lambda:UpdateFunctionConfiguration", "iam:DeleteRole", "lambda:UpdateFunctionCode", "s3:GetObject", "lambda:AddPermission", "iam:UpdateRole", "lambda:DeleteFunctionConcurrency", "lambda:RemovePermission", "iam:GetRolePolicy", "lambda:GetPolicy" ], "Resource": [ "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunctionsPrefix*", "arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/*", "arn:aws:iam::*:role/RoleName", "arn:aws:iam::111122223333:policy/*" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "cloudformation:CreateUploadBucket", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:ListExports", "cloudformation:ListStacks", "cloudformation:ListImports", "lambda:ListFunctions", "iam:ListRoles", "lambda:GetAccountSettings", "ec2:DescribeSecurityGroups", "cloudformation:EstimateTemplateCost", "ec2:DescribeVpcs", "lambda:ListEventSourceMappings", "cloudformation:DescribeAccountLimits", "ec2:DescribeSubnets", "cloudformation:CreateStackSet", "cloudformation:ValidateTemplate" ], "Resource": "*" }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": "cloudformation:*", "Resource": [ "arn:aws:cloudformation:*:111122223333:stack/aws-serverless-repository-MyCFStackPrefix*/*", "arn:aws:cloudformation:*:111122223333:stack/serverlessrepo-MyCFStackPrefix*/*", "arn:aws:cloudformation:*:*:transform/Serverless-*", "arn:aws:cloudformation:*:111122223333:stackset/aws-serverless-repository-MyCFStackPrefix*:*", "arn:aws:cloudformation:*:111122223333:stackset/serverlessrepo-MyCFStackPrefix*:*" ] }, { "Sid": "VisualEditor3", "Effect": "Allow", "Action": "serverlessrepo:*", "Resource": "arn:aws:serverlessrepo:*:*:applications/*" }, { "Sid": "ECR", "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "arn:aws:ecr:*:*:repository/*" } ] }
| Operazioni consentite | Spiegazione |
|---|---|
|
Consente la creazione e la gestione delle funzioni Lambda elencate come risorse. Nell'esempio, un prefisso del nome viene utilizzato nell'identificatore della risorsa |
|
Consente la lettura di un bucket richiesto da AWS Serverless Application Repository come specificato dall'identificatore della risorsa arn:aws:s3:::awsserverlessrepo-changesets-. Questo bucket può essere specifico per l'account. |
|
Consente la creazione e la gestione di stack CloudFormation specificati dalla risorsa MyCFStackPrefix. Questi stack e stackset sono il modo in cui AWS Serverless Application Repository distribuisce connettori e funzioni definite dall'utente. |
|
Consente la ricerca, la visualizzazione, la pubblicazione e l'aggiornamento di applicazioni nel AWS Serverless Application Repository, specificato dall'identificatore della risorsa arn:aws:serverlessrepo:*:*:applications/*. |
|
Consente alla funzione Lambda creata di accedere all'immagine ECR del connettore federativo. |