De forma predeterminada, solo los propietarios y editores de proyectos pueden crear, actualizar, borrar o invocar recursos de Cloud Run, y solo los propietarios de proyectos y los administradores de Cloud Run pueden modificar las políticas de Identity and Access Management (IAM), por ejemplo, para hacer que un servicio sea público. Consulta los roles de IAM de Cloud Run para obtener más información.
Para otorgar a otros grupos o principales la capacidad de realizar estas acciones, utiliza IAM para otorgar roles a diferentes principales.
Si creaste o implementaste funciones con los comandos gcloud functions o las APIs de Cloud Functions v2 y necesitas usar estas opciones para la retrocompatibilidad, consulta Control de acceso con IAM.
Roles predefinidos de Cloud Run
En comparación con los roles básicos (propietario, editor y visualizador), los siguientes roles predefinidos tienen un control de acceso más detallado para acceder a los recursos de Cloud Run:
| Rol | Descripción |
|---|---|
Administrador de Cloud Run (roles/run.admin) |
Puede crear, actualizar y borrar servicios, trabajos y grupos de trabajadores, y obtener, enumerar y borrar ejecuciones de trabajos. Puede invocar servicios y trabajos, y puede cancelar ejecuciones de trabajos. Puede obtener y establecer políticas de IAM. Puede ver, aplicar y descartar recomendaciones. Requiere una configuración adicional para implementar servicios. |
Desarrollador de Cloud Run (roles/run.developer) |
Puede crear, actualizar y borrar servicios, trabajos y grupos de trabajadores, y obtener, enumerar y borrar ejecuciones de trabajos. Puede obtener, pero no establecer políticas de IAM. Puede ver, aplicar y descartar recomendaciones. |
Visualizador de Cloud Run (roles/run.viewer) |
Puede ver servicios, trabajos, ejecuciones de trabajos y grupos de trabajadores. Puede obtener políticas de IAM. Puede ver recomendaciones. |
Invocador de Cloud Run (roles/run.invoker) |
Puede invocar servicios y trabajos, y cancelar las ejecuciones de trabajos. |
Desarrollador de origen de Cloud Run (roles/run.sourceDeveloper) |
Puede implementar y administrar recursos implementados desde la fuente de Cloud Run. |
Compilador de Cloud Run (roles/run.builder) |
Puede compilar Cloud Run Functions y servicios de origen implementados. |
Invocador del servicio de Cloud Run (roles/run.servicesInvoker) |
Puede invocar servicios de Cloud Run. |
Ejecutor de trabajos de Cloud Run (roles/run.jobsExecutor) |
Puede ejecutar y cancelar trabajos de Cloud Run. |
Ejecutor de trabajos de Cloud Run con anulaciones (roles/run.jobsExecutorWithOverrides) |
Puede ejecutar y cancelar trabajos de Cloud Run con anulaciones. |
Controla el acceso en un recurso individual de Cloud Run
Puedes controlar el acceso por servicio, por trabajo o por grupo de trabajadores con IAM.
Agregar principales
Para agregar principales a un servicio, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación junto al servicio al que deseas agregar principales. No hagas clic en el servicio.
- 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, puede que debas hacer clic en Mostrar panel de información y, luego, en Permisos.
- Haz clic en Agregar principal.
- En el campo Nuevos principales, ingresa una o más identidades que necesiten acceso a tu servicio.
- En el menú desplegable Asignar roles, selecciona un rol o roles. Los roles que selecciones aparecerán en el panel con una descripción breve de los permisos que otorgan.
- Haz clic en Guardar.
gcloud
Usa el siguiente comando:
gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
Reemplaza lo siguiente:
SERVICE_NAME: El nombre del servicioPRINCIPAL: Es el tipo de principal (p.ej.,user:email@domain.com). Para obtener una lista de los valores aceptables paraPRINCIPAL, consulta Identificadores de principales.ROLE: Es el rol. Para obtener una lista de valores aceptables paraROLE, consulta Roles de IAM de Cloud Run.
Para agregar principales a un trabajo, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación a la izquierda del trabajo al que deseas agregar las principales. No hagas clic en el trabajo.
- 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, puede que debas hacer clic en Mostrar panel de información y, luego, en Permisos.
- Haz clic en Agregar principal.
- En el campo Nuevos principales, ingresa una o más identidades que necesiten acceso a tu trabajo.
- En el menú Asignar roles, selecciona uno o más roles. Los roles que selecciones aparecerán en el panel con una descripción breve de los permisos que otorgan.
- Haz clic en Guardar.
gcloud
Usa el siguiente comando:
gcloud run jobs add-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
Reemplaza lo siguiente:
JOB_NAME: El nombre del trabajo.PRINCIPAL: Es el tipo de principal (p.ej.,user:email@domain.com). Para obtener una lista de los valores aceptables paraPRINCIPAL, consulta los identificadores de principal.ROLE: Es el rol. Para obtener una lista de valores aceptables paraROLE, consulta Roles de IAM de Cloud Run.
Para agregar principales a un grupo de trabajadores, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación junto al grupo de trabajadores al que deseas agregar principales. No hagas clic en el grupo de trabajadores.
- 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, puede que debas hacer clic en Mostrar panel de información y, luego, en Permisos.
- Haz clic en Agregar principal.
- En el campo Nuevos principales, ingresa una o más identidades que necesiten acceso a tu grupo de trabajadores.
- En el menú Asignar roles, selecciona uno o más roles. Los roles que selecciones aparecerán en el panel con una descripción breve de los permisos que otorgan.
- Haz clic en Guardar.
gcloud
Usa el siguiente comando:
gcloud run worker-pools add-iam-policy-binding WORKER_POOL \ --member=PRINCIPAL \ --role=ROLE
Reemplaza lo siguiente:
WORKER_POOL: Es el nombre del grupo de trabajadores.PRINCIPAL: Es el tipo de principal (p.ej.,user:email@domain.com). Para obtener una lista de los valores aceptables paraPRINCIPAL, consulta los identificadores de principal.ROLE: Es el rol. Para obtener una lista de valores aceptables paraROLE, consulta Roles de IAM de Cloud Run.
Quitar principales de un rol
Si deseas quitar principales de un rol para un servicio, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación junto al servicio del que deseas quitar principales. No hagas clic en el servicio.
- 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, puede que debas hacer clic en Mostrar panel de información y, luego, en Permisos.
- Ingresa la principal que deseas quitar en el filtro de la lista de roles, que muestra todos los roles otorgados a esa principal.
- Haz clic en la papelera de borrado que aparece junto a la principal en el rol que deseas quitar.
- En el cuadro de diálogo de confirmación, tienes la opción de quitar esa principal de todos los roles del servicio. Haz clic en Quitar para quitar la principal del rol.
gcloud
Usa el siguiente comando:
gcloud run services remove-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
Reemplaza lo siguiente:
SERVICE_NAME: El nombre del servicioPRINCIPAL: Es el tipo de principal (p.ej.,user:email@domain.com). Para obtener una lista de los valores aceptables paraPRINCIPAL, consulta los identificadores de principal.ROLE: Es el rol. Para obtener una lista de valores aceptables paraROLE, consulta Roles de IAM de Cloud Run.
Si deseas quitar principales de un rol para un trabajo, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación a la izquierda del trabajo al que deseas agregar las principales. No hagas clic en el trabajo.
- 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, puede que debas hacer clic en Mostrar panel de información y, luego, en Permisos.
- Ingresa la principal que deseas quitar en el filtro de la lista de roles, que muestra todos los roles otorgados a esa principal.
- Haz clic en la papelera de borrado que aparece junto a la principal en el rol que deseas quitar.
- En el cuadro de diálogo de confirmación, tienes la opción de quitar esa principal de todos los roles del trabajo. Haz clic en Quitar para quitar la principal del rol.
gcloud
Usa el siguiente comando:
gcloud run jobs remove-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
Reemplaza lo siguiente:
JOB_NAME: El nombre del trabajo.PRINCIPAL: Es el tipo de principal (p.ej.,user:email@domain.com). Para obtener una lista de los valores aceptables paraPRINCIPAL, consulta los identificadores de principal.ROLE: Es el rol. Para obtener una lista de valores aceptables paraROLE, consulta Roles de IAM de Cloud Run.
Si deseas quitar principales de un rol para un grupo de trabajadores, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación junto al grupo de trabajadores del que deseas quitar principales. No hagas clic en el grupo de trabajadores.
- 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, puede que debas hacer clic en Mostrar panel de información y, luego, en Permisos.
- Ingresa la principal que deseas quitar en el filtro de la lista de roles, que muestra todos los roles otorgados a esa principal.
- Haz clic en la papelera de borrado que aparece junto a la principal en el rol que deseas quitar.
- En el cuadro de diálogo de confirmación, tienes la opción de quitar esa principal de todos los roles del grupo de trabajadores. Haz clic en Quitar para quitar la principal del rol.
gcloud
Usa el siguiente comando:
gcloud run worker-pools remove-iam-policy-binding WORKER_POOL \ --member=PRINCIPAL \ --role=ROLE
Reemplaza lo siguiente:
WORKER_POOL: Es el nombre del grupo de trabajadores.PRINCIPAL: Es el tipo de principal (p.ej.,user:email@domain.com). Para obtener una lista de los valores aceptables paraPRINCIPAL, consulta los identificadores de principal.ROLE: Es el rol. Para obtener una lista de valores aceptables paraROLE, consulta Roles de IAM de Cloud Run.
Agrega o quita principales de principales
Si deseas agregar o quitar de forma masiva para servicio, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación a la izquierda del servicio al que deseas agregar o quitar principales. No hagas clic en el servicio.
- Selecciona el servicio en el que deseas agregar o 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 debas hacer clic en Mostrar panel de información y, luego, en Permisos.
Si deseas agregar principales, haz lo siguiente:
- Haz clic en Agregar principal.
- En el campo Nuevos principales, ingresa una o más identidades que necesiten acceso a tu servicio.
- En el menú Asignar roles, selecciona un rol (o roles). Los roles que selecciones aparecerán en el panel con una descripción breve de los permisos que otorgan.
- Haz clic en Guardar.
Si deseas quitar las principales, sigue estos pasos:
- Ingresa la principal que deseas quitar en el filtro de la lista de roles, que muestra todos los roles otorgados a esa principal.
- Haz clic en la papelera de borrado en la fila de la principal.
- En el cuadro de diálogo de confirmación, tienes la opción de quitar esa principal de todos los roles del servicio. Haz clic en Quitar para quitar la principal del rol.
gcloud
Crea una política de IAM como en el ejemplo:
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 obtener una lista de los valores aceptables para PRINCIPAL,
consulta Identificadores de principales.
Para obtener una lista de valores aceptables para ROLE, consulta los roles de IAM de Cloud Run.
Si deseas agregar o quitar de forma masiva para un trabajo, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación a la izquierda del trabajo al que deseas agregar las principales. No hagas clic en el trabajo.
- Selecciona el trabajo en el que deseas agregar o 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, puede que debas hacer clic en Mostrar panel de información y, luego, en Permisos.
Si deseas agregar principales, haz lo siguiente:
- Haz clic en Agregar principal.
- En el campo Nuevos principales, ingresa una o más identidades que necesiten acceso a tu servicio.
- En el menú Asignar roles, selecciona un rol (o roles). Los roles que selecciones aparecerán en el panel con una descripción breve de los permisos que otorgan.
- Haz clic en Guardar.
Si deseas quitar las principales, sigue estos pasos:
- Ingresa la principal que deseas quitar en el filtro de la lista de roles, que muestra todos los roles otorgados a esa principal.
- Haz clic en la papelera de borrado en la fila de la principal.
- En el cuadro de diálogo de confirmación, tienes la opción de quitar esa principal de todos los roles del trabajo. Haz clic en Quitar para quitar la principal del rol.
gcloud
Crea una política de IAM como en el ejemplo:
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 obtener una lista de los valores aceptables para PRINCIPAL,
consulta Identificadores de principales.
Para obtener una lista de valores aceptables para ROLE, consulta los roles de IAM de Cloud Run.
Si deseas agregar o quitar de forma masiva para un grupo de trabajadores, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación junto al grupo de trabajadores al que deseas agregar o quitar principales. No hagas clic en el grupo de trabajadores.
- Selecciona el grupo de trabajadores al que deseas agregar o 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, puede que debas hacer clic en Mostrar panel de información y, luego, en Permisos.
Si deseas agregar principales, haz lo siguiente:
- Haz clic en Agregar principal.
- En el campo Nuevos principales, ingresa una o más identidades que necesiten acceso a tu grupo de trabajadores.
- En el menú Asignar roles, selecciona un rol (o roles). Los roles que selecciones aparecerán en el panel con una descripción breve de los permisos que otorgan.
- Haz clic en Guardar.
Si deseas quitar las principales, sigue estos pasos:
- Ingresa la principal que deseas quitar en el filtro de la lista de roles, que muestra todos los roles otorgados a esa principal.
- Haz clic en la papelera de borrado en la fila de la principal.
- En el cuadro de diálogo de confirmación, tienes la opción de quitar esa principal de todos los roles del grupo de trabajadores. Haz clic en Quitar para quitar la principal del rol.
gcloud
Crea una política de IAM como en el ejemplo:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
Usa el comando gcloud run worker-pools set-iam-policy:
gcloud run worker-pools set-iam-policy WORKER_POOL policy.json
Para obtener una lista de los valores aceptables para PRINCIPAL,
consulta Identificadores de principales.
Para obtener una lista de valores aceptables para ROLE, consulta los roles de IAM de Cloud Run.
Ver principales
Para ver las principales de un servicio, sigue estos pasos:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación a la izquierda del servicio cuyos roles y principales deseas ver. No hagas clic en el servicio.
- Selecciona el servicio cuyos roles y principales deseas ver.
- 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 debas hacer clic en Mostrar panel de información y, luego, en Permisos.
- Se mostrará la lista de roles y principales, agrupados por rol otorgado.
gcloud
Usa el siguiente comando:
gcloud run services get-iam-policy SERVICE_NAME
Para ver las principales de un trabajo, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación a la izquierda del trabajo al que deseas agregar las principales. No hagas clic en el trabajo.
- Selecciona el trabajo cuyos roles y principales deseas ver.
- 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, puede que debas hacer clic en Mostrar panel de información y, luego, en Permisos.
- Se mostrará la lista de roles y principales, agrupados por rol otorgado.
gcloud
Usa el siguiente comando:
gcloud run jobs get-iam-policy JOB_NAME
Para ver las principales de un grupo de trabajadores, haz lo siguiente:
Console
- Ve a la consola de Google Cloud :
- Haz clic en la casilla de verificación junto al grupo de trabajadores cuyos roles y principales deseas ver. No hagas clic en el grupo de trabajadores.
- Selecciona el grupo de trabajadores cuyos roles y principales deseas ver.
- 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 debas hacer clic en Mostrar panel de información y, luego, en Permisos.
- Se mostrará la lista de roles y principales, agrupados por rol otorgado.
gcloud
Usa el siguiente comando:
gcloud run worker-pools get-iam-policy WORKER_POOL
Controla el acceso a todos los recursos de Cloud Run en un proyecto
Si deseas otorgar roles a las entidades en todos los servicios y trabajos de un proyecto, puedes usar la IAM a nivel del proyecto.
Console
Ve a la consola de Google Cloud :
Busca la principal a la que deseas otorgar un rol en todo el proyecto.
Haz clic en el lápiz de edición en el lado derecho de la fila de la principal.
Haz clic en Agregar otro rol y elige el rol necesario.
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
Reemplaza lo siguiente:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud.PRINCIPAL: Es el principal (por ejemplo,user:email@domain.com).ROLE: Es el rol (por ejemplo,roles/run.admin).
Reemplaza lo siguiente:
SERVICE_NAME: Es el nombre del servicio (por ejemplo,my-service).PRINCIPAL: Es el principal (por ejemplo,user:email@domain.com).ROLE: Es el rol (por ejemplo,roles/run.invoker).REGION: Es la región (por ejemplo,europe-west1).KEY=VALUE: Una condición para incluir en la vinculación. La marca--conditiondebe incluir los pares clave-valorexpressionytitle.
Los tipos de principal allUsers y allAuthenticatedUsers no se pueden aplicar a nivel de proyecto y, en su lugar, se deben agregar a cada servicio de forma individual.
Haz público un servicio
Existen dos formas de crear un servicio público de Cloud Run:
- Inhabilita la verificación de IAM del invocador de Cloud Run (recomendado).
- Asigna el rol de IAM de Invocador de Cloud Run al tipo de miembro
allUsers.
Roles obligatorios
Para inhabilitar o volver a habilitar la verificación de IAM de invocador en un servicio, debes tener los siguientes permisos:
run.services.createrun.services.updaterun.services.setIamPolicy
Estos permisos se incluyen en el rol de administrador de Cloud Run (roles/run.admin). Consulta los roles de IAM de Cloud Run para ver la lista completa de los roles y los permisos asociados con estos.
Inhabilita la verificación de IAM del invocador de Cloud Run
La forma recomendada de crear un servicio público es inhabilitar la verificación de IAM de Cloud Run Invoker. Cloud Run aplica esta verificación de forma predeterminada. Usa esta solución cuando el proyecto esté sujeto a la restricción de uso compartido restringido del dominio en una política de la organización.
Para inhabilitar la verificación, haz lo siguiente:
Console
En la consola Google Cloud , ve a la página de Cloud Run:
Haz clic en Crear servicio si estás configurando un servicio nuevo y, luego, completa la página de configuración inicial del servicio según sea necesario.
Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en la pestaña Seguridad.
Selecciona Permitir acceso público.
Haz clic en Crear o Guardar.
gcloud
Para un servicio nuevo, usa el comando
gcloud run deploycon la marca--no-invoker-iam-check:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
Reemplaza
SERVICE_NAMEpor el nombre del servicio.Para un servicio existente, usa el comando
gcloud run services updatecon la marca--no-invoker-iam-check:gcloud run services update SERVICE_NAME --no-invoker-iam-check
Reemplaza SERVICE_NAME por el nombre del servicio.
YAML
Para ver y descargar la configuración, ejecuta el siguiente comando:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza la anotación
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
Reemplaza SERVICE_NAME por el nombre de tu servicio de Cloud Run.
Reemplaza el servicio por la configuración nueva mediante el siguiente comando:
gcloud run services replace service.yaml
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega lo siguiente a un recursogoogle_cloud_run_v2_service en tu configuración de Terraform:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
invoker_iam_disabled = true
template {
containers {
image = "IMAGE_URL"
}
}
}
Reemplaza lo siguiente:
- SERVICE: El nombre de tu servicio de Cloud Run.
- REGION: La región Google Cloud , por ejemplo,
europe-west1. - IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Para verificar que la verificación esté inhabilitada después de la implementación, navega al extremo HTTPS del servicio.
Vuelve a habilitar la verificación de IAM del invocador de Cloud Run
Para volver a habilitar la verificación, sigue estos pasos:
Console
En la consola de Google Cloud , ve a la página Servicios de Cloud Run:
Haz clic en el servicio y, luego, en Seguridad.
Selecciona Necesita autenticación y, luego, Identity and Access Management (IAM).
Haz clic en Guardar.
gcloud
Actualiza el servicio pasando la marca
--invoker-iam-check:gcloud run services update SERVICE_NAME --invoker-iam-check
Reemplaza
SERVICE_NAMEpor el nombre del servicio.
YAML
Para ver y descargar la configuración, ejecuta el siguiente comando:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza la anotación
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
Reemplaza
SERVICE_NAMEpor el nombre de tu servicio de Cloud Run.
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega lo siguiente a un recursogoogle_cloud_run_v2_service en tu configuración de Terraform:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
invoker_iam_disabled = false
template {
containers {
image = "IMAGE_URL"
}
}
}
Reemplaza lo siguiente:
- SERVICE: El nombre de tu servicio de Cloud Run.
- REGION: La región Google Cloud , por ejemplo,
europe-west1. - IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Para verificar que la verificación se volvió a habilitar después de la implementación, navega al extremo HTTPS del servicio.
Configura la política de la organización para la verificación de IAM del invocador de Cloud Run
Si eres administrador, puedes restringir la capacidad de inhabilitar la verificación de IAM del invocador con la restricción administrada constraints/run.managed.requireInvokerIam.
Esta restricción no se aplica de forma predeterminada.
Asigna el rol de invocador de IAM de Cloud Run al tipo de miembro allUsers.
Puedes permitir el acceso público a un servicio si asignas el rol de Invocador de Cloud Run de IAM 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 se incluye en el rol de administrador de Cloud Run. Consulta los roles de IAM de Cloud Run para ver la lista completa de los roles y los permisos asociados con estos.
Console
Para un servicio existente de Cloud Run, haz lo siguiente:
En la consola de Google Cloud , ve a la página Servicios de Cloud Run:
A la izquierda del servicio que deseas hacer público, haz clic en la casilla de verificación. No hagas clic en el servicio.
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 debas hacer clic en Mostrar panel de información y, luego, en Permisos.
Haz clic en Agregar principal.
En el campo Principales nuevas, ingresa el valor allUsers.
En el menú Selecciona un rol, elige el rol Invocador de Cloud Run.
Haz clic en Guardar.
Se te pedirá que verifiques que deseas que este recurso sea público. Haz 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 hacer que el servicio esté disponible de forma pública. Para que un servicio sea privado, selecciona Solicitar autenticación.
gcloud
Para que un servicio sea de acceso público, usa el comando gcloud run services
para agregar el tipo de miembro especial allUsers a un servicio y otorgarle 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 el servicio sea
de acceso público 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 para el SERVICE existente con el siguiente comando:
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega lo siguiente a un recursogoogle_cloud_run_v2_service en tu configuración de Terraform:Si deseas actualizar la vinculación de IAM del servicio para roles/run.invoker, agrega el siguiente recurso que hace referencia a tu servicio de Cloud Run:
Esta vinculación solo está autorizada para el rol determinado. Se conservan otras vinculaciones de IAM dentro de la política de IAM del servicio.
Usa condiciones de IAM
Puedes usar las condiciones de IAM para definir y aplicar el control de acceso condicional basado en atributos para ciertos recursos de Cloud Run. Cloud Run admite los atributos de condición (request.host) y (request.path) para otorgar acceso condicional cuando se invocan servicios y grupos de trabajadores de Cloud Run.
Por ejemplo, para otorgar acceso condicional con los atributos request.host y request.path cuando se invocan servicios de Cloud Run, agrega el campo condition cuando ejecutes el siguiente comando:
gcloud run services add-iam-policy-binding SERVICE_NAME \
--member=PRINCIPAL \
--role=ROLE \
--region=REGION \
--condition=[KEY=VALUE,...]
Reemplaza lo siguiente:
SERVICE_NAME: Es el nombre del servicio (por ejemplo,my-service).PRINCIPAL: Es el principal (por ejemplo,user:email@domain.com).ROLE: Es el rol (por ejemplo,roles/run.invoker).REGION: Es la región (por ejemplo,europe-west1).KEY=VALUE: Una condición para incluir en la vinculación. La marca--conditiondebe incluir los pares clave-valorexpressionytitle.
Próximos pasos
Aprende a autenticar desarrolladores, servicios y usuarios de forma segura en los servicios que acabas de proteger.