En esta página, se describe cómo controlar los permisos y el acceso a un proyecto de Cloud SQL mediante la 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 propias 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 recursos en todo 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 de Cloud SQL incluye todos los permisos de la función de Editor de Cloud SQL, 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 enumeran 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
En la siguiente tabla, se describe cada permiso que admite Cloud SQL, las funciones de Cloud SQL que lo incluyen y su función 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
- Aprende a otorgar y revocar el acceso a los miembros del proyecto.
- Obtén más información sobre IAM.
- Obtén más información sobre las funciones básicas.
- Obtén información sobre el control de acceso a las instancias.
- Obtén información sobre el control de acceso a las bases de datos.
- Obtén más información sobre las funciones personalizadas.