Zugriff auf Athena Federated Query zulassen: Beispiel-Richtlinien
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.
| Erlaubte Aktionen | Erklärung |
|---|---|
|
Athena-Berechtigungen, die zum Ausführen von Verbundabfragen erforderlich sind. |
|
Athena-Berechtigungen, die zum Ausführen von Verbundansichtsabfragen erforderlich sind. Die Aktion |
|
Erlaubt Abfragen zum Aufruf der AWS Lambda-Funktionen für die AWS Lambda-Funktionen, die im Resource-Block angegeben sind- Beispielsweise arn:aws:lambda:*:, wobei MyAthenaLambdaFunction den Namen einer Lambda-Funktion angibt, die aufgerufen werden soll. Es können mehrere Funktionen angegeben werden, wie im Beispiel gezeigt. |
|
Die
|
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/*" }, { "Sid": "ECR", "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "arn:aws:ecr:*:*:repository/*" } ] }
| Erlaubte Aktionen | Erklärung |
|---|---|
|
Erlauben der Erstellung und Verwaltung von Lambda-Funktionen, die als Ressourcen aufgeführt sind. In diesem Beispiel wird ein Namenspräfix in der Ressourcenkennung |
|
Erlaubt das Lesen eines Buckets, der gemäß der Ressourcenbezeichnung AWS Serverless Application Repository für arn:aws:s3:::awsserverlessrepo-changesets- erforderlich ist. Dieser Bucket kann spezifisch für Ihr Konto sein. |
|
Erlaubt die Erstellung und Verwaltung von CloudFormation-Stacks, die von der Ressource |
|
Erlaubt das Suchen, Anzeigen, Veröffentlichen und Aktualisieren von Anwendungen in AWS Serverless Application Repository, die durch den Ressourcenbezeichner arn:aws:serverlessrepo:*:*:applications/* angegeben sind. |
|
Ermöglicht der erstellten Lambda-Funktion den Zugriff auf das ECR-Image des Verbund-Connectors. |