Autorisation d'accès à un connecteur de données Athena pour un métastore Hive externe - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Autorisation d'accès à un connecteur de données Athena pour un métastore Hive externe

Les exemples de politique d'autorisation présentés dans cette rubrique illustrent les actions autorisées requises et les ressources pour lesquelles elles sont autorisées. Examinez attentivement ces politiques et modifiez-les en fonction de vos besoins avant d'attacher des politiques d'autorisation similaires aux identités IAM.

Exemple
 – Autoriser un principal IAM à interroger des données à l'aide du connecteur de données Athena pour le métastore Hive externe

La politique suivante est attachée aux principals IAM en plus de Politique gérée par AWS : AmazonAthenaFullAccess, qui accorde un accès complet aux actions Athena.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:GetLayerVersion", "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunction", "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction", "arn:aws:lambda:*:111122223333:layer:MyAthenaLambdaLayer:*" ] }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation" } ] }
Explication des autorisations
Actions autorisées Explication
"s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload"

Les actions s3 permettent de lire et d'écrire sur la ressource spécifiée comme "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation", où MyLambdaSpillLocation identifie le compartiment de déversement spécifié dans la configuration de la ou des fonctions Lambda appelées. L'identificateur de ressource arn:aws:lambda:*:MyAWSAcctId:layer:MyAthenaLambdaLayer:* n'est requis que si vous utilisez une couche Lambda pour créer des dépendances d'exécution personnalisées afin de réduire la taille de l'artefact de fonction au moment du déploiement. Le caractère * en dernière position est un caractère générique pour la version de la couche.

"lambda:GetFunction", "lambda:GetLayerVersion", "lambda:InvokeFunction"
Permet aux requêtes d'invoquer les fonctions AWS Lambda spécifiées dans le bloc Resource. Par exemple, arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction, où MyAthenaLambdaFunction spécifie le nom d'une fonction Lambda à appeler. Plusieurs fonctions peuvent être spécifiées comme indiqué dans l'exemple.
Exemple
 – Autoriser un principal IAM à créer un connecteur de données Athena pour le métastore Hive externe

La politique suivante est attachée aux principals IAM en plus de Politique gérée par AWS : AmazonAthenaFullAccess, qui accorde un accès complet aux actions Athena.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:ListFunctions", "lambda:GetLayerVersion", "lambda:InvokeFunction", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:PublishLayerVersion", "lambda:DeleteLayerVersion", "lambda:UpdateFunctionConfiguration", "lambda:PutFunctionConcurrency", "lambda:DeleteFunctionConcurrency" ], "Resource": "arn:aws:lambda:*:111122223333: function: MyAthenaLambdaFunctionsPrefix*" } ] }

Explication des autorisations

Permet aux requêtes d'appeler les fonctions AWS Lambda pour les fonctions AWS Lambda spécifiées dans le bloc Resource. Par exemple, arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction, où MyAthenaLambdaFunction spécifie le nom d'une fonction Lambda à appeler. Plusieurs fonctions peuvent être spécifiées comme indiqué dans l'exemple.