Identidad de las funciones

Cuenta de servicio del entorno de ejecución

Durante la ejecución de la función, Cloud Functions usa la cuenta de servicio PROJECT_ID@appspot.gserviceaccount.com como una identidad. Por ejemplo, cuando se hacen solicitudes a los servicios de Google Cloud Platform con las bibliotecas cliente de Google Cloud, Cloud Functions emite tokens basados en esta identidad y los coloca en los encabezados de autenticación adecuados.

Cambia los permisos predeterminados

Según la configuración predeterminada, la cuenta de servicio del entorno de ejecución tiene la función de Editor, que le permite acceder a los servicios de Cloud Platform. Si bien esta es la manera más rápida para desarrollar funciones, es probable que sea muy permisiva para lo que realmente necesita tu función en producción. Por ello, te recomendamos que la configures con el acceso menos privilegiado.

Console

  1. Ve a Google Cloud Platform Console.

    Ir a Google Cloud Platform Console

  2. Selecciona la cuenta de servicio del entorno de ejecución (PROJECT_ID@appspot.gserviceaccount.com) de la tabla.

  3. Haz clic en el lápiz en el lado derecho de la fila para ver la pestaña Editar permisos.

  4. Agrega funciones al menú desplegable función o quítalas para proporcionar el acceso con menos privilegios.

  5. Haz clic en Guardar.

GCloud

Crea una política de IAM como en el ejemplo:

cat <<EOF > policy.json
{
  "bindings": [
    {
      "role": [ROLE],
      "members": [
        [PROJECT_ID]@appspot.gserviceaccount.com
      ]
    }
  ]
}
EOF

Para usar el comando gcloud iam service-accounts set-iam-policy, reemplaza [VALUES_IN_BRACKETS] por los valores adecuados como se muestra a continuación:

gcloud iam service-accounts set-iam-policy \
  [PROJECT_ID]@appspot.gserviceaccount.com \
  policy.json

Identidad por función

Si tienes varias funciones que acceden a diferentes recursos, te recomendamos que otorgues a cada función su propia identidad. Puedes hacerlo mediante la implementación de la función con una cuenta de servicio con nombre que tenga el rol correcto. La cuenta de servicio que se implemente debe haberse creado en el mismo proyecto al que se adjunta la función.

Permisos necesarios para las identidades no predeterminadas

A fin de implementar una función con una cuenta de servicio no predeterminada, el usuario que la implemente debe contar con el permiso iam.serviceAccounts.actAs en la cuenta de servicio que se implementa.

Si un usuario crea una cuenta de servicio, ese usuario recibe este permiso automáticamente; de lo contrario, un usuario con los permisos correctos debe otorgarle al usuario que implementa la función este permiso sobre la cuenta de servicio con el fin de que este realice la implementación.

Implementa una función nueva con una identidad no predeterminada

Para implementar una función con una identidad nueva, asegúrate de que la cuenta de servicio que quieres usar ya está creada. Si no es así, aprende cómo crear y administrar cuentas de servicio.

Console

  1. Ve a Google Cloud Platform Console.

    Ir a Google Cloud Platform Console

  2. Configura la función como quieras.

  3. Haz clic en Más para expandir “Opciones avanzadas”.

  4. Haz clic en el menú desplegable Cuenta de servicio y selecciona la cuenta de servicio deseada.

  5. Haz clic en Crear.

GCloud

Cuando implementes una función con gcloud alpha functions deploy, agrega la marca --service-account. Por ejemplo:

gcloud alpha functions deploy FUNCTION_NAME --service-account SERVICE_ACCOUNT_EMAIL

en la que FUNCTION_NAME es el nombre de tu función y SERVICE_ACCOUNT_EMAIL es la cuenta de servicio asociada con tu identidad nueva.

Actualiza la identidad de una función existente

También puedes actualizar funciones existentes para tener una cuenta de servicio del entorno de ejecución nueva.

Console

  1. Ve a Google Cloud Platform Console.

    Ir a Google Cloud Platform Console

  2. Haz clic en el nombre de la función deseada para ir a su página de detalles.

  3. Haz clic en el lápiz de EDITAR en la parte superior de la página de detalles para editar la función.

  4. Haz clic en Más para expandir “Opciones avanzadas”.

  5. Haz clic en el menú desplegable Cuenta de servicio y selecciona la cuenta de servicio deseada.

  6. Haz clic en Guardar.

GCloud

Cuando implementes una función con gcloud alpha functions deploy, agrega la marca --service-account.

gcloud alpha functions deploy FUNCTION_NAME --service-account SERVICE_ACCOUNT_EMAIL

en la que FUNCTION_NAME es el nombre de tu función y SERVICE_ACCOUNT_EMAIL es la cuenta de servicio asociada con tu identidad nueva.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Functions