Restringe identidades por dominio

Resource Manager proporciona una restricción de dominio que se puede usar en las políticas de la organización para limitar el uso compartido de recursos según el dominio o el recurso de la organización. Esta te permite restringir el conjunto de identidades que se pueden que se usan en las políticas de Identity and Access Management.

Las políticas de la organización pueden usar esta restricción para limitar el uso compartido de recursos a que pertenecen a un recurso de la organización en particular. Como alternativa, puedes especificar un conjunto de uno o más dominios, y se pueden otorgar excepciones por carpeta o por proyecto. Para obtener más información sobre cómo agregar excepciones, consulta Anula la política de la organización de un proyecto.

La restricción de dominio no es retroactiva. Una vez que se establezca una restricción de dominio, esta limitación se aplicará a los cambios en la política de IAM que se realicen a partir de ese momento, y no a los cambios anteriores. La restricción del dominio se aplicará a cualquier cambio en la política de IAM, lo que incluye cambios que realiza un agente de servicio en respuesta a otra acción. Por ejemplo, si tienes un servicio automatizado que importa conjuntos de datos de BigQuery, un agente de servicio de BigQuery realizará cambios en la política de IAM en el conjunto de datos creado recientemente. Esta acción estaría restringida por la restricción de dominio y bloqueada.

Por ejemplo, considera dos organizaciones relacionadas: examplepetstore.com y altostrat.com. Otorgaste una función de IAM a una identidad de examplepetstore.com en altostrat.com. Luego, decidiste restringir las identidades por dominio e implementaste una política de la organización con la restricción de dominio en altostrat.com. En este caso, las identidades existentes de examplepetstore.com no perderían el acceso en altostrat.com. A partir de ese momento, solo podrías otorgar funciones de IAM a identidades del dominio altostrat.com.

La restricción de dominio se basa en la restricción de lista iam.allowedPolicyMemberDomains.

Cuando se configura esta restricción en un recurso de organización de Google Cloud, afecta a todas las identidades que dependen de ese recurso de organización. Cuando esta restricción se configura en un dominio de Google Workspace, afecta a todas las identidades que están en ese dominio. Esto incluye las cuentas de usuario que se administran en desde la consola de Google Workspace y no desde la consola de Google Cloud.

Configura la política de la organización

La restricción de dominio es un tipo de restricción de lista. Los IDs de cliente de Google Workspace y los IDs de recursos de la organización de Google Cloud se pueden agregar y quitar de la lista allowed_values de una restricción de dominio. La restricción de dominio no admite valores de denegación, y no se puede guardar una política de la organización con IDs en la lista denied_values.

La política de la organización permitirá todos los dominios asociados con una cuenta de Google Workspace o un recurso de la organización que se enumeren en allowed_values. La política de la organización rechazará todos los demás dominios.

Puedes crear una política de la organización que aplique la restricción de dominio de forma condicional a cualquier recurso incluido en la lista de recursos compatibles. Por ejemplo, buckets de Cloud Storage, conjuntos de datos de BigQuery o Compute Engine VMs.

Debes tener permiso para modificar las políticas de la organización a fin de configurar esta restricción. Por ejemplo, la función orgpolicy.policyAdmin tiene permiso para configurar restricciones en la política de la organización. La función resourcemanager.organizationAdmin tiene permiso para agregar un usuario como administrador de políticas de la organización. Lee la sección sobre cómo usar restricciones para obtener más información sobre la administración de las políticas a nivel de organización.

Console

Para establecer una política de la organización que incluya una restricción de dominio, lo siguiente:

  1. En la consola de Google Cloud, ve a la página Políticas de la organización.

    Ir a Políticas de la organización

  2. En el selector de proyectos, selecciona el recurso de la organización en el que deseas quieres establecer la política de la organización.

  3. En la página Políticas de la organización, selecciona Uso compartido restringido al dominio en la lista de restricciones.

  4. En la página Detalles de la política, haz clic en Administrar política.

  5. En Se aplica a, selecciona Anular la política del superior.

  6. Haz clic en Agregar una regla.

  7. En Valores de la política, selecciona personalizado. Nota: La restricción de dominios no admite Rechazar todo.

  8. En Tipo de política, selecciona Permitir. Nota: La restricción de dominios no admite valores Deny.

  9. En Valores personalizados, ingresa un ID de recurso de la organización o ID de cliente de Google Workspace en la .

  10. Si deseas agregar varios IDs, haz clic en Nuevo valor de la política. para crear un campo adicional.

  11. Haz clic en Listo.

  12. De manera opcional, haz clic en Agregar condición para que la restricción de dominio sea condicional en una etiqueta.

    1. En el campo Título, ingresa un nombre para la condición.

    2. En el campo Descripción, ingresa una descripción de la condición. El descripción proporciona contexto sobre las etiquetas requeridas y cómo afectan a los recursos.

    3. Puedes usar el Creador de condiciones para crear una condición que requiere una etiqueta particular para que se aplique la restricción.

      1. En el menú desplegable Tipo de condición, En la pestaña Creador de condiciones, selecciona Etiqueta.

      2. Selecciona el Operador para tu condición. Para hacer coincidir una etiqueta completa, usa el operador matches. Para hacer coincidir una clave de etiqueta con un valor de etiqueta, utiliza el operador matches ID.

      3. Si seleccionaste el operador coincidencias, ingresa el valor con espacio de nombres de la etiqueta. Si seleccionaste el operador coincide con el ID, ingresa los IDs de clave y valor.

      4. Para crear varias condiciones, haz clic en Agregar. Si agregas otra condición, puedes configurar la lógica condicional para que requiera todas ellas activando Y. Puedes configurar lógica condicional para requerir que solo una de las condiciones sea verdadera activando O (Or).

      5. Para borrar una expresión, haz clic en la X grande que se encuentra a la derecha de los campos de condición.

      6. Cuando termines de editar las condiciones, haz clic en Guardar.

  13. Para aplicar la política, haz clic en Establecer política.

gcloud

Las políticas se pueden establecer a través de Google Cloud CLI. Para crear una política que incluya la restricción de dominio, ejecuta el siguiente comando:

Para establecer una política de la organización que incluya la restricción de dominio, ejecuta el siguiente comando:

gcloud org-policies set-policy POLICY_PATH

Donde POLICY_PATH es la ruta completa a tu de políticas de la organización en formato YAML, que debería tener el siguiente aspecto:

name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains
spec:
  rules:
  - condition: # This condition applies to the values block.
      expression: "resource.matchTag('ORGANIZATION_ID/environment', 'dev')"
    values:
      allowedValues:
      - PRINCIPAL_SET
  - values:
      allowedValues:
      - PRINCIPAL_SET

Reemplaza lo siguiente:

  • ORGANIZATION_ID con el ID del recurso de la organización en el que se configurará esta política.
  • PRINCIPAL_SET para los identificadores principales de Cloud Identity que quieres permitir, incluso ID de recurso de la organización. Por ejemplo, is:principalSet://iam.googleapis.com/organizations/01234567890123.

    Los IDs de cliente de Google Workspace deben usarse para y todas las demás identidades que quieras permitir. Por ejemplo, is:C03g5e3bc

Solo las identidades que pertenezcan al ID de recurso de la organización o al dominio de Google Workspace de la lista de allowed_values se admitirán en las políticas de IAM una vez que se haya aplicado esta política de la organización. Los usuarios y grupos humanos de Google Workspace deben ser recursos secundarios de ese recurso de la organización o parte de ese dominio de Google Workspace, y las cuentas de servicio de IAM deben ser recursos secundarios de un recurso de la organización asociado con el dominio de Google Workspace determinado.

Por ejemplo, si creaste una política de la organización solo con el ID de cliente de Google Workspace de tu empresa, solo los principales de ese dominio podrían agregarse a la política de IAM de ese momento.

Para obtener más información sobre el uso de restricciones en las políticas de la organización, consulta Cómo usar restricciones.

Ejemplo de mensaje de error

Cuando se viola la restricción de la organización de restricción de dominio debido a que se intenta agregar un principal que no está incluido en la lista allowed_values, la operación fallará y luego se mostrará un mensaje de error.

Console

Captura de pantalla de Console

gcloud

ERROR: (gcloud.projects.set-iam-policy) FAILED_PRECONDITION:
One or more users named in the policy do not belong to a permitted customer.

Cómo recuperar el ID de un recurso de organización

Puedes obtener el ID de recurso de tu organización mediante la consola de Google Cloud, gcloud CLI o la API de Cloud Resource Manager.

Console

Para obtener el ID de recurso de tu organización con la consola de Google Cloud, haz lo siguiente:

  1. Ve a la consola de Google Cloud:

    Ve a la consola de Google Cloud.

  2. En el selector de proyectos de la parte superior de la página, selecciona tu organización. recurso.
  3. En el lado derecho, haz clic en Más y, luego, en Configuración.

En la página Configuración, se muestra el ID de tu recurso de organización.

gcloud

Para encontrar el ID de recurso de tu organización, ejecuta el siguiente comando:

gcloud organizations list

Este comando enumera todos los recursos de la organización a los que perteneces, y sus IDs de recursos de la organización correspondientes.

API

Para encontrar el ID de recurso de tu organización con la API de Cloud Resource Manager, usa el organizations.search() método, incluida una consulta para tu dominio. Por ejemplo:

GET https://cloudresourcemanager.googleapis.com/v3/organizations:search{query=domain:altostrat.com}

La respuesta contiene los metadatos del recurso de la organización que pertenece a altostrat.com, que incluye el ID del recurso de la organización.

Después de obtener el ID de recurso de tu organización, debes usar el identificador correcto para el conjunto de principales que le pertenecen. Por ejemplo:

principalSet://iam.googleapis.com/organizations/01234567890123

Para obtener más información sobre los identificadores de principal de IAM, consulta Identificadores de principal.

Recupera un ID de cliente de Google Workspace

El ID de cliente de Google Workspace que usa la restricción de dominio se puede obtener de las dos siguientes maneras:

gcloud

El comando de lista de organizaciones de gcloud se puede usar para ver todas las organizaciones en las que tienes el permiso resourcemanager.organizations.get:

gcloud organizations list

Con este comando, se mostrarán el DISPLAY_NAME, el ID (ID de la organización) y el DIRECTORY_CUSTOMER_ID. El ID de cliente de Google Workspace es el DIRECTORY_CUSTOMER_ID.

API

La API del directorio de Google Workspace se puede usar para recuperar un ID de cliente de Google Workspace.

Cuando hayas accedido como administrador de Google Workspace, puedes visitar la documentación del método de la API Customers: get y hacer clic en Ejecutar. Después de la autorización, la respuesta mostrará tu ID de cliente.

Como alternativa, puedes usar un cliente de API:

  1. Obtén un token de acceso de OAuth para el permiso https://www.googleapis.com/auth/admin.directory.customer.readonly.
  2. Ejecuta el siguiente comando para consultar la API de directorio de Google Workspace:

    curl -# -X GET "https://www.googleapis.com/admin/directory/v1/customers/customerKey" \
    -H "Authorization: Bearer $access_token" -H "Content-Type: application/json"
    

Con este comando, se mostrará una respuesta JSON que incluye la información del cliente. El ID de cliente de Google Workspace es el id.

Restringe subdominios

Si permites un recurso de organización de Google Cloud en una restricción de dominio, se permite el acceso a todos los recursos asociados con ese recurso de organización y se bloquea el acceso a todos los demás.

Si permites un ID de cliente de Google Workspace en una restricción de dominio, se limita el acceso a todos los dominios asociados con ese ID de cliente de Google Workspace y se bloquea el acceso a todos los demás. Todas las cuentas de Google Workspace tienen exactamente un dominio principal y cero o más dominios secundarios. Todos los dominios asociados con el ID de cliente de Google Workspace estarán sujetos a la restricción.

La aplicación forzosa de la restricción de dominio en un recurso controla el dominio primario y todos los dominios secundarios que pueden acceder a ese recurso y a sus inferiores en la jerarquía de recursos.

Para ver ejemplos de combinaciones comunes de dominios y subdominios de Google Workspace, consulta la siguiente tabla:

Dominio principal Subdominio Restricción de dominio ¿Se admite user@sub.altostrat.com?
altostrat.com ninguno Permitir: altostrat.com No
altostrat.com sub.altostrat.com Permitir: altostrat.com
altostrat.com sub.altostrat.com Permitir: sub.altostrat.com
sub.altostrat.com altostrat.com Permitir: sub.altostrat.com
sub.altostrat.com ninguno Permitir: sub.altostrat.com

Para diferenciar el acceso a la restricción de dominio entre dos dominios, cada dominio debe estar asociado con una cuenta distinta de Google Workspace. Cada cuenta de Google Workspace está asociada con un nodo de la organización y puede tener sus propias políticas de la organización aplicadas. Esto te permite asociar altostrat.com con una cuenta de Google Workspace y sub.altostrat.com con otra para obtener un control de acceso más detallado. Para obtener más información, consulta la página sobre cómo administrar varias organizaciones.

Soluciona problemas conocidos

Las políticas de la organización no son retroactivas. Si necesitas forzar un cambio en tu jerarquía de recursos que viola una restricción aplicada de forma forzosa, puedes inhabilitar la política de la organización, realizar el cambio y, luego, volver a habilitar la política de la organización.

En las próximas secciones, se describen los problemas conocidos de los servicios que pueden ocurrir cuando se aplica de forma forzosa esta restricción.

Cómo vincular Google Analytics 360 con BigQuery

Si intentas vincular Google Analytics 360 con BigQuery en el que se aplica la restricción de dominio, la acción falla con el mensaje de error One or more users named in the policy do not belong to a permitted customer, incluso si La cuenta de servicio de analytics-processing-dev@system.gserviceaccount.com es ya se agregó como Editor a nivel de proyecto, directamente o a través de Grupos de Google.

Para vincular Google Analytics 360 con BigQuery, haz lo siguiente:

  1. Inhabilita la política de la organización que contiene la restricción de dominio.

  2. Realiza el proceso de vinculación en Google Analytics 360.

  3. Aplica nuevamente la restricción de dominio.

Uso compartido de datos públicos

Algunos productos de Google Cloud, como BigQuery, las funciones de Cloud Run, Cloud Run, Cloud Storage y Pub/Sub, admiten el uso compartido de datos públicos. La aplicación forzosa de la restricción de uso compartido restringido del dominio en una política de la organización evitará el uso compartido de los datos públicos.

Si quieres compartir datos de forma pública, inhabilita la restricción de uso compartido restringido del dominio de forma temporal para el recurso del proyecto en el que residen los datos que deseas compartir. Después de compartir el recurso de forma pública, podrás volver a habilitar la restricción de uso compartido restringido del dominio.

Receptor de registros de BigQuery para una cuenta de facturación

La cuenta de servicio que usa el sumidero de registros de BigQuery para las cuentas de facturación (formato: b*@*.iam.gserviceaccount.com) se considera externa y la bloquea la restricción de uso compartido con dominio restringido en una política de la organización. Otorga a esta cuenta de servicio un rol en un conjunto de datos de BigQuery de un proyecto que tiene aplicada la restricción de dominio:

  1. Inhabilita la política de la organización que contiene la restricción de dominio.

  2. Otorga a la cuenta de servicio correspondiente (formato: b*@*.iam.gserviceaccount.com) la función de BigQuery que se indicó durante el proceso de creación del receptor.

  3. Aplica nuevamente la restricción de dominio.

Cuenta de servicio de exportación de Cloud Billing

Es probable que falle la habilitación de la exportación de facturación en un bucket con esta restricción habilitada. No uses esta restricción en los depósitos que se usan para la exportación de facturación.

La dirección de correo electrónico de la cuenta de servicio de exportación de Facturación de Cloud es: 509219875288-kscf0cheafmf4f6tp1auij5me8qakbin@developer.gserviceaccount.com

Habilita el registro de acceso del almacenamiento

Si se encuentra habilitada, la restricción de dominio bloqueará cualquier dominio que no se admita de forma específica en la política de la organización. Esto también evitará que se otorgue acceso a las cuentas de servicio de Google. Para configurar el registro de acceso del almacenamiento en un bucket de Cloud Storage al que se haya aplicado de forma forzosa la restricción de dominio, sigue estos pasos:

  1. Inhabilita la política de la organización que contiene la restricción de dominio.

  2. Otórgale a cloud-storage-analytics@google.com el acceso WRITE a ese depósito.

  3. Aplica nuevamente la restricción de dominio.

Otorga funciones de agente de servicio

Los roles de agente de servicio solo se otorgan a cuentas de servicio. Si necesitas otorgar este tipo de rol, haz lo siguiente:

  1. Inhabilitar la política de la organización que contiene la restricción de dominio.

  2. Otorga el rol de agente de servicio.

  3. Aplicar la restricción de dominio de nuevo.

Habilita la API de Firebase

Si se habilita esta restricción, se bloquearán las cuentas de servicio que no se permiten en la política de la organización. Esto hace que no se pueda habilitar la API de Firebase, que requiere cuentas de servicio externas durante el proceso de habilitación de la API. Una vez que se habilite la API, podrás aplicar de forma segura la restricción de dominio sin interferir con la función de la API de Firebase. Para habilitar la API de Firebase, haz lo siguiente:

  1. Inhabilita la política de la organización que contiene la restricción de dominio.

  2. Habilita la API de administración de Firebase

  3. Aplica nuevamente la restricción de dominio.

Grupos de Google

Si la restricción de dominio se aplica en tu organización, es posible que no puedas otorgar roles a los grupos de Google creados recientemente, incluso si pertenecen a un dominio permitido. Esto se debe a que un grupo puede tardar hasta 24 horas en propagarse por completo a través de Google Cloud. Si no puedes otorgar un rol a un grupo de Google creado recientemente, espera 24 horas y vuelve a intentarlo.

Además, cuando se evalúa si un grupo pertenece a un dominio permitido, IAM solo evalúa el dominio del grupo. No evalúa el dominios de cualquiera de los miembros del grupo. Como resultado, los administradores de proyectos pueden omitir la restricción de dominio agregando miembros externos a Google grupos y, luego, otorgarles roles a esos Grupos de Google.

Para garantizar que los administradores del proyecto no puedan eludir la restricción del dominio restricción, el administrador de Google Workspace debe asegurarse de que los propietarios del grupo no pueden permitir miembros ajenos al dominio en la Panel del administrador de Google Workspace.

Fuerza el acceso a la cuenta

Si necesitas forzar el acceso a la cuenta de un proyecto que infringe las restricciones del dominio, haz lo siguiente:

  1. Quita la política de la organización que contiene la restricción de dominio.

  2. Otórgale el acceso a la cuenta al proyecto.

  3. Vuelve a implementar la política de la organización con la restricción de dominio.

Como alternativa, puedes otorgar acceso a un Grupo de Google que contenga las cuentas de servicio relevantes de la siguiente manera:

  1. Crea un Grupo de Google dentro del dominio admitido.

  2. Usa el panel de administrador de Google Workspace para desactivar la restricción del dominio para ese grupo.

  3. Agrega la cuenta de servicio al grupo.

  4. Otorga el acceso al grupo de Google en la política de IAM.

Usar Pub/Sub como el extremo de una app de Google Chat

Cuando intentas otorgar derechos de publicación sobre tu tema a la cuenta de servicio de la API de Google Chat, es posible que se te bloquee si está habilitada la restricción de uso compartido de dominios restringidos. Sigue el proceso para forzar el acceso a la cuenta.