Zugriff auf Athena zulassenUDFs: Beispielrichtlinien - Amazon Athena

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zugriff auf Athena zulassenUDFs: Beispielrichtlinien

Die Beispiele für Berechtigungsrichtlinien in diesem Thema veranschaulichen die erforderlichen zulässigen Aktionen und die Ressourcen, für die sie zulässig sind. Prüfen Sie diese Richtlinien sorgfältig und ändern Sie sie entsprechend Ihren Anforderungen, bevor Sie IAM Identitäten ähnliche Berechtigungsrichtlinien zuordnen.

Beispiel
— Erlaubt einem IAM Principal, Abfragen auszuführen und zurückzugeben, die eine Athena-Anweisung UDF enthalten

Die folgende identitätsbasierte Berechtigungsrichtlinie ermöglicht Aktionen, die ein Benutzer oder ein anderer IAM Prinzipal benötigt, um Abfragen auszuführen, die UDF Athena-Anweisungen verwenden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "lambda:InvokeFunction", "athena:GetQueryResults", "s3:ListMultipartUploadParts", "athena:GetWorkGroup", "s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload", "athena:StopQueryExecution", "athena:GetQueryExecution", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:athena:*:MyAWSAcctId:workgroup/MyAthenaWorkGroup", "arn:aws:s3:::MyQueryResultsBucket/*", "arn:aws:lambda:*:MyAWSAcctId:function:OneAthenaLambdaFunction", "arn:aws:lambda:*:MyAWSAcctId:function:AnotherAthenaLambdaFunction" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "athena:ListWorkGroups", "Resource": "*" } ] }
Erläuterung der Berechtigungen
Erlaubte Aktionen Erklärung
"athena:StartQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StopQueryExecution", "athena:GetQueryExecution",

Athena-Berechtigungen, die zum Ausführen von Abfragen in der MyAthenaWorkGroup-Arbeitsgruppe erforderlich sind.

"s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload"

s3:PutObjectund s3:AbortMultipartUpload ermöglichen das Schreiben von Abfrageergebnissen in alle Unterordner des Abfrageergebnis-Buckets, wie in der arn:aws:s3:::MyQueryResultsBucket/* Ressourcen-ID angegeben, wobei MyQueryResultsBucket ist der Bucket mit den Athena-Abfrageergebnissen. Weitere Informationen finden Sie unter Arbeiten Sie mit Abfrageergebnissen und aktuellen Abfragen.

s3:GetObjectermöglicht das Lesen von Abfrageergebnissen und dem Abfrageverlauf für die angegebene Ressourcearn:aws:s3:::MyQueryResultsBucket, wobei MyQueryResultsBucket ist der Bucket mit den Athena-Abfrageergebnissen. Weitere Informationen finden Sie unter Arbeiten Sie mit Abfrageergebnissen und aktuellen Abfragen.

s3:GetObjectermöglicht auch das Lesen aus der Ressource, die als angegeben ist"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*", wobei MyLambdaSpillPrefix ist in der Konfiguration der Lambda-Funktion oder der aufgerufenen Funktionen angegeben.

"lambda:InvokeFunction"
Ermöglicht Abfragen, die im Block angegebenen AWS Lambda Funktionen aufzurufen. Resource Zum Beispielarn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction, wo MyAthenaLambdaFunction gibt den Namen einer Lambda-Funktion an, die aufgerufen werden soll. Es können mehrere Funktionen angegeben werden, wie im Beispiel gezeigt.
Beispiel
— Erlaube einem IAM Principal, eine Athena zu erstellen UDF
{ "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/*" } ] }
Erläuterung der Berechtigungen
Erlaubte Aktionen Erklärung
"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",

Erlauben der Erstellung und Verwaltung von Lambda-Funktionen, die als Ressourcen aufgeführt sind. In diesem Beispiel wird ein Namenspräfix in der Ressourcen-ID verwendetarn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunctionsPrefix*, wobei MyAthenaLambdaFunctionsPrefix ist ein gemeinsames Präfix, das im Namen einer Gruppe von Lambda-Funktionen verwendet wird, sodass sie nicht einzeln als Ressourcen angegeben werden müssen. Sie können eine oder mehrere Lambda-Funktionsressourcen angeben.

"s3:GetObject"
Erlaubt das Lesen eines Buckets, AWS Serverless Application Repository dessen Anforderungen in der Ressourcen-ID arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/* angegeben sind.
"cloudformation:*"

Ermöglicht die Erstellung und Verwaltung von AWS CloudFormation Stacks, die durch die Ressource spezifiziert werden MyCFStackPrefix. Mit diesen Stacks und Stacksets werden Konnektoren und AWS Serverless Application Repository bereitgestellt. UDFs

"serverlessrepo:*"
Ermöglicht das Suchen, Anzeigen, Veröffentlichen und Aktualisieren von Anwendungen in der AWS Serverless Application Repository, die durch die Ressourcen-ID angegeben sind. arn:aws:serverlessrepo:*:*:applications/*