Configura un proveedor de identidad de terceros para las operaciones de seguridad de Google

La federación de identidades de personal de Google te permite otorgar a las cargas de trabajo locales o de múltiples nubes acceso a los recursos de Google Cloud, sin tener que usar una clave de cuenta de servicio. Puedes usar la federación de identidades de personal con cualquier proveedor de identidad (IdP) que admita OpenID Connect (OIDC), incluidos Microsoft Azure, Okta o SAML 2.0.

Las operaciones de seguridad de Google requieren que se use la federación de identidades de personal de Google como el agente de SSO predeterminado para lo siguiente:

  • Clientes con requisitos de cumplimiento de FedRAMP High (o superiores).
  • Los clientes que acceden a cualquier control de nivel empresarial en las operaciones de seguridad de Google que Google Cloud habilita, incluidos los datos y el control de acceso basado en funciones (RBAC) de funciones mediante Identity and Access Management (IAM).
  • Clientes que usan la administración de credenciales de autoservicio para el acceso programático de la API de Google Security Operations.

Las operaciones de seguridad de Google admiten el SSO de SAML iniciado por el proveedor de servicios (iniciado por el SP) para los usuarios. Con esta función, los usuarios navegan directamente a las operaciones de seguridad de Google. Las operaciones de seguridad de Google envían una solicitud al proveedor de identidad (IdP) de terceros a través de la federación de identidades de personal de Google Cloud Identity and Access Management (IAM).

Después de que el IdP autentica la identidad del usuario, este regresa a las operaciones de seguridad de Google con una aserción de autenticación. La federación de identidades de personal de Google Cloud actúa como un intermediario en el flujo de autenticación.

Comunicación entre las operaciones de seguridad de Google, la federación de identidades de personal de Google Cloud IAM y el IdP

Comunicación entre las operaciones de seguridad de Google, la federación de identidades de personal de IAM y el IdP

En un nivel alto, la comunicación es la siguiente:

  1. El usuario navega a Operaciones de seguridad de Google.
  2. Las operaciones de seguridad de Google buscan información del IdP en el grupo de identidades de personal de Google Cloud.
  3. Se envía una solicitud al IdP.
  4. La aserción de SAML se envía al grupo de identidades de personal de Google Cloud.
  5. Si la autenticación se realiza correctamente, las operaciones de seguridad de Google reciben solo los atributos de SAML definidos cuando configuraste el proveedor de personal en el grupo de identidades de personal.

No se admite el acceso iniciado por IdP (iniciar un acceso desde el panel de tu IdP). Comunícate con tu representante de Operaciones de seguridad de Google para solicitar esta función si tu organización la necesita.

En este documento, se describen los pasos de alto nivel para configurar la autenticación a través de un proveedor de identidad (IdP) de terceros mediante la federación de identidades de personal de Google Cloud. Después de seguir los pasos de este documento, podrás acceder a las operaciones de seguridad de Google con tu IdP externo y administrar el acceso a las operaciones de seguridad de Google con el SSO de SAML a través de la federación de identidades de personal.

Antes de comenzar

En los siguientes pasos, se describe cómo realizar la configuración con los comandos gcloud. Si se puede realizar un paso en la consola de Google Cloud, se proporciona un vínculo a la documentación de IAM relacionada.

Planifica la implementación

En la siguiente sección, se describen las decisiones que debes tomar y la información que defines antes de realizar los pasos de este documento.

Define el grupo de identidad de personal y el proveedor de trabajadores

Como parte de este proceso, configurarás la federación de identidades de personal de Google Cloud como intermediaria en el flujo de autenticación. Para lograrlo, crea los siguientes recursos de Google Cloud:

  • Grupo de trabajadores: Un grupo de identidad de personal te permite otorgar a tu personal (p.ej., empleados) acceso a las operaciones de seguridad de Google.
  • Proveedor de trabajadores: Un proveedor de trabajadores es un subrecurso del grupo de identidades de trabajadores. Almacena detalles sobre un solo IdP.

La relación entre el grupo de identidad de personal, los proveedores de trabajadores y una instancia de operaciones de seguridad de Google, identificada por un solo subdominio del cliente, es la siguiente:

  • Un grupo de identidades de personal se define a nivel de la organización.
  • Cada instancia de las operaciones de seguridad de Google tiene configurado un grupo de identidades de personal y asociado a él.
  • Un grupo de identidades de personal puede tener varios proveedores de personal.
  • Cada proveedor de trabajadores integra un IdP externo al grupo de identidades de personal.
  • El grupo de identidades de personal que crees con estos pasos debe dedicarse a Google SecOps. Aunque puedes administrar varios grupos de identidad de personal para otros fines, el grupo de identidades de personal creado para Google SecOps no se puede compartir.
  • Te recomendamos que crees el grupo de identidades de personal en la misma organización de Google Cloud que contenga el proyecto vinculado a Google SecOps.

Ayuda a ahorrar tiempo si predefines la información sobre el grupo de identidad del personal y el proveedor de trabajadores. Usa esta información cuando configures la aplicación SAML del IdP y la federación de identidades de personal.

Elige los valores para los siguientes identificadores:

  • ID del grupo de trabajadores (WORKFORCE_POOL_ID): Selecciona un valor que indique el permiso o el propósito del grupo de identidades de personal. El valor debe cumplir con los siguientes requisitos:
    • Debe ser único a nivel global.
    • Solo debes usar caracteres en minúscula [a-z], dígitos [0-9] y guiones [-].
    • Debe comenzar con una letra minúscula [a-z].
    • Debe terminar con un carácter en minúscula [a-z] o un dígito [0-9].
    • Puede tener entre 4 y 61 caracteres.
  • Nombre visible del grupo de trabajadores (WORKFORCE_POOL_DISPLAY_NAME): Define un nombre fácil de usar para el grupo de identidades de personal.
  • Descripción del grupo de trabajadores (WORKFORCE_POOL_DESCRIPTION): Define una descripción detallada del grupo de identidades de personal.
  • ID del proveedor de trabajadores (WORKFORCE_PROVIDER_ID): Elige un valor que indique el IdP que representa. El valor debe cumplir con los siguientes requisitos:
    • Solo debes usar caracteres en minúscula [a-z], dígitos [0-9] y guiones [-].
    • Puede tener entre 4 y 32 caracteres.
  • Nombre visible del proveedor de trabajadores (WORKFORCE_PROVIDER_DISPLAY_NAME): Define un nombre fácil de usar para el proveedor de personal. Debe tener menos de 32 caracteres.
  • Descripción del proveedor de trabajadores (WORKFORCE_PROVIDER_DESCRIPTION): Define una descripción detallada del proveedor de trabajadores.

Define atributos y grupos de usuario en el IdP

Antes de crear la aplicación de SAML en el IdP, identifica qué atributos y grupos de usuario son necesarios para configurar el acceso a las funciones en las operaciones de seguridad de Google. Para obtener más información, consulta Configura el control de acceso a las funciones mediante IAM y los permisos de las operaciones de seguridad de Google en IAM.

Necesitarás esta información durante las siguientes fases de este proceso:

  • Al configurar la aplicación SAML, se crean los grupos definidos durante la planificación. Configura la aplicación SAML del IdP para pasar las membresías de grupo en la aserción.

  • Cuando creas el proveedor de trabajadores, asignas atributos y grupos de aserción a los atributos de Google Cloud. Esta información se envía en el reclamo de aserción como parte de la identidad de un usuario.

  • Cuando configuras el control de acceso basado en funciones en las operaciones de seguridad de Google, usas los atributos del usuario y la información del grupo para configurar el acceso a las funciones de estas operaciones.

    Las operaciones de seguridad de Google proporcionan varias funciones predefinidas, cada una de las cuales permite el acceso a funciones específicas. Puedes asignar grupos definidos en la aplicación de SAML del IdP a estas funciones predefinidas.

Configura el IdP

En esta sección, solo se describe la configuración específica necesaria en una aplicación SAML de IdP para la integración a la federación de identidades de personal de Google Cloud y las operaciones de seguridad de Google.

  1. Crea una nueva aplicación de SAML en tu IdP.

  2. Configura la aplicación con la siguiente URL de Assertion Consumer Service (ACS), que también se conoce como URL de inicio de sesión único, según el proveedor de servicios.

    https://auth.backstory.chronicle.security/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Reemplaza lo siguiente:

    • WORKFORCE_POOL_ID: Es el identificador que definiste para el grupo de identidades de personal.
    • WORKFORCE_PROVIDER_ID: Es el identificador que definiste para el proveedor de personal.

      Consulta Planifica la implementación para obtener una descripción de estos valores.

  3. Configura la aplicación con el siguiente ID de entidad (también llamado ID de entidad del SP).

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Reemplaza lo siguiente:

    • WORKFORCE_POOL_ID: Es el identificador que definiste para el grupo de identidades de personal.
    • WORKFORCE_PROVIDER_ID: Es el identificador que definiste para el proveedor de personal.
  4. Configura el identificador de nombre en tu IdP para asegurarte de que el campo NameID se muestre en la respuesta de SAML.

    Puedes establecer esto en un valor que admita las políticas de tu organización, como la dirección de correo electrónico o el nombre de usuario. Consulta la documentación de tu IdP para obtener información sobre cómo configurar este valor. Para obtener más información sobre este requisito, consulta Soluciona problemas de la federación de identidades de personal.

  5. De forma opcional, crea los atributos del grupo en la aplicación de SAML. Ya los definiste cuando planificaste la implementación del IdP.

  6. Descarga el archivo en formato XML de metadatos de la aplicación. En la siguiente sección, subirás este archivo desde tu sistema local al directorio principal de Google Cloud mediante Cloud Shell.

Configura la federación de Workforce Identity

En esta sección, solo se describen los pasos específicos necesarios para configurar la federación de identidades del personal con la aplicación SAML del IdP que creaste en la sección anterior. Para obtener más información sobre la administración de grupos de identidad de trabajadores, consulta Administra proveedores de grupos de identidad de trabajadores.

  1. Abre la consola de Google Cloud como el usuario con los permisos necesarios en el proyecto vinculado a las operaciones de seguridad de Google. Ya identificaste o creaste este usuario. Consulta la sección Antes de comenzar.

  2. Inicia una sesión de Cloud Shell.

  3. Configura el proyecto de Google Cloud que se factura y se cobra por la cuota de operaciones realizadas con gcloud CLId. Usa el siguiente comando gcloud como ejemplo:

    gcloud config set billing/quota_project PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto vinculado a las operaciones de seguridad de Google que creaste en Configura un proyecto de Google Cloud para las operaciones de seguridad de Google. Consulta Cómo crear y administrar proyectos para obtener una descripción de los campos que identifican un proyecto.

    Para obtener información sobre las cuotas, consulta los siguientes documentos:

    Si se produce un error, consulta Errores de cuota.

Crea y configura un grupo de identidades de personal

Puedes configurar un grupo de identidades de personal para integrarlo a un proveedor de identidad externo (IdP), o a Google Workspace o Cloud Identity.

  1. Crea un grupo de identidad de personal.

    • Crea un grupo de identidad de trabajadores para un IdP externo:

      Usa el siguiente comando gcloud como ejemplo:

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
            --location="global" \
            --organization="ORGANIZATION_ID" \
            --description="WORKFORCE_POOL_DESCRIPTION" \
            --display-name="WORKFORCE_POOL_DISPLAY_NAME"
      

      Reemplaza lo siguiente:

      • WORKFORCE_POOL_ID: Es el identificador que definiste para el grupo de identidades de personal.
      • ORGANIZATION_ID: Es el ID numérico de la organización.
      • WORKFORCE_POOL_DESCRIPTION: Especifica una descripción del grupo de identidades de personal.
      • WORKFORCE_POOL_DISPLAY_NAME: Especifica un nombre fácil de usar para el grupo de identidades de personal.
    • Crea un grupo de identidades de personal para Google Workspace o Cloud Identity:

      Si usas Google Workspace o Cloud Identity como IdP, agrega la marca --allowed-services domain=backstory.chronicle.security al comando:

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
            --location="global" \
            --organization="ORGANIZATION_ID" \
            --description="WORKFORCE_POOL_DESCRIPTION" \
            --display-name="WORKFORCE_POOL_DISPLAY_NAME" \
            --allowed-services domain=backstory.chronicle.security
      

    Para realizar esta configuración con la consola de Google Cloud, consulta Crea un grupo.

  2. Si en la línea de comandos se te solicita que habilites la API de Chronicle, escribe Yes.

Crea un proveedor de identidad de personal

  1. Para subir el archivo de metadatos de la aplicación de SAML al directorio principal de Cloud Shell, haz clic en Más >. Los archivos solo se pueden subir a tu directorio principal. Si deseas conocer más opciones para transferir archivos entre Cloud Shell y tu estación de trabajo local, consulta Sube y descarga archivos y carpetas desde Cloud Shell.

  2. Toma nota de la ruta de acceso del directorio en la que subiste el archivo en formato XML de metadatos de la aplicación SAML en Cloud Shell. Necesitarás esta ruta en el siguiente paso.

  3. Crea un proveedor de grupos de identidades de trabajadores y especifica los detalles del IdP.

    Usa el siguiente comando gcloud como ejemplo:

    gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
          --workforce-pool="WORKFORCE_POOL_ID" \
          --location="global" \
          --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
          --description="WORKFORCE_PROVIDER_DESCRIPTION" \
          --idp-metadata-path=PATH_TO_METADATA_XML \
          --attribute-mapping="ATTRIBUTE_MAPPINGS"
    

    Consulta Planifica la implementación para obtener más información sobre estos valores.

    Reemplaza lo siguiente:

    • WORKFORCE_PROVIDER_ID: Es el valor que definiste para el ID de proveedor de personal.
    • WORKFORCE_POOL_ID: Es el valor que definiste para el ID del grupo de identidades de personal.
    • WORKFORCE_PROVIDER_DISPLAY_NAME: Es un nombre fácil de usar para el proveedor de personal. Debe tener menos de 32 caracteres.
    • WORKFORCE_PROVIDER_DESCRIPTION: Es una descripción del proveedor de personal.
    • PATH_TO_METADATA_XML: Es la ubicación del directorio de Cloud Shell del archivo en formato XML de metadatos de la aplicación que subiste con Cloud Shell, por ejemplo: /path/to/sso_metadata.xml.
    • ATTRIBUTE_MAPPINGS: Definición de cómo asignar atributos de aserción a los atributos de Google Cloud. Common Expression Language se usa para interpretar estas asignaciones. Por ejemplo:

      google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.groups

      En el ejemplo anterior, se asignan los siguientes atributos:

      • assertion.subject se asigna a google.subject. Este es un requisito mínimo.
      • assertion.attributes.name[0] se asigna a google.display_name.
      • assertion.attributes.groups al atributo google.groups.

      Si realizas esta configuración para las operaciones de seguridad de Google, que incluye la SIEM de las operaciones de seguridad de Google y la SOAR de las operaciones de seguridad de Google, también debes asignar los siguientes atributos requeridos por la SOAR de operaciones de seguridad de Google:

      • attribute.first_name
      • attribute.last_name
      • attribute.user_email
      • google.groups

      Obtén más información sobre cómo aprovisionar y asignar usuarios para la SOAR de operaciones de seguridad de Google.

      De forma predeterminada, las operaciones de seguridad de Google leen la información de los grupos de los siguientes nombres de atributos de aserción que no distinguen mayúsculas de minúsculas: _assertion.attributes.groups_, _assertion.attributes.idpGroup_ y _assertion.attributes.memberOf_.

      Cuando configures la aplicación de SAML para pasar información de pertenencia a grupos en la aserción, establece el nombre del atributo de grupo en _group_, _idpGroup_ o _memberOf_.

      En el comando de ejemplo, puedes reemplazar assertion.attributes.groups por assertion.attributes.idpGroup o assertion.attributes.memberOf, que representa el nombre del atributo de grupo que configuraste en la aplicación de SAML de IdP y que contiene información de pertenencia a un grupo en la aserción.

      En el siguiente ejemplo, se asignan varios grupos al atributo google.groups:

      google.groups="(has(assertion.attributes.idpGroup) ? assertion.attributes.idpGroup : []) + (has(assertion.attributes.groups) ? assertion.attributes.groups : []) + (has(assertion.attributes.memberof) ? assertion.attributes.memberof : [])"

      En el siguiente ejemplo, se asigna el grupo http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group que contiene caracteres especiales a google.groups:

      google.groups="assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group']"

      Para obtener más información sobre la asignación de atributos, consulta Asignaciones de atributos.

      Para realizar esta configuración con la consola de Google Cloud, consulta Crea un proveedor de SAML.

Otorga un rol para habilitar el acceso a las operaciones de seguridad de Google

En los siguientes pasos, se describe cómo otorgar un rol específico con la IAM para que los usuarios puedan acceder a las operaciones de seguridad de Google. Realiza la configuración mediante el proyecto de Google Cloud vinculado a las operaciones de seguridad de Google que creaste antes.

En este ejemplo, se usa el comando gcloud. Para usar la consola de Google Cloud, consulta Otorga un solo rol.

  1. Otorga la función de visualizador de la API de Chronicle (roles/chronicle.viewer) a los usuarios o grupos que deben tener acceso a la aplicación de operaciones de seguridad de Google.

    En el siguiente ejemplo, se otorga el rol de visualizador de la API de Chronicle a las identidades administradas con el grupo de identidades de personal y el proveedor de trabajadores que creaste anteriormente.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/*"
    

    Reemplaza lo siguiente:

    Para otorgar el rol de visualizador de la API de Chronicle a un grupo específico, ejecuta el siguiente comando:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    Reemplaza GROUP_ID: un grupo en la reclamación google.groups asignada.

  2. Configura políticas de IAM adicionales para cumplir con los requisitos de tu organización.

Verifica o configura el control de acceso a las funciones de operaciones de seguridad de Google

Si configuraste la federación de identidades del personal con atributos o grupos asignados al atributo google.groups, esta información se pasa a las operaciones de seguridad de Google para que puedas configurar el control de acceso basado en funciones (RBAC) en las funciones de operaciones de seguridad de Google.

Si la instancia de operaciones de seguridad de Google tiene una configuración de RBAC existente, verifica que la configuración original funcione como se espera.

Si aún no configuraste el RBAC de operaciones de seguridad de Google, consulta Configura el control de acceso a las funciones con IAM para obtener información sobre cómo controlar el acceso a las funciones.

Modifica la configuración de la federación de identidades de personal

Si necesitas actualizar el grupo de identidad o el proveedor de trabajadores de trabajadores, consulta Administra proveedores de grupos de identidad de trabajadores para obtener información sobre la actualización de la configuración.

En la sección Administración de claves en Crea un proveedor de grupos de trabajadores de SAML, se describe cómo actualizar las claves de firma de IdP y, luego, la configuración del proveedor de trabajadores con el archivo XML de metadatos de la aplicación más reciente.

El siguiente es un comando de gcloud de ejemplo que actualiza la configuración del proveedor de personal:

gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location="global" \
    --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
    --description="WORKFORCE_PROVIDER_DESCRIPTION" \
    --idp-metadata-path=PATH_TO_METADATA_XML \
    --attribute-mapping="ATTRIBUTE_MAPPINGS"

Reemplaza lo siguiente:

  • WORKFORCE_PROVIDER_ID: Es el valor que definiste para el ID de proveedor de personal.
  • WORKFORCE_POOL_ID: Es el valor que definiste para el ID del grupo de identidades de personal.
  • WORKFORCE_PROVIDER_DISPLAY_NAME: Es un nombre fácil de usar para el proveedor de personal. El valor debe tener menos de 32 caracteres.
  • WORKFORCE_PROVIDER_DESCRIPTION: Es la descripción del proveedor de personal.
  • PATH_TO_METADATA_XML: Es la ubicación del archivo en formato XML de metadatos de la aplicación actualizado (por ejemplo: /path/to/sso_metadata_updated.xml).
  • ATTRIBUTE_MAPPINGS: Los atributos de aserción asignados a atributos de Google Cloud. Por ejemplo:

    google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.memberOf

Para asegurarte de que el RBAC de Google SecOps siga funcionando como se espera, asigna también el atributo google.groups a todos los grupos que se usan para definir roles en SecOps de Google.

Cómo solucionar problemas con la configuración

Si encuentras errores durante este proceso, revisa Soluciona problemas de la federación de identidades de personal para resolver problemas comunes. En la siguiente sección, se proporciona información sobre problemas comunes que se encuentran cuando se realizan los pasos de este documento.

Si sigues teniendo problemas, comunícate con tu representante de Google SecOps y proporciona tu archivo de registros de red de Chrome.

Se produjo un error command not found cuando se creaba un proveedor de grupos de identidades de personal.

Cuando creas un proveedor de grupos de identidad de trabajadores y especificas los detalles del IdP, verás el siguiente error:

Error: bash: --attribute-mapping=google.subject=assertion.subject,
google.display_name=assertion.attributes.name[0],
google.groups=assertion.attributes.groups: command not found

Verifica que PATH_TO_METADATA_XML sea la ubicación en la que subiste el archivo en formato XML de metadatos de la aplicación SAML en el directorio principal de Cloud Shell.

The caller does not have permission error

Cuando ejecutas el comando gcloud projects add-iam-policy-binding para otorgar roles a usuarios o grupos, aparece el siguiente error:

ERROR: (gcloud.organizations.add-iam-policy-binding) User [ ] does not have
permission to access organizations instance [538073083963:getIamPolicy]
(or it may not exist): The caller does not have permission

Verifica si tienes los permisos necesarios. Consulta Roles obligatorios para obtener más información.

¿Qué sigue?

Después de completar los pasos de este documento, haz lo siguiente: