Esta opción es para un servicio de Cloud Run que es una API pública o un sitio web.
Puedes permitir invocaciones no autenticadas a un servicio si asignas el rol de IAM de 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 se incluye en los roles de Propietario y Administrador de Cloud Run. Consulta Roles de IAM de Cloud Run para ver la lista completa de funciones y los permisos asociados.
IU de Console
Para un servicio existente de Cloud Run, haz lo siguiente:
Ve a la consola de Google Cloud:
Haz clic en la casilla de verificación a la izquierda del servicio que deseas hacer público. (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 Principales nuevas, ingresa el valor allUsers
.
En el menú desplegable Rol, selecciona 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, pero asegúrate de seleccionar Permitir invocaciones no autenticadas en la pestaña Autenticación para hacer que el servicio esté disponible de forma pública. Si seleccionas Solicitar autenticación, el servicio será privado.
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 las invocaciones no autenticadas para el SERVICE existente mediante el siguiente comando:
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Para crear un servicio de Cloud Run, agrega lo siguiente al archivo main.tf
existente:
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.
Uso compartido restringido al dominio
Si el proyecto está sujeto a la política de la organización de uso compartido de dominio restringido, no podrás crear servicios públicos de forma predeterminada. Puedes usar etiquetas y una política condicional para eximir a servicios específicos de esta restricción. Para obtener más información, consulta la entrada de blog sobre cómo crear servicios públicos de Cloud Run cuando se aplique el uso compartido restringido del dominio.