Control de acceso a proyectos

En esta página, se describe cómo puedes controlar los permisos y el acceso a un proyecto de Cloud SQL mediante la función de administración de identidades y accesos (IAM).

Descripción general

Google Cloud ofrece la administración de identidades y accesos (IAM), que te permite brindar acceso más detallado a recursos específicos de Google Cloud y evita el acceso no deseado a otros recursos. En esta página, se describen las funciones y los permisos de IAM en Cloud SQL. Para obtener una descripción detallada de Google Cloud IAM, consulta la documentación de IAM.

Cloud SQL proporciona un conjunto de funciones predefinidas diseñadas para ayudarte a controlar el acceso a tus recursos de Cloud SQL. También puedes crear tus funciones personalizadas, si las funciones predefinidas no proporcionan los conjuntos de permisos que necesitas. Las funciones básicas heredadas (Editor, Visualizador y Propietario) también están disponibles, aunque no proporcionan el mismo control detallado que las funciones de Cloud SQL. En particular, las funciones básicas brindan acceso a los recursos en Google Cloud, en lugar de solo a los de Cloud SQL. Para obtener más información sobre las funciones básicas, consulta Funciones básicas.

Permisos y funciones

En esta sección, se resumen los permisos y las funciones que admite Cloud SQL.

Funciones predefinidas

Cloud SQL brinda algunas funciones predefinidas que puedes usar para proporcionar permisos más detallados a los miembros del proyecto. La función que otorgas a un miembro del proyecto controla qué acciones puede realizar. Los miembros del proyecto pueden ser personas, grupos o cuentas de servicio.

Puedes otorgar múltiples funciones a un mismo miembro del proyecto y cambiarlas en cualquier momento, siempre que tengas los permisos para hacerlo.

Las funciones más amplias incluyen las más específicas. Por ejemplo, la función de Editor de Cloud SQL incluye todos los permisos de la función del Lector, junto con los permisos adicionales de la función de Editor. Del mismo modo, la función de Administrador incluye todos los permisos de la función de Editor, junto con sus propios permisos adicionales.

Las funciones básicas (Propietario, Editor y Visualizador) proporcionan permisos en Google Cloud. Las funciones específicas de Cloud SQL solo proporcionan permisos en Cloud SQL, excepto los siguientes permisos de Google Cloud, que son necesarios para el uso general de Google Cloud:

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

En la siguiente tabla, se describen las funciones predefinidas disponibles para Cloud SQL, junto con sus permisos de Cloud SQL:

Función Nombre Permisos en Cloud SQL Descripción
roles/owner Propietario cloudsql.* Acceso y control totales para todos los recursos de Google Cloud; administración del acceso de los usuarios
roles/editor Editor Todos los permisos de cloudsql, excepto
cloudsql.*.getIamPolicy y
cloudsql.*.setIamPolicy
Acceso de lectura y escritura a todos los recursos de Google Cloud y Cloud SQL (control total, excepto para modificar permisos)
roles/viewer Visualizador cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
Acceso de solo lectura a todos los recursos de Google Cloud, incluidos los recursos de Cloud SQL
roles/cloudsql.admin Administrador de Cloud SQL cloudsql.* Control total de todos los recursos de Cloud SQL
roles/cloudsql.editor Editor de 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
Administra los recursos de Cloud SQL. Sin capacidad de ver o modificar permisos ni modificar usuarios o sslCerts. Sin capacidad de importar datos o restablecerlos desde una copia de seguridad, ni de clonar, borrar o ascender instancias. Sin capacidad de iniciar o detener réplicas. Sin capacidad de borrar bases de datos, réplicas o copias de seguridad.
roles/cloudsql.viewer Visualizador de Cloud SQL cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
cloudsql.instances.listServerCa
Acceso de solo lectura a todos los recursos de Cloud SQL
roles/cloudsql.client Cliente de Cloud SQL cloudsql.instances.connect
cloudsql.instances.get
Acceso de conectividad a las instancias de Cloud SQL desde App Engine y el proxy de Cloud SQL (no es necesario para acceder a una instancia que usa direcciones IP)

Permisos y sus funciones

La siguiente tabla enumera cada permiso que admite Cloud SQL, las funciones de Cloud SQL que lo incluyen y su función heredada (básica).

Permiso Funciones de Cloud SQL Función heredada
cloudsql.backupRuns.create Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.backupRuns.delete Administrador de Cloud SQL Editor
cloudsql.backupRuns.get Administrador de Cloud SQL
Editor de Cloud SQL
Visualizador de Cloud SQL
Visualizador
cloudsql.backupRuns.list Administrador de Cloud SQL
Editor de Cloud SQL
Visualizador de Cloud SQL
Visualizador
cloudsql.databases.create Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.databases.delete Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.databases.get Administrador de Cloud SQL
Editor de Cloud SQL
Visualizador de Cloud SQL
Visualizador
cloudsql.databases.getIamPolicy Administrador de Cloud SQL Propietario
cloudsql.databases.list Administrador de Cloud SQL
Editor de Cloud SQL
Visualizador de Cloud SQL
Visualizador
cloudsql.databases.setIamPolicy Administrador de Cloud SQL Propietario
cloudsql.databases.update Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.instance.addServerCa Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.instances.clone Administrador de Cloud SQL Editor
cloudsql.instances.connect Administrador de Cloud SQL
Cliente de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.instances.create Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.instances.delete Administrador de Cloud SQL Editor
cloudsql.instances.demoteMaster Administrador de Cloud SQL Editor
cloudsql.instances.export Administrador de Cloud SQL
Editor de Cloud SQL
Visualizador de Cloud SQL
Visualizador
cloudsql.instances.failover Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.instances.get Administrador de Cloud SQL
Cliente de Cloud SQL
Editor de Cloud SQL
Visualizador de Cloud SQL
Visualizador
cloudsql.instances.getIamPolicy Administrador de Cloud SQL Propietario
cloudsql.instances.import Administrador de Cloud SQL Editor
cloudsql.instances.list Administrador de Cloud SQL
Editor de Cloud SQL
Visualizador de Cloud SQL
Visualizador
cloudsql.instance.listServerCa Visualizador de Cloud SQL Visualizador
cloudsql.instances.promoteReplica Administrador de Cloud SQL Editor
cloudsql.instances.resetSslConfig Administrador de Cloud SQL Editor
cloudsql.instances.restart Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.instances.restoreBackup Administrador de Cloud SQL Editor
cloudsql.instance.rotateServerCa Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.instances.setIamPolicy Administrador de Cloud SQL Propietario
cloudsql.instances.startReplica Administrador de Cloud SQL Editor
cloudsql.instances.stopReplica Administrador de Cloud SQL Editor
cloudsql.instances.truncateLog Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.instances.update Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.sslCerts.create Administrador de Cloud SQL Editor
cloudsql.sslCerts.delete Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.sslCerts.get Administrador de Cloud SQL
Editor de Cloud SQL
Visualizador de Cloud SQL
Visualizador
cloudsql.sslCerts.list Administrador de Cloud SQL
Editor de Cloud SQL
Visualizador de Cloud SQL
Visualizador
cloudsql.users.create Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.users.delete Administrador de Cloud SQL
Editor de Cloud SQL
Editor
cloudsql.users.list Administrador de Cloud SQL
Editor de Cloud SQL
Visualizador de Cloud SQL
Visualizador
cloudsql.users.update Administrador de Cloud SQL Editor

Funciones personalizadas

Si las funciones predefinidas no responden a tus requisitos comerciales particulares, puedes definir tus propias funciones personalizadas con los permisos que especifiques. Para ello, IAM ofrece funciones personalizadas.

Cuando crees funciones personalizadas para Cloud SQL, asegúrate de incluir cloudsql.instances.list y cloudsql.instances.get. De lo contrario, Cloud Console no funcionará de forma correcta con Cloud SQL.

Permisos necesarios para realizar tareas comunes en Cloud Console

Tarea Permisos adicionales necesarios
Mostrar la página del listado de instancias cloudsql.instances.list
resourcemanager.projects.get
Crear una instancia cloudsql.instances.create
cloudsql.instances.get
cloudsql.instances.list
resourcemanager.projects.get
Conectar una instancia desde Cloud Shell cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.update
resourcemanager.projects.get
Crear un usuario cloudsql.instances.get
cloudsql.instances.list
cloudsql.users.create
cloudsql.users.list
resourcemanager.projects.get
Ver información de instancias cloudsql.instances.get
cloudsql.instances.list
cloudsql.users.list
monitoring.timeSeries.list
resourcemanager.projects.get

Permisos necesarios para los comandos de gcloud sql

Comando Permisos necesarios
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 Ninguno
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 Ninguno
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

Permisos obligatorios para los métodos de la API

En la siguiente tabla, se enumeran los permisos que el emisor debe tener para llamar a cada método en la API de Administrador de Cloud SQL o realizar tareas mediante las herramientas de Google Cloud que usan la API (como Google Cloud Console o la herramienta de línea de comandos de gcloud).

Todos los permisos se aplican al proyecto. No puedes aplicar permisos diferentes basados en la instancia o en otro objeto de nivel inferior.

Método Permisos necesarios
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 Ninguno
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

Administra IAM de Cloud SQL para MySQL

Puedes obtener y configurar las políticas de IAM y sus funciones con Google Cloud Console, los métodos de IAM de la API o el SDK de Cloud. Para obtener más información, consulta la sección sobre cómo otorgar, cambiar y revocar el acceso a miembros del proyecto.

Próximos pasos