Présentation d'IAM

Identity and Access Management (IAM) vous permet de contrôler l'accès des utilisateurs aux ressources Spanner Omni. Par exemple, un utilisateur peut avoir le contrôle total d'une base de données spécifique, mais ne peut pas créer ni modifier d'autres bases de données dans votre déploiement. IAM vous permet d'accorder une autorisation à un utilisateur sans avoir à modifier individuellement chaque autorisation de base de données Spanner Omni.

Ce document se concentre sur les autorisations IAM pertinentes pour Spanner Omni et sur les rôles IAM qui accordent ces autorisations. Pour obtenir une description détaillée d'IAM et de ses fonctionnalités, consultez le guide du développeur sur Identity and Access Management.

Autorisations

Les autorisations permettent aux utilisateurs d'effectuer des actions spécifiques sur les ressources Spanner Omni. Par exemple, l'autorisation spanner.databases.read permet à un utilisateur de lire les données d'une base de données à l'aide de l'API de lecture de Spanner Omni, tandis que spanner.databases.export lui permet d'exporter une base de données Spanner Omni. Vous n'accordez pas directement des autorisations aux utilisateurs, mais vous leur attribuez des rôles prédéfinis auxquels sont associées une ou plusieurs autorisations.

Les tableaux suivants répertorient les autorisations IAM associées à Spanner Omni. Certaines autorisations sont partagées avec Spanner, tandis que d'autres ne sont utilisées que par Spanner Omni.

Bases de données

Les autorisations suivantes s'appliquent aux bases de données Spanner Omni.

Nom de l'autorisation pour la base de données Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.databases.create Créer une base de données ✔
spanner.databases.createBackup Créer une sauvegarde à partir de la base de données. Nécessite également spanner.backups.create pour créer la ressource de sauvegarde. ✔
spanner.databases.get Obtenir les métadonnées d'une base de données ✔
spanner.databases.getIamPolicy Obtenir la stratégie IAM d'une base de données ✔
spanner.databases.list Répertorier les bases de données ✔
spanner.databases.read Lire dans une base de données à l'aide de l'API de lecture ✔
spanner.databases.setIamPolicy Définissez la stratégie IAM d'une base de données. ✔
spanner.databases.update Mettre à jour les métadonnées d'une base de données ✔
spanner.databases.updateDdl Mettre à jour le schéma d'une base de données ✔
spanner.databases.write Écrire dans une base de données ✔
spanner.databases.compact Compresse les tables d'une base de données ✔
spanner.databases.export Exporte une base de données Spanner Omni ✔
spanner.databases.import Importe une base de données Spanner Omni ✔
spanner.databases.addSplitPoints Ajoute des points de fractionnement à une base de données. ✔

Opérations de base de données

Les autorisations suivantes s'appliquent aux opérations sur les bases de données Spanner Omni.

Nom de l'autorisation relative aux opérations de base de données Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.databaseOperations.cancel Annuler une opération de base de données ✔
spanner.databaseOperations.delete Supprimer une opération de base de données ✔
spanner.databaseOperations.get Obtenir une opération de base de données ✔
spanner.databaseOperations.list Répertorier les opérations de base de données et les restaurer ✔

Sauvegardes

Les autorisations suivantes s'appliquent aux sauvegardes Spanner Omni.

Nom de l'autorisation de sauvegarde Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.backups.copy Copiez une sauvegarde. ✔
spanner.backups.create Créer une sauvegarde (nécessite également spanner.databases.createBackup sur la base de données source) ✔
spanner.backups.createDatabaseFromBackup Créez une base de données à partir d'une sauvegarde. ✔
spanner.backups.delete Supprimer une sauvegarde ✔
spanner.backups.get Obtenir une sauvegarde ✔
spanner.backups.getIamPolicy Obtenir la stratégie IAM d'une sauvegarde ✔
spanner.backups.list Répertorier des sauvegardes ✔
spanner.backups.restoreDatabase Restaurer la base de données à partir d'une sauvegarde. Nécessite également spanner.databases.create pour créer la base de données restaurée. ✔
spanner.backups.setIamPolicy Définir la stratégie IAM d'une sauvegarde ✔
spanner.backups.update Mettre à jour une sauvegarde ✔
spanner.backups.import Importer une sauvegarde depuis un espace de stockage externe ✔

Opérations de sauvegarde

Les autorisations suivantes s'appliquent aux opérations de sauvegarde Spanner Omni.

Nom de l'autorisation de l'opération de sauvegarde Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.backupOperations.cancel Annuler une opération de sauvegarde. ✔
spanner.backupOperations.get Obtenir une opération de sauvegarde spécifique. ✔
spanner.backupOperations.list Répertorier les opérations de sauvegarde. ✔

Planifications de sauvegarde

Les autorisations suivantes s'appliquent aux plannings de sauvegarde Spanner Omni.

Nom de l'autorisation de planification de sauvegarde Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.backupSchedules.create Créez un planning de sauvegarde. (nécessite également spanner.databases.createBackup sur la base de données source) ✔
spanner.backupSchedules.delete Supprimez une planification de sauvegarde. ✔
spanner.backupSchedules.get Obtenez un planning de sauvegarde. ✔
spanner.backupSchedules.list Lister les programmations de sauvegarde. ✔
spanner.backupSchedules.update Mettez à jour un planning de sauvegarde. ✔
spanner.backupSchedules.getIamPolicy Obtenir la stratégie IAM d'un calendrier de sauvegarde. ✔
spanner.backupSchedules.setIamPolicy Définir la stratégie IAM d'une planification de sauvegarde ✔

Descripteurs de sauvegarde

Les autorisations suivantes s'appliquent aux descripteurs de sauvegarde Spanner Omni.

Nom de l'autorisation du descripteur de sauvegarde Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.backupDescriptors.import Importe une sauvegarde à partir d'un descripteur de sauvegarde ✔
spanner.backupDescriptors.list Répertoriez les descripteurs de sauvegarde. ✔

Sessions

Les autorisations suivantes s'appliquent aux sessions Spanner Omni.

Nom de l'autorisation relative aux sessions Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.sessions.create Créer une session ✔
spanner.sessions.delete Supprimer une session ✔
spanner.sessions.get Obtenir une session ✔
spanner.sessions.list Répertorier les sessions ✔

Emplacement et zones

Les autorisations suivantes s'appliquent aux zones et aux emplacements Spanner Omni.

Nom de l'autorisation Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.locations.create Créer un emplacement Spanner Omni ✔
spanner.locations.delete Supprimer une localisation Spanner Omni ✔
spanner.locations.get Obtenir un emplacement Spanner Omni ✔
spanner.locations.list Lister les emplacements Spanner Omni ✔
spanner.locationDistances.create Créer une distance de localisation Spanner Omni ✔
spanner.locationDistances.delete Supprimer une distance de localisation Spanner Omni ✔
spanner.locationDistances.get Obtenir la distance d'un emplacement Spanner Omni ✔
spanner.locationDistances.list Lister les distances des emplacements Spanner Omni ✔
spanner.locationDistances.update Modifier la distance d'un emplacement Spanner Omni ✔
spanner.zones.create Créer une zone Spanner Omni ✔
spanner.zones.delete Supprimer une zone Spanner Omni ✔
spanner.zones.get Obtenir une zone Spanner Omni ✔
spanner.zones.list Lister les zones Spanner Omni ✔

Serveurs

Les autorisations suivantes s'appliquent aux serveurs Spanner Omni.

Nom de l'autorisation du serveur Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.servers.create Crée un serveur Spanner Omni. ✔
spanner.servers.delete Supprime un serveur Spanner Omni ✔
spanner.servers.get Récupère un serveur Spanner Omni ✔
spanner.servers.list Liste les serveurs Spanner Omni ✔

Utilisateurs et rôles

Les autorisations suivantes s'appliquent aux utilisateurs et aux rôles Spanner Omni.

Nom de l'autorisation Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.users.create Crée un utilisateur Spanner Omni ✔
spanner.users.delete Supprime un utilisateur Spanner Omni ✔
spanner.users.get Récupère un utilisateur Spanner Omni ✔
spanner.users.list Liste les utilisateurs Spanner Omni ✔
spanner.users.update Met à jour un utilisateur Spanner Omni ✔
spanner.roles.get Obtient un rôle Spanner Omni ✔
spanner.roles.list Liste les rôles Spanner Omni ✔

Stockage externe

Les autorisations suivantes s'appliquent au stockage externe Spanner Omni.

Nom de l'autorisation de stockage externe Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.externalStorages.create Crée un stockage externe ✔
spanner.externalStorages.delete Supprime un stockage externe ✔
spanner.externalStorages.get Obtenir le stockage externe ✔
spanner.externalStorages.getIamPolicy Obtient la stratégie IAM d'un stockage externe. ✔
spanner.externalStorages.list Liste les stockages externes ✔
spanner.externalStorages.setIamPolicy Définit la stratégie IAM d'un stockage externe ✔

Système de fichiers et descripteurs

Les autorisations suivantes s'appliquent au système de fichiers Spanner Omni.

Nom de l'autorisation Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.filesystem.cat Imprime les fichiers du système de fichiers Spanner Omni ✔
spanner.filesystem.ls Liste les fichiers du système de fichiers Spanner Omni ✔
spanner.descriptors.print Affiche les descripteurs dans le système de fichiers Spanner Omni ✔

Autres autorisations d'administrateur

Les autorisations suivantes s'appliquent aux autres tâches d'administrateur Spanner Omni.

Nom de l'autorisation Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.chubby.list Lister les cellules Chubby ✔
spanner.chubby.print Affiche le contenu des cellules Chubby ✔
spanner.deployment.get Obtenir le déploiement Spanner Omni ✔
spanner.diagnostics.create Collecte les artefacts des serveurs Spanner Omni pour le débogage ✔
spanner.internal-tables.sql Exécute des requêtes SQL sur des tables internes ✔
spanner.logs.copy Copie les journaux d'un serveur Spanner Omni ✔
spanner.tablet.move Déplace un tablet d'un serveur Spanner Omni à un autre ✔
spanner.workflows.delete Supprime un workflow dans une base de données ✔
spanner.groups.compact Réduit les tablettes dans un groupe ✔
spanner.directories.compact Compacter les tablettes dans un répertoire ✔

Rôles prédéfinis

Un rôle prédéfini correspond à un ensemble contenant une ou plusieurs autorisations. Spanner Omni est compatible avec les rôles prédéfinis suivants :

Rôle Description
roles/spanner.admin Offre un accès complet à toutes les ressources Spanner Omni. Inclut toutes les autorisations.
roles/spanner.backupAdmin Offre un accès complet aux sauvegardes et aux opérations de sauvegarde Spanner Omni.
roles/spanner.backupWriter Peut créer des sauvegardes, mais ne peut pas les modifier ni les supprimer.
roles/spanner.databaseAdmin Offre un accès complet à toutes les bases de données Spanner Omni d'un projet.
roles/spanner.databaseReader Peut lire les données de la base de données Spanner Omni et afficher le schéma.
roles/spanner.databaseUser Peut lire et écrire dans la base de données Spanner Omni.
roles/spanner.editor Rôle d'éditeur pour Spanner Omni.
roles/spanner.restoreAdmin Peut restaurer une base de données à partir d'une sauvegarde.
roles/spanner.viewer Peut afficher toutes les ressources Spanner Omni, mais pas les modifier. Inclut des autorisations de lecture seule.

Spanner Omni présente quelques autres limites notables :

  • Aucun rôle personnalisé.
  • Aucun contrôle précis des accès.
  • Aucune condition IAM.

Étapes suivantes