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. |
Lecteurs de catalogue |
Rôle auquel des privilèges de lecture seule ont été accordés pour les 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. |
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.
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.
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 |
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 |
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.