Beispiel für IAM-Berechtigungsrichtlinien zum Zulassen von Athena Federated Query - 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.

Beispiel für IAM-Berechtigungsrichtlinien zum Zulassen von Athena Federated Query

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

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

Beispiel
– Ausführen und Zurückgeben von Ergebnissen durch einen IAM-Prinzipal mithilfe von Athena Federated Query zulassen

Die folgende identitätsbasierte Berechtigungsrichtlinie ermöglicht Aktionen, die ein Benutzer oder ein anderer IAM-Prinzipal erfordert, 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. Beispiel: where arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction MyAthenaLambdaFunctiongibt 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 ausgeführte IAM-Prinzipale erforderlich. StartQueryExecution

s3:PutObjects3:ListMultipartUploadParts, und s3:AbortMultipartUpload ermöglichen das Schreiben von Abfrageergebnissen in alle Unterordner des Abfrageergebnis-Buckets, wie durch die arn:aws:s3:::MyQueryResultsBucket/* Ressourcen-ID angegeben, wobei sich der Athena-Abfrageergebnis-Bucket MyQueryResultsBucketbefindet. 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, wo sich der Athena-Abfrageergebnis-Bucket MyQueryResultsBucketbefindet.

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

Beispiel
– Erlauben Sie 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/*" } ] }
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 MyAthenaLambdaFunctionsPrefixein 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 StackPrefixmyCF spezifiziert werden. Mit diesen Stacks und Stacksets werden Konnektoren und UDFs bereitgestellt. AWS Serverless Application Repository

"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/*