Esempio di policy di autorizzazione IAM per consentire la query federata 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à.

Esempio di policy di autorizzazione IAM per consentire la 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.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Athena", "Effect": "Allow", "Action": [ "athena:GetDataCatalog", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution" ], "Resource": [ "arn:aws:athena:*:111122223333:workgroup/WorkgroupName", "arn:aws:athena:aws_region:111122223333:datacatalog/DataCatalogName" ] }, { "Sid": "ListAthenaWorkGroups", "Effect": "Allow", "Action": "athena:ListWorkGroups", "Resource": "*" }, { "Sid": "Lambda", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:*:111122223333:function:OneAthenaLambdaFunction", "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction" ] }, { "Sid": "S3", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::MyLambdaSpillBucket", "arn:aws:s3:::MyLambdaSpillBucket/*", "arn:aws:s3:::MyQueryResultsBucket", "arn:aws:s3:::MyQueryResultsBucket/*" ] } ] }
Spiegazione delle autorizzazioni
Operazioni consentite Spiegazione
"athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution"

Autorizzazioni Athena richieste per eseguire query federate.

"athena:GetDataCatalog", "athena:GetQueryExecution," "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution"

Autorizzazioni Athena necessarie per eseguire query di visualizzazione federate. L'GetDataCatalogazione è necessaria per le viste.

"lambda:InvokeFunction"
Consente alle interrogazioni di richiamare le AWS Lambda funzioni per le AWS Lambda funzioni specificate nel Resource blocco. Ad esempioarn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction, where MyAthenaLambdaFunctionspecifica il nome di una funzione Lambda da richiamare. Come mostrato nell'esempio, è possibile specificare più funzioni.
"s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:PutObject"

Le s3:GetBucketLocation autorizzazioni s3:ListBucket e sono necessarie per accedere al bucket di output delle query per i principali IAM in esecuzione. StartQueryExecution

s3:PutObjects3:ListMultipartUploadParts, e s3:AbortMultipartUpload consentono di scrivere i risultati delle query in tutte le sottocartelle del bucket dei risultati della query come specificato dall'identificatore di arn:aws:s3:::MyQueryResultsBucket/* risorsa, dove si trova il bucket dei risultati MyQueryResultsBucketdella query Athena. Per ulteriori informazioni, consulta Utilizzare i risultati delle query e le query recenti.

s3:GetObjectconsente la lettura dei risultati delle query e della cronologia delle query per la risorsa specificata comearn:aws:s3:::MyQueryResultsBucket, where MyQueryResultsBucketè il bucket dei risultati delle query Athena.

s3:GetObjectconsente inoltre la lettura dalla risorsa specificata come"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*", where MyLambdaSpillPrefixè specificata nella configurazione della funzione o delle funzioni Lambda richiamate.

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/*" } ] }
Spiegazione delle autorizzazioni
Operazioni consentite Spiegazione
"lambda:CreateFunction", "lambda:ListVersionsByFunction", "lambda:GetFunctionConfiguration", "lambda:PutFunctionConcurrency", "lambda:ListTags", "lambda:DeleteFunction", "lambda:GetAlias", "lambda:InvokeFunction", "lambda:GetFunction", "lambda:ListAliases", "lambda:UpdateFunctionConfiguration", "lambda:UpdateFunctionCode", "lambda:AddPermission", "lambda:DeleteFunctionConcurrency", "lambda:RemovePermission", "lambda:GetPolicy" "lambda:GetAccountSettings", "lambda:ListFunctions", "lambda:ListEventSourceMappings",

Consente la creazione e la gestione delle funzioni Lambda elencate come risorse. Nell'esempio, viene utilizzato un prefisso di nome nell'identificatore di risorsaarn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunctionsPrefix*, dove MyAthenaLambdaFunctionsPrefixviene utilizzato un prefisso condiviso nel nome di un gruppo di funzioni Lambda in modo che non sia necessario specificarle singolarmente come risorse. È possibile specificare una o più risorse della funzione Lambda.

"s3:GetObject"
Consente la lettura di un bucket che AWS Serverless Application Repository richiede quanto specificato dall'identificatore di risorsa. arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/* Questo bucket può essere specifico per l'account.
"cloudformation:*"

Consente la creazione e la gestione degli AWS CloudFormation stack specificati dalla risorsa MyCF. StackPrefix Questi stack e stackset sono il modo AWS Serverless Application Repository in cui distribuisce connettori e UDF.

"serverlessrepo:*"
Consente la ricerca, la visualizzazione, la pubblicazione e l'aggiornamento delle applicazioni nel campo specificato dall'identificatore di AWS Serverless Application Repository risorsa. arn:aws:serverlessrepo:*:*:applications/*