Contrôle des accès Bigtable avec IAM
Cette page décrit les options de contrôle des accès disponibles Bigtable.
Présentation
Bigtable utilise la gestion de l'authentification et des accès (Identity and Access Management, IAM) pour le contrôle des accès. Vous définissez des stratégies IAM sur les ressources pour contrôler qui a accès à quelles ressources.
Les ressources Bigtable sont organisées de façon hiérarchique. A Le projet Google Cloud est le parent d'une table Bigtable qui est le parent de ses clusters et de ses tables. Une table est le parent de ses vues autorisées, tandis qu'un cluster est le parent de ses sauvegardes. Toi peuvent configurer le contrôle des accès à chaque niveau.
Si vous disposez d'autorisations à un certain niveau, vous disposez automatiquement d'autorisations en dessous de ce niveau. Par exemple, si vous avez accès au niveau du projet, aux instances, clusters, tables et vues autorisées ce projet. Si vous avez accès à une vue autorisée, vous n'avez pas automatiquement accès aux ressources de niveau supérieur de la vue autorisée, comme la table et l'instance. Ce comportement est appelé héritage des stratégies.
Pour en savoir plus sur la hiérarchie IAM, consultez Héritage des stratégies IAM
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
Voici quelques 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.
Voici quelques exemples d'utilisation du contrôle des accès au niveau de la sauvegarde:
- Empêchez un utilisateur de supprimer une sauvegarde.
- Empêchez un utilisateur d'effectuer une restauration à partir de la sauvegarde.
Voici quelques exemples d'utilisation du contrôle des accès au niveau de la vue autorisée : les éléments suivants:
- Permettez à un utilisateur de lire une vue autorisée, mais pas de la modifier.
- Permettez à un utilisateur de consulter les données d'une seule des vues autorisées d'une tableau.
Pour obtenir une description détaillée d'IAM et de ses fonctionnalités, consultez le guide du développeur IAM. Consultez en particulier la page Accorder, modifier et révoquer les accès à des ressources.
Dans Bigtable, vous ne pouvez pas accorder l'accès aux types de comptes principaux suivants :
Pour obtenir une liste des autorisations et des rôles acceptés par Bigtable, consultez les sections suivantes.
Activer l'API Bigtable
Pour afficher et attribuer des rôles IAM Bigtable, vous devez activer l'API Bigtable pour le projet concerné. Vous ne pouvez pas voir les rôles Bigtable dans la console Google Cloud jusqu'à ce que vous activiez le API.
Autorisations
Cette section récapitule les autorisations disponibles dans Bigtable.
Les autorisations permettent aux utilisateurs de réaliser des opérations spécifiques sur les ressources Bigtable. Par exemple, les autorisations bigtable.instances.list
permettent aux utilisateurs de répertorier toutes les instances 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 à Bigtable :
Nom de l'autorisation du profil d'application | Description |
---|---|
bigtable.appProfiles.create |
Créer un profil d'application Bigtable. |
bigtable.appProfiles.delete |
Supprimer un profil d'application Bigtable. |
bigtable.appProfiles.get |
Obtenir des informations sur un profil d'application Bigtable. |
bigtable.appProfiles.list |
Répertorier les profils d'application Bigtable d'une instance. |
bigtable.appProfiles.update |
Mettre à jour les paramètres d'un profil d'application Bigtable. |
Nom de l'autorisation relative aux sauvegardes | Description |
---|---|
bigtable.backups.create |
Créer une sauvegarde Bigtable. |
bigtable.backups.delete |
Supprimer une sauvegarde Bigtable. |
bigtable.backups.get |
Obtenir des informations sur une sauvegarde Bigtable |
bigtable.backups.getIamPolicy |
Lire les listes de contrôle d'accès (LCA) d'une sauvegarde. Renvoyées sous forme de stratégies Cloud IAM. |
bigtable.backups.list |
Répertorier les sauvegardes Bigtable. |
bigtable.backups.restore |
Effectuer une restauration à partir d'une sauvegarde Bigtable. |
bigtable.backups.testIamPermissions |
Obtenir les autorisations de l'appelant sur une sauvegarde spécifiée. |
bigtable.backups.read |
Lire des données à partir d'une sauvegarde Bigtable |
bigtable.backups.setIamPolicy |
Mettez à jour les LCA de sauvegarde. |
bigtable.backups.update |
Modifier l'expiration d'une sauvegarde Bigtable. |
Nom de l'autorisation du cluster | Description |
---|---|
bigtable.clusters.create |
Créer un cluster Bigtable. |
bigtable.clusters.delete |
Supprimer un cluster Bigtable. |
bigtable.clusters.get |
Obtenir des informations sur un cluster Bigtable. |
bigtable.clusters.list |
Répertorier les clusters Bigtable d'une instance. |
bigtable.clusters.update |
Mettre à jour les paramètres d'un cluster Bigtable. |
Nom de l'autorisation des tablets suractifs | Description |
---|---|
bigtable.hotTablets.list |
Répertorier les tablets suractifs d'un cluster. |
Nom de l'autorisation de l'instance | Description |
---|---|
bigtable.instances.create |
Créer une instance Bigtable |
bigtable.instances.createTagBinding |
Créer un tag. |
bigtable.instances.delete |
Supprimer une instance Bigtable. |
bigtable.instances.deleteTagBinding |
Supprimer un tag. |
bigtable.instances.get |
Obtenir des informations sur une instance 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 Bigtable d'un projet. |
bigtable.instances.listEffectiveTagBindings |
Répertorier tous les tags en vigueur pour une instance. |
bigtable.instances.listTagBindings |
Répertorier les tags d'une instance. |
bigtable.instances.ping |
Envoyer des requêtes d'amorçage de canal. |
bigtable.instances.setIamPolicy |
Mettre à jour les LCA. |
bigtable.instances.update |
Mettre à jour les paramètres d'une instance Bigtable. |
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. |
Nom de l'autorisation relative aux emplacements | Description |
---|---|
bigtable.locations.list |
Répertorier les emplacements 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. Cela inclut des informations sur le tableau, telles que familles de colonnes et leurs paramètres individuels. |
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.undelete |
Récupérer une table supprimée. |
bigtable.tables.update |
Mettre à jour les paramètres d'une table, y compris les familles de colonnes et leurs paramètres individuels. |
Nom de l'autorisation relative aux emplacements | Description |
---|---|
bigtable.locations.list |
Répertorier les emplacements Bigtable. |
nom de l'autorisation d'affichage autorisé | Description |
---|---|
bigtable.authorizedViews.create |
Créez une vue autorisée. |
bigtable.authorizedViews.delete |
Supprimez une vue autorisée. |
bigtable.authorizedViews.get |
Permet d'obtenir des informations sur une vue autorisée. |
bigtable.authorizedViews.getIamPolicy |
Contrôle des accès pour une vue autorisée Renvoyées sous forme de stratégies Cloud IAM. |
bigtable.authorizedViews.list |
Répertorier les vues autorisées dans une table |
bigtable.authorizedViews.mutateRows |
Modifiez les lignes d'une vue autorisée. |
bigtable.authorizedViews.readRows |
Lire les lignes d'une vue autorisée |
bigtable.authorizedViews.sampleRowKeys |
Obtenez un échantillon des clés de ligne utilisées dans une vue autorisée. |
bigtable.authorizedViews.setIamPolicy |
Mettez à jour les stratégies de contrôle des accès pour une vue autorisée. |
bigtable.authorizedViews.update |
Mettez à jour les paramètres d'une vue autorisée. |
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 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 Bigtable, avec les autorisations associées à chaque rôle :
Role | Permissions |
---|---|
Bigtable Administrator( Administers all Bigtable instances within a project, including the data stored within tables. Can create new instances. Intended for project administrators. Lowest-level resources where you can grant this role:
|
|
Bigtable Reader( Provides read-only access to the data stored within Bigtable tables. Intended for data scientists, dashboard generators, and other data-analysis scenarios. Lowest-level resources where you can grant this role:
|
|
Bigtable User( Provides read-write access to the data stored within Bigtable tables. Intended for application developers or service accounts. Lowest-level resources where you can grant this role:
|
|
Bigtable Viewer( Provides no data access. Intended as a minimal set of permissions to access the Google Cloud console for Bigtable. Lowest-level resources where you can grant this role:
|
|
Rôles personnalisés
Si les rôles prédéfinis pour Bigtable ne répondent pas à vos exigences métier, vous pouvez définir vos propres rôles personnalisés avec les autorisations que vous spécifiez.
Si votre rôle personnalisé doit permettre l'accès à la console Google Cloud, vous doit identifier les tâches que les utilisateurs effectueront, puis s'assurer que le code dispose des autorisations requises pour chaque tâche, comme indiqué dans le tableau suivant. Si un rôle personnalisé ne dispose pas de toutes les autorisations requises pour une tâche et qu'une tente d'effectuer cette tâche, la console Google Cloud ne fonctionnera pas correctement.
Tâche de la console Google Cloud | Autorisations requises |
---|---|
Accès de base à la console Google Cloud |
|
Créer une instance ou un cluster |
Autorisations d'accès de base, plus :
|
Modifier une instance ou un cluster |
Autorisations d'accès de base, plus :
|
Gérer la configuration de réplication |
Autorisations d'accès de base, plus :
|
Supprimer une instance ou un cluster |
Autorisations d'accès de base, plus :
|
Surveiller une instance en consultant des graphiques |
Autorisations d'accès de base, plus :
|
Créer et mettre à jour une table |
Autorisations d'accès de base, plus :
|
Restaurer une sauvegarde |
Autorisations d'accès de base, plus :
|
Gestion de l'IAM
Cette section explique comment gérer les rôles IAM et les autorisations associées dans au niveau du projet, de l'instance, de la table et de la sauvegarde.
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 Google Cloud CLI Pour savoir comment procéder, consultez la page Attribuer, modifier et révoquer les accès.
Une fois que vous avez créé un projet, vous pouvez attribuer les rôles IAM au niveau du projet aux utilisateurs en fonction des niveaux d'accès spécifiques.
Rôles requis
Avant de définir des rôles IAM au niveau de l'instance, au niveau de la table, au niveau de la sauvegarde ou autorisés au niveau de la vue pour un utilisateur, assurez-vous qu'il possède au moins l'un des éléments suivants au niveau du projet Rôles IAM:
- Lecteur restreint Bigtable (recommandé)
- Lecteur Bigtable
- Utilisateur Bigtable
- Administrateur Bigtable
Choisissez un rôle au niveau du projet qui ne dispose pas d'autres autorisations que l'utilisateur réellement pour l'ensemble des instances, tables, sauvegardes ou vues autorisées 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 à Bigtable console Google Cloud. La console Google Cloud requiert l'un de ces des rôles au niveau du projet pour récupérer des informations sur les instances, des clusters, des tables ou des sauvegardes 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 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
Accédez à la page "Instances Bigtable" de la console Google Cloud.
Cochez les cases correspondant aux instances dont vous souhaitez gérer les rôles. Un panneau d'information apparaît.
Dans le panneau d'information, cliquez sur Autorisations.
Sous Ajouter des comptes principaux, commencez à saisir l'adresse e-mail de l'utilisateur ou compte de service que vous souhaitez ajouter, puis cliquez sur l'adresse e-mail de l'utilisateur ou de service géré.
Cliquez sur la liste déroulante Sélectionner un rôle, puis sur Bigtable pour sélectionner un rôle prédéfini ou sur Personnalisé pour sélectionnez un rôle personnalisé.
Cliquez sur le nom de chaque rôle que vous souhaitez attribuer.
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
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
Exécutez la commande
bigtable instances set-iam-policy
:gcloud bigtable instances set-iam-policy \ INSTANCE_ID \ POLICY_FILE
Indiquez les éléments suivants :
- 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
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 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
Accédez à la page "Instances Bigtable" de la console Google Cloud.
Cliquez sur le nom de l'instance contenant la table pour laquelle vous définissez les rôles IAM.
Ouvrez l'onglet Tables dans le volet de navigation de gauche.
Cochez les cases correspondant aux tables dont vous souhaitez gérer les rôles. Un panneau d'information apparaît.
Dans le panneau d'information, cliquez sur Autorisations.
Sous Ajouter des comptes principaux, commencez à saisir l'adresse e-mail de l'utilisateur ou compte de service que vous souhaitez ajouter, puis cliquez sur l'adresse e-mail de l'utilisateur ou de service géré.
Cliquez sur la liste déroulante Sélectionner un rôle, puis sur Bigtable pour sélectionner un rôle prédéfini ou sur Personnalisé pour sélectionnez un rôle personnalisé.
Cliquez sur le nom de chaque rôle que vous souhaitez attribuer.
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
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
Si vous ne connaissez pas les ID de table de l'instance, utilisez la commande
bigtable instances tables list
pour afficher la liste des tables de l'instance.gcloud bigtable instances tables list --instances=INSTANCE_ID
Indiquez les éléments suivants :
- INSTANCE_ID : identifiant permanent de l'instance.
Exécutez la commande
bigtable instances tables set-iam-policy
:gcloud bigtable instances tables set-iam-policy \TABLE_ID \ --instance=INSTANCE_ID \ POLICY_FILE
Indiquez les éléments suivants :
- TABLE_ID: identifiant permanent de la table.
- 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
Attribuer des rôles IAM au niveau de la sauvegarde
Au niveau de la sauvegarde, vous pouvez accorder des autorisations prédéfinies de Bigtable les rôles à 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 niveau de sauvegarde:
gcloud
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
Si vous ne connaissez pas les ID de sauvegarde d'une instance, utilisez la commande
bigtable instances backups list
pour afficher la liste des sauvegardes de l'instance.gcloud bigtable backups list --instances=INSTANCE_ID
Indiquez les éléments suivants :
- INSTANCE_ID : identifiant permanent de l'instance.
Exécutez la commande
gcloud bigtable backups set-iam-policy
:gcloud bigtable backups set-iam-policy BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID \ POLICY_FILE
Indiquez les éléments suivants :
- BACKUP_ID: identifiant permanent de la sauvegarde.
- INSTANCE_ID : identifiant permanent de l'instance.
TABLE_ID
: identifiant permanent de la tablePOLICY_FILE
: chemin d'accès à un fichier JSON ou YAML local contenant une stratégie IAM valide
Attribuer des rôles IAM autorisés au niveau de la vue
Au niveau de la vue autorisée, vous pouvez accorder les rôles prédéfinis de Bigtable à un compte utilisateur ou de service. Vous pouvez également attribuer 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 au niveau de la vue autorisée, exécutez la commande suivante:
gcloud
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
Si vous ne connaissez pas les ID de table de l'instance, utilisez la commande
bigtable instances tables list
pour afficher la liste des tables de l'instance.gcloud bigtable instances tables list --instances=INSTANCE_ID
Si vous ne connaissez pas l'ID de la vue, exécutez la commande
bigtable authorized-views list
pour afficher la liste de toutes les vues autorisées de la table.gcloud bigtable instances tables authorized-views list \ --instance=INSTANCE_ID \ --table=TABLE_ID
Exécutez la commande
bigtable authorized-views set-iam-policy
:gcloud bigtable authorized-views set-iam-policy TABLE_ID \ AUTHORIZED_VIEW_ID --instance=INSTANCE_ID POLICY_FILE
Indiquez les éléments suivants :
INSTANCE_ID
: identifiant permanent de l'instance.TABLE_ID
: identifiant permanent de la tableAUTHORIZED_VIEW_ID
: identifiant permanent de la vuePOLICY_FILE
: chemin d'accès à un fichier JSON ou YAML local contenant une stratégie IAM valide
Conditions IAM
Les conditions IAM vous permettent de définir et d'appliquer un contrôle d'accès conditionnel basé sur des attributs pour certaines ressources Google Cloud, y compris les ressources Bigtable.
Dans Bigtable, vous pouvez appliquer un accès conditionnel en fonction des attributs suivants :
- Attributs de date/heure : permettent de définir un accès temporaire (expiration), de planification ou de durée limitée aux ressources Bigtable. Par exemple, vous pouvez autoriser un utilisateur à accéder à une table jusqu'à une date spécifiée.
- Attributs de ressource : permet de configurer un accès conditionnel en fonction du nom d'une ressource, d'un type de ressource ou des attributs de service d'une ressource. Dans Bigtable, vous pouvez utiliser attributs des instances, clusters, tables, sauvegardes et vues autorisées pour configurer l'accès conditionnel. Par exemple, vous pouvez autoriser un utilisateur à gérer dans les tables qui commencent par un préfixe spécifique, ou vous pouvez autoriser d'accéder à une table spécifique.
Pour en savoir plus sur les conditions IAM, consultez la page Présentation des conditions.
Étape suivante
Apprenez-en plus sur IAM.