Restringe identidades por dominio

El uso compartido restringido al dominio te permite limitar el uso compartido de recursos según un dominio o un recurso de organización. Cuando el uso compartido restringido del dominio está activo, solo se pueden otorgar roles de IAM en tu organización Google Cloud a las entidades principales que pertenecen a organizaciones o dominios permitidos.

Existen tres tipos de políticas de la organización que puedes usar para restringir identidades por dominio:

  • La restricción administrada iam.managed.allowedPolicyMembers
  • Políticas de la organización personalizadas que hacen referencia al recurso iam.googleapis.com/AllowPolicy
  • La restricción administrada heredada iam.allowedPolicyMemberDomains

Antes de comenzar

Elige el método que usarás para implementar el uso compartido restringido del dominio. Para obtener más información sobre las ventajas y desventajas de cada método, consulta Métodos para restringir el uso compartido por dominio.

Roles obligatorios

Para obtener los permisos que necesitas para aplicar el uso compartido restringido por dominio, pídele a tu administrador que te otorgue el rol de IAM Administrador de políticas de la organización (roles/orgpolicy.policyAdmin) en la organización. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Usa la restricción iam.managed.allowedPolicyMembers para implementar el uso compartido restringido al dominio

Console

  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 proyecto, la organización o la carpeta para la que deseas editar la política de la organización. En la página Políticas de la organización que aparece, se muestra una lista filtrable de las restricciones de la política de la organización que están disponibles para este recurso.

  3. En la lista, selecciona la restricción administrada Restringir los miembros de la política permitidos en las políticas de IAM de permiso.

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

  5. En la página Editar política, selecciona Anular la política del superior.

  6. Selecciona Agregar una regla y, luego, actualiza la regla de la política de la organización.

  7. En Aplicación, selecciona Activado.

  8. De manera opcional, haz clic en Agregar condición para que la política de la organización sea condicional en una etiqueta. Si agregas una regla condicional a una política de la organización, debes agregar al menos una regla sin condición o la política no se podrá guardar. Para obtener más información, consulta Configura una política de la organización con etiquetas.

  9. En la sección Parámetros, configura los conjuntos de miembros y principales a los que deseas otorgar roles en tu organización y, luego, haz clic en Guardar.

  10. De manera opcional, para obtener una vista previa del efecto del cambio en la política de la organización antes de que se aplique, haz clic en Probar cambios. Para obtener más información sobre cómo probar los cambios en las políticas de la organización, consulta Prueba los cambios en las políticas de la organización con Policy Simulator.

  11. Para aplicar la política de la organización en modo de ejecución de prueba, haz clic en Establecer política de ejecución de prueba. Para obtener más información, consulta Crea una política de la organización en modo de ejecución de prueba.

  12. Después de verificar que la política de la organización en el modo de ejecución de prueba funciona según lo previsto, haz clic en Configurar política para establecer la política activa.

gcloud

  1. Crea un archivo YAML para definir la política de la organización:

    name: organizations/ORG_ID/policies/iam.managed.allowedPolicyMembers
    spec:
    rules:
     - enforce: true
       parameters:
         allowedMemberSubjects:
           - ALLOWED_MEMBER_1
           - ALLOWED_MEMBER_2
         allowedPrincipalSets:
           - ALLOWED_PRINCIPAL_SET_1
           - ALLOWED_PRINCIPAL_SET_2
    

    Reemplaza lo siguiente:

    • ORG_ID: Es el ID numérico de tu organización. Google Cloud

    • ALLOWED_MEMBER_1, ALLOWED_MEMBER_2: Son los miembros a los que deseas otorgar roles en tu organización, por ejemplo, user:example-user@example.com.

    • ALLOWED_PRINCIPAL_SET_1, ALLOWED_PRINCIPAL_SET_2: Son los conjuntos de principales a los que deseas otorgar roles en tu organización. Por ejemplo, //cloudresourcemanager.googleapis.com/organizations/0123456789012.

    De manera opcional, para que la política de la organización sea condicional en una etiqueta, agrega un bloque condition a rules. Si agregas una regla condicional a una política de la organización, debes agregar al menos una regla sin condición o la política no se podrá guardar. Para obtener más información, consulta Configura una política de la organización con etiquetas.

  2. Establece la política con el comando org-policies set-policy y la marca spec:

    gcloud org-policies set-policy POLICY_PATH \
      --update-mask=spec
    

    Reemplaza POLICY_PATH por la ruta de acceso completa al archivo YAML de la política de la organización.

Para obtener información sobre cómo probar la política en modo de ejecución de prueba antes de aplicarla, consulta Crea una política de la organización en modo de ejecución de prueba.

Para obtener información sobre cómo simular la política antes de aplicarla, consulta Prueba los cambios en las políticas de la organización con Policy Simulator.

REST

Para establecer la política de la organización, usa el método organizations.policies.create.

POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/policies

El cuerpo JSON de la solicitud contiene la definición de una política de la organización. Si esta restricción no admite parámetros, omite el bloque parameters en rules.

{
  "name": "organizations/ORG_ID/policies/CONSTRAINT_NAME",
  "spec": {
    "rules": [
      {
        "enforce": true,
        "parameters": {
          "allowedMemberSubjects": [
            "ALLOWED_MEMBER_1",
            "ALLOWED_MEMBER_2"
          ],
          "allowedPrincipalSets": [
            "ALLOWED_PRINCIPAL_SET_1",
            "ALLOWED_PRINCIPAL_SET_2"
          ]
        }
      }
    ]
  }
}

Reemplaza lo siguiente:

  • ORG_ID: Es el ID numérico de tu organización. Google Cloud

  • CONSTRAINT_NAME: Es el nombre de la restricción que deseas establecer.

  • ALLOWED_MEMBER_1, ALLOWED_MEMBER_2: Son los miembros a los que deseas otorgar roles en tu organización, por ejemplo, user:example-user@example.com.

  • ALLOWED_PRINCIPAL_SET_1, ALLOWED_PRINCIPAL_SET_2: Son los conjuntos de principales a los que deseas otorgar roles en tu organización. Por ejemplo, //cloudresourcemanager.googleapis.com/organizations/0123456789012.

De manera opcional, para que la política de la organización sea condicional en una etiqueta, agrega un bloque condition a rules. Si agregas una regla condicional a una política de la organización, debes agregar al menos una regla sin condición o la política no se podrá guardar. Para obtener más información, consulta Configura una política de la organización con etiquetas.

Para obtener información sobre cómo probar la política en modo de ejecución de prueba antes de aplicarla, consulta Crea una política de la organización en modo de ejecución de prueba.

Para obtener información sobre cómo simular la política antes de aplicarla, consulta Prueba los cambios en las políticas de la organización con Policy Simulator.

Usa políticas de la organización personalizadas para implementar el uso compartido restringido al dominio

  1. Crea una restricción personalizada que limite qué principales pueden obtener roles en tu organización:

    1. Usa la memberInPrincipalSet función de CEL con el principal de tu organización establecido para restringir las concesiones de roles a los miembros de tu organización. Para obtener información sobre cómo encontrar el ID de tu organización, consulta Cómo recuperar un conjunto principal de la organización.

      Por ejemplo, la siguiente restricción limita el otorgamiento de roles a los miembros de tu organización:

      name: organizations/ORG_ID/customConstraints/custom.allowInternalIdentitiesOnly
      resourceTypes: iam.googleapis.com/AllowPolicy
      methodTypes:
        - CREATE
        - UPDATE
      condition:
        "resource.bindings.all(
          binding,
          binding.members.all(member,
            MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID'])
          )
        )"
      actionType: ALLOW
      displayName: Only allow organization members to be granted roles
      
    2. De manera opcional, puedes definir mejor la restricción agregando funciones de CEL adicionales, unidas con operadores lógicos (&&, || o !). Puedes agregar cualquiera de las siguientes funciones:

      Por ejemplo, la siguiente restricción limita el otorgamiento de roles a los miembros de tu organización y a admin@example.com:

      name: organizations/ORG_ID/customConstraints/custom.allowInternalIdentitiesOnly
      resourceTypes: iam.googleapis.com/AllowPolicy
      methodTypes:
        - CREATE
        - UPDATE
      condition:
        "resource.bindings.all(
          binding,
          binding.members.all(member,
            (
              MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID'])
              ||
              MemberSubjectMatches(member, ['user:admin@example.com'])
            )
          )
        )"
      actionType: ALLOW
      displayName: Only allow organization members and service agents to be granted roles
      
  2. Configura la restricción personalizada:

    Console

    Para crear una restricción personalizada, haz lo siguiente:

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

      Ir a Políticas de la organización

    2. En el selector de proyectos, elige uno cuya política de la organización quieras configurar.
    3. Haz clic en Restricción personalizada.
    4. En el cuadro Nombre visible, ingresa un nombre legible por humanos para la restricción. Este nombre se usa en los mensajes de error y se puede usar para la identificación y depuración. No uses información de identificación personal ni datos sensibles en los nombres visibles, ya que podrían exponerse en mensajes de error. Este campo puede contener hasta 200 caracteres.
    5. En el cuadro ID de restricción, ingresa el nombre que quieras asignar a la nueva restricción personalizada. Las restricciones personalizadas solo pueden contener letras (mayúsculas y minúsculas) o números, por ejemplo, custom.disableGkeAutoUpgrade. Este campo puede contener hasta 70 caracteres, sin contar el prefijo (custom.), por ejemplo, organizations/123456789/customConstraints/custom. No incluyas IIP ni datos sensibles en el ID de la restricción, ya que podrían exponerse en mensajes de error.
    6. En el cuadro Descripción, ingresa una descripción legible por humanos de la restricción. Esta se usa como mensaje de error cuando se infringe la política. Incluye detalles sobre el motivo por el cual se produjo el incumplimiento de la política y cómo resolverlo. No incluyas IIP ni datos sensibles en la descripción, ya que podrían exponerse en mensajes de error. Este campo puede contener hasta 2,000 caracteres.
    7. En el cuadro Tipo de recurso, selecciona el nombre del recurso de REST Google Cloud que contiene el objeto y el campo que quieres restringir, por ejemplo, container.googleapis.com/NodePool. La mayoría de los tipos de recursos admiten hasta 20 restricciones personalizadas. Si intentas crear más, la operación fallará.
    8. En Método de aplicación, selecciona si quieres aplicar la restricción en un método de REST CREATE o en los métodos CREATE y UPDATE. Si aplicas la restricción con el método UPDATE en un recurso que la incumple, la política de la organización bloqueará los cambios en ese recurso, a menos que el cambio resuelva el incumplimiento.
    9. No todos los servicios de Google Cloud admiten ambos métodos. Para ver los métodos compatibles con cada servicio, busca el servicio en Servicios compatibles.

    10. Para definir una condición, haz clic en Editar condición.
      1. En el panel Agregar condición, crea una condición de CEL que haga referencia a un recurso de servicio compatible, por ejemplo, resource.management.autoUpgrade == false. Este campo puede contener hasta 1,000 caracteres. Para obtener detalles sobre el uso de CEL, consulta Common Expression Language. Para obtener más información sobre los recursos de servicio que puedes usar en las restricciones personalizadas, consulta Servicios compatibles con restricciones personalizadas.
      2. Haz clic en Guardar.
    11. En Acción, selecciona si quieres permitir o rechazar el método evaluado en caso de cumplirse la condición.
    12. La acción de rechazo implica que la operación para crear o actualizar el recurso se bloquea si la condición se evalúa como verdadera.

      La acción de permitir implica que la operación para crear o actualizar el recurso solo se permite si la condición se evalúa como verdadera. El resto de casos se bloquean, excepto los que se indican explícitamente en la condición.

    13. Haz clic en Crear restricción.
    14. Cuando ingreses un valor en cada campo, aparecerá a la derecha la configuración de YAML equivalente para esta restricción personalizada.

    gcloud

    1. Para crear una restricción personalizada, crea un archivo YAML con el formato siguiente:
    2. name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
      resourceTypes: RESOURCE_NAME
      methodTypes:
        - CREATE
      condition: "CONDITION"
      actionType: ACTION
      displayName: DISPLAY_NAME
      description: DESCRIPTION

      Reemplaza los valores que se indican a continuación:

      • ORGANIZATION_ID: Es el ID de la organización, como 123456789.
      • CONSTRAINT_NAME: Es el nombre que quieres usar para la nueva restricción personalizada. Una restricción personalizada solo puede contener letras (mayúsculas y minúsculas) o números, por ejemplo, custom.allowInternalIdentitiesOnly. Este campo puede contener hasta 70 caracteres.
      • RESOURCE_NAME: Es el nombre completamente calificado del recurso de Google Cloudque contiene el objeto y el campo que quieres restringir. Por ejemplo, iam.googleapis.com/AllowPolicy.
      • CONDITION: Es una condición de CEL que se escribe con base en una representación de un recurso de servicio compatible. Este campo puede contener hasta 1,000 caracteres. Por ejemplo, "resource.bindings.all( binding, binding.members.all(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID']) ) )".
      • Para obtener más información sobre los recursos disponibles para escribir condiciones, consulta Recursos admitidos.

      • ACTION: Es la acción que se realiza si se cumple la condition. Solo puede ser ALLOW.
      • La acción de permitir implica que, si la condición se evalúa como verdadera, se permite la operación para crear o actualizar el recurso. Esto también quiere decir que se bloquea el resto de casos, excepto el que se indica de forma explícita en la condición.

      • DISPLAY_NAME: Es un nombre simple para la restricción. Este campo puede contener hasta 200 caracteres.
      • DESCRIPTION: Es una descripción simple de la restricción que se mostrará como un mensaje de error cuando se infrinja la política. Este campo puede contener hasta 2,000 caracteres.
    3. Después de crear el archivo YAML de una nueva restricción personalizada, debes configurarla con el objetivo de que esté disponible para las políticas de la organización de tu empresa. Para configurar una restricción personalizada, usa el el comando gcloud org-policies set-custom-constraint:
    4. gcloud org-policies set-custom-constraint CONSTRAINT_PATH

      Reemplaza CONSTRAINT_PATH por la ruta de acceso completa al archivo de la restricción personalizada. Por ejemplo, /home/user/customconstraint.yaml.

      Una vez que se complete esta operación, tus restricciones personalizadas estarán disponibles en la lista de políticas de la organización de Google Cloud .

    5. Para verificar que la restricción personalizada exista, usa el comando gcloud org-policies list-custom-constraints:
    6. gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID

      Reemplaza ORGANIZATION_ID por el ID del recurso de tu organización.

      Para obtener más información, consulta Visualiza las políticas de la organización .

  3. Aplica la política de la organización personalizada:

    Puedes aplicar una restricción cuando creas una política de la organización que haga referencia a ella y, luego, aplicas esa política a un recurso de Google Cloud .

    Consola

    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, elige el proyecto cuya política de la organización quieres configurar.
    3. En la lista de la página Políticas de la organización, selecciona una restricción para ver la página Detalles de la política de esa restricción.
    4. Si deseas configurar las políticas de la organización para este recurso, haz clic en Administrar política.
    5. En la página Editar política, selecciona Anular la política del superior.
    6. Haz clic en Agregar una regla.
    7. En la sección Aplicación, selecciona si quieres que se aplique o no esta política de la organización.
    8. Opcional: Para que la política de la organización sea condicional en una etiqueta, haz clic en Agregar condición. Ten en cuenta que, si agregas una regla condicional a una política de la organización, debes agregar una regla sin condición como mínimo; de lo contrario, la política no se puede guardar. Para obtener más información, consulta Configura una política de la organización con etiquetas.
    9. Haz clic en Probar cambios para simular el efecto de la política de la organización. Para obtener más información, consulta Prueba los cambios en políticas de la organización con Policy Simulator.
    10. Para aplicar la política de la organización en modo de ejecución de prueba, haz clic en Establecer política de ejecución de prueba. Para obtener más información, consulta Crea una política de la organización en modo de ejecución de prueba.
    11. Luego de verificar que la política de la organización en el modo de ejecución de prueba funciona según lo previsto, haz clic en Configurar política para configurar la política activa.

    gcloud

    1. Para crear una política de la organización con reglas booleanas, crea un archivo YAML de política que haga referencia a la restricción:
    2. name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
      
      dryRunSpec:
        rules:
        - enforce: true

      Reemplaza los valores que se indican a continuación:

      • PROJECT_ID: Es el proyecto en el que quieres aplicar tu restricción.
      • CONSTRAINT_NAME: Es el nombre que definiste para tu restricción personalizada. Por ejemplo: custom.allowInternalIdentitiesOnly.
    3. Para aplicar la política de la organización en el modo de ejecución de prueba, ejecuta el comando siguiente con la marca dryRunSpec:
    4. gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec

      Reemplaza POLICY_PATH por la ruta de acceso completa al archivo YAML de la política de la organización. La política tarda hasta 15 minutos en aplicarse.

    5. Luego de verificar que la política de la organización en modo de ejecución de prueba funciona según lo previsto, configura la política activa con el comando org-policies set-policy y la marca spec:
    6. gcloud org-policies set-policy POLICY_PATH --update-mask=spec

      Reemplaza POLICY_PATH por la ruta de acceso completa al archivo YAML de la política de la organización. La política tarda hasta 15 minutos en aplicarse.

Usa la restricción iam.allowedPolicyMemberDomains para implementar el uso compartido restringido al dominio

La restricción de dominio es una restricción heredada administrada con la lista constraint_type. Puedes especificar un conjunto de principales de la organización o un ID de cliente de Google Workspace en la lista allowed_values de una restricción de dominio. Para obtener más información, consulta Conjunto principal de la organización en comparación con el ID de cliente de Google Workspace.

Tu conjunto de principales de la organización y tu ID de Google Workspace no se permiten automáticamente. Para permitir que las entidades principales de tu organización accedan a los recursos de esta, se debe incluir el conjunto de entidades principales de tu organización o el ID de Google Workspace como un conjunto de entidades principales permitidas.

La restricción de dominio no admite el rechazo de valores, y no se puede guardar una política de la organización con IDs en la lista denied_values.

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

Console

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

  1. En la consola de Google Cloud , accede 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 organización en el que deseas establecer la política de la organización.

  3. En la página Políticas de la organización, selecciona Uso compartido restringido por 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 elemento superior.

  6. Haz clic en Agregar una regla.

  7. En Valores de la política, selecciona Personalizado.

  8. En Tipo de política, selecciona Permitir.

  9. En Valores personalizados, ingresa un conjunto de principales de la organización o un ID de cliente de Google Workspace en el campo.

  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, asigna una descripción a la condición. La descripción proporciona contexto sobre las etiquetas que se requieren y cómo afectan a los recursos.

    3. Puedes usar el Generador de condiciones para crear una condición que requiera una etiqueta en particular para que la restricción surta efecto.

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

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

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

      4. Puedes crear varias condiciones haciendo clic en Agregar. Si agregas otra condición, puedes configurar la lógica condicional para que se requieran todas las condiciones activando Y. Puedes configurar la lógica condicional para que solo se requiera que una de las condiciones sea verdadera. Para ello, activa O.

      5. Para borrar una expresión, haz clic en la X grande 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 configurar 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 de acceso completa a tu archivo YAML de política de la organización, que debería verse de la siguiente manera:

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:

Solo las identidades especificadas en la lista de allowed_values se permitirán en las políticas de permiso después de que se aplique esta política de la organización. Para que se permitan, los principales deben estar en el conjunto de principales de la organización especificado o formar parte de un dominio de Google Workspace especificado.

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

Ejemplo de mensaje de error

Cuando se viola la restricción administrada heredada iam.allowedPolicyMemberDomains 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 un conjunto principal de tipo organización

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

Console

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

  1. Ve a la consola de Google Cloud :

    Ir a la consola de Google Cloud

  2. En el selector de proyectos que se encuentra en la parte superior de la página, selecciona tu recurso de organización.
  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 del recurso de tu organización.

gcloud

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

gcloud organizations list

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

API

Para encontrar el ID de tu recurso de organización con la API de Cloud Resource Manager, usa el método organizations.search(), que incluye 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, lo que incluye el ID del recurso de la organización.

Después de obtener el ID del 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

Si ingresas el conjunto de principales de la organización, se les pueden otorgar roles en tu organización a los siguientes principales:

  • Todos los grupos de identidades del personal de tu organización
  • Todas las cuentas de servicio y los grupos de identidades para cargas de trabajo en cualquier proyecto de la organización
  • Son todos los agentes de servicio asociados con los recursos de tu organización.

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

Recupera un ID de cliente de Google Workspace

Si ingresas el ID de cliente de Google Workspace, se les pueden otorgar roles en tu organización a los siguientes principales:

  • Todas las identidades en todos los dominios asociados con tu ID de cliente de Google Workspace
  • Todos los grupos de identidades del personal de tu organización
  • Todas las cuentas de servicio y los grupos de identidades para cargas de trabajo en cualquier proyecto de la organización
  • Son todos los agentes de servicio asociados con los recursos de tu organización.

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 gcloud organizations list 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.

Configura excepciones para el uso compartido restringido al dominio

Algunos Google Cloud servicios usan cuentas de servicio, agentes de servicio y otras cuentas para realizar acciones en tu nombre. El uso compartido restringido por dominio puede impedir que a estas cuentas se les otorguen automáticamente los roles de IAM que necesitan, lo que puede provocar que fallen ciertas acciones.

En la siguiente tabla, se enumeran las acciones en Google Cloud que podrían verse afectadas por el uso compartido restringido del dominio. También se enumeran las cuentas a las que se deben otorgar roles automáticamente para que estas acciones se realicen correctamente.

Si usas políticas de la organización personalizadas o la restricción administrada iam.managed.allowedPolicyMembers para implementar el uso compartido restringido al dominio, considera agregar estas cuentas como excepciones a tu restricción de uso compartido restringido al dominio. Para agregar una cuenta como excepción, agrega el identificador principal de la cuenta a la lista de miembros permitidos.

Si usas la restricción administrada heredada iam.allowedPolicyMemberDomains para implementar el uso compartido restringido al dominio, es posible que debas forzar el acceso a la cuenta para que estas cuentas realicen las acciones enumeradas.

Acción Identificador de principal
Habilita el receptor de registros de BigQuery para una cuenta de facturación serviceAccount:bUNIQUE_ID@gcp-sa-logging.iam.gserviceaccount.com
Habilita el registro de acceso del almacenamiento serviceAccount:cloud-storage-analytics@google.com
Usa Pub/Sub como un extremo para una app de Google Chat serviceAccount:chat-api-push@system.gserviceaccount.com
Usa Pub/Sub para recibir notificaciones para desarrolladores en tiempo real de Google Play serviceAccount:google-play-developer-notifications@system.gserviceaccount.com
Usa una URL firmada con Cloud CDN serviceAccount:service-PROJECT_NUMBER@cloud-cdn-fill.iam.gserviceaccount.com
Autenticación de origen privado con Cloud CDN serviceAccount:service-PROJECT_NUMBER@https-lb.iam.gserviceaccount.com

Servicios públicos de Cloud Run

Cloud Run te permite hacer que los servicios sean públicos. Sin embargo, si implementas el uso compartido restringido del dominio, los usuarios ajenos a tu organización no podrán acceder a los servicios públicos de Cloud Run.

Para permitir que los usuarios accedan a los servicios públicos de Cloud Run, debes inhabilitar la verificación de IAM de Cloud Run Invoker para los servicios de Cloud Run. Para obtener más información, consulta Inhabilita el invocador de Cloud Run para servicios.

Compartir otros datos de forma pública

Si usas políticas de la organización personalizadas para implementar el uso compartido restringido al dominio, puedes agregar una excepción a tu política de la organización para permitir el uso compartido de datos públicos.

Compartir datos de forma pública involucra a los principales especiales allUsers y allAuthenticatedUsers. Si necesitas compartir datos de forma pública mientras usas el uso compartido restringido del dominio, debes agregar una excepción para estos principales. Solo es posible agregar excepciones si usas políticas de la organización personalizadas para implementar el uso compartido restringido al dominio.

Para agregar una excepción para allUsers y allAuthenticatedUsers, crea una política de la organización personalizada condicional basada en etiquetas de recursos.

  1. Crea una clave de etiqueta en el recurso de tu organización.

    gcloud resource-manager tags keys create allUsersIngress \
      --parent=organizations/ORGANIZATION_ID
    

    Reemplaza ORGANIZATION_ID por el ID de tu organización.

  2. Crea un valor de etiqueta para la clave de etiqueta que creaste.

    gcloud resource-manager tags values create True \
    --parent=ORGANIZATION_ID/allUsersIngress \
    --description="Allow allUsers to access internal Cloud Run services"
    
  3. Adjunta la etiqueta a los recursos que quieras compartir públicamente.

  4. Crea una restricción personalizada con la función memberSubjectMatches de CEL en la expresión de condición de tu restricción.

    Por ejemplo, la siguiente expresión de condición restringe el otorgamiento de roles a los miembros de tu organización, allUsers y allAuthenticatedUsers:

    name: organizations/ORGANIZATION_ID/customConstraints/custom.allowInternalAndSpecialIdentitiesOnly
    resourceTypes: iam.googleapis.com/AllowPolicy
    methodTypes:
      - CREATE
      - UPDATE
    condition:
      "resource.bindings.all(
        binding,
        binding.members.all(member,
          (
            MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID'])
            ||
            MemberSubjectMatches(member, ['allUsers', 'allAuthenticatedUsers'])
          )
        )
      )"
    actionType: ALLOW
    displayName: Only allow organization members, allusers, and allAuthenticatedUsers to be granted roles
    
  5. Crea una política de la organización que aplique la restricción personalizada.

    name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains
    spec:
      rules:
      - allowAll: true
        condition:
          expression: resource.matchTag("ORGANIZATION_ID/allUsersIngress", "True")
          title: allowAllUsersIngress
    
  6. Aplica la política de la organización.

    gcloud org-policies set-policy POLICY_PATH
    

    Reemplaza POLICY_PATH por la ruta de acceso y el nombre de archivo de la política de tu organización.

La política de la organización condicional te permite otorgar permisos a la identidad allUsers en los recursos etiquetados con allUsersIngress: true.

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 acceso al grupo de Google en la política de IAM.