Contrôle des accès

Cette page décrit les options de contrôle d'accès disponibles dans Cloud Bigtable.

Présentation

Cloud Bigtable utilise la gestion de l'authentification et des accès (Identity and Access Management, IAM) pour le contrôle des accès.

Pour Cloud Bigtable, vous pouvez configurer le contrôle des accès au niveau du projet, de l'instance et de la table. Voici quelques exemples d'utilisation du contrôle des accès au niveau du projet :

  • Donner à un utilisateur des droits en lecture mais pas en écriture, sur toutes les tables du projet.
  • Donner à un utilisateur des droits en lecture et en écriture sur toutes les tables du projet, mais ne pas l'autoriser à gérer des instances.
  • Donner à un utilisateur des droits en lecture et en écriture sur toutes les tables du projet, et l'autoriser à gérer des instances.

Voici quelques exemples d'utilisation du contrôle des accès au niveau de l'instance :

  • Autoriser un utilisateur à lire une table dans une instance seulement, au sein d'un projet comportant plusieurs instances.
  • Autoriser un utilisateur à gérer une instance seulement, au sein d'un projet comportant plusieurs instances

Exemples d'utilisation du contrôle des accès au niveau de la table :

  • Donner à un utilisateur des droits en écriture, mais pas en lecture, sur une table.
  • Donner à un utilisateur des droits en lecture, mais pas en écriture, sur une table.

Pour obtenir une description détaillée d'IAM et de ses fonctionnalités, consultez le guide du développeur IAM. En particulier, consultez la page Accorder, modifier et révoquer les accès à des ressources.

Pour obtenir une liste des autorisations et des rôles acceptés par Cloud Bigtable, consultez les sections suivantes.

Activer l'API Cloud Bigtable

Pour afficher et attribuer des rôles IAM Cloud Bigtable, vous devez activer l'API Cloud Bigtable pour le projet concerné. Vous ne pouvez pas voir les rôles Cloud Bigtable dans Cloud Console tant que vous n'avez pas activé l'API.

Activer l'API

Permissions

Cette section récapitule les autorisations disponibles dans Cloud Bigtable.

Les autorisations permettent aux utilisateurs de réaliser des opérations spécifiques sur les ressources Cloud Bigtable. Par exemple, les autorisations bigtable.instances.list permettent aux utilisateurs de répertorier toutes les instances Cloud Bigtable d'un projet. Vous n'accordez pas directement des autorisations aux utilisateurs, mais vous leur attribuez un rôle prédéfini ou un rôle personnalisé, auquel sont associées une ou plusieurs autorisations.

Les tableaux suivants répertorient les autorisations IAM associées à Cloud Bigtable :

Nom de l'autorisation relative aux emplacements Description
bigtable.locations.list Répertorier les emplacements Cloud Bigtable.
Nom de l'autorisation de l'instance Description
bigtable.instances.create Créer une instance Cloud Bigtable.
bigtable.instances.delete Supprimer une instance Cloud Bigtable.
bigtable.instances.get Obtenir des informations sur une instance Cloud Bigtable.
bigtable.instances.getIamPolicy Lire les listes de contrôle d'accès (LCA) d'une instance. Renvoyées sous forme de stratégies Cloud IAM.
bigtable.instances.list Répertorier les instances Cloud Bigtable d'un projet.
bigtable.instances.setIamPolicy Mettre à jour les LCA.
bigtable.instances.update Mettre à jour les paramètres d'une instance Cloud Bigtable.
Nom de l'autorisation du profil d'application Description
bigtable.appProfiles.create Créer un profil d'application Cloud Bigtable.
bigtable.appProfiles.delete Supprimer un profil d'application Cloud Bigtable.
bigtable.appProfiles.get Obtenir des informations sur un profil d'application Cloud Bigtable.
bigtable.appProfiles.list Répertorier les profils d'application Cloud Bigtable d'une instance.
bigtable.appProfiles.update Mettre à jour les paramètres d'un profil d'application Cloud Bigtable.
Nom de l'autorisation relative aux sauvegardes Description
bigtable.backups.create Créer une sauvegarde Cloud Bigtable.
bigtable.backups.get Obtenir une sauvegarde Cloud Bigtable.
bigtable.backups.list Répertorier les sauvegardes Cloud Bigtable.
bigtable.backups.delete Supprimer une sauvegarde Cloud Bigtable.
bigtable.backups.update Modifier l'expiration d'une sauvegarde Cloud Bigtable.
bigtable.backups.restore Restaurer une sauvegarde Cloud Bigtable.
Nom de l'autorisation du cluster Description
bigtable.clusters.create Créer un cluster Cloud Bigtable.
bigtable.clusters.delete Supprimer un cluster Cloud Bigtable.
bigtable.clusters.get Obtenir des informations sur un cluster Cloud Bigtable.
bigtable.clusters.list Répertorier les clusters Cloud Bigtable d'une instance.
bigtable.clusters.update Mettre à jour les paramètres d'un cluster Cloud Bigtable.
Nom de l'autorisation de la table Description
bigtable.tables.checkConsistency Vérifier si une table répliquée est à jour.
bigtable.tables.create Créer une table.
bigtable.tables.delete Supprimer une table.
bigtable.tables.generateConsistencyToken Générer un jeton pour vérifier si une table répliquée est à jour.
bigtable.tables.get Obtenir des informations sur une table, y compris les familles de colonnes et leurs paramètres individuels.
bigtable.tables.getIamPolicy Lire les LCA d'une table, renvoyées sous forme de stratégies Cloud IAM.
bigtable.tables.list Répertorier les tables d'une instance.
bigtable.tables.mutateRows Modifier les lignes dans une table ou tronquer la table.
bigtable.tables.readRows Lire les lignes d'une table.
bigtable.tables.sampleRowKeys Obtenir un échantillon des clés de ligne utilisées dans une table.
bigtable.tables.setIamPolicy Mettre à jour les LCA d'une table.
bigtable.tables.update Mettre à jour les paramètres d'une table, y compris les familles de colonnes et leurs paramètres individuels.

Le tableau suivant répertorie les autorisations IAM associées à Key Visualizer :

Nom de l'autorisation Key Visualizer Description
bigtable.keyvisualizer.get Obtenir des informations Key Visualizer sur une table, y compris les métadonnées concernant les modèles d'accès et la distribution des clés de ligne.
bigtable.keyvisualizer.list Répertorier les informations Key Visualizer disponibles pour une table.

Rôles prédéfinis

Chaque rôle prédéfini correspond à un ensemble d'une ou plusieurs autorisations. Par exemple, le rôle roles/bigtable.reader fournit un accès en lecture seule aux informations sur les instances, clusters, tables et familles de colonnes de Cloud Bigtable, ainsi qu'aux données contenues dans les tables. Vous attribuez des rôles à des utilisateurs ou à des groupes, ce qui leur permet d'effectuer des actions sur les ressources du projet.

Le tableau suivant répertorie les rôles prédéfinis pour Cloud Bigtable, avec les autorisations associées à chaque rôle :

Rôle Autorisations Description
roles/bigtable.admin

Accès à toutes les fonctionnalités de Cloud Bigtable :

bigtable.*.*

Accès en consultation aux graphiques de surveillance dans Cloud Console :

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Accès aux métadonnées au niveau du projet :

resourcemanager.projects.get

Administre toutes les instances d'un projet, y compris les données stockées dans les tables. Peut créer des instances. Destiné aux administrateurs de projet. Cela inclut l'accès à Key Visualizer.
roles/bigtable.user

Accès en lecture seule aux métadonnées des instances, des clusters, des tables et des familles de colonnes :

  • bigtable.*.get
  • bigtable.*.list
  • bigtable.tables.checkConsistency
  • bigtable.tables.generateConsistencyToken

Accès en lecture/écriture aux tables :

  • bigtable.tables.mutateRows
  • bigtable.tables.readRows
  • bigtable.tables.sampleRowKeys

Accès en consultation aux graphiques de surveillance dans Cloud Console :

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Accès aux métadonnées au niveau du projet :

resourcemanager.projects.get

Fournit un accès en lecture/écriture aux données stockées dans les tables. Destiné aux développeurs d'applications ou aux comptes de service. Cela inclut l'accès à Key Visualizer.
roles/bigtable.reader

Accès en lecture seule aux métadonnées des instances, des clusters, des tables et des familles de colonnes :

  • bigtable.*.get
  • bigtable.*.list
  • bigtable.tables.checkConsistency
  • bigtable.tables.generateConsistencyToken

Accès en lecture seule aux tables :

  • bigtable.tables.readRows
  • bigtable.tables.sampleRowKeys

Accès en consultation aux graphiques de surveillance dans Cloud Console :

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Accès aux métadonnées au niveau du projet :

resourcemanager.projects.get

Fournit un accès en lecture seule aux données stockées dans les tables. Destiné aux data scientists, aux générateurs de tableaux de bord et à d'autres scénarios d'analyse de données. Cela inclut l'accès à Key Visualizer.
roles/bigtable.viewer

Accès en lecture seule aux métadonnées des instances, des clusters, des tables et des familles de colonnes :

  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.instances.get
  • bigtable.instances.list
  • bigtable.locations.list
  • bigtable.tables.checkConsistency
  • bigtable.tables.generateConsistencyToken
  • bigtable.tables.get
  • bigtable.tables.list

Accès en consultation aux graphiques de surveillance dans Cloud Console :

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Accès aux métadonnées au niveau du projet :

resourcemanager.projects.get

Ne fournit aucun accès aux données. Conçu comme un ensemble minimal d'autorisations permettant d'accéder à Cloud Console pour Cloud Bigtable. Cela n'inclut pas l'accès à Key Visualizer.

Rôles personnalisés

Si les rôles prédéfinis pour Cloud Bigtable ne répondent pas aux besoins de votre entreprise, vous pouvez définir vos propres rôles personnalisés, disposant des autorisations de votre choix.

Si votre rôle personnalisé doit permettre l'accès à Cloud Console, vous devez identifier les tâches que les utilisateurs effectueront, puis vous assurer que le rôle personnalisé dispose des autorisations requises pour chaque tâche, comme indiqué dans le tableau ci-dessous. Si un rôle personnalisé ne dispose pas de toutes les autorisations requises pour une tâche et qu'un utilisateur tente de l'exécuter, Cloud Console ne fonctionnera pas correctement.

Tâche Cloud Console Autorisations requises
Accès de base à Cloud Console
  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.instances.get
  • bigtable.instances.list
  • bigtable.locations.list
  • resourcemanager.projects.get
Créer une instance ou un cluster

Autorisations d'accès de base, plus :

  • bigtable.clusters.create
  • bigtable.instances.create
Modifier une instance ou un cluster

Autorisations d'accès de base, plus :

  • bigtable.clusters.update
  • bigtable.instances.update
Gérer la configuration de réplication

Autorisations d'accès de base, plus :

  • bigtable.appProfiles.create
  • bigtable.appProfiles.delete
  • bigtable.appProfiles.update
Supprimer une instance ou un cluster

Autorisations d'accès de base, plus :

  • bigtable.clusters.delete
  • bigtable.instances.delete
Surveiller une instance en consultant des graphiques

Autorisations d'accès de base, plus :

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Gestion IAM au niveau du projet

Au niveau du projet, vous pouvez attribuer, modifier et révoquer des rôles IAM à l'aide de Google Cloud Console, de l'API IAM ou de l'outil de ligne de commande gcloud. Pour obtenir des instructions détaillées, consultez la page Accorder, modifier et révoquer les accès à des ressources.

Gestion IAM au niveau de l'instance

Cette section explique comment gérer les rôles IAM Cloud Bigtable au niveau de l'instance.

Avant de commencer

Avant de définir des rôles IAM au niveau de l'instance pour un utilisateur, assurez-vous que celui-ci possède au moins l'un des rôles IAM suivants au niveau du projet :

  • Lecteur restreint Bigtable (recommandé)
  • Lecteur Bigtable
  • Utilisateur Bigtable
  • Administrateur Bigtable

Choisissez un rôle au niveau du projet qui ne dispose pas d'un nombre d'autorisations supérieur à celui dont l'utilisateur a réellement besoin dans toutes les instances du projet. Pour cette raison, vous devez accorder le rôle de lecteur restreint Bigtable dans presque tous les cas.

Si l'utilisateur ne possède pas au moins l'un de ces rôles au niveau du projet, il n'aura pas accès à Cloud Bigtable via Cloud Console. Cloud Console requiert l’un de ces rôles au niveau du projet pour pouvoir extraire des informations sur les instances et les clusters au nom de l’utilisateur.

Attribuer des rôles IAM au niveau de l'instance

Au niveau de l'instance, vous pouvez attribuer n'importe quel rôle prédéfini de Cloud Bigtable à un utilisateur ou un compte de service. Vous pouvez également accorder tous les rôles personnalisés que vous avez définis.

Pour attribuer un rôle prédéfini ou personnalisé à un utilisateur ou un compte de service au niveau de l'instance :

Console

  1. Accédez à la page des instances Cloud Bigtable dans Cloud Console.

    Accéder à la page "Instances"

  2. Cochez les cases correspondant aux instances dont vous souhaitez gérer les rôles. Un panneau d'information apparaît.

  3. Dans le panneau d'information, cliquez sur Autorisations.

  4. Sous Ajouter des membres, commencez à saisir l'adresse e-mail de l'utilisateur ou du compte de service que vous souhaitez ajouter, puis cliquez sur l'adresse qui vous convient.

  5. Cliquez sur la liste déroulante Sélectionnez un rôle, puis cliquez sur Cloud Bigtable pour sélectionner un rôle prédéfini ou sur Personnalisé pour sélectionner un rôle personnalisé.

  6. Cliquez sur le nom de chaque rôle que vous souhaitez attribuer.

  7. Cliquez sur Ajouter. L'utilisateur ou le compte de service se voit attribuer les rôles que vous avez spécifiés au niveau de l'instance.

gcloud

  1. Si vous ne connaissez pas l'ID d'instance, exécutez la commande bigtable instances list pour afficher la liste des instances du projet :

    gcloud bigtable instances list
    
  2. Utilisez la commande bigtable instances set-iam-policy :

    gcloud bigtable instances set-iam-policy INSTANCE_ID POLICY_FILE
    

    Indiquez les valeurs suivantes :

    • INSTANCE_ID : identifiant permanent de l'instance
    • POLICY_FILE : chemin d'accès à un fichier JSON ou YAML local contenant une stratégie IAM valide

Gestion IAM au niveau de la table

Cette section explique comment gérer les rôles IAM Cloud Bigtable au niveau de la table.

Avant de commencer

Avant de définir des rôles IAM au niveau de la table pour un utilisateur, assurez-vous que celui-ci possède au moins l'un des rôles IAM suivants au niveau du projet :

  • Lecteur restreint Bigtable (recommandé)
  • Lecteur Bigtable
  • Utilisateur Bigtable
  • Administrateur Bigtable

Choisissez un rôle au niveau du projet qui ne dispose pas d'un nombre d'autorisations supérieur à celui dont l'utilisateur a réellement besoin. Pour cette raison, vous devez accorder le rôle de lecteur restreint Bigtable dans presque tous les cas.

Si l'utilisateur ne possède pas au moins l'un de ces rôles au niveau du projet, il n'aura pas accès à Cloud Bigtable via Cloud Console. Cloud Console requiert l’un de ces rôles au niveau du projet pour pouvoir extraire des informations sur les instances, les clusters et les tables.

Accorder des rôles IAM au niveau de la table

Au niveau de la table, vous pouvez attribuer n'importe quel rôle prédéfini de Cloud Bigtable à un utilisateur ou un compte de service. Vous pouvez également accorder tous les rôles personnalisés que vous avez définis.

Pour attribuer un rôle prédéfini ou personnalisé à un utilisateur ou un compte de service au niveau de la table :

Console

  1. Accédez à la page des instances Cloud Bigtable dans Cloud Console.

    Accéder à la page "Instances"

  2. Cliquez sur le nom de l'instance contenant la table pour laquelle vous définissez les rôles IAM.

  3. Ouvrez l'onglet Tables dans le volet de navigation de gauche.

  4. Cochez les cases correspondant aux tables dont vous souhaitez gérer les rôles. Un panneau d'information apparaît.

  5. Dans le panneau d'information, cliquez sur Autorisations.

  6. Sous Ajouter des membres, commencez à saisir l'adresse e-mail de l'utilisateur ou du compte de service que vous souhaitez ajouter, puis cliquez sur l'adresse qui vous convient.

  7. Cliquez sur la liste déroulante Sélectionnez un rôle, puis cliquez sur Cloud Bigtable pour sélectionner un rôle prédéfini ou sur Personnalisé pour sélectionner un rôle personnalisé.

  8. Cliquez sur le nom de chaque rôle que vous souhaitez attribuer.

  9. Cliquez sur Ajouter. L'utilisateur ou le compte de service se voit attribuer les rôles que vous avez spécifiés au niveau de la table.

gcloud

  1. Si vous ne connaissez pas l'ID d'instance, exécutez la commande bigtable instances list pour afficher la liste des instances du projet :

    gcloud bigtable instances list
    
  2. Si vous ne connaissez pas les ID des clusters de l'instance, exécutez la commande bigtable clusters list pour afficher la liste des clusters de l'instance :

    gcloud bigtable clusters list --instances=INSTANCE_ID
    
  3. Utilisez la commande bigtable instances tables set-iam-policy :

    gcloud beta bigtable instances tables set-iam-policy TABLE_ID \
        --instance=INSTANCE_ID POLICY_FILE
    

    Indiquez les valeurs suivantes :

    • INSTANCE_ID : identifiant permanent de l'instance
    • POLICY_FILE : chemin d'accès à un fichier JSON ou YAML local contenant une stratégie IAM valide

Étape suivante

Apprenez-en plus sur IAM.