Protege tu función de Cloud Run

En esta página, se brinda una descripción general de alto nivel de las formas en las que puedes controlar las interacciones con tus recursos de Cloud Run Functions.

Control de acceso

Existen dos enfoques para controlar el acceso a Cloud Run Functions:

Protege el acceso con identidad

Una forma de controlar el acceso a una función es requerir que la entidad solicitante se identifique con una credencial. Una credencial es un "nombre" de algún tipo, protegido por un secreto que la entidad conoce o al que tiene acceso, como una contraseña o una llave de hardware. De forma predeterminada, las funciones se implementan como privadas y requieren esa credencial, aunque es posible implementar una función como pública, es decir, que no requiera credenciales.

El primer paso del proceso es validar la credencial para asegurarse de que el solicitante sea quien dice ser y que presente el nombre y la combinación del secreto correctos. Este paso se llama (Authentication).

Una vez que se autentica la identidad del solicitante, se puede evaluar su nivel de acceso, es decir, los permisos que se le otorgaron a la identidad. Este paso se llama (Authorization).

Autenticación

Cloud Run Functions admite dos tipos diferentes de identidades, que también se llaman principales:

  • Cuentas de servicio: Estas son cuentas especiales que actúan como la identidad de una entidad que no es una persona, como una función, una aplicación o una VM. Te brindan una forma de autenticar a las entidades que no son personas.
  • Cuentas de usuario: Estas cuentas representan personas, ya sea como titulares de Cuentas de Google individuales o como parte de una entidad controlada por Google, como un Grupo de Google.

Tanto para las cuentas de servicio como para las de usuario, la parte del nombre de la credencial suele ser una dirección de correo electrónico asociada con la cuenta. Por lo general, el secreto de una cuenta de usuario es una contraseña y, el de una de servicio suele ser la clave privada del par de claves que se crea junto con la cuenta.

Sin embargo, las contraseñas de usuarios y las claves de las cuentas de servicio son muy potentes, ya que pueden brindar un acceso amplio a los datos y la funcionalidad, y permanecen vigentes hasta que se revocan o cambian de forma activa. Por lo tanto, para limitar el daño potencial que podría ocurrir si se filtra la credencial, en Google Cloud , esta credencial principal se reemplaza por una credencial a corto plazo basada en ella, un token, que tenga una vida útil limitada y se cree en el momento como parte de la secuencia de la solicitud. El token se pasa con la solicitud y se usa para autenticar la cuenta de forma segura.

Existen dos tipos de tokens que se usan en las Cloud Run Functions: tokens de acceso y de ID. Por lo general, los tokens de acceso se usan para autenticar las llamadas a la API, y los de ID se usan para autenticar las llamadas al código creado por el desarrollador, por ejemplo, si una función llama a otra función. Los tokens se crean con el framework de OAuth 2 y su extensión, Open Identity Connect, pero la secuencia es compleja y propensa a errores. Por esto, se recomienda el uso de las bibliotecas cliente de Cloud para administrar el proceso.

Autorización

Una vez que se confirme la identidad de la entidad solicitante, se debe evaluar lo que el solicitante tiene permitido hacer. Esta evaluación se basa en los permisos que se le otorgaron a la cuenta autenticada cuando se configuró. Cloud Run Functions usa Identity and Access Management (IAM) para hacer esto. Los roles, que son conjuntos de permisos individuales agrupados para una mayor comodidad, se asignan a la cuenta de forma directa o con una configuración llamada política. Cada permiso individual del conjunto de roles suele corresponder a una sola llamada a la API de REST que el servicio solicitado expone. Para obtener más información sobre este proceso, consulta Autoriza el acceso con IAM.

Control de acceso basado en la red

También puedes limitar el acceso especificando la configuración de red para funciones individuales. Esto permite un control de ajuste sobre la entrada y salida de la red hacia y desde tus funciones.

Aislamiento y zona de pruebas

De forma interna, las instancias de función están aisladas entre sí con la plataforma de zona de pruebas gVisor. Por diseño, una función no puede acceder a los entornos operativos de otras funciones.

Actualizaciones del entorno de ejecución

Google pone a disposición los parches de seguridad y las actualizaciones de mantenimiento después de un período de pruebas de estabilidad. Cloud Run Functions podría aplicar actualizaciones a otros aspectos del entorno de ejecución, como el sistema operativo o los paquetes incluidos. Estas actualizaciones ayudan a mantener seguro el entorno de ejecución de la función.

Actualizaciones de seguridad de las Cloud Run Functions

Puedes elegir una de las siguientes políticas de actualización de seguridad:

  • Actualizaciones automáticas (predeterminadas): Las actualizaciones y los parches de seguridad del entorno de ejecución se publican en versiones nuevas de la imagen de dicho entorno. Después de un período de prueba de estabilidad y confiabilidad, el entorno de ejecución actualizado se lanza en todas las funciones, lo que da como resultado una actualización sin tiempo de inactividad. Las actualizaciones de seguridad automáticas están disponibles con Cloud Run Functions (1ª gen.) y Cloud Run Functions. Para implementar correcciones de seguridad a nivel del lenguaje, es posible que debas volver a compilar funciones que usen lenguajes compilados, como Go o Java.

  • Actualizaciones en la implementación: Las actualizaciones y los parches de seguridad se aplican a los entornos de ejecución solo cuando se implementan o vuelven a implementar funciones, a menos que se indique lo contrario. Las actualizaciones en la implementación están disponibles en Cloud Run Functions (1ª gen.) y Cloud Run Functions.

La política de actualización del entorno de ejecución se puede cambiar con la marca --runtime-update-policy en el comando gcloud functions deploy.

Para obtener más información sobre las actualizaciones de seguridad del entorno de ejecución, consulta las políticas de actualización de seguridad.