En esta página, se describe cómo habilitar IAP directamente en un servicio de Cloud Run y proteger el tráfico destinado a un servicio de Cloud Run mediante el enrutamiento a IAP para la autenticación. Si habilitas IAP directamente en Cloud Run, puedes proteger el tráfico con un solo clic desde todas las rutas de entrada, incluidas las URLs run.app predeterminadas y los balanceadores de cargas.
Cuando integras IAP con Cloud Run, puedes administrar el acceso de usuarios o grupos de las siguientes maneras:
- Dentro de la organización: Configura el acceso para los usuarios que se encuentran dentro de la misma organización que tu servicio de Cloud Run.
- Fuera de la organización: Configura el acceso para los usuarios que pertenecen a organizaciones diferentes a la de tu servicio de Cloud Run.
- Sin organización: Configura el acceso en proyectos que no forman parte de ninguna organización de Google.
Limitaciones conocidas
- No puedes configurar IAP en el balanceador de cargas y en el servicio de Cloud Run.
- Cloud Run aplica las políticas del IAP antes de realizar verificaciones de IAM en la cuenta de servicio del IAP. Debido a que IAP intercepta las solicitudes y reemplaza la identidad del llamador original, es posible que fallen los servicios como Pub/Sub que dependen de su propia autenticación.
Antes de comenzar
Habilita la API de IAP:
Roles obligatorios
Para obtener los permisos que necesitas para habilitar IAP, pídele a tu administrador que te otorgue los siguientes roles de IAM :
-
Administrador de Cloud Run (
roles/run.admin) en el proyecto -
Otorga acceso al servicio habilitado para IAP:
Administrador de políticas de IAP (
roles/iap.admin) en el proyecto -
Crea un servicio habilitado para IAP o actualiza uno existente para habilitar IAP:
-
Lector de Artifact Registry (
roles/artifactregistry.reader) en las imágenes de contenedor implementadas -
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en la identidad del servicio
-
Lector de Artifact Registry (
-
Otorga acceso a usuarios que no forman parte de una organización de Google:
Administrador de configuración de IAP (
roles/iap.settingsAdmin) en el proyecto -
Otorga acceso a usuarios externos a una organización o que no forman parte de una organización:
Editor de configuración de OAuth (
roles/oauthconfig.editor) en el proyecto
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Habilita IAP desde Cloud Run
Te recomendamos que habilites IAP directamente en Cloud Run.
Habilita IAP desde Cloud Run con la Google Cloud consola, Google Cloud CLI o Terraform.
Console
Cuando habilitas IAP para Cloud Run, IAP requiere permisos para invocar tu servicio de Cloud Run. Si habilitas IAP con la consola de Google Cloud , este permiso se otorga automáticamente asignando el rol de invocador de Cloud Run (roles/run.invoker) al agente de servicio de IAP.
Para habilitar IAP desde Cloud Run, haz lo siguiente:
En la consola de Google Cloud , ve a la página Servicios de Cloud Run:
Si estás configurando un servicio nuevo, haz clic en Implementar contenedor, completa la página de configuración inicial del servicio según sea necesario y, luego, selecciona Solicitar autenticación. Selecciona Identity-Aware Proxy (IAP).
Si vas a modificar un servicio existente, haz clic en el servicio, en la pestaña Seguridad y, luego, selecciona Solicitar autenticación. Selecciona IAP.
Es opcional. Para otorgar acceso a los usuarios, sigue las instrucciones para administrar el acceso de usuarios o grupos al IAP. Si tienes problemas para configurar el acceso de usuarios externos a tu organización, consulta la sección Solución de problemas.
Para guardar la configuración, haz clic en Guardar.
Para crear o implementar el servicio, haz clic en Crear o Implementar.
gcloud
Para habilitar IAP directamente desde Cloud Run, agrega la marca --iap cuando implementes tu app y otorga permiso de invocador al agente de servicio de IAP:
Implementa tu servicio de Cloud Run con uno de los siguientes comandos:
Para un servicio nuevo, sigue estos pasos:
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-allow-unauthenticated \ --iapSi habilitas las IAP por primera vez en un proyecto sin una organización, es posible que veas la siguiente advertencia:
Deploying services with IAP enabled in a project without an organization may require initial setup via the Cloud Console. Please use the Cloud Run UI to enable IAP for the first time in the project.Esta advertencia aparece porque no puedes crear clientes de OAuth de forma programática. Te recomendamos que primero habilites IAP en Cloud Run directamente desde la consola de Google Cloud o configures un cliente de OAuth personalizado y, luego, agregues usuarios con gcloud CLI.
Para un servicio existente, haz lo siguiente:
gcloud run services update
SERVICE_NAME\ --region=REGION\ --iapReemplaza lo siguiente:
SERVICE_NAME: el nombre de tu servicio de Cloud Run.REGION: El nombre de tu región de Cloud Run. 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 formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. PROJECT_NUMBER: Es el número de tu proyecto de Google Cloud .
Otorga permiso de invocador al agente de servicio de IAP:
gcloud run services add-iam-policy-binding
SERVICE_NAME\ --region=REGION\ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com \ --role=roles/run.invokerReemplaza lo siguiente:
SERVICE_NAME: el nombre de tu servicio de Cloud Run.REGION: El nombre de tu región de Cloud Run. Por ejemplo,europe-west1PROJECT_NUMBER: Es el número de tu proyecto de Google Cloud .
Es opcional. Para otorgar acceso a los usuarios, consulta Administra el acceso de usuarios o grupos para IAP.
Para verificar que tu servicio esté configurado con IAP habilitado, ejecuta el siguiente comando:
gcloud run services describe
SERVICE_NAMEEl resultado debería contener la siguiente cadena:
Iap Enabled: true
IAP ahora enruta todo el tráfico destinado al servicio de Cloud Run configurado a IAP para la autenticación antes de pasarlo al contenedor.
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Para habilitar IAP con Terraform, debes actualizar la definición del servicio y agregar una vinculación de política de IAM para otorgar permiso de invocador a IAP.
Agrega
iap_enabled = truea un recursogoogle_cloud_run_v2_serviceen tu configuración de Terraform para habilitar el IAP en el servicio:resource "google_cloud_run_v2_service" "default" { name = "cloudrun-iap-service" location = "europe-west1" ingress = "INGRESS_TRAFFIC_ALL" iap_enabled = true template { containers { image = "us-docker.pkg.dev/cloudrun/container/hello" } } }Agrega lo siguiente para otorgar el rol
roles/run.invokeral agente de servicio de IAP.resource "google_cloud_run_v2_service_iam_member" "iap_invoker" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com" }Reemplaza
PROJECT_NUMBERpor el número del proyecto.Es opcional. Para recuperar los datos de la política de IAM actual, agrega lo siguiente a un recurso
google_cloud_run_v2_service_iam_policyen tu configuración de Terraform.data "google_cloud_run_v2_service_iam_policy" "policy" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name }
Administra el acceso de usuarios o grupos
De forma predeterminada, IAP para Cloud Run usa un cliente de OAuth administrado por Google que te permite agregar identidades de la organización con una dirección de correo electrónico asociada a un usuario. También puedes administrar principales externos a tu organización o que no pertenecen a ninguna organización con la consola de Google Cloud en IAP. Para ello, crea un cliente de OAuth personalizado como se describe en los siguientes pasos.
Agrega o quita el acceso a IAP de un servicio de Cloud Run con la Google Cloud consola, gcloud CLI o Terraform.
Organización interna
Console
Sigue estos pasos para agregar o quitar el acceso:
En la consola Google Cloud , ve a la página de Cloud Run:
Haz clic en el servicio existente que deseas modificar y, luego, en Seguridad.
En IAP, haz clic en Editar política.
Para agregar acceso, ingresa la principal y, de manera opcional, el nivel de acceso que deseas agregar o deja el nivel de acceso en blanco.
Para quitar el acceso cuando solo hay una principal en la política, haz clic en el ícono de Borrar política junto a Niveles de acceso.
Para quitar principales individuales de una política, haz clic en el ícono de X junto al nombre de la principal que deseas quitar.
Para guardar la configuración del usuario, haz clic en Guardar.
gcloud
Para agregar o quitar el acceso a un servicio de Cloud Run para usuarios o grupos individuales, ejecuta uno de los siguientes comandos:
Sigue estos pasos para agregar el acceso:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPara quitar el acceso, sigue estos pasos:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPara ver el acceso, sigue estos pasos:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Reemplaza lo siguiente:
USER_EMAIL: la dirección de correo electrónico del usuario.REGION: el nombre de tu región de Cloud Run.SERVICE_NAME: 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.
Para otorgar acceso autorizado a una lista de principales, haz lo siguiente:
Usa el recurso
google_iap_web_cloud_run_service_iam_bindingpara otorgar un rol a una lista autorizada de principales. Este recurso garantiza que solo los miembros de la lista obtengan el rol. Se quitan todos los demás principales a los que se les otorgó el rol.Agrega lo siguiente a un recurso
google_iap_web_cloud_run_service_iam_bindingen tu configuración de Terraform.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Reemplaza lo siguiente:
PROJECT_ID: el nombre del proyecto.REGION: La región Google Cloud , por ejemplo,europe-west1.SERVICE_NAME: el nombre de tu servicio de Cloud Run.PRINCIPAL: Un identificador para las principales o los miembros, que suele tener el siguiente formato:PRINCIPAL_TYPE:ID. Por ejemplo,user:my-user@example.com. Si deseas obtener una lista completa de los valores quePRINCIPALpuede tener, consulta la referencia sobre la vinculación de políticas.
Para otorgar acceso a una sola principal, haz lo siguiente:
Usa el recurso
google_iap_web_cloud_run_service_iam_memberpara otorgar un rol a una sola principal sin afectar a otras principales que puedan tener el mismo rol.Agrega lo siguiente a un recurso
google_iap_web_cloud_run_service_iam_memberen tu configuración de Terraform.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }Reemplaza lo siguiente:
PROJECT_ID: el nombre del proyecto.REGION: La región Google Cloud , por ejemplo,europe-west1.SERVICE_NAME: el nombre de tu servicio de Cloud Run.PRINCIPAL: Un identificador para las principales o los miembros, que suele tener el siguiente formato:PRINCIPAL_TYPE:ID. Por ejemplo,user:my-user@example.com. Si deseas obtener una lista completa de los valores quePRINCIPALpuede tener, consulta la referencia sobre la vinculación de políticas.
Fuera de la organización
Console
Para agregar usuarios externos a tu organización con IAP, completa el siguiente proceso de configuración único:
En la consola Google Cloud , ve a la página de Cloud Run:
Haz clic en el servicio existente que deseas modificar y, luego, en Seguridad.
En la página de detalles de seguridad de tu servicio de Cloud Run, en IAP, haz clic en Editar política.
Haz clic en Configurar en IAP. Se abrirá la página de configuración del recurso en IAP.
Haz clic en Configurar la pantalla de consentimiento para configurar tu pantalla de consentimiento de OAuth. En el tipo de público, selecciona Externo.
Para realizar la configuración más rápida, haz clic en Generar credenciales automáticamente.
Como alternativa, sigue las instrucciones para crear un ID de cliente de OAuth. Selecciona OAuth personalizado y, luego, ingresa tu ID y secreto de cliente personalizados.
Para guardar la configuración, haz clic en Guardar.
Ahora puedes volver a tu servicio de Cloud Run en Cloud Run para agregar principales externos a la organización.
Para agregar o quitar el acceso de un usuario, completa los siguientes pasos:
En la consola Google Cloud , ve a la página de Cloud Run:
Haz clic en el servicio existente que deseas modificar y, luego, en Seguridad.
En IAP, haz clic en Editar política.
Para agregar acceso, ingresa la principal y, de manera opcional, el nivel de acceso que deseas agregar o deja el nivel de acceso en blanco.
Para quitar el acceso cuando solo hay una principal en la política, haz clic en el ícono de Borrar política junto a Niveles de acceso.
Para quitar principales individuales de una política, haz clic en el ícono de X junto al nombre de la principal que deseas quitar.
Para guardar la configuración del usuario, haz clic en Guardar.
gcloud
Antes de comenzar
- Para agregar principales de usuario externas a una organización, primero debes configurar el cliente de OAuth}.
Para agregar o quitar el acceso a un servicio de Cloud Run para usuarios o grupos individuales, ejecuta uno de los siguientes comandos:
Sigue estos pasos para agregar el acceso:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPara quitar el acceso, sigue estos pasos:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPara ver el acceso, sigue estos pasos:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Reemplaza lo siguiente:
USER_EMAIL: la dirección de correo electrónico del usuario.REGION: El nombre de tu región de Cloud Run.SERVICE_NAME: el nombre de tu servicio de Cloud Run.
Terraform
Antes de comenzar
- Para agregar principales de usuario externas a una organización, primero debes configurar el cliente de OAuth.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Para otorgar acceso autorizado a una lista de principales, haz lo siguiente:
Usa el recurso
google_iap_web_cloud_run_service_iam_bindingpara otorgar un rol a una lista autorizada de principales. Este recurso garantiza que solo los miembros de la lista tengan el rol. Se quitan todas las demás entidades principales a las que se les otorgó el rol.Agrega lo siguiente a un recurso
google_iap_web_cloud_run_service_iam_bindingen tu configuración de Terraform.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Reemplaza lo siguiente:
PROJECT_ID: el nombre del proyecto.REGION: La región Google Cloud , por ejemplo,europe-west1.SERVICE_NAME: el nombre de tu servicio de Cloud Run.PRINCIPAL: Un identificador para las principales o los miembros, que suele tener el siguiente formato:PRINCIPAL_TYPE:ID. Por ejemplo,user:my-user@example.com. Si deseas obtener una lista completa de los valores quePRINCIPALpuede tener, consulta la referencia sobre la vinculación de políticas.
Para otorgar acceso a una sola principal, haz lo siguiente:
Usa el recurso
google_iap_web_cloud_run_service_iam_memberpara otorgar un rol a una sola principal sin afectar a otras principales que puedan tener el mismo rol.Agrega lo siguiente a un recurso
google_iap_web_cloud_run_service_iam_memberen tu configuración de Terraform.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }Reemplaza lo siguiente:
PROJECT_ID: el nombre del proyecto.- REGION: La región Google Cloud , por ejemplo,
europe-west1. - SERVICE_NAME: el nombre de tu servicio de Cloud Run.
- PRINCIPAL: Un identificador para las principales o los miembros, que suele tener el siguiente formato: PRINCIPAL_TYPE:ID. Por ejemplo,
user:my-user@example.com. Si deseas obtener una lista completa de los valores que PRINCIPAL puede tener, consulta la referencia sobre la vinculación de políticas.
Sin organización
Console
Sigue estos pasos para agregar o quitar el acceso:
En la consola Google Cloud , ve a la página de Cloud Run:
Haz clic en el servicio existente que deseas modificar y, luego, en Seguridad.
En IAP, haz clic en Editar política.
Para agregar acceso, ingresa la principal y, de manera opcional, el nivel de acceso que deseas agregar o deja el nivel de acceso en blanco.
Para quitar el acceso cuando solo hay una principal en la política, haz clic en el ícono de Borrar política junto a Niveles de acceso.
Para quitar principales individuales de una política, haz clic en el ícono de X junto al nombre de la principal que deseas quitar.
Para guardar la configuración del usuario, haz clic en Guardar.
gcloud
Antes de comenzar
- Para agregar usuarios a un proyecto que no pertenece a una organización, primero debes seguir la configuración única para configurar un cliente de OAuth personalizado.
Para agregar o quitar el acceso a un servicio de Cloud Run para usuarios o grupos individuales, ejecuta uno de los siguientes comandos:
Sigue estos pasos para agregar el acceso:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPara quitar el acceso, sigue estos pasos:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPara ver el acceso, sigue estos pasos:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Reemplaza lo siguiente:
USER_EMAIL: la dirección de correo electrónico del usuario.REGION: El nombre de tu región de Cloud Run.SERVICE_NAME: el nombre de tu servicio de Cloud Run.
Terraform
Antes de comenzar
- Para agregar principales de usuario externas a una organización, primero debes configurar el cliente de OAuth.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Para otorgar acceso autorizado a una lista de principales, haz lo siguiente:
Usa el recurso
google_iap_web_cloud_run_service_iam_bindingpara otorgar un rol a una lista autorizada de principales. Este recurso garantiza que solo los miembros de la lista tengan el rol. Se quitan todas las demás entidades principales a las que se les otorgó el rol.Agrega lo siguiente a un recurso
google_iap_web_cloud_run_service_iam_bindingen tu configuración de Terraform.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Reemplaza lo siguiente:
PROJECT_ID: el nombre del proyecto.REGION: La región Google Cloud , por ejemplo,europe-west1.SERVICE_NAME: el nombre de tu servicio de Cloud Run.PRINCIPAL: Un identificador para las principales o los miembros, que suele tener el siguiente formato:PRINCIPAL_TYPE:ID. Por ejemplo,user:my-user@example.com. Si deseas obtener una lista completa de los valores quePRINCIPALpuede tener, consulta la referencia sobre la vinculación de políticas.
Para otorgar acceso a una sola principal, haz lo siguiente:
Usa el recurso
google_iap_web_cloud_run_service_iam_memberpara otorgar un rol a una sola principal sin afectar a otras principales que puedan tener el mismo rol.Agrega lo siguiente a un recurso
google_iap_web_cloud_run_service_iam_memberen tu configuración de Terraform.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }Reemplaza lo siguiente:
PROJECT_ID: el nombre del proyecto.REGION: La región Google Cloud , por ejemplo,europe-west1.SERVICE_NAME: el nombre de tu servicio de Cloud Run.PRINCIPAL: Un identificador para las principales o los miembros, que suele tener el siguiente formato:PRINCIPAL_TYPE:ID. Por ejemplo,user:my-user@example.com. Si deseas obtener una lista completa de los valores quePRINCIPALpuede tener, consulta la referencia sobre la vinculación de políticas.
Inhabilita IAP desde Cloud Run
Puedes inhabilitar la IAP con la consola de Google Cloud o gcloud CLI.
Console
Para inhabilitar IAP desde Cloud Run, haz lo siguiente:
En la consola Google Cloud , ve a la página de Cloud Run:
Haz clic en el servicio existente que deseas modificar.
Haz clic en Seguridad y anula la selección de IAP. Tu servicio está protegido por tu política de IAM. Sin embargo, si no usas IAM, selecciona Permitir acceso público para que tu servicio sea de acceso público.
Para guardar la configuración, haz clic en Guardar.
gcloud
Para inhabilitar IAP directamente desde Cloud Run, agrega la marca --no-iap cuando implementes tu app de la siguiente manera:
Implementa tu servicio de Cloud Run con cualquiera de los siguientes comandos:
Para un servicio nuevo, sigue estos pasos:
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-iapPara un servicio existente, haz lo siguiente:
gcloud run services update
SERVICE_NAME\ --region=REGION\ --no-iapReemplaza lo siguiente:
SERVICE_NAME: el nombre de tu servicio de Cloud Run.REGION: El nombre de tu región de Cloud Run.- 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 formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Para verificar que tu servicio ya no esté configurado con IAP habilitado, ejecuta el siguiente comando:
gcloud run services describe
SERVICE_NAMEEl resultado ya no debería contener la siguiente cadena:
Iap Enabled: true
IAP ya no enruta todo el tráfico destinado al servicio de Cloud Run configurado a IAP para la autenticación antes de pasarlo al contenedor.
Configura un cliente de OAuth personalizado
Te recomendamos que uses la consola de Google Cloud cuando habilites las IAP por primera vez. Si lo haces, podrás generar credenciales automáticamente para evitar tener que crear manualmente un cliente de OAuth personalizado. Cuando habilitas IAP en Cloud Run directamente desde la consola de Google Cloud , IAP configura automáticamente el cliente de OAuth personalizado para ti a nivel del proyecto.
Si usas gcloud CLI para administrar el acceso de los usuarios que no pertenecen a una organización, habilita IAP en Cloud Run directamente desde la consola de Google Cloud o sigue los pasos de esta sección para crear manualmente un cliente de OAuth personalizado.
En situaciones avanzadas, como personalizar la pantalla de consentimiento o administrar clientes de OAuth a nivel de la organización, sigue estos pasos.
Configura la marca
En la consola de Google Cloud , ve a la página Branding de OAuth:
Haz clic en Comenzar.
Completa el formulario de Información de la aplicación y haz clic en Siguiente.
En Público, selecciona Externo.
Completa el resto del formulario y haz clic en Crear.
Crea manualmente un cliente de OAuth personalizado
Si es la primera vez que configuras Google Auth Platform, haz lo siguiente:
En la consola de Google Cloud , ve a la página Clientes:
Si se te solicita, haz clic en Comenzar en la página de descripción general de Google Auth Platform.
- Completa los detalles de la información de la app y haz clic en Siguiente.
- Selecciona Externos para el tipo de público.
- Completa la información de contacto, acepta las condiciones y, luego, haz clic en Crear.
- Haz clic en Crear cliente.
- En Tipo de aplicación, selecciona Aplicación web y completa el nombre de tu cliente de OAuth.
- En el campo URI de redireccionamiento autorizados, agrega el siguiente URI:
Reemplazahttps://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
CLIENT_IDpor el ID de cliente de OAuth. - Haz clic en Crear.
- Toma nota del ID y el secreto del cliente, y haz clic en Aceptar.
Si ya configuraste Google Auth Platform, haz lo siguiente:
En la consola de Google Cloud , ve a la página Clientes:
Haz clic en Crear cliente.
En Tipo de aplicación, selecciona Aplicación web y completa el nombre de tu cliente de OAuth.
Completa los detalles de la información de la app.
En el campo URI de redireccionamiento autorizados, agrega el siguiente URI:
Reemplazahttps://iap.googleapis.com/v1/oauth/clientIds/
CLIENT_ID:handleRedirectCLIENT_IDpor el ID de cliente de OAuth.Haz clic en Crear.
Toma nota del ID y el secreto del cliente, y haz clic en Aceptar.
Aplica el cliente de OAuth a IAP
Puedes aplicar el cliente de OAuth a nivel del proyecto o de la organización.
A nivel del proyecto, sigue estos pasos:
Crea un archivo llamado
iap_settings.yamly agrega el siguiente contenido:access_settings: oauth_settings: client_id:
CLIENT_IDclient_secret:CLIENT_SECRETEjecuta el comando
gcloud iap settings setpara aplicar el cliente de OAuth a nivel del proyecto:gcloud iap settings set iap_settings.yaml --project=
PROJECT_ID
Reemplaza lo siguiente:
CLIENT_ID: Es el ID de cliente de OAuth que guardaste en el paso anterior.CLIENT_SECRET: Es el secreto que guardaste en el paso anterior.PROJECT_ID: el ID de tu proyecto.
A nivel de la organización, sigue estos pasos:
Para aplicar el cliente de OAuth a nivel de la organización, ejecuta el comando
gcloud iap settings set:gcloud iap settings set iap_settings.yaml --organization=
ORGANIZATION_NUMBERReemplaza lo siguiente:
CLIENT_ID: Es el ID de cliente de OAuth que guardaste en el paso anterior.CLIENT_SECRET: Es el secreto que guardaste en el paso anterior.ORGANIZATION_NUMBER: Es el número de tu organización.
Soluciona problemas
En la siguiente sección, se describe cómo solucionar problemas de IAP con Cloud Run.
Errores de acceso externo a la organización
A continuación, se indican los errores que puedes encontrar cuando configuras el acceso para usuarios ajenos a tu organización.
Acceso de usuarios externos a la organización: Inhabilitado
Para asegurarte de que el acceso externo a la organización esté inhabilitado, te recomendamos que lo inhabilite a nivel del proyecto. Es posible que los controles en otros niveles (servicio, carpeta o organización) aparezcan inhabilitados, incluso si el acceso está disponible.
La marca está configurada como interna.
No se admite el acceso externo a la organización cuando la marca de tu cliente de OAuth personalizado está configurada como interna.
Para actualizar el parámetro de configuración de la marca a externa y habilitar el acceso para las principales externas a la organización con IAP, completa los siguientes pasos:
En la consola de Google Cloud , ve a la página Público de la plataforma de autenticación de Google:
En Tipo de usuario, haz clic en Hacer externo.
La falla del agente de servicio provoca un error de IAM establecido
Habilitar las IAP en un proyecto nuevo por primera vez puede provocar el siguiente error:
Setting IAM permissions failedEsto se debe a que falló el agente de servicio de Cloud Run. Para resolver el problema, vuelve a habilitar IAP o establece la política de IAM de forma manual.
¿Qué sigue?
- Si quieres obtener instrucciones para habilitar IAP desde un servicio de backend o un balanceador de cargas, consulta Habilita IAP para Cloud Run.
- Si tienes problemas para habilitar IAP para Cloud Run, consulta Solución de errores.
- Administra el acceso a los recursos protegidos con IAP.
- Cómo usar políticas de la organización para controlar la habilitación de IAP