Funciones y permisos

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 Functions, este servicio crea esta 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
Cloud Functions @appspot.gserviceaccount.com
Cloud Run compute@developer.gserviceaccount.com
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 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 gsutil iam 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.

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 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

  1. Ve a la página IAM y administración en la consola de Google Cloud
  2. En el menú desplegable del proyecto en la barra superior, selecciona el proyecto al que deseas agregar un miembro.
  3. Haz clic en Agregar. Aparecerá el cuadro de diálogo Agregar miembros y funciones al proyecto.
  4. En el campo Miembros nuevos, especifica el nombre de la entidad a la que deseas otorgarle acceso.
  5. 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.
  6. Haz clic en Guardar.

gsutil

Las políticas de IAM a nivel de proyecto se administran a través del comando de gcloud, que forma parte del SDK de Google Cloud. Para agregar una política a nivel de proyecto, usa gcloud beta projects add-iam-policy-binding.

Visualiza la política de IAM para un proyecto

Console

  1. Ve a la página IAM y administración en la consola de Google Cloud
  2. En el menú desplegable del proyecto en la barra superior, selecciona el proyecto cuya política deseas ver.
  3. 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.

gsutil

Las políticas de IAM a nivel de proyecto se administran a través del comando de gcloud, que forma parte del SDK de Google Cloud. Para ver las políticas de IAM de un proyecto, usa el comando gcloud beta projects get-iam-policy.

Quita a un miembro de una política a nivel de proyecto

Console

  1. Ve a la página IAM y administración en la consola de Google Cloud
  2. En el menú desplegable del proyecto en la barra superior, selecciona el proyecto del que deseas quitar un miembro.
  3. Asegúrate de ver los permisos por Miembros y selecciona los miembros que deseas quitar.
  4. Haz clic en Quitar.
  5. En la ventana de superposición que aparece, haz clic en Confirmar.

gsutil

Las políticas de IAM a nivel de proyecto se administran a través del comando de gcloud, que forma parte del SDK de Google Cloud. Para quitar una política 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 permiso setIamPolicy a un usuario, este puede cambiar los permisos y tomar el control de los datos. Debes usar roles con el permiso setIamPolicy 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?