Configuration de l’accès aux bases de données et aux tables dans le AWS Glue Data Catalog
Si vous utilisez AWS Glue Data Catalog avec Amazon Athena, vous pouvez définir des politiques au niveau des ressources pour les bases de données et les catalogues d'objets suivants qui sont utilisés dans Athena.
Note
Cette rubrique est consacrée à la sécurité au niveau des bases de données et des tables. Pour plus d’informations sur la sécurité au niveau des colonnes, des lignes et des cellules, consultez Data filtering and cell-level security in Lake Formation.
Vous définissez les autorisations au niveau des ressources dans les politiques IAM basées sur l'identité.
Important
Cette section décrit les autorisations au niveau des ressources dans les politiques IAM basées sur l'identité. Celles-ci sont différentes des politiques basées sur les ressources. Pour plus d'informations sur les différences, consultez la rubrique Politiques basées sur l'identité et politiques basées sur les ressources du Guide de l'utilisateur IAM.
Pour plus d'informations sur ces tâches, consultez les rubriques suivantes :
| Pour exécuter cette tâche | Consultez la rubrique suivante : |
|---|---|
| Création d’une politique IAM qui définit l’accès aux ressources | Création de politiques IAM dans le Guide de l'utilisateur IAM. |
| En savoir plus sur les politiques basées sur l'identité (IAM) utilisées dans AWS Glue | Politique basées sur l'identité (politiques IAM) dans le Guide du développeur AWS Glue. |
Dans cette section
Limitations
Tenez compte des restrictions suivantes lorsque vous utilisez le contrôle d’accès au niveau des bases de données et des tables pour le AWS Glue Data Catalog et Athena :
-
Les groupes de travail Athena compatibles avec IAM Identity Center nécessitent que Lake Formation soit configuré pour utiliser les identités IAM Identity Center. Pour obtenir plus d’informations sur la configuration, consultez la rubrique Integrating IAM Identity Center dans le Guide du développeur AWS Lake Formation.
-
Vous pouvez limiter l'accès uniquement aux bases de données et tables. Ces contrôles s’appliquent au niveau des tables. Vous ne pouvez pas limiter l'accès aux partitions individuelles d'une table. Pour de plus amples informations, consultez À propos du contrôle d’accès pour les partitions et les versions de table dans AWS Glue.
-
Le AWS Glue Data Catalog contient les ressources suivantes :
CATALOG,DATABASE,TABLEetFUNCTION.Note
Dans cette liste, les ressources communes à Athena et au AWS Glue Data Catalog sont
TABLE,DATABASEetCATALOGpour chaque compte.Functionest spécifique à AWS Glue. Pour supprimer des actions dans Athena, vous devez inclure des autorisations dans les actions AWS Glue. Consultez Exemples d’autorisations au niveau des bases de données et des tables.La hiérarchie est la suivante :
CATALOGest un ancêtre de toutes lesDATABASESdans chaque compte, et chaqueDATABASEest un ancêtre pour toutes sesTABLESetFUNCTIONS. Par exemple, pour une table nomméetable_testqui appartient à une base de donnéesdbdans le catalogue de votre compte, ses ancêtres sontdbet le catalogue dans votre compte. Pour la base de donnéesdb, son ancêtre est le catalogue dans votre compte, et ses descendants sont les tables et les fonctions. Pour plus d'informations sur la structure hiérarchique des ressources, consultez la section relative à la liste des ARN dans le catalogue de données dans le Guide du développeur AWS Glue. -
Pour toute action Athena de non-suppression sur une ressource, telle que
CREATE DATABASE,CREATE TABLE,SHOW DATABASE,SHOW TABLEouALTER TABLE, vous devez disposer des autorisations nécessaires pour appeler cette action sur la ressource (table ou base de données) et tous les ancêtres de la ressource dans le catalogue de données. Par exemple, pour une table, ses ancêtres sont la base de données à laquelle elle appartient, et le catalogue du compte. Pour une base de données, son ancêtre est le catalogue du compte. Consultez Exemples d’autorisations au niveau des bases de données et des tables. -
Pour une action de suppression dans Athena, telle que
DROP DATABASEouDROP TABLE, vous devez également disposer des autorisations nécessaires pour appeler l'action de suppression sur tous les ancêtres et descendants de la ressource dans le catalogue de données. Par exemple, pour supprimer une base de données, vous avez besoin des autorisations sur la base de données, du catalogue, qui est son ancêtre, et de toutes les tables et fonctions définies par l'utilisateur, qui sont ses descendants. Une table n'a pas de descendants. Pour que vous puissiez exécuterDROP TABLE, vous avez besoin des autorisations pour cette action sur la table, de la base de données à laquelle elle appartient et du catalogue. Consultez Exemples d’autorisations au niveau des bases de données et des tables.
Configuration de l’accès AWS Glue à votre catalogue et votre base de données par Région AWS
Pour qu'Athena puisse travailler avec le AWS Glue, une politique autorisant l'accès à votre base de données et à AWS Glue Data Catalog de votre compte par Région AWS est requise. Pour créer des bases de données, l'autorisation CreateDatabase est également requise. Dans l'exemple de politique suivant, remplacez la Région AWS, l'ID de Compte AWS et le nom de la base de données par les vôtres.
{ "Sid": "DatabasePermissions", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/default" ] }
À propos du contrôle d’accès pour les partitions et les versions de table dans AWS Glue
Dans AWS Glue, les tables peuvent avoir des partitions et des versions. Les versions et partitions de table ne sont pas considérées comme des ressources indépendantes dans AWS Glue. L'accès aux versions et partitions de table est accordé en octroyant l'accès à la table et aux ressources ancêtres de la table.
Les autorisations d’accès suivantes s’appliquent pour le contrôle d’accès :
-
Les contrôles s’appliquent au niveau des tables. Vous pouvez limiter l'accès uniquement aux bases de données et tables. Par exemple, si vous autorisez l'accès à une table partitionnée, cet accès s'applique à toutes les partitions de la table. Vous ne pouvez pas limiter l'accès aux partitions individuelles d'une table.
Important
Pour exécuter des actions dans AWS Glue sur des partitions, des autorisations pour les actions de partition sont requises au niveau du catalogue, de la base de données et de la table. L'accès aux partitions d'une table n'est pas suffisant. Par exemple, pour exécuter
GetPartitionssur la tablemyTablede la base de donnéesmyDB, vous devez accorder des autorisationsglue:GetPartitionssur le catalogue, la base de donnéesmyDBet les ressourcesmyTable. -
Les contrôles d’accès ne s’appliquent pas aux versions de table. Comme pour les partitions, l'accès aux versions précédentes d'une table est accordé par le biais de l'accès aux API de version de table dans AWS Glue sur la table et aux ancêtres de la table.
Pour plus d'informations sur les autorisations sur les actions AWS Glue, consultez la rubrique Autorisations d'API AWS Glue : référence des actions et ressources dans le Guide du développeur AWS Glue.
Exemples d’autorisations au niveau des bases de données et des tables
Le tableau suivant présente des exemples de politiques IAM basées sur l’identité qui permettent l’accès aux bases de données et aux tables dans Athena. Nous vous recommandons de commencer avec ces exemples et, en fonction de vos besoins, ajustez-les pour autoriser ou refuser des actions spécifiques à certaines bases de données et tables.
Ces exemples incluent l'accès aux bases de données et aux catalogues afin qu'Athena et AWS Glue puissent travailler ensemble. Pour plusieurs régions AWS, incluez des politiques similaires pour chacune de vos bases de données de catalogues, une ligne pour chaque région.
En outre, remplacez la base de données example_db et la table test par les noms de votre base de données et de votre table.
| Instruction DDL | Exemple d'une politique d'accès IAM accordant l'accès à la ressource |
|---|---|
| ALTER DATABASE | Permet de modifier les propriétés de la base de données example_db.
|
| CREATE DATABASE | Permet de créer la base de données nommée example_db.
|
| CREATE TABLE | Permet de créer une table nommée test dans la base de données example_db.
|
| DROP DATABASE | Permet de supprimer la base de données example_db, y compris toutes ses tables.
|
| DROP TABLE | Permet de supprimer une table partitionnée nommée test dans la base de données example_db. Si votre table n'a pas de partitions, n'incluez pas d'actions de partition.
|
| MSCK REPAIR TABLE | Permet de mettre à jour les métadonnées du catalogue après avoir ajouté des partitions compatibles Hive à la table nommée test dans la base de données example_db.
|
| SHOW DATABASES | Permet de répertorier toutes les bases de données dans le AWS Glue Data Catalog.
|
| SHOW TABLES | Permet de répertorier toutes les tables de la base de données example_db.
|