En esta página, se proporciona información sobre los roles y permisos de Identity and Access Management (IAM), y cómo se usan con las instancias de Cloud SQL.
Introducción
En esta página, se describen aspectos de IAM relevantes para Cloud SQL en particular. Para obtener un análisis más detallado de IAM y sus características en general, consulta Administración de identidades y accesos. En particular, lee la sección Administra políticas de IAM. IAM te permite controlar quién tiene acceso a los recursos en tu proyecto de Google Cloud. El conjunto de reglas de acceso que aplicas a un recurso se denomina política de IAM. Una política de IAM que se aplica a tu proyecto define las acciones que los usuarios pueden realizar en todos los recursos de tu proyecto.
Los miembros son “quienes” están en IAM. Los miembros pueden ser usuarios individuales, grupos, dominios o incluso el público en general. A los miembros se les asignan roles que les otorgan la capacidad de realizar acciones en Cloud SQL, así como en Google Cloud, de manera más general. Cada función es una colección de uno o más permisos. Los permisos son las unidades básicas de IAM: cada uno te permite realizar una acción determinada. Consulta Roles de IAM en Cloud SQL y Permisos de IAM en Cloud SQL para obtener listas completas de todos los roles y los permisos disponibles en Cloud SQL.
Cuando usas una cuenta para conectarte a una instancia de Cloud SQL, la cuenta debe tener la función de Cloud SQL > Cliente (roles/cloudsql.client
), que incluye los permisos obligatorios para la conexión.
Puedes agregar funciones a una cuenta en la página IAM y administración > IAM de Console y ver qué permisos pertenecen a qué funciones en la página IAM y administración > Funciones.
Cloud SQL usa cuentas de servicio para la autenticación entre Cloud SQL y otros productos de Google Cloud. Las cuentas de servicio proporcionan credentials
en formato JSON, que puedes descargar desde Console y usar para la autenticación en varias situaciones.
Funciones y permisos de Cloud SQL con el proxy de Cloud SQL Auth
Si te conectas a una instancia de Cloud SQL desde una instancia de Compute Engine con el proxy de Cloud SQL Auth, puedes usar la cuenta de servicio predeterminada de Compute Engine asociada con la instancia de Compute Engine.
Al igual que sucede con todas las cuentas que se conectan a una instancia de Cloud SQL, la cuenta de servicio debe tener el rol Cloud SQL > Cliente.
Funciones y permisos de Cloud SQL con opciones sin servidores
Para autorizar el acceso desde estas opciones, debes usar una cuenta de servicio. La cuenta de servicio autoriza el acceso a todo Cloud SQL en un proyecto específico. Cuando creas una aplicación o una función de Cloud Run, este servicio crea la cuenta por ti. Puedes encontrar la cuenta en la página IAM y administración > IAM mediante el sufijo adecuado:
Opción sin servidores | Sufijo de la cuenta de servicio |
---|---|
App Engine | @gae-api-prod.google.com.iam.gserviceaccount.com |
Funciones de Cloud Run | @appspot.gserviceaccount.com |
Cloud Run | compute@developer.gserviceaccount.com |
Funciones y permisos de Cloud SQL con Cloud Storage
Las funciones de importación y exportación en Cloud SQL funcionan en conjunto. Las exportaciones escriben en Cloud Storage y las importaciones leen desde allí. Por esta razón, la cuenta de servicio que uses para estas operaciones necesita permisos de lectura y escritura en Cloud Storage:
- Para importar y exportar datos en Cloud Storage, la cuenta de servicio de la instancia de Cloud SQL debe tener la función de IAM
storage.objectAdmin
establecida en el proyecto. Puedes encontrar el nombre de la cuenta de servicio de la instancia en la consola de Google Cloud en la página Descripción general de la instancia. - Puedes usar el comando
gcloud storage buckets add-iam-policy-binding
para otorgar esta función de IAM a la cuenta de servicio del depósito. - Para obtener ayuda con la configuración de los permisos y las funciones de IAM, consulta la sección sobre cómo usar permisos de IAM.
- Si deseas obtener más información, consulta IAM para Cloud Storage.
Roles y permisos de Cloud SQL para la integración de Dataplex
Para proporcionar acceso a los metadatos de Cloud SQL en Dataplex, puedes otorgar a un usuario el rol roles/cloudsql.schemaViewer
o agregar el permiso cloudsql.schemas.view
a un rol personalizado.
Para obtener más información, consulta Administra recursos de Cloud SQL con el catálogo de Dataplex.
Funciones y permisos de Cloud SQL en otras situaciones
Cloud SQL interactúa con otros productos y herramientas de Google Cloud. Estas interacciones también requieren funciones y permisos específicos que pueden variar según la situación. La documentación de Cloud SQL proporciona información detallada sobre estos requisitos en cada uno de los casos que se muestran a continuación:
- Usa claves de encriptación administradas por el cliente (CMEK).
- Funciones de IAM para administrar los Controles del servicio de VPC.
Usa IAM con proyectos
En las siguientes secciones, se muestra cómo completar tareas básicas de IAM en proyectos.
Para completar las siguientes tareas, debes tener los permisos resourcemanager.projects.getIamPolicy
y resourcemanager.projects.setIamPolicy
de IAM.
Agrega un miembro a una política a nivel de proyecto
Para obtener una lista de los roles asociados con Cloud SQL, consulta Roles de IAM.
Console
- Ve a la página IAM y administración en la consola de Google Cloud
- En el menú desplegable del proyecto en la barra superior, selecciona el proyecto al que deseas agregar un miembro.
- Haz clic en Agregar. Aparecerá el cuadro de diálogo Agregar miembros y funciones al proyecto.
- En el campo Miembros nuevos, especifica el nombre de la entidad a la que deseas otorgarle acceso.
- En el menú desplegable Seleccionar una función, otorga la función correspondiente al miembro. Los roles que afectan a los recursos de Cloud SQL se encuentran en los submenús Proyecto y Cloud SQL.
- Haz clic en Guardar.
gcloud
Para agregar una política de IAM a nivel de proyecto, usa gcloud beta projects add-iam-policy-binding
.
Visualiza la política de IAM para un proyecto
Console
- Ve a la página IAM y administración en la consola de Google Cloud
- En el menú desplegable del proyecto en la barra superior, selecciona el proyecto cuya política deseas ver.
- Hay dos maneras de ver los permisos del proyecto:
- Ver por Miembros: Consulta la columna Función asociada a miembros individuales para ver qué funciones tiene cada miembro.
- Ver por Funciones: Usa el menú desplegable asociado a funciones individuales para ver qué miembros tienen la función.
gcloud
Para ver las políticas de IAM de un proyecto, usa gcloud beta projects get-iam-policy
.
Quita a un miembro de una política a nivel de proyecto
Console
- Ve a la página IAM y administración en la consola de Google Cloud
- En el menú desplegable del proyecto en la barra superior, selecciona el proyecto del que deseas quitar un miembro.
- Asegúrate de ver los permisos por Miembros y selecciona los miembros que deseas quitar.
- Haz clic en Quitar.
- En la ventana de superposición que aparece, haz clic en Confirmar.
gcloud
Para quitar una política de IAM a nivel de proyecto, usa gcloud beta projects remove-iam-policy-binding
.
Prácticas recomendadas
Como en toda configuración administrativa, para que la IAM sea eficaz, se requiere una administración activa. Antes de hacer que un recurso sea accesible para otros usuarios, asegúrate de saber qué roles quieres que tengan cada una de esas personas. A lo largo del tiempo, es posible que, con los cambios en la administración del proyecto, los patrones de uso y la propiedad de la organización, debas modificar la configuración de IAM en los proyectos, en especial si administras Cloud SQL en una organización grande o para un grupo de muchos usuarios. A medida que evalúes y planifiques tu configuración de control de acceso, ten en cuenta las siguientes prácticas recomendadas:
Usa el principio de menor privilegio cuando otorgues acceso. El principio de privilegio mínimo es un lineamiento de seguridad para otorgar acceso a tus recursos. Cuando otorgas acceso basado en el principio de menor privilegio, le das a un usuario solo el acceso que necesita para realizar la tarea asignada.
Evita otorgar funciones con el permiso
setIamPolicy
a las personas que no conoces. Si se otorga el permisosetIamPolicy
a un usuario, este puede cambiar los permisos y tomar el control de los datos. Debes usar roles con el permisosetIamPolicy
solo cuando desees delegar el control administrativo sobre los objetos y los buckets.Asegúrate de delegar el control administrativo de tus recursos. Debes asegurarte de que otros miembros del equipo aún puedan administrar tus recursos si un individuo con acceso de administrador abandona el grupo. Estas son las dos formas comunes de lograrlo:
- Asigna el rol Administrador de Cloud SQL para tu proyecto a un grupo en lugar de a una persona.
- Asigna el rol Administrador de Cloud SQL para tu proyecto a al menos dos personas.
¿Qué sigue?
- Obtén más información sobre cómo controlar el acceso.