Zugriff auf Athena Federated Query zulassen: 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 Federated Query zulassen: 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 sie Identitäten zuordnen. IAM

Informationen zum Anhängen von Richtlinien an IAM Identitäten finden Sie im Benutzerhandbuch unter Hinzufügen und Entfernen von IAM Identitätsberechtigungen. IAM

Beispiel
— Erlaubt einem IAM Principal, mithilfe von Athena Federated Query Ergebnisse auszuführen und zurückzugeben

Die folgende identitätsbasierte Berechtigungsrichtlinie ermöglicht Aktionen, die ein Benutzer oder ein anderer IAM Prinzipal benötigt, um Athena Federated Query zu verwenden. Prinzipale, die diese Aktionen ausführen dürfen, können Abfragen ausführen, die Athena-Kataloge angeben, die einer Verbunddatenquelle zugeordnet sind.

{ "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/*" ] } ] }
Erläuterung der Berechtigungen
Erlaubte Aktionen Erklärung
"athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution"

Athena-Berechtigungen, die zum Ausführen von Verbundabfragen erforderlich sind.

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

Athena-Berechtigungen, die zum Ausführen von Verbundansichtsabfragen erforderlich sind. Die GetDataCatalog Aktion ist für Ansichten erforderlich.

"lambda:InvokeFunction"
Ermöglicht Abfragen, die AWS Lambda Funktionen für die im Resource Block angegebenen AWS Lambda Funktionen aufzurufen. Zum Beispielarn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction, wo MyAthenaLambdaFunction gibt den Namen einer Lambda-Funktion an, die aufgerufen werden soll. Wie im Beispiel gezeigt, können mehrere Funktionen angegeben werden.
"s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:PutObject"

Die s3:GetBucketLocation Berechtigungen s3:ListBucket und sind für den Zugriff auf den Abfrageausgabe-Bucket für IAM ausgeführte Prinzipale erforderlich. StartQueryExecution

s3:PutObjects3:ListMultipartUploadParts, und 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.

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

Beispiel
— Erlaubt einem IAM Prinzipal, einen Datenquellen-Connector zu erstellen
{ "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 ein gemeinsames Präfix 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"
Ermöglicht das Lesen eines Buckets, der die in der Ressourcen-ID arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/* angegebenen Anforderungen AWS Serverless Application Repository benötigt. Dieser Bucket kann spezifisch für Ihr Konto sein.
"cloudformation:*"

Ermöglicht die Erstellung und Verwaltung von AWS CloudFormation Stacks, die durch die Ressource MyCFStackPrefix spezifiziert werden. Mit diesen Stacks und Stacksets werden Konnektoren und bereitgestellt. AWS Serverless Application Repository 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/*
"ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer"

Ermöglicht der erstellten Lambda-Funktion den Zugriff auf das Federation ECR Connector-Image.