Autoriza el acceso a través de IAM

Usa la administración de identidades y accesos (IAM) para autorizar a las identidades a realizar acciones administrativas en tus funciones, como crearlas, actualizarlas y borrarlas. Agregasmiembros (las identidades que deseas habilitar, por lo general, un correo electrónico de usuario o de cuenta de servicio) a la función y, luego, otorgar a esos miembros la IAM adecuadafunciones , Estas funciones incluyen permisos que definen las acciones que pueden realizar.

Habilita el acceso a una función

Para controlar las acciones en una función, otorga o restringe funciones a identidades individuales a través de IAM.

Agrega miembros y otorga funciones

Console

  1. Ve a Google Cloud Console:

    Ir a Google Cloud Console

  2. Haz clic en la casilla de verificación junto a la función que te interesa.

  3. Haz clic en Permisos en la parte superior de la pantalla. Se abrirá el panel Permisos.

  4. Haz clic en Agregar miembro.

  5. En el campo Nuevos miembros, ingresa una o más identidades que necesiten acceso a tu función. (por lo general, es un correo electrónico de usuario o cuenta de servicio)

  6. Elige 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.

  7. Haz clic en Guardar.

GCloud

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

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

en el que FUNCTION_NAME es el nombre de la función, MEMBER_ID es la identidad del miembro, por lo general, un correo electrónico y ROLE es la función.

Para obtener una lista de fuentes que puedan proporcionar un MEMBER_ID, consulta la página de conceptos de 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 funciones de los miembros

Console

  1. Ve a Google Cloud Console:

    Ir a Google Cloud Console

  2. Haz clic en la casilla de verificación junto a la función que te interesa.

  3. Haz clic en Permisos en la parte superior de la pantalla. Se abrirá el panel Permisos.

  4. Busca al miembro que deseas quitar. Observe cada función que se le haya otorgado.

  5. Cuando encuentres al miembro en la función que deseas borrar, haz clic en el ícono de la papelera junto a él. Si deseas quitar completamente al miembro, hazlo para cada función que se le haya otorgado.

GCloud

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

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

en el que FUNCTION_NAME es el nombre de la función, MEMBER_ID es la identidad de miembro de la cuenta de servicio, precedido por serviceAccount:, y ROLE es la función.

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

Si al miembro se le otorgaron varias funciones, asegúrate de especificar la que deseas quitar.

Agrega o quita miembros de forma masiva

Console

  1. Ve a Google Cloud Console:

    Ir a Google Cloud 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 Permisos en la parte superior de la pantalla. Se abrirá el panel Permisos.

Si deseas agregar miembros, sigue estos pasos:

  1. Haz clic en Agregar miembro.

  2. En Nuevos miembros, ingresa varias identidades que requieran acceso a tu función.

  3. Elige 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.

  4. Haz clic en Guardar.

Sigue estos pasos para quitar miembros:

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

  2. Cuando encuentres al miembro que deseas borrar, haz clic en el ícono de la papelera junto a él. Si deseas quitar completamente al miembro, hazlo para cada función que se le haya otorgado.

GCloud

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

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

Usa el comando gcloud functions set-iam-policy:

gcloud functions set-iam-policy FUNCTION_NAME policy.json

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

Ve miembros

Console

  1. Ve a Google Cloud Console:

    Ir a Google Cloud Console

  2. Haz clic en el nombre de la función que te interesa.

  3. Selecciona la pestaña Permisos. Se abrirá el panel Permisos.

  4. Asegúrate de que la pestaña Miembros esté seleccionada.

GCloud

Usa el comando gcloud functions get-iam-policy:

gcloud functions get-iam-policy FUNCTION_NAME

Permite la invocación de funciones de HTTP no autenticadas

A partir del 15 de enero de 2020, todas las funciones HTTP requieren de forma predeterminada la mayoría de los invocadores. Para permitir la invocación no autenticada, debes especificar esto en la implementación o después de ella.

Usas una variante especial del enfoque descrito antes para otorgar a los invocadores no autenticados la capacidad de invocar una función de HTTP.

.

Durante la implementación

Console

Selecciona Permitir invocaciones no autenticadas en la sección Autenticación en el panel Configuración.

GCloud

El comando gcloud 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 functions deploy FUNCTION_NAME \
  --trigger-http \
--allow-unauthenticated \
...

Las implementaciones posteriores de la misma función no cambian su estado, incluso si no usas esta marca.

Después de la implementación

Para permitir la invocación no autenticada de una función, debes agregar el ID de miembro allUsers especial a la función y otorgarle la función de Invocador de Cloud Functions:

Console

  1. Ve a Google Cloud Console:

    Ir a Google Cloud Console

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

  3. Haz clic en Permisos en la parte superior de la pantalla. Se abrirá el panel Permisos.

  4. Haz clic en Agregar miembro.

  5. En el campo Miembros nuevos, escribe allUsers.

  6. Selecciona la función Cloud Functions > Invocador de Cloud Functions en el menú desplegable Seleccionar una función.

  7. Haz clic en Guardar.

GCloud

Usa el comando gcloud functions add-iam-policy-binding para agregar el ID de miembro allUsers especial a una función y asignarle la función roles/cloudfunctions.invoker:

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

Uso compartido restringido al dominio

Si desarrollas 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.

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.