Contrôle de l'accès aux projets

Cette page vous explique comment contrôler les autorisations et l'accès aux projets Cloud SQL à l'aide de la gestion de l'authentification et des accès (IAM).

Présentation

Google Cloud propose Identity and Access Management (IAM), qui vous permet de définir de manière plus précise l'accès à des ressources spécifiques de Google Cloud et d'empêcher tout accès indésirable à d'autres ressources. Cette page décrit les autorisations et les rôles IAM associés à Cloud SQL. Pour obtenir une description détaillée de Google Cloud IAM, consultez la documentation IAM.

Le service Cloud SQL propose un ensemble de rôles prédéfinis conçus pour vous aider à contrôler l'accès aux ressources qu'il fournit. Si ces rôles ne vous attribuent pas les autorisations dont vous avez besoin, vous pouvez également créer des rôles personnalisés. En outre, les anciens rôles de base (éditeur, lecteur et propriétaire) restent disponibles, même s'ils ne permettent pas un contrôle aussi précis que les rôles Cloud SQL. Vous pouvez les utiliser spécifiquement pour accéder à l'ensemble des ressources Google Cloud, et pas uniquement aux ressources Cloud SQL. Pour en savoir plus sur les rôles de base, consultez la section Rôles de base.

Autorisations et rôles

Cette section récapitule les autorisations et les rôles disponibles pour Cloud SQL.

Rôles prédéfinis

Cloud SQL fournit des rôles prédéfinis qui vous permettent d'accorder des autorisations précises aux membres d'un projet. Le rôle que vous attribuez à ces membres définit les actions qu'ils peuvent entreprendre. Ces derniers peuvent être des individus, des groupes ou des comptes de service.

Vous pouvez attribuer plusieurs rôles à un même membre du projet et les modifier à tout moment (à condition que vous disposiez des autorisations nécessaires).

Les rôles généraux incluent les rôles plus précis. Par exemple, le rôle d'éditeur Cloud SQL dispose non seulement de toutes les autorisations du rôle de lecteur Cloud SQL, mais également de ses autorisations spécifiques. De même, le rôle d'administrateur Cloud SQL inclut toutes les autorisations du rôle d'éditeur Cloud SQL ainsi que ses propres autorisations.

Les rôles de base (propriétaire, éditeur, lecteur) fournissent des autorisations pour l'ensemble des services Google Cloud. Les rôles propres à Cloud SQL n'incluent que les autorisations Cloud SQL, à l'exception des autorisations Google Cloud suivantes qui sont nécessaires pour l'utilisation générale de Google Cloud :

  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.use

Le tableau ci-dessous répertorie les rôles prédéfinis qui sont disponibles pour Cloud SQL, ainsi que les autorisations Cloud SQL associées.

Rôle Nom Autorisations Cloud SQL Description
roles/owner Propriétaire cloudsql.* Accès complet à toutes les ressources Google Cloud, contrôle total sur ces ressources et gestion de l'accès des utilisateurs.
roles/editor Éditeur Toutes les autorisations cloudsql, à l'exception de
cloudsql.*.getIamPolicy et
cloudsql.*.setIamPolicy
Accès en lecture/écriture à toutes les ressources Google Cloud et Cloud SQL (contrôle total, hormis la possibilité de modifier les autorisations).
roles/viewer Lecteur cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
Accès en lecture seule à toutes les ressources Google Cloud, y compris aux ressources Cloud SQL.
roles/cloudsql.admin Administrateur Cloud SQL cloudsql.* Contrôle total sur toutes les ressources Cloud SQL.
roles/cloudsql.editor Éditeur Cloud SQL cloudsql.instances.addServerCa
cloudsql.instances.connect
cloudsql.instances.export
cloudsql.instances.failover
cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.listServerCas
cloudsql.instances.restart
cloudsql.instances.rotateServerCa
cloudsql.instances.truncateLog
cloudsql.instances.update
cloudsql.databases.create
cloudsql.databases.get
cloudsql.databases.list
cloudsql.databases.update
cloudsql.backupRuns.create
cloudsql.backupRuns.get
cloudsql.backupRuns.list
cloudsql.sslCerts.get
cloudsql.sslCerts.list
cloudsql.users.list
Permet de gérer les ressources Cloud SQL. Impossibilité d'afficher ou de modifier les autorisations, et de modifier les utilisateurs et les certificats SSL. Impossibilité d'importer des données, d'effectuer une restauration à partir d'une sauvegarde, ainsi que de cloner, supprimer ou promouvoir des instances. Impossibilité de démarrer ou d'arrêter des instances dupliquées. Impossibilité de supprimer des bases de données, des instances dupliquées ou des sauvegardes.
roles/cloudsql.viewer Lecteur Cloud SQL cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
cloudsql.instances.listServerCa
Accès en lecture seule à toutes les ressources Cloud SQL.
roles/cloudsql.client Client Cloud SQL cloudsql.instances.connect
cloudsql.instances.get
Accès connecté aux instances Cloud SQL à partir d'App Engine et du proxy Cloud SQL. Ce rôle n'est pas requis pour accéder à une instance à l'aide d'adresses IP.

Autorisations et rôles associés

Le tableau ci-dessous répertorie les autorisations disponibles pour Cloud SQL, les rôles Cloud SQL qui les incluent et le rôle de base auquel elles correspondent.

Autorisation Rôles Cloud SQL Ancien rôle
cloudsql.backupRuns.create Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.backupRuns.delete Administrateur Cloud SQL Éditeur
cloudsql.backupRuns.get Administrateur Cloud SQL
Éditeur Cloud SQL
Lecteur Cloud SQL
Lecteur
cloudsql.backupRuns.list Administrateur Cloud SQL
Éditeur Cloud SQL
Lecteur Cloud SQL
Lecteur
cloudsql.databases.create Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.databases.delete Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.databases.get Administrateur Cloud SQL
Éditeur Cloud SQL
Lecteur Cloud SQL
Lecteur
cloudsql.databases.getIamPolicy Administrateur Cloud SQL Propriétaire
cloudsql.databases.list Administrateur Cloud SQL
Éditeur Cloud SQL
Lecteur Cloud SQL
Lecteur
cloudsql.databases.setIamPolicy Administrateur Cloud SQL Propriétaire
cloudsql.databases.update Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.instance.addServerCa Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.instances.clone Administrateur Cloud SQL Éditeur
cloudsql.instances.connect Administrateur Cloud SQL
Client Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.instances.create Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.instances.delete Administrateur Cloud SQL Éditeur
cloudsql.instances.demoteMaster Administrateur Cloud SQL Éditeur
cloudsql.instances.export Administrateur Cloud SQL
Éditeur Cloud SQL
Lecteur Cloud SQL
Lecteur
cloudsql.instances.failover Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.instances.get Administrateur Cloud SQL
Client Cloud SQL
Éditeur Cloud SQL
Lecteur Cloud SQL
Lecteur
cloudsql.instances.getIamPolicy Administrateur Cloud SQL Propriétaire
cloudsql.instances.import Administrateur Cloud SQL Éditeur
cloudsql.instances.list Administrateur Cloud SQL
Éditeur Cloud SQL
Lecteur Cloud SQL
Lecteur
cloudsql.instance.listServerCa Lecteur Cloud SQL Lecteur
cloudsql.instances.promoteReplica Administrateur Cloud SQL Éditeur
cloudsql.instances.resetSslConfig Administrateur Cloud SQL Éditeur
cloudsql.instances.restart Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.instances.restoreBackup Administrateur Cloud SQL Éditeur
cloudsql.instance.rotateServerCa Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.instances.setIamPolicy Administrateur Cloud SQL Propriétaire
cloudsql.instances.startReplica Administrateur Cloud SQL Éditeur
cloudsql.instances.stopReplica Administrateur Cloud SQL Éditeur
cloudsql.instances.truncateLog Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.instances.update Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.sslCerts.create Administrateur Cloud SQL Éditeur
cloudsql.sslCerts.delete Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.sslCerts.get Administrateur Cloud SQL
Éditeur Cloud SQL
Lecteur Cloud SQL
Lecteur
cloudsql.sslCerts.list Administrateur Cloud SQL
Éditeur Cloud SQL
Lecteur Cloud SQL
Lecteur
cloudsql.users.create Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.users.delete Administrateur Cloud SQL
Éditeur Cloud SQL
Éditeur
cloudsql.users.list Administrateur Cloud SQL
Éditeur Cloud SQL
Lecteur Cloud SQL
Lecteur
cloudsql.users.update Administrateur Cloud SQL Éditeur

Rôles personnalisés

Si les rôles prédéfinis ne répondent pas à vos besoins métier spécifiques, vous pouvez définir vos propres rôles personnalisés avec des autorisations que vous spécifiez. Pour ce faire, utilisez les rôles personnalisés dans IAM.

Lorsque vous créez des rôles personnalisés pour Cloud SQL, veillez à inclure à la fois cloudsql.instances.list et cloudsql.instances.get lorsque vous spécifiez l'une de ces deux autorisations. Sinon, Cloud Console ne fonctionne pas correctement pour Cloud SQL.

Autorisations requises pour effectuer des tâches courantes dans Cloud Console

Tâche Autorisations supplémentaires requises
Afficher la page contenant la liste des instances cloudsql.instances.list
resourcemanager.projects.get
Créer une instance cloudsql.instances.create
cloudsql.instances.get
cloudsql.instances.list
resourcemanager.projects.get
Se connecter à une instance à partir de Cloud Shell cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.update
resourcemanager.projects.get
Créer un utilisateur cloudsql.instances.get
cloudsql.instances.list
cloudsql.users.create
cloudsql.users.list
resourcemanager.projects.get
Afficher les informations sur les instances cloudsql.instances.get
cloudsql.instances.list
cloudsql.users.list
monitoring.timeSeries.list
resourcemanager.projects.get

Autorisations requises pour exécuter les commandes gcloud sql

Commande Autorisations requises
gcloud sql backups create cloudsql.backupRuns.create
gcloud sql backups delete cloudsql.backupRuns.delete
gcloud sql backups describe cloudsql.backupRuns.get
gcloud sql backups list cloudsql.backupRuns.list
gcloud sql backups restore cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
gcloud sql connect cloudsql.instances.get
cloudsql.instances.update
gcloud sql databases create cloudsql.databases.create
gcloud sql databases delete cloudsql.databases.delete
gcloud sql databases describe cloudsql.databases.get
gcloud sql databases list cloudsql.databases.list
gcloud sql databases patch cloudsql.databases.get
cloudsql.databases.update
gcloud sql export cloudsql.instances.export
cloudsql.instances.get
gcloud sql flags list Aucune
gcloud sql import cloudsql.instances.import
gcloud sql instances clone cloudsql.instances.clone
gcloud sql instances create cloudsql.instances.create
gcloud sql instances delete cloudsql.instances.delete
gcloud sql instances describe cloudsql.instances.get
gcloud sql instances export cloudsql.instances.export
gcloud sql instances failover cloudsql.instances.failover
gcloud sql instances import cloudsql.instances.import
gcloud sql instances list cloudsql.instances.list
gcloud sql instances patch cloudsql.instances.get
cloudsql.instances.update
gcloud sql instances promote-replica cloudsql.instances.promoteReplica
gcloud sql instances reset-ssl-config cloudsql.instances.resetSslConfig
gcloud sql instances restart cloudsql.instances.restart
gcloud sql instances restore-backup cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
gcloud sql operations describe cloudsql.instances.get
gcloud sql operations list cloudsql.instances.get
gcloud sql operations wait cloudsql.instances.get
gcloud sql ssl client-certs create cloudsql.sslCerts.create
gcloud sql ssl client-certs delete cloudsql.sslCerts.delete
gcloud sql ssl client-certs describe cloudsql.sslCerts.list
gcloud sql ssl client-certs list cloudsql.sslCerts.list
gcloud sql tiers list Aucune
gcloud sql users create cloudsql.users.create
gcloud sql users delete cloudsql.users.delete
gcloud sql users list cloudsql.users.list
gcloud sql users set-password cloudsql.users.update

Autorisations requises pour les méthodes API

Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode dans l'API Cloud SQL Admin ou pour effectuer des tâches à l'aide des outils Google Cloud qui utilisent l'API (tels que Google Cloud Console ou l'outil de ligne de commande gcloud).

Toutes les autorisations sont appliquées au projet. Vous ne pouvez pas appliquer d'autres autorisations basées sur l'instance ou sur un objet de niveau inférieur.

Méthode Autorisations requises
backupRuns.delete cloudsql.backupRuns.delete
backupRuns.get cloudsql.backupRuns.get
backupRuns.insert cloudsql.backupRuns.create
backupRuns.list cloudsql.backupRuns.list
databases.delete cloudsql.databases.delete
databases.get cloudsql.databases.get
databases.insert cloudsql.databases.create
databases.list cloudsql.databases.list
databases.patch cloudsql.databases.update cloudsql.databases.get
databases.update cloudsql.databases.update
flags.list Aucune
instances.clone cloudsql.instances.clone
instances.delete cloudsql.instances.delete
instances.export cloudsql.instances.export
instances.failover cloudsql.instances.failover
instances.get cloudsql.instances.get
instances.import cloudsql.instances.import
instances.insert cloudsql.instances.create
instances.list cloudsql.instances.list
instances.patch cloudsql.instances.get cloudsql.instances.update
instances.promoteReplica cloudsql.instances.promoteReplica
instances.resetSslConfig cloudsql.instances.resetSslConfig
instances.restart cloudsql.instances.restart
instances.restoreBackup cloudsql.instances.restoreBackup cloudsql.backupRuns.get
instances.startReplica cloudsql.instances.startReplica
instances.stopReplica cloudsql.instances.stopReplica
instances.truncateLog cloudsql.instances.truncateLog
instances.update cloudsql.instances.update
operations.get cloudsql.instances.get
operations.list cloudsql.instances.get
sslCerts.delete cloudsql.sslCerts.delete
sslCerts.get cloudsql.sslCerts.get
sslCerts.insert cloudsql.sslCerts.create
sslCerts.list cloudsql.sslCerts.list
users.delete cloudsql.users.delete
users.insert cloudsql.users.create
users.list cloudsql.users.list
users.update cloudsql.users.update

Gestion IAM spécifique à Cloud SQL pour MySQL

Vous pouvez obtenir et définir des rôles et des stratégies IAM à l'aide de Google Cloud Console, des méthodes IAM de l'API ou du SDK Cloud. Pour en savoir plus, consultez la page Attribuer, modifier et révoquer les accès des membres du projet.

Étapes suivantes