Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Filtrage des données et sécurité au niveau des cellules dans Lake Formation

Mode de mise au point
Filtrage des données et sécurité au niveau des cellules dans Lake Formation - 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.

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.

Lorsque vous accordez des autorisations à Lake Formation sur une table du catalogue de données, vous pouvez inclure des spécifications de filtrage des données afin de restreindre l'accès à certaines données dans les résultats des requêtes et les moteurs intégrés à Lake Formation. Lake Formation utilise le filtrage des données pour garantir la sécurité au niveau des colonnes, au niveau des lignes et au niveau des cellules. Vous pouvez définir et appliquer des filtres de données sur des colonnes imbriquées si vos données sources contiennent des structures imbriquées.

Grâce aux fonctionnalités de filtrage des données de Lake Formation, vous pouvez mettre en œuvre les niveaux de sécurité des données suivants.

Sécurité au niveau des colonnes

L'octroi d'autorisations sur une table du catalogue de données avec sécurité au niveau des colonnes (filtrage des colonnes) permet aux utilisateurs de n'afficher que les colonnes spécifiques et les colonnes imbriquées auxquelles ils ont accès dans la table. Prenons l'personsexemple d'une table utilisée dans plusieurs applications pour une grande entreprise de communication multirégionale. L'octroi d'autorisations sur les tables du catalogue de données avec filtrage par colonne peut empêcher les utilisateurs qui ne travaillent pas dans le service des ressources humaines de voir des informations personnelles identifiables (PII) telles qu'un numéro de sécurité sociale ou une date de naissance. Vous pouvez également définir des politiques de sécurité et n'autoriser l'accès qu'à des sous-structures partielles de colonnes imbriquées.

Sécurité au niveau des lignes

L'octroi d'autorisations sur une table du catalogue de données avec sécurité au niveau des lignes (filtrage des lignes) permet aux utilisateurs de n'afficher que les lignes de données spécifiques auxquelles ils ont accès dans la table. Le filtrage est basé sur les valeurs d'une ou de plusieurs colonnes. Vous pouvez inclure des structures de colonnes imbriquées lorsque vous définissez des expressions de filtre de ligne. Par exemple, si les différents bureaux régionaux de l'entreprise de communication disposent de leur propre service des ressources humaines, vous pouvez limiter les dossiers personnels que les employés des ressources humaines peuvent consulter uniquement aux dossiers des employés de leur région.

Sécurité au niveau des cellules

La sécurité au niveau des cellules combine le filtrage des lignes et le filtrage des colonnes pour créer un modèle d'autorisations extrêmement flexible. Si vous visualisez les lignes et les colonnes d'un tableau sous forme de grille, en utilisant la sécurité au niveau des cellules, vous pouvez restreindre l'accès à des éléments individuels (cellules) de la grille n'importe où dans les deux dimensions. En d'autres termes, vous pouvez restreindre l'accès aux différentes colonnes en fonction de la ligne. Ceci est illustré par le schéma suivant, dans lequel les colonnes restreintes sont ombrées.

Une grille est affichée avec 5 lignes et 6 colonnes. Les lignes et les colonnes ont des en-têtes tels que Col1, Col2, Row1, Row2, etc. Les cellules de la grille avec les coordonnées suivantes sont ombrées : R3, C1 ; R3, C2 ; R3, C3 ; R5, C1 ; R5 ; C2 ; R5, C5 ; R5, C6.

En reprenant l'exemple de la table des personnes, vous pouvez créer un filtre de données au niveau de la cellule qui restreint l'accès à la colonne des adresses postales si la colonne du pays est définie sur « Royaume-Uni », mais autorise l'accès à la colonne des adresses postales si la colonne du pays est définie sur « États-Unis ».

Les filtres s'appliquent uniquement aux opérations de lecture. Par conséquent, vous ne pouvez accorder que l'autorisation à la SELECT Lake Formation avec des filtres.

Sécurité au niveau des cellules sur les colonnes imbriquées

Lake Formation vous permet de définir et d'appliquer des filtres de données avec une sécurité au niveau des cellules sur des colonnes imbriquées. Cependant, les moteurs d'analyse intégrés tels qu'Amazon Athena, Amazon EMR et Amazon Redshift Spectrum permettent d'exécuter des requêtes sur des tables imbriquées gérées par Lake Formation avec une sécurité au niveau des lignes et des colonnes.

Pour connaître les limitations, veuillez consulter Limites du filtrage des données.

Filtres de données dans Lake Formation

Vous pouvez implémenter la sécurité au niveau des colonnes, des lignes et des cellules en créant des filtres de données. Vous sélectionnez un filtre de données lorsque vous accordez l'autorisation SELECT Lake Formation sur les tables. Si votre table contient des structures de colonnes imbriquées, vous pouvez définir un filtre de données en incluant ou en excluant les colonnes enfants et définir des expressions de filtre au niveau des lignes sur les attributs imbriqués.

Chaque filtre de données appartient à une table spécifique de votre catalogue de données. Un filtre de données inclut les informations suivantes :

  • Nom du filtre

  • Le catalogue IDs de la table associée au filtre

  • Nom de la table

  • Nom de la base de données contenant la table

  • Spécification des colonnes : liste de colonnes et de colonnes imbriquées (avec struct types de données) à inclure ou à exclure dans les résultats de la requête.

  • Expression de filtre de ligne : expression qui spécifie les lignes à inclure dans les résultats de la requête. Sous réserve de certaines restrictions, l'expression possède la syntaxe d'une WHERE clause du langage partiQL. Pour spécifier toutes les lignes, choisissez Accès à toutes les lignes sous Accès au niveau des lignes dans la console ou Utiliser AllRowsWildcard dans les appels d'API.

    Pour plus d'informations sur les éléments pris en charge dans les expressions de filtre de ligne, consultezSupport partiQL dans les expressions de filtre de ligne.

Le niveau de filtrage obtenu dépend de la façon dont vous renseignez le filtre de données.

  • Lorsque vous spécifiez le caractère générique « all columns » (« toutes les colonnes ») et que vous fournissez une expression de filtre de ligne, vous établissez uniquement une sécurité au niveau de la ligne (filtrage des lignes).

  • Lorsque vous incluez ou excluez des colonnes spécifiques et des colonnes imbriquées, et que vous spécifiez « toutes les lignes » à l'aide du caractère générique pour toutes les lignes, vous établissez une sécurité au niveau des colonnes (filtrage des colonnes) uniquement.

  • Lorsque vous incluez ou excluez des colonnes spécifiques et que vous fournissez également une expression de filtre de ligne, vous établissez une sécurité au niveau de la cellule (filtrage des cellules).

La capture d'écran suivante de la console Lake Formation montre un filtre de données qui effectue un filtrage au niveau des cellules. Pour les requêtes portant sur la orders table, cela restreint l'accès à la customer_name colonne et les résultats de la requête ne renvoient que les lignes où la product_type colonne contient « pharma ».

La fenêtre du filtre de données contient les champs suivants, disposés verticalement : nom du filtre de données ; base de données cible ; table cible ; groupe de boutons d'option avec les options Accès à toutes les colonnes, Inclure les colonnes et Exclure les colonnes ; Sélectionner les colonnes (liste déroulante) ; Expression du filtre de ligne (zone de texte multiligne). L'option Exclure les colonnes est sélectionnée, la colonne customer_name est sélectionnée pour l'exclusion et le champ d'expression du filtre de ligne contient. 'product_type='pharma'

Notez l'utilisation de guillemets simples pour entourer la chaîne littérale,. 'pharma'

Vous pouvez utiliser la console Lake Formation pour créer ce filtre de données, ou vous pouvez fournir l'objet de requête suivant à l'opération CreateDataCellsFilter d'API.

{ "Name": "restrict-pharma", "DatabaseName": "sales", "TableName": "orders", "TableCatalogId": "111122223333", "RowFilter": {"FilterExpression": "product_type='pharma'"}, "ColumnWildcard": { "ExcludedColumnNames": ["customer_name"] } }

Vous pouvez créer autant de filtres de données que nécessaire pour une table. Pour ce faire, vous avez besoin d'une SELECT autorisation avec l'option d'octroi sur une table. Par défaut, les administrateurs de Data Lake sont autorisés à créer des filtres de données sur toutes les tables de ce compte. Vous n'utilisez généralement qu'un sous-ensemble des filtres de données possibles lorsque vous accordez des autorisations sur la table à un principal. Par exemple, vous pouvez créer un deuxième filtre de données pour la orders table qui est un filtre de row-security-only données. En vous référant à la capture d'écran précédente, vous pouvez choisir l'option Accès à toutes les colonnes et inclure une expression de filtre de ligne deproduct_type<>pharma. Le nom de ce filtre de données peut êtreno-pharma. Il restreint l'accès à toutes les lignes dont la product_type colonne est définie sur « pharma ».

L'objet de demande pour l'opération CreateDataCellsFilter d'API pour ce filtre de données est le suivant.

{ "Name": "no-pharma", "DatabaseName": "sales", "TableName": "orders", "TableCatalogId": "111122223333", "RowFilter": {"FilterExpression": "product_type<>'pharma'"}, "ColumnNames": ["customer_id", "customer_name", "order_num" "product_id", "purchase_date", "product_type", "product_manufacturer", "quantity", "price"] }

Vous pouvez ensuite accorder une autorisation SELECT sur le orders tableau contenant le filtre de restrict-pharma données à un utilisateur administratif, et SELECT sur le orders tableau contenant le filtre de no-pharma données à des utilisateurs non administratifs. Pour les utilisateurs du secteur de la santé, vous accorderiez SELECT sur le orders tableau un accès complet à toutes les lignes et colonnes (aucun filtre de données), ou peut-être un autre filtre de données restreignant l'accès aux informations tarifaires.

Vous pouvez inclure ou exclure des colonnes imbriquées lorsque vous spécifiez la sécurité au niveau des colonnes et au niveau des lignes dans un filtre de données. Dans l'exemple suivant, l'accès au product.offer champ est spécifié à l'aide de noms de colonnes qualifiés (entre guillemets). Ceci est important pour les champs imbriqués afin d'éviter que des erreurs ne se produisent lorsque les noms de colonnes contiennent des caractères spéciaux et pour maintenir la rétrocompatibilité avec les définitions de sécurité de niveau supérieur des colonnes.

{ "Name": "example_dcf", "DatabaseName": "example_db", "TableName": "example_table", "TableCatalogId": "111122223333", "RowFilter": { "FilterExpression": "customer.customerName <> 'John'" }, "ColumnNames": ["customer", "\"product\".\"offer\""] }
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.