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 Console:

    Ir a Google Cloud 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 Guardar.

GCloud

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

gcloud 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 Console:

    Ir a Google Cloud 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. Haz clic en borrar con el ícono de papelera que aparece junto al tipo de miembro en la función para quitársela.

GCloud

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

  gcloud 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 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 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 Guardar.

Haz lo siguiente si quieres quitar usuarios:

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

  2. Haz clic en borrar con el ícono de papelera que aparece junto al tipo de miembro en la función para quitársela.

GCloud

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

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

Usa el comando gcloud functions set-iam-policy:

gcloud 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 Console:

    Ir a Google Cloud Console

  2. Selecciona la función en la que deseas ver a los 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 de gcloud functions get-iam-policy:

gcloud 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 puede invocarlas la fuente del evento al que están suscritas las funciones en segundo plano.

Para permitir la invocación no autenticada de una función después de implementarla, agrega el tipo de miembro allUsers especial a una función y asígnale 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 otorgar acceso.

  3. Haz clic en Mostrar panel de información en la esquina superior derecha para que aparezca la pestaña 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 tipo 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"

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

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 \
...

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 para las funciones que acabas de proteger.