Administra el acceso a través de IAM

Puedes usar Cloud Identity and Access Management (IAM) para controlar la capacidad de un desarrollador de ver, crear, actualizar y borrar funciones. También puedes controlar si se requiere autenticación para invocar una función. Para hacerlo, debes asignar funciones a diferentes miembros.

Controla el acceso a una función

Para controlar el acceso a una función con la IAM, puedes asignar o restringir las funciones de usuarios individuales.

Agrega usuarios

Console

  1. Ve a Google Cloud Platform Console:

    Ir a Google Cloud Platform Console

  2. Haz clic en la casilla de verificación junto a la función a la que deseas otorgar acceso.

  3. Haz clic en Mostrar panel de información en la esquina superior derecha para que aparezca la pestaña Permisos.

  4. En el campo Agregar miembros, ingresa una o más identidades que requieran acceso a tu función.

  5. Selecciona una función (o funciones) del menú desplegable Selecciona una función. Las funciones que seleccionas aparecen en el panel con una descripción breve del permiso que otorgan.

  6. Haz clic en Agregar.

gcloud

Usa el comando gcloud beta functions add-iam-policy-binding:

gcloud beta functions add-iam-policy-binding FUNCTION_NAME \
  --member=MEMBER_TYPE \
  --role=ROLE

donde FUNCTION_NAMEes el nombre de la función, MEMBER_TYPE es el tipo de miembro y ROLE es la función.

A fin de obtener una lista de valores aceptables para MEMBER_TYPE, consulta la página de conceptos de Cloud IAM. A fin de obtener una lista de valores aceptables para ROLE, consulta la página de referencia de funciones IAM de Cloud Functions.

Quita usuarios

Console

  1. Ve a Google Cloud Platform Console:

    Ir a Google Cloud Platform Console

  2. Haz clic en la casilla de verificación junto a la función a la que deseas restringir el acceso.

  3. Haz clic en Mostrar panel de información en la esquina superior derecha para que aparezca la pestaña Permisos.

  4. Busca el usuario que deseas quitar o expande una función que tenga el usuario.

  5. Para quitarle la función a un miembro, desplázate hacia el tipo de miembro en la función y haz clic en el ícono de la papelera que aparece al lado, con el cual se realiza la acción de borrar.

gcloud

Usa el comando gcloud beta functions remove-iam-policy-binding:

  gcloud beta functions remove-iam-policy-binding FUNCTION_NAME \
    --member=MEMBER_TYPE \
    --role=ROLE

donde FUNCTION_NAMEes el nombre de la función, MEMBER_TYPE es el tipo de miembro y ROLE es la función.

A fin de obtener una lista de valores aceptables para MEMBER_TYPE, consulta la página de conceptos de Cloud IAM. A fin de obtener una lista de valores aceptables para ROLE, consulta la página de referencia de funciones IAM de Cloud Functions.

Agrega o quita usuarios de forma masiva

Console

  1. Ve a Google Cloud Platform Console:

    Ir a Google Cloud Platform Console

  2. Haz clic en las casillas de verificación junto a las funciones a las que deseas asignar o restringir el acceso.

  3. Haz clic en Mostrar panel de información en la esquina superior derecha para que aparezca la pestaña Permisos.

Haz lo siguiente si deseas agregar usuarios:

  1. En el campo Agregar miembros, ingresa varias identidades que requieran acceso a tu función.

  2. Selecciona una función (o funciones) del menú desplegable Selecciona una función. Las funciones que seleccionas aparecen en el panel con una descripción breve del permiso que otorgan.

  3. Haz clic en Agregar.

Haz lo siguiente si quieres quitar usuarios:

  1. Busca el usuario que deseas quitar o expande una función que tenga el usuario.

  2. Para quitarle la función a un miembro, desplázate hacia el tipo de miembro en la función y haz clic en el ícono de la papelera que aparece al lado, con el cual se realiza la acción de borrar.

gcloud

Crea una política de IAM con el nombre policy.json, por ejemplo:

{
  "bindings": [
    {
      "role": ROLE,
      "members": [
        MEMBER_TYPE
      ]
    }
  ]
}

Usa el comando gcloud beta functions set-iam-policy:

gcloud beta functions set-iam-policy FUNCTION_NAME policy.json

A fin de obtener una lista de valores aceptables para MEMBER_TYPE, consulta la página de conceptos de Cloud IAM. A fin de obtener una lista de valores aceptables para ROLE, consulta la página de referencia de funciones IAM de Cloud Functions.

Visualiza usuarios

Console

  1. Ve a Google Cloud Platform Console:

    Ir a Google Cloud Platform Console

  2. Selecciona la función en la que deseas consultar usuarios y funciones.

  3. Haz clic en Mostrar panel de información en la esquina superior derecha para que aparezca la pestaña Permisos.

  4. Se mostrarán todos los usuarios agrupados por función otorgada.

gcloud

Usa el comando gcloud beta functions get-iam-policy:

gcloud beta functions get-iam-policy FUNCTION_NAME

Controla el acceso en todas las funciones de un proyecto

Si deseas otorgar funciones a miembros en todas las funciones de un proyecto, puedes usar IAM a nivel de proyecto.

Permite la invocación de funciones no autenticadas

Puedes usar el enfoque descrito anteriormente para asignar o restringir la capacidad de invocar una función. Esto te permite especificar si el emisor debe autenticarse para invocar una función. Este concepto solo se aplica a las funciones de HTTP. Solo la fuente del evento al que están suscritas las funciones en segundo plano puede invocarlas.

Puedes permitir la invocación no autenticada de una función después de implementarla con solo agregar el tipo de miembro especial allUsers a una función y otorgarle la función roles/cloudfunctions.invoker. Por ejemplo:

  gcloud beta functions add-iam-policy-binding FUNCTION_NAME \
    --member="allUsers" \
    --role="roles/cloudfunctions.invoker"

También puedes usar Google Cloud Platform Console para modificar los permisos.

El comando gcloud beta functions deploy incluye un mensaje para ayudarte a configurar permisos de invocación durante la creación de la función. También incluye la marca --allow-unauthenticated:

  gcloud beta functions deploy FUNCTION_NAME \
    --trigger-http \
    --allow-unauthenticated \
    ...

Solo necesitas especificar la marca --allow-unauthenticated durante la creación inicial de la función. Las implementaciones posteriores que no especifiquen la marca --allow-unauthenticated no modificarán los permisos de IAM.

Uso compartido restringido al dominio

Si estás desarrollando funciones en un proyecto que está sujeto a la política de la organización de uso compartido restringido al dominio, no podrás permitir la invocación no autenticada de una función. Esta política restringe el uso compartido de datos públicos para reducir el riesgo de robo de datos.

Si deseas implementar funciones que permitan la invocación no autenticada, recomendamos que borres la política de la organización de uso compartido restringido al dominio en el proyecto. Las políticas de la organización se pueden establecer a nivel de la organización, la carpeta o el proyecto.

Una vez que hayas creado tus funciones que permiten la invocación no autenticada, puedes volver a habilitar la política de la organización:

  • Las funciones implementadas antes de que se haya vuelto a habilitar la política de la organización continuarán permitiendo la invocación no autenticada.
  • Las nuevas versiones de estas funciones existentes se pueden implementar sin necesidad de invocación autenticada.
  • No se pueden implementar funciones nuevas que permitan invocaciones no autenticadas.

Próximos pasos

Aprende cómo autenticar desarrolladores, funciones y usuarios finales de forma segura en las funciones que acabas de asegurar.