Contrôle d’accès

Cette section fournit des informations sur le fonctionnement du contrôle d’accès pour Snowflake Open Catalog.

Open Catalog utilise un modèle de contrôle d’accès basé sur les rôles (RBAC) dans lequel l’administrateur Open Catalog attribue des privilèges d’accès aux rôles de catalogue, puis accorde l’accès aux ressources aux principaux de service en attribuant des rôles de catalogue aux rôles principaux.

Voici les concepts clés pour comprendre le contrôle d’accès dans Open Catalog :

  • Objet sécurisable

  • Rôle du principal

  • Rôle du catalogue

  • Privilège

Objet sécurisable

Un objet sécurisable est un objet auquel l’accès peut être accordé. Open Catalog détient les objets sécurisables suivants :

  • Catalogue

  • Espace de noms

  • Table Iceberg

  • Vue

Le modèle RBAC pour Open Catalog est détaillé de sorte que vous pouvez accorder des privilèges pour l’ensemble du catalogue ou un espace de noms, une table ou une vue dans le catalogue. Si vous accordez des privilèges pour un espace de noms, vous avez également la possibilité de sécuriser les tables regroupées sous celui-ci et tous les espaces de noms ou tables enfants imbriqués sous celui-ci.

Rôle principal

Un rôle principal est une ressource dans Open Catalog que vous pouvez utiliser pour regrouper logiquement les principaux de service Open Catalog et accorder des privilèges sur les objets sécurisables.

Open Catalog prend en charge une relation plusieurs-à-un entre les principaux de service et les rôles principaux. Par exemple, pour accorder les mêmes privilèges à plusieurs principaux de service, vous pouvez accorder un seul rôle principal à ces principaux de service. Un rôle principal peut être attribué à un principal de service. Lors de l’enregistrement d’une connexion de service, l’administrateur Open Catalog spécifie le rôle principal accordé au principal de service.

Vous n’accordez pas de privilèges directement à un rôle principal. Au lieu de cela, vous configurez les autorisations relatives à l’objet au niveau du rôle de catalogue, puis accordez des rôles de catalogue à un rôle principal.

Le tableau suivant présente des exemples de rôles principaux que vous pouvez configurer dans Open Catalog :

Nom du rôle principal

Description

Ingénieur_données

Rôle accordé à plusieurs principaux de service pour exécuter des tâches d’ingénierie de données.

Spécialiste_données

Rôle accordé à plusieurs principaux de service pour exécuter des tâches de science des données ou d’AI.

Rôle du catalogue

Un rôle de catalogue appartient à une ressource de catalogue spécifique dans Open Catalog et spécifie un ensemble d’autorisations pour les actions sur le catalogue ou les objets du catalogue, tels que les espaces de noms ou les tables de catalogue. Vous pouvez créer un ou plusieurs rôles de catalogue pour un catalogue.

Vous accordez des privilèges à un rôle de catalogue, puis accordez le rôle de catalogue à un rôle principal pour conférer les privilèges à un ou plusieurs principaux de service.

Remarque

Si vous mettez à jour les privilèges accordés à un principal de service, les mises à jour ne prendront pas effet que dans un intervalle d’une heure maximum. Cela signifie que si vous révoquez ou accordez certains privilèges pour un catalogue, les privilèges mis à jour ne prendront effet sur les principaux de service ayant accès à ce catalogue que dans un intervalle d’une heure maximum.

Open Catalog prend également en charge une relation plusieurs-à-plusieurs entre les rôles de catalogue et les rôles principaux. Vous pouvez accorder le même rôle de catalogue à un ou plusieurs rôles principaux. De même, un rôle principal peut se voir attribuer un ou plusieurs rôles de catalogue.

Le tableau suivant présente des exemples de rôles de catalogue que vous pouvez configurer dans Open Catalog :

Exemple de rôle de catalogue

Description

Administrateurs de catalogue

Rôle auquel plusieurs privilèges ont été accordés pour émuler l’accès complet au catalogue.

Les rôles principaux auxquels ce rôle a été accordé sont autorisés à créer, modifier, lire, écrire et supprimer des tables dans le catalogue.

Lecteurs de catalogue

Rôle auquel des privilèges de lecture seule ont été accordés pour les tables du catalogue.

Les rôles principaux auxquels ce rôle a été accordé sont autorisés à lire à partir des tables du catalogue.

Contributeur au catalogue

Rôle auquel des privilèges d’accès en lecture et en écriture ont été accordés pour toutes les tables appartenant au catalogue.

Les rôles principaux auxquels ce rôle a été accordé sont autorisés à effectuer des opérations de lecture et d’écriture sur les tables du catalogue.

Rôles utilisateur

Un utilisateur est une personne qui se connecte à l’interface Web Open Catalog pour gérer le compte Open Catalog. Cependant, pour qu’un utilisateur puisse gérer le compte, au moins un rôle d’utilisateur doit lui être accordé. Les rôles d’administrateur de service et d’administrateur de catalogue peuvent être accordés à un utilisateur.

Rôle d’administrateur de service

Le rôle d’administrateur de service permet à un utilisateur de gérer l’ensemble du compte, à quelques exceptions près.

Autorisations autorisées

Un utilisateur disposant de privilèges d’administrateur de service est un administrateur de service. Un administrateur de service peut effectuer les tâches suivantes dans le compte :

  • Créer des connexions de service

  • Utiliser des politiques réseau

  • Gérer les utilisateurs : créer et supprimer des utilisateurs, attribuer des rôles aux utilisateurs et retirer des rôles aux utilisateurs

  • Créer des catalogues et gérer les catalogues qu’il a créé

Lorsqu’un administrateur de service crée un catalogue, le rôle d’administrateur de catalogue lui est également automatiquement attribué. L’administrateur de service peut effectuer les opérations suivantes sur un catalogue pour lequel il dispose de privilèges d’administrateur de catalogue :

  • Accorder à un autre utilisateur le rôle d’administrateur de catalogue pour le catalogue Ainsi, les deux utilisateurs peuvent accéder au catalogue.

  • Révoquer leurs propres privilèges d’administrateur de catalogue pour le catalogue, perdant ainsi l’accès au catalogue Cependant, avant de révoquer leurs privilèges d’administrateur de catalogue, ils doivent d’abord accorder à un autre utilisateur des privilèges d’administrateur de catalogue pour ce catalogue.

Autorisations non autorisées

Un utilisateur disposant de privilèges d’administrateur de service ne peut pas effectuer les tâches suivantes dans le compte :

  • Accéder ou gérer un catalogue qu’il n’a pas créé.

  • Accorder des privilèges d’administrateur de catalogue pour un catalogue que l’administrateur du service n’a pas créé

Rôle d’administrateur de catalogue

Le rôle d’administrateur de catalogue permet à un utilisateur de gérer un catalogue dans le compte. Le rôle d’administrateur de catalogue doit être accordé à chaque catalogue individuel.

Autorisations autorisées

Le rôle d’administrateur de catalogue accorde à un utilisateur les autorisations nécessaires pour accéder à un catalogue et le gérer, comme suit :

  • Accéder au catalogue

  • Créer des espaces de noms dans le catalogue

  • Créer un rôle de catalogue dans le catalogue et lui accorder des privilèges

  • Accorder un rôle de catalogue à un rôle principal, ce qui confère au principal de service les privilèges accordés au rôle de catalogue

Autorisations non autorisées

Un utilisateur disposant uniquement de privilèges d’administrateur de catalogue ne peut pas effectuer les tâches suivantes dans le compte :

  • Créer une connexion de service

  • Accéder aux catalogues ou gérer les catalogues pour lesquels le rôle d’administrateur de catalogue ne leur a pas été accordé

  • Créer ou supprimer un catalogue

  • Utiliser des politiques réseau

  • Gérer des utilisateurs

Modèle RBAC

Le schéma suivant illustre le modèle RBAC utilisé par Open Catalog. Pour chaque catalogue, l’administrateur de catalogue Open Catalog attribue des privilèges d’accès aux rôles de catalogue, puis accorde aux principaux de service l’accès aux ressources en attribuant des rôles de catalogue aux rôles principaux. Open Catalog prend en charge une relation plusieurs-à-un entre les principaux de service et les rôles principaux.

Schéma illustrant le modèle RBAC pour Open Catalog.

Vous pouvez également accorder des privilèges de contrôle d’accès au niveau de la table ou de l’espace de noms. Par exemple, le schéma suivant illustre l’octroi de privilèges sur un espace de noms et une table dans le catalogue.

Schéma illustrant le modèle RBAC pour Open Catalog au niveau de la table et de l'espace de noms.

Privilèges de contrôle d’accès

Cette section décrit les privilèges disponibles dans le modèle de contrôle d’accès Open Catalog. Les privilèges sont accordés aux rôles de catalogue, les rôles de catalogue sont accordés aux rôles principaux et les rôles principaux sont accordés aux principaux de service pour spécifier les opérations que les principaux de service peuvent effectuer sur les objets dans Open Catalog.

Pour accorder l’ensemble complet des privilèges (supprimer, répertorier, lire, écrire, etc.) sur un objet, vous pouvez utiliser l’option privilèges complets.

Privilèges du catalogue

Privilège

Description

CATALOG_MANAGE_CONTENT

Permet la gestion complète du contenu du catalogue. Ce privilège englobe les privilèges suivants :

  • CATALOG_MANAGE_METADATA
  • TABLE_FULL_METADATA
  • NAMESPACE_FULL_METADATA
  • VIEW_FULL_METADATA
  • TABLE_WRITE_DATA
  • TABLE_READ_DATA
  • CATALOG_READ_PROPERTIES
  • CATALOG_WRITE_PROPERTIES

CATALOG_MANAGE_METADATA

Permet la gestion complète du catalogue, des rôles du catalogue, des espaces de noms et des tables.

CATALOG_READ_PROPERTIES

Permet de répertorier les catalogues et de lire les propriétés du catalogue.

CATALOG_WRITE_PROPERTIES

Permet de configurer les propriétés du catalogue.

NAMESPACE_CREATE

Permet de créer un espace de noms dans un catalogue.

NAMESPACE_DROP

Permet de supprimer l’espace de noms du catalogue.

NAMESPACE_FULL_METADATA

Accorde tous les privilèges de l’espace de noms.

NAMESPACE_LIST

Permet de répertorier n’importe quel objet dans l’espace de noms, y compris les espaces de noms et les tables imbriqués.

NAMESPACE_READ_PROPERTIES

Permet de lire toutes les propriétés de l’espace de noms.

NAMESPACE_WRITE_PROPERTIES

Permet de configurer les propriétés de l’espace de noms.

TABLE_CREATE

Permet d’enregistrer une table dans le catalogue.

TABLE_DROP

Permet de supprimer une table du catalogue.

TABLE_FULL_METADATA

Accorde tous les privilèges de table, sauf TABLE_READ_DATA et TABLE_WRITE_DATA, qui doivent être accordés individuellement.

TABLE_LIST

Permet de répertorier toutes les tables du catalogue.

TABLE_READ_DATA

Permet de lire les données de la table en recevant des informations d’identification de stockage en lecture seule à courte durée de vie du catalogue.

TABLE_READ_PROPERTIES

Permet de lire propriétés de la table.

TABLE_WRITE_DATA

Permet d’écrire des données dans la table en recevant des informations d’identification de stockage en lecture et en écriture à courte durée de vie du catalogue.

TABLE_WRITE_PROPERTIES

Permet de configurer propriétés de la table.

VIEW_CREATE

Permet d’enregistrer une vue dans le catalogue.

VIEW_DROP

Permet de supprimer une vue du catalogue.

VIEW_FULL_METADATA

Accorde tous les privilèges de vue.

VIEW_LIST

Permet de répertorier toutes les vues du catalogue.

VIEW_READ_PROPERTIES

Permet de lire toutes les propriétés de la vue.

Privilèges de l’espace de noms

Privilège

Description

CATALOG_MANAGE_CONTENT

Permet la gestion complète du contenu de l’espace de noms, de toutes les tables regroupées sous celui-ci et de tous les espaces de noms et tables imbriqués sous l’espace de noms, le cas échéant. Le privilège n’est pas accordé à l’ensemble du catalogue. Ce privilège englobe les privilèges suivants :

  • CATALOG_MANAGE_METADATA
  • TABLE_FULL_METADATA
  • NAMESPACE_FULL_METADATA
  • VIEW_FULL_METADATA
  • TABLE_WRITE_DATA
  • TABLE_READ_DATA
  • CATALOG_READ_PROPERTIES
  • CATALOG_WRITE_PROPERTIES

CATALOG_MANAGE_METADATA

Permet la gestion complète de l’espace de noms, des rôles du catalogue et de toutes les tables regroupées sous celui-ci ou de tous les espaces de noms ou tables enfants imbriqués sous celui-ci.

NAMESPACE_CREATE

Permet de créer un espace de noms enfant à partir de l’espace de noms.

NAMESPACE_DROP

Permet de supprimer l’espace de noms du catalogue.

NAMESPACE_FULL_METADATA

Accorde tous les privilèges d’espace de noms sur l’espace de noms.

NAMESPACE_LIST

Permet de répertorier n’importe quel objet dans l’espace de noms, y compris les espaces de noms et les tables imbriqués.

NAMESPACE_READ_PROPERTIES

Permet de lire toutes les propriétés de l’espace de noms.

NAMESPACE_WRITE_PROPERTIES

Permet de configurer les propriétés de l’espace de noms.

TABLE_CREATE

Permet d’enregistrer une table avec l’espace de noms.

TABLE_DROP

Permet de supprimer une table de l’espace de noms.

TABLE_FULL_METADATA

Accorde tous les privilèges de table pour les tables regroupées dans l’espace de noms, à l’exception de TABLE_READ_DATA et de TABLE_WRITE_DATA, qui doivent être accordés individuellement.

TABLE_LIST

Permet de répertorier toutes les tables de l’espace de noms.

TABLE_READ_DATA

Permet de lire les données de n’importe quelle table regroupée sous l’espace de noms en recevant des informations d’identification de stockage en lecture seule à courte durée de vie du catalogue.

TABLE_READ_PROPERTIES

Permet de lire propriétés de n’importe quelle table regroupée sous l’espace de noms.

TABLE_WRITE_DATA

Permet d’écrire des données dans n’importe quelle table regroupée dans l’espace de noms en recevant des informations d’identification de stockage en lecture et en écriture à courte durée de vie du catalogue.

TABLE_WRITE_PROPERTIES

Permet de configurer propriétés pour n’importe quelle table regroupée sous l’espace de noms.

VIEW_CREATE

Permet d’enregistrer une vue avec l’espace de noms.

VIEW_DROP

Permet de supprimer une vue de l’espace de noms.

VIEW_FULL_METADATA

Accorde tous les privilèges de vue pour toutes les vues de l’espace de noms.

VIEW_LIST

Permet de répertorier toutes les vues dans l’espace de noms.

VIEW_READ_PROPERTIES

Permet de lire toutes les propriétés de vues pour toutes les vues dans l’espace de noms.

VIEW_WRITE_PROPERTIES

Permet de configurer les propriétés de vues pour n’importe quelle vue dans l’espace de noms.

Privilèges de table

Privilège

Description

TABLE_DROP

Permet de supprimer la table du catalogue.

TABLE_FULL_METADATA

Accorde tous les privilèges de table, sauf TABLE_READ_DATA et TABLE_WRITE_DATA, qui doivent être accordés individuellement.

TABLE_LIST

Permet de répertorier toutes les tables du catalogue.

TABLE_READ_DATA

Permet de lire les données de la table en recevant des informations d’identification de stockage en lecture seule à courte durée de vie du catalogue.

TABLE_READ_PROPERTIES

Permet de lire propriétés de la table.

TABLE_WRITE_DATA

Permet d’écrire des données dans la table en recevant des informations d’identification de stockage en lecture et en écriture à courte durée de vie du catalogue.

TABLE_WRITE_PROPERTIES

Permet de configurer propriétés de la table.

VIEW_READ_PROPERTIES

Permet de lire toutes les propriétés de la vue.

Affichage des privilèges

Privilège

Description

VIEW_CREATE

Permet d’enregistrer une vue dans le catalogue.

VIEW_DROP

Permet de supprimer une vue du catalogue.

VIEW_LIST

Permet de répertorier toutes les vues du catalogue.

VIEW_READ_PROPERTIES

Permet de lire toutes les propriétés de la vue.

VIEW_WRITE_PROPERTIES

Permet de configurer les propriétés de la vue.

VIEW_FULL_METADATA

Accorde tous les privilèges de vue.

Exemple RBAC

Le schéma suivant illustre le fonctionnement de RBAC dans Open Catalog au niveau du catalogue et inclut les utilisateurs suivants :

  • Alice : Administrateur de service qui s’inscrit à Open Catalog. Alice peut créer des principaux de service. Elle peut également créer des catalogues et des espaces de noms et configurer le contrôle d’accès pour les ressources Open Catalog.

    Remarque

    Le principal de service pour Alice n’est pas visible dans l’interface utilisateur d’Open Catalog.

  • Bob : un ingénieur de données qui utilise les connexions Snowpipe Streaming (dans Snowflake) et Spark™ pour interagir avec Open Catalog.

    • Alice a créé un principal de service pour Bob. Le rôle principal Ingénieur_données lui a été attribué, et a reçu, à son tour, les rôles de catalogue suivants : Contributeur au catalogue et Administrateur de données (pour les catalogues de zone Argent et Or dans le schéma suivant).

    • Le rôle de contributeur au catalogue permet de créer des espaces de noms et des tables dans le catalogue de la zone Bronze.

    • Les rôles d’administrateur de données accordent des droits administratifs complets au catalogue de la zone Argent et au catalogue de la zone Or.

  • Marc : Spécialiste données qui utilise les services d’AI de Snowflake pour interagir avec Open Catalog.

    • Alice a créé un principal de service pour Marc. Le rôle principal Spécialiste_données lui a été attribué, et a reçu, à son tour, le rôle de catalogue intitulé Lecteur de catalogue.

    • Le rôle de lecteur de catalogue permet d’accéder en lecture seule à un catalogue intitulé Catalogue de la zone Or.

Schéma illustrant un exemple de fonctionnement de RBAC dans Open Catalog.