Considérations et restrictions concernant l’interrogation de données enregistrées dans Lake Formation - Amazon Athena

Considérations et restrictions concernant l’interrogation de données enregistrées dans Lake Formation

Tenez compte des points suivants lorsque vous utilisez Athena pour interroger des données enregistrées dans Lake Formation. Pour plus d'informations, consultez la rubrique Problèmes connus liés à AWS Lake Formation du Guide du développeur AWS Lake Formation.

Métadonnées de colonne visibles pour les utilisateurs non autorisés dans certaines circonstances avec Avro et SerDe personnalisé

L'autorisation au niveau des colonnes de Lake Formation empêche les utilisateurs d'accéder aux données des colonnes pour lesquelles ils ne disposent pas d'autorisations Lake Formation. Toutefois, dans certaines situations, les utilisateurs peuvent accéder aux métadonnées décrivant toutes les colonnes de la table, y compris les colonnes pour lesquelles ils ne disposent pas d'autorisations pour les données.

Cela se produit lorsque les métadonnées de cette colonne sont stockées dans les propriétés de table des tables qui utilisent le format de stockage Apache Avro ou un sérialiseur/désérialiseur (SerDe) personnalisé dans lequel le schéma de table est défini dans les propriétés de table avec la définition SerDe. Lorsque vous utilisez Athena avec Lake Formation, nous vous recommandons d'examiner le contenu des propriétés des tables que vous enregistrez dans Lake Formation et, dans la mesure du possible, de limiter les informations stockées dans les propriétés des tables pour éviter que les métadonnées sensibles ne soient visibles par les utilisateurs.

Présentation de Lake Formation et des vues

Pour les données enregistrées dans Lake Formation, un utilisateur Athena ne peut créer une VIEW que s'il dispose des autorisations Lake Formation pour les tables, les colonnes et les emplacements de données Simple Storage Service (Amazon S3) sources sur lesquels la VIEW est basée. Une fois qu'une VIEW est créée dans Athena, les autorisations Lake Formation peuvent être appliquées à la VIEW. Les autorisations au niveau des colonnes ne sont pas disponibles pour un VIEW. Les utilisateurs qui disposent d'autorisations Lake Formation pour une VIEW mais qui ne disposent pas d'autorisations pour la table et les colonnes sur lesquelles la vue est basée ne peuvent pas utiliser la VIEW pour interroger les données. Cependant, les utilisateurs disposant de cette combinaison d'autorisations peuvent utiliser des instructions telles que DESCRIBE VIEW, SHOW CREATE VIEW et SHOW COLUMNS pour afficher les métadonnées VIEW. Pour cette raison, veillez à aligner les autorisations de Lake Formation pour chaque VIEW sur les autorisations de la table sous-jacente. Les filtres de cellules définis sur une table ne s'appliquent pas à une VIEW pour cette table. Les noms des liens de ressource doivent avoir le même nom que la ressource dans le compte d'origine. Des limites supplémentaires s'appliquent à l'utilisation de vues dans une configuration intrecomptes. Pour de plus amples informations sur la configuration des autorisations pour les vues partagées entre comptes, consultez Configuration de l’accès intercompte au catalogue de données.

Prise en charge des DDL Iceberg

Athena ne prend actuellement pas en charge les opérations DDL sur les tables Iceberg dont l’emplacement est enregistré dans Lake Formation. Toute tentative d’exécution d’une requête DDL sur l’une de ces tables Iceberg peut renvoyer une erreur de refus d’accès Amazon S3 ou échouer avec une expiration de la requête. Pour effectuer des opérations DDL sur des tables Iceberg, l’utilisateur doit disposer d’un accès direct à l’emplacement de ces tables depuis Amazon S3.

Contrôle d'accès précis de Lake Formation et groupes de travail Athena

Les utilisateurs du même groupe de travail Athena peuvent voir les données que le contrôle d'accès précis de Lake Formation a configurées pour être accessibles au groupe de travail. Pour plus d'informations sur l'utilisation du contrôle d'accès précis dans Lake Formation, voir Gérer le contrôle d'accès précis à l'aide de AWS Lake Formation sur le blog AWS Big Data.

Emplacement des résultats de la requête Athena dans Simple Storage Service (Amazon S3) non enregistré dans Lake Formation

Les emplacements des résultats des requêtes dans Simple Storage Service (Amazon S3) pour Athena ne peuvent pas être enregistrés dans Lake Formation. Les autorisations Lake Formation ne limitent pas l’accès à ces emplacements. Si vous n’appliquez pas de limite d’accès, les utilisateurs Athena peuvent accéder aux fichiers de résultats des requêtes et aux métadonnées sans disposer d’autorisations Lake Formation sur les données. Pour éviter cela, nous vous recommandons d'utiliser des groupes de travail pour spécifier l'emplacement des résultats des requêtes et d'aligner l'appartenance à un groupe de travail sur les autorisations de Lake Formation. Vous pouvez ensuite utiliser les politiques d'autorisation IAM pour limiter l'accès aux emplacements des résultats des requêtes. Pour plus d'informations sur les résultats des requêtes, voir Utilisation des résultats des requêtes et des requêtes récentes.

Utilisation des groupes de travail Athena pour limiter l'accès à l'historique des requêtes

L'historique des requêtes d'Athena présente une liste des requêtes enregistrées et des chaînes de requête complètes. À moins que vous n'utilisiez des groupes de travail pour séparer l'accès aux historiques de requêtes, les utilisateurs d'Athena qui ne sont pas autorisés à interroger les données dans Lake Formation peuvent visualiser les chaînes de requêtes exécutées sur ces données, y compris les noms de colonnes, les critères de sélection, etc. Nous vous recommandons d'utiliser des groupes de travail pour séparer les historiques de requêtes, et d'aligner l'appartenance à un groupe de travail Athena sur les autorisations de Lake Formation pour en limiter l'accès. Pour de plus amples informations, consultez Utilisation de groupes de travail pour contrôler l’accès aux requêtes et les coûts.

Interrogation des tables chiffrées avec CSE_KMS enregistrées dans Lake Formation

Athena ne permet pas d’interroger les tables au format de table ouvert (OTF), par exemple les tables Apache Iceberg, qui présentent les caractéristiques suivantes :

  • Les tables basées sur des emplacements Amazon S3 enregistrés dans Lake Formation.

  • Les objets Amazon S3 chiffrés à l’aide du chiffrement côté client (CSE).

  • Le chiffrement utilise des clés AWS KMS gérées par le client (CSE_KMS).

Pour interroger des tables dans un format autre que OTF (chiffrées à l’aide d’une clé CSE_KMS), ajoutez le bloc suivant à la politique de la clé AWS KMS utilisée pour le chiffrement CSE. <KMS_KEY_ARN> correspond à l’ARN de la clé AWS KMS qui chiffre les données. <IAM-ROLE-ARN> correspond à l’ARN du rôle IAM qui enregistre l’emplacement Amazon S3 dans Lake Formation.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "kms:Decrypt", "Resource": "<KMS-KEY-ARN>", "Condition": { "ArnLike": { "aws:PrincipalArn": "<IAM-ROLE-ARN>" } } }

Les emplacements des données enregistrées dans Lake Formation doivent se trouver dans des sous-répertoires de table

Les tables partitionnées enregistrées dans Lake Formation doivent avoir des données partitionnées dans des répertoires qui sont des sous-répertoires de la table dans Simple Storage Service (Amazon S3). Par exemple, une table avec l'emplacement s3://amzn-s3-demo-bucket/mytable et les partitions s3://amzn-s3-demo-bucket/mytable/dt=2019-07-11, s3://amzn-s3-demo-bucket/mytable/dt=2019-07-12, etc. peut être enregistrée dans Lake Formation et interrogée à l'aide d'Athena. D'autre part, une table dont l'emplacement s3://amzn-s3-demo-bucket/mytable et les partitions se trouvent à s3://amzn-s3-demo-bucket/dt=2019-07-11, s3://amzn-s3-demo-bucket/dt=2019-07-12, etc., ne peut pas être enregistrée dans Lake Formation. Comme ces partitions ne sont pas des sous-répertoires de s3://amzn-s3-demo-bucket/mytable, elles ne peuvent pas non plus être lues par Athena.

Les requêtes de type CTAS (Create Table As Select) nécessitent des autorisations d'écriture sur Simple Storage Service (Amazon S3)

Les instructions CTAS (Create Table As Statements) nécessitent un accès en écriture à l'emplacement Simple Storage Service (Amazon S3) des tables. Pour exécuter des requêtes CTAS sur des données enregistrées dans Lake Formation, les utilisateurs d'Athena doivent disposer d'autorisations IAM leur permettant d'écrire dans la table des emplacements Simple Storage Service (Amazon S3), en plus des autorisations Lake Formation appropriées leur permettant de lire les emplacements des données. Pour de plus amples informations, consultez Création d’une table à partir des résultats des requêtes (CTAS).

L'autorisation DESCRIBE est requise pour la base de données par défaut

L’autorisation Lake Formation DESCRIBE sur la base de données default est requise pour que Lake Formation puisse la visualiser. L'exemple de commande AWS CLI suivant accorde l'autorisation DESCRIBE pour la base de données default à l'utilisateur datalake_user1 du compte AWS 111122223333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DESCRIBE" --resource '{ "Database": {"Name":"default"}}

Pour plus d’informations, consultez DESCRIBE dans le Guide de développement d’AWS Lake Formation.