De forma predeterminada, solo los propietarios y editores de proyectos pueden crear, actualizar, eliminar o invocar servicios y trabajos, y solo los propietarios de proyectos y los administradores de Cloud Run pueden modificar las políticas de gestión de identidades y accesos (IAM), por ejemplo, para hacer público un servicio. Para obtener más información, consulta los roles de gestión de identidades y accesos de Cloud Run.
Para conceder a otros principales o grupos la capacidad de realizar estas acciones, usa IAM para asignar roles a diferentes principales.
Si has creado o desplegado funciones con comandos de gcloud functions
o con las APIs de Cloud Functions v2 y necesitas usar estas opciones para mantener la compatibilidad con versiones anteriores, consulta el artículo sobre el control de acceso con IAM.
Roles predefinidos de Cloud Run
En comparación con los roles básicos (Propietario, Editor y Lector), los siguientes roles predefinidos tienen un control de acceso más pormenorizado para acceder a los recursos de Cloud Run:
Rol | Descripción |
---|---|
Administrador de Cloud Run (roles/run.admin ) |
Puede crear, actualizar y eliminar servicios y trabajos, así como obtener, enumerar y eliminar ejecuciones de trabajos. Puede invocar servicios y trabajos, así como cancelar ejecuciones de trabajos. Puede obtener y definir políticas de gestión de identidades y accesos. Puede ver, aplicar y rechazar recomendaciones. Requiere configuración adicional para implementar servicios. |
Desarrollador de Cloud Run (roles/run.developer ) |
Puede crear, actualizar y eliminar servicios y trabajos, así como obtener, enumerar y eliminar ejecuciones de trabajos. Puede obtener, pero no definir, políticas de gestión de identidades y accesos. Puede ver, aplicar y descartar recomendaciones. |
Lector de Cloud Run (roles/run.viewer ) |
Puede ver servicios, trabajos y ejecuciones de trabajos. Puede obtener políticas de gestión de identidades y accesos. Puede ver recomendaciones. |
Invocador de Cloud Run (roles/run.invoker ) |
Puede invocar servicios y trabajos, y cancelar ejecuciones de trabajos. |
Controlar el acceso a un servicio o trabajo concreto
Puedes controlar el acceso por servicio o por tarea mediante la gestión de identidades y accesos.
Añadir entidades principales
Puedes añadir principales a un trabajo o a un servicio.
Añadir principales a un servicio
Para añadir principales a un servicio, sigue estos pasos:
Interfaz de usuario de la consola
Ve a la Google Cloud consola:
Haz clic en la casilla situada junto al servicio al que quieras añadir principales. No hagas clic en el servicio en sí.
En el panel de información de la esquina superior derecha, haz clic en la pestaña Permisos. Si el panel de información no está visible, es posible que tengas que hacer clic en Mostrar panel de información y, a continuación, en Permisos.
Haz clic en Añadir principal.
En el campo Nuevas cuentas principales, introduce una o varias identidades que necesiten acceder a tu servicio.
En el menú desplegable Rol, selecciona uno o varios roles. Los roles que selecciones aparecerán en el panel con una breve descripción de los permisos que conceden.
Haz clic en Guardar.
gcloud
Usa el comando gcloud run services add-iam-policy-binding
:
gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
donde SERVICE_NAME
es el nombre del servicio, PRINCIPAL
es la entidad principal (por ejemplo, user:email@domain.com
) y ROLE
es el rol.
Para ver una lista de los valores aceptables de PRINCIPAL
, consulta Identificadores principales.
Para ver una lista de valores aceptables para ROLE
, consulta Roles de IAM de Cloud Run.
Añadir principales a un trabajo
Para añadir principales a un trabajo, sigue estos pasos:
Interfaz de usuario de la consola
Ve a la Google Cloud consola:
Marca la casilla situada a la izquierda del trabajo al que quieras añadir principales. No hagas clic en el trabajo en sí.
En el panel de información de la esquina superior derecha, haz clic en la pestaña Permisos. Si el panel de información no está visible, es posible que tengas que hacer clic en Mostrar panel de información y, a continuación, en Permisos.
Haz clic en Añadir principal.
En el campo Nuevos principales, introduce una o varias identidades que necesiten acceder a tu trabajo.
En el menú Rol, selecciona uno o varios roles. Los roles que selecciones aparecerán en el panel con una breve descripción de los permisos que conceden.
Haz clic en Guardar.
gcloud
Usa el comando gcloud run jobs add-iam-policy-binding
:
gcloud run jobs add-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
donde JOB_NAME
es el nombre del trabajo,
PRINCIPAL
es el tipo de principal
(por ejemplo, user:email@domain.com
) y ROLE
es el rol.
Para ver una lista de valores aceptables para PRINCIPAL
, consulta la página de conceptos de gestión de identidades y accesos.
Para ver una lista de valores aceptables para ROLE
, consulta Roles de IAM de Cloud Run.
Quitar principales de un rol
Puedes quitar principales de un servicio o un trabajo.
Quitar principales de un rol de un servicio
Para quitar principales de un rol de un servicio, sigue estos pasos:
Interfaz de usuario de la consola
Ve a la Google Cloud consola:
Marca la casilla situada a la izquierda del servicio del que quieras quitar principales. No hagas clic en el servicio en sí.
En el panel de información de la esquina superior derecha, haz clic en la pestaña Permisos. Si el panel de información no está visible, es posible que tengas que hacer clic en Mostrar panel de información y, a continuación, en Permisos.
Introduce el principal que quieras quitar en el filtro de la lista de roles, que muestra todos los roles concedidos a ese principal.
Haz clic en el icono de la papelera eliminar situado junto al principal del rol que quieras quitarle.
En el cuadro de diálogo de confirmación, puedes quitar esa cuenta principal de todos los roles del servicio. Haz clic en Quitar para quitar la principal del rol.
gcloud
Usa el comando gcloud run services remove-iam-policy-binding
:
gcloud run services remove-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
donde SERVICE_NAME
es el nombre del servicio,
PRINCIPAL
es el tipo de principal
(por ejemplo, user:email@domain.com
) y ROLE
es el rol.
Para ver una lista de valores aceptables para PRINCIPAL
, consulta la página de conceptos de gestión de identidades y accesos.
Para ver una lista de valores aceptables para ROLE
, consulta Roles de IAM de Cloud Run.
Quitar principales de un rol de un trabajo
Para quitar principales de un rol de un trabajo, sigue estos pasos:
Interfaz de usuario de la consola
Ve a la Google Cloud consola:
Marca la casilla situada a la izquierda del trabajo al que quieras añadir principales. No hagas clic en el trabajo en sí.
En el panel de información de la esquina superior derecha, haz clic en la pestaña Permisos. Si el panel de información no está visible, es posible que tengas que hacer clic en Mostrar panel de información y, a continuación, en Permisos.
Introduce el principal que quieras quitar en el filtro de la lista de roles, que muestra todos los roles concedidos a ese principal.
Haz clic en el icono de la papelera eliminar situado junto al principal del rol que quieras quitarle.
En el cuadro de diálogo de confirmación, puedes quitar esa cuenta principal de todos los roles del trabajo. Haz clic en Quitar para quitar la principal del rol.
gcloud
Usa el comando gcloud run jobs remove-iam-policy-binding
:
gcloud run jobs remove-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
donde JOB_NAME
es el nombre del trabajo,
PRINCIPAL
es el tipo de principal
(por ejemplo, user:email@domain.com
) y ROLE
es el rol.
Para ver una lista de valores aceptables para PRINCIPAL
, consulta la página de conceptos de gestión de identidades y accesos.
Para ver una lista de valores aceptables para ROLE
, consulta Roles de IAM de Cloud Run.
Añadir o quitar principales en bloque
Puedes añadir o quitar servicios y empleos en bloque.
Añadir y quitar principales de servicios en bloque
Para añadir o quitar varios servicios a la vez, sigue estos pasos:
Interfaz de usuario de la consola
Ve a la Google Cloud consola:
Marca la casilla situada a la izquierda del servicio al que quieras añadir o del que quieras quitar principales. No hagas clic en el servicio en sí.
Selecciona el servicio al que quieras añadir o del que quieras quitar principales.
En el panel de información de la esquina superior derecha, haz clic en la pestaña Permisos. Si el panel de información no está visible, es posible que tengas que hacer clic en Mostrar panel de información y, a continuación, en Permisos.
Si quieres añadir principales:
Haz clic en Añadir principal.
En el campo Nuevas cuentas principales, introduce una o varias identidades que necesiten acceder a tu servicio.
En el menú Rol, selecciona uno o varios roles. Los roles que selecciones aparecerán en el panel con una breve descripción de los permisos que conceden.
Haz clic en Guardar.
Si quieres quitar principales, sigue estos pasos:
Introduce el principal que quieras quitar en el filtro de la lista de roles, que muestra todos los roles concedidos a ese principal.
Haz clic en el icono de la papelera eliminar situado junto al principal del rol que quieras quitarle.
En el cuadro de diálogo de confirmación, puedes quitar esa cuenta principal de todos los roles del servicio. Haz clic en Quitar para quitar la principal del rol.
gcloud
Crea una política de gestión de identidades y accesos:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
Usa el comando gcloud run services set-iam-policy
:
gcloud run services set-iam-policy SERVICE_NAME policy.json
Para ver una lista de valores aceptables para PRINCIPAL
, consulta la página de conceptos de gestión de identidades y accesos.
Para ver una lista de valores aceptables para ROLE
, consulta Roles de IAM de Cloud Run.
Añadir y quitar principales en bloque para los trabajos
Para añadir o quitar en bloque un trabajo, sigue estos pasos:
Interfaz de usuario de la consola
Ve a la Google Cloud consola:
Marca la casilla situada a la izquierda del trabajo al que quieras añadir principales. No hagas clic en el trabajo en sí.
Selecciona el trabajo al que quieras añadir o del que quieras quitar principales.
En el panel de información de la esquina superior derecha, haz clic en la pestaña Permisos. Si el panel de información no está visible, es posible que tengas que hacer clic en Mostrar panel de información y, a continuación, en Permisos.
Si quieres añadir principales:
Haz clic en Añadir principal.
En el campo Nuevas cuentas principales, introduce una o varias identidades que necesiten acceder a tu servicio.
En el menú Rol, selecciona uno o varios roles. Los roles que selecciones aparecerán en el panel con una breve descripción de los permisos que conceden.
Haz clic en Guardar.
Si quieres quitar principales, sigue estos pasos:
Introduce el principal que quieras quitar en el filtro de la lista de roles, que muestra todos los roles concedidos a ese principal.
Haz clic en el icono de la papelera eliminar situado junto al principal que tenga el rol que quieras quitar.
En el cuadro de diálogo de confirmación, puedes quitar esa cuenta principal de todos los roles del trabajo. Haz clic en Quitar para quitar la principal del rol.
gcloud
Crea una política de gestión de identidades y accesos:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
Usa el comando gcloud run jobs set-iam-policy
:
gcloud run jobs set-iam-policy JOB_NAME policy.json
Para ver una lista de valores aceptables para PRINCIPAL
, consulta la página de conceptos de gestión de identidades y accesos.
Para ver una lista de valores aceptables para ROLE
, consulta Roles de IAM de Cloud Run.
Ver principales
Puedes ver los principales de los servicios y los trabajos.
Ver las entidades de un servicio
Para ver los principales de un servicio, sigue estos pasos:
Interfaz de usuario de la consola
Ve a la Google Cloud consola:
Marca la casilla situada a la izquierda del servicio cuyos principales y roles quieras ver. No hagas clic en el servicio en sí.
Selecciona el servicio del que quieras ver las entidades y los roles.
En el panel de información de la esquina superior derecha, haz clic en la pestaña Permisos. Si el panel de información no está visible, es posible que tengas que hacer clic en Mostrar panel de información y, a continuación, en Permisos.
Se mostrará la lista de roles y principales, agrupados por rol concedido.
gcloud
Usa el comando gcloud run services get-iam-policy
:
gcloud run services get-iam-policy SERVICE_NAME
Ver los principales de un trabajo
Para ver los participantes de un trabajo, sigue estos pasos:
Interfaz de usuario de la consola
Ve a la Google Cloud consola:
Marca la casilla situada a la izquierda del trabajo al que quieras añadir principales. No hagas clic en el trabajo en sí.
Selecciona el trabajo del que quieras ver los principales y los roles.
En el panel de información de la esquina superior derecha, haz clic en la pestaña Permisos. Si el panel de información no está visible, es posible que tengas que hacer clic en Mostrar panel de información y, a continuación, en Permisos.
Se mostrará la lista de roles y principales, agrupados por rol concedido.
gcloud
Usa el comando gcloud run jobs get-iam-policy
:
gcloud run jobs get-iam-policy JOB_NAME
Controlar el acceso a todos los servicios y trabajos de un proyecto
Si quieres asignar roles a principales en todos los servicios y trabajos de un proyecto, puedes usar la gestión de identidades y accesos a nivel de proyecto.
Interfaz de usuario de la consola
Ve a la Google Cloud consola:
Busca la cuenta principal a la que quieras asignar un rol en todo el proyecto.
Haz clic en el icono de edición Lápiz situado a la derecha de la fila del principal.
Haz clic en Añadir otro rol y elige el rol que necesites.
Haz clic en Guardar.
gcloud
Usa el comando gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
donde PRINCIPAL
es el principal (por ejemplo, user:email@domain.com
) y ROLE
es el rol (por ejemplo, roles/run.admin
).
Los tipos de principales allUsers
y allAuthenticatedUsers
no se pueden aplicar a nivel de proyecto, sino que deben añadirse a cada servicio por separado.
Hacer público un servicio
Hay dos formas de crear un servicio público de Cloud Run:
- Inhabilita la comprobación de gestión de identidades y accesos del invocador de Cloud Run (recomendado).
- Asigna el rol de gestión de identidades y accesos Invocador de Cloud Run al tipo de miembro
allUsers
.
Roles obligatorios
Para inhabilitar o volver a habilitar la comprobación de gestión de identidades y accesos de invocador en un servicio, debes tener los siguientes permisos:
run.services.create
run.services.update
run.services.setIamPolicy
Estos permisos se incluyen en el rol Administrador de Cloud Run (roles/run.admin
). Consulta la lista completa de roles de gestión de identidades y accesos de Cloud Run y sus permisos asociados.
Inhabilitar la comprobación de gestión de identidades y accesos de Cloud Run Invoker
La forma recomendada de crear un servicio público es inhabilitar la comprobación de gestión de identidades y accesos del invocador de Cloud Run. Cloud Run aplica esta comprobación de forma predeterminada. Usa esta solución cuando el proyecto esté sujeto a la restricción de uso compartido restringido al dominio en una política de organización.
Para inhabilitar la comprobación, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Cloud Run:
Haga clic en Crear servicio si va a configurar un servicio nuevo y, a continuación, rellene la página de configuración inicial del servicio según sea necesario.
Si va a configurar un servicio que ya está disponible, haga clic en él y, a continuación, en la pestaña Seguridad.
Selecciona Permitir el acceso público.
Haz clic en Crear o en Guardar.
gcloud
Para un servicio nuevo, usa el comando
gcloud run deploy
con la marca--no-invoker-iam-check
:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
Sustituye
SERVICE_NAME
por el nombre del servicio.En el caso de un servicio ya creado, usa el comando
gcloud run services update
con la marca--no-invoker-iam-check
:gcloud run services update SERVICE_NAME --no-invoker-iam-check
Sustituye SERVICE_NAME
por el nombre del servicio.
YAML
Para ver y descargar la configuración, sigue estos pasos:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza la anotación de
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: true name: SERVICE_NAME
Sustituye SERVICE_NAME por el nombre de tu servicio de Cloud Run.
Sustituye el servicio por su nueva configuración con el siguiente comando:
gcloud run services replace service.yaml
Verifica que la comprobación esté inhabilitada después de la implementación. Para ello, ve al endpoint HTTPS del servicio.
Volver a habilitar la comprobación de IAM de invocador de Cloud Run
Para volver a habilitar la comprobación, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Cloud Run:
Haz clic en el servicio y, a continuación, en Seguridad.
Selecciona Pedir autenticación y, a continuación, Gestión de Identidades y Accesos (IAM).
Haz clic en Guardar.
gcloud
Actualiza el servicio pasando la marca
--invoker-iam-check
:gcloud run services update SERVICE_NAME --invoker-iam-check
Sustituye
SERVICE_NAME
por el nombre del servicio.
YAML
Para ver y descargar la configuración, sigue estos pasos:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza la anotación de
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: false name: SERVICE_NAME
Sustituye
SERVICE_NAME
por el nombre de tu servicio de Cloud Run.
Verifica que la comprobación se vuelve a habilitar después de la implementación. Para ello, ve al endpoint HTTPS del servicio.
Configurar la política de la organización para la comprobación de gestión de identidades y accesos del invocador de Cloud Run
Si eres administrador, puedes restringir la capacidad de inhabilitar la comprobación de gestión de identidades y accesos de Invoker mediante la restricción gestionada constraints/run.managed.requireInvokerIam
.
Esta restricción no se aplica de forma predeterminada.
Asigna el rol de invocador de Cloud Run de gestión de identidades y accesos al tipo de miembro allUsers
Puedes permitir el acceso público a un servicio asignando el rol de gestión de identidades y accesos Invocador de Cloud Run al tipo de miembro allUsers
.
Debes tener el permiso run.services.setIamPolicy
para configurar la autenticación en un servicio de Cloud Run. Este permiso está incluido en el rol Administrador de Cloud Run. Consulta la lista completa de roles de gestión de identidades y accesos de Cloud Run y sus permisos asociados.
Consola
En un servicio de Cloud Run ya creado, sigue estos pasos:
En la Google Cloud consola, ve a la página Cloud Run:
A la izquierda del servicio que quieras hacer público, marca la casilla. No hagas clic en el servicio en sí.
En el panel de información de la esquina superior derecha, haga clic en la pestaña Permisos. Si el panel de información no está visible, es posible que tengas que hacer clic en Mostrar panel de información y, a continuación, en Permisos.
Haz clic en Añadir principal.
En el campo New principals (Nuevos principales), introduce el valor allUsers
.
En el menú Seleccionar un rol, elige el rol Invocador de Cloud Run.
Haz clic en Guardar.
Se te pedirá que verifiques que quieres hacer público este recurso. Haga clic en Permitir acceso público para aplicar el cambio a la configuración de IAM del servicio.
En el caso de un servicio nuevo que estés creando, crea el servicio y selecciona Permitir acceso público en la sección Autenticación para que el servicio esté disponible públicamente. Para que un servicio sea privado, selecciona Requerir autenticación.
gcloud
Para que un servicio sea accesible públicamente, usa el comando gcloud run services
para añadir el tipo de miembro especial allUsers
a un servicio y asignarle el rol roles/run.invoker
:
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
Ejecuta el comando gcloud run deploy
para que tu servicio sea accesible públicamente cuando lo implementes:
gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated
YAML
Crea un archivo llamado policy.yaml
con el siguiente contenido:
bindings:
- members:
- allUsers
role: roles/run.invoker
Permite el acceso público a la SERVICE actual mediante lo siguiente:
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Añade lo siguiente a un recursogoogle_cloud_run_v2_service
en tu configuración de Terraform:Para actualizar el enlace de gestión de identidades y accesos del servicio de roles/run.invoker
, añade el siguiente recurso que haga referencia a tu servicio de Cloud Run:
Esta vinculación solo es autoritativa para el rol indicado. Se conservan otras vinculaciones de gestión de identidades y accesos en la política de gestión de identidades y accesos del servicio.
Usar condiciones de gestión de identidades y accesos en un servicio
Puedes usar condiciones de gestión de identidades y accesos para definir e implementar el control de acceso condicional basado en atributos para los recursos de Cloud Run. Cloud Run admite los atributos de condición (request.host
)
y (request.path
)
para conceder acceso condicional al invocar servicios de Cloud Run.
Para conceder acceso condicional con los atributos
request.host
yrequest.path
al invocar servicios de Cloud Run, añade el campocondition
al ejecutar el siguiente comando:gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE \ --region=REGION \ --condition=[KEY=VALUE,...]
Sustituye:
SERVICE_NAME
con el nombre del servicio (por ejemplo,my-service
).PRINCIPAL
con el director (por ejemplo,user:email@domain.com
).ROLE
con el rol (por ejemplo,roles/run.invoker
).REGION
con la región (por ejemplo,europe-west1
).KEY=VALUE
con una condición que se incluirá en el enlace. La marca--condition
debe incluir los pares clave-valorexpression
ytitle
.
Pasos siguientes
Consulta cómo autenticar de forma segura a desarrolladores, servicios y usuarios en los servicios que acabas de proteger.