Contrôle d'accès aux données sous-jacent - AWS Lake Formation

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.

Contrôle d'accès aux données sous-jacent

Lorsqu'un AWS service intégré demande l'accès aux données d'un site Amazon S3 dont l'accès est contrôlé par AWS Lake Formation, Lake Formation fournit des informations d'identification temporaires pour accéder aux données.

Pour permettre à Lake Formation de contrôler l'accès aux données sous-jacentes sur un site Amazon S3, vous devez enregistrer cet emplacement auprès de Lake Formation.

Après avoir enregistré un site Amazon S3, vous pouvez commencer à accorder les autorisations Lake Formation suivantes :

  • Autorisations d'accès aux données (SELECT,INSERT,) et DELETE) sur les tables du catalogue de données qui pointent vers cet emplacement.

  • Autorisations de localisation des données à cet emplacement.

Les autorisations de localisation des données de Lake Formation contrôlent la possibilité de créer des ressources de catalogue de données pointant vers des emplacements Amazon S3 particuliers. Les autorisations de localisation des données fournissent un niveau de sécurité supplémentaire aux emplacements du lac de données. Lorsque vous accordez l'ALTERautorisation CREATE_TABLE ou à un principal, vous accordez également des autorisations de localisation des données afin de limiter les emplacements pour lesquels le principal peut créer ou modifier des tables de métadonnées.

Les emplacements Amazon S3 sont des compartiments ou des préfixes situés sous un compartiment, mais pas des objets Amazon S3 individuels.

Vous pouvez accorder des autorisations de localisation des données à un directeur à l'aide de la console Lake Formation, de l'API ou du AWS CLI. La forme générale d'une subvention est la suivante :

grant DATA_LOCATION_ACCESS to principal on S3 location [with grant option]

Si vous incluezwith grant option, le bénéficiaire peut accorder les autorisations à d'autres directeurs.

N'oubliez pas que les autorisations de Lake Formation fonctionnent toujours en combinaison avec les autorisations AWS Identity and Access Management (IAM) pour un contrôle d'accès précis. Pour les autorisations de lecture/écriture sur les données Amazon S3 sous-jacentes, les autorisations IAM sont accordées comme suit :

Lorsque vous enregistrez un emplacement, vous spécifiez un rôle IAM qui accorde des autorisations de lecture/écriture sur cet emplacement. Lake Formation assume ce rôle lorsqu'il fournit des informations d'identification temporaires aux AWS services intégrés. Un rôle typique peut être associé à la politique suivante, dans laquelle l'emplacement enregistré est le compartimentawsexamplebucket.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket" ] } ] }

Lake Formation fournit un rôle lié à un service que vous pouvez utiliser lors de votre inscription pour créer automatiquement de telles politiques. Pour plus d’informations, consultez Utilisation de rôles liés à un service pour Lake Formation.

Par conséquent, l'enregistrement d'un emplacement Amazon S3 accorde les s3: autorisations IAM requises pour cet emplacement, les autorisations étant spécifiées par le rôle utilisé pour enregistrer l'emplacement.

Important

Évitez d'enregistrer un compartiment Amazon S3 sur lequel les paiements par les demandeurs sont activés. Pour les buckets enregistrés auprès de Lake Formation, le rôle utilisé pour enregistrer le bucket est toujours considéré comme le demandeur. Si un autre AWS compte accède au bucket, l'accès aux données est facturé au propriétaire du bucket si le rôle appartient au même compte que le propriétaire du bucket.

Pour accéder en lecture/écriture aux données sous-jacentes, outre les autorisations de Lake Formation, les principaux ont également besoin de l'autorisation IAM suivante :

lakeformation:GetDataAccess

Avec cette autorisation, Lake Formation accède à la demande d'informations d'identification temporaires pour accéder aux données.

Note

Amazon Athena exige que l'utilisateur dispose de cette autorisation. lakeformation:GetDataAccess Les autres services intégrés ont besoin de leur rôle d'exécution sous-jacent pour être lakeformation:GetDataAccess autorisés.

Cette autorisation est incluse dans les politiques suggérées dans leRéférence des personnalités de Lake Formation et des autorisations IAM.

En résumé, pour permettre aux responsables de Lake Formation de lire et d'écrire des données sous-jacentes avec un accès contrôlé par les autorisations de Lake Formation :

  • Enregistrez les sites Amazon S3 contenant les données auprès de Lake Formation.

  • Les principaux responsables qui créent des tables de catalogue de données pointant vers des emplacements de données sous-jacents doivent disposer d'autorisations de localisation des données.

  • Les directeurs qui lisent et écrivent les données sous-jacentes doivent disposer des autorisations d'accès aux données de Lake Formation dans les tables du catalogue de données qui pointent vers les emplacements des données sous-jacentes.

  • Les directeurs qui lisent et écrivent les données sous-jacentes doivent disposer de l'autorisation lakeformation:GetDataAccess IAM lorsque l'emplacement des données sous-jacentes est enregistré auprès de Lake Formation.

Note

Le modèle d'autorisations de Lake Formation n'empêche pas l'accès aux sites Amazon S3 via l'API ou la console Amazon S3 si vous y avez accès via les politiques IAM ou Amazon S3. Vous pouvez associer des politiques IAM aux principaux pour bloquer cet accès.

En savoir plus sur les autorisations de localisation des données

Les autorisations de localisation des données régissent le résultat des opérations de création et de mise à jour sur les bases de données et les tables du catalogue de données. Les règles sont les suivantes :

  • Un principal doit disposer d'autorisations de localisation de données explicites ou implicites sur un emplacement Amazon S3 pour créer ou mettre à jour une base de données ou une table spécifiant cet emplacement.

  • L'autorisation explicite DATA_LOCATION_ACCESS est accordée à l'aide de la console, de l'API ou AWS CLI.

  • Des autorisations implicites sont accordées lorsqu'une base de données possède une propriété d'emplacement qui pointe vers un emplacement enregistré, que le principal dispose de l'CREATE_TABLEautorisation sur la base de données et que le principal essaie de créer une table à cet emplacement ou à un emplacement enfant.

  • Si un principal obtient des autorisations de localisation des données sur un emplacement, il dispose des autorisations de localisation des données sur tous les emplacements enfants.

  • Un principal n'a pas besoin d'autorisations de localisation des données pour effectuer des opérations de lecture/écriture sur les données sous-jacentes. Il suffit d'avoir les autorisations SELECT d'accès aux INSERT données. Les autorisations de localisation des données s'appliquent uniquement à la création de ressources de catalogue de données pointant vers l'emplacement.

Examinez le scénario illustré dans le schéma suivant.

Hiérarchie des dossiers et deux bases de données, les bases de données A et B, la base de données B pointant vers le dossier du service client.

Dans ce schéma :

  • Les compartiments Amazon S3 ProductsFinance, et Customer Service sont enregistrés auprès de Lake Formation.

  • Database An'a aucune propriété de localisation, Database B mais possède une propriété de localisation qui pointe vers le Customer Service bucket.

  • L'utilisateur datalake_user possède CREATE_TABLE les deux bases de données.

  • L'utilisateur datalake_user a obtenu des autorisations de localisation des données uniquement sur le Products compartiment.

Voici les résultats obtenus lorsque l'utilisateur datalake_user essaie de créer une table de catalogue dans une base de données donnée à un emplacement donné.

Emplacement où datalake_user essaie de créer une table
Base de données et localisation Succès ou échec Raison
Base de données A à Finance/Sales Échoue Aucune autorisation de localisation des données
Base de données A à Products Succès Dispose d'une autorisation de localisation des données
Base de données A à HR/Plans Succès L'emplacement n'est pas enregistré
Base de données B à Customer Service/Incidents Succès La base de données possède une propriété de localisation à Customer Service

Pour plus d’informations, consultez les ressources suivantes :