Crea y aplica Políticas de Límite de Acceso de las Principales

Las Políticas de Límite de Acceso de las Principales (PAB) te permiten establecer límites a los recursos a los que puede acceder un conjunto de principales. En esta página, se explica cómo crear y aplicar políticas de límite de acceso de las principales.

Antes de comenzar

  • Configura la autenticación.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

  • Lee la descripción general de las Políticas de Límite de Acceso de las Principales.

Roles necesarios para borrar Políticas de Límite de Acceso de las Principales

Para obtener el permiso que necesitas para borrar las políticas de límite de acceso de las principales, pídele a tu administrador que te otorgue el rol de IAM de Administrador de límites de acceso principal (roles/iam.principalAccessBoundaryAdmin) en tu organización. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso iam.principalaccessboundarypolicies.create, que se requiere para crear las Políticas de Límite de Acceso de las Principales.

También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.

Roles necesarios para aplicar Políticas de Límite de Acceso de las Principales

Los permisos que necesitas para aplicar una Política de Límite de Acceso de las Principales dependen del conjunto de principales al que deseas aplicar la política.

Para obtener los permisos que necesitas para aplicar políticas de límite de acceso de las principales, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para aplicar las políticas de límite de acceso de las principales. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para aplicar las políticas de límite de acceso de las principales:

  • iam.principalaccessboundarypolicies.bind en la organización
  • Aplica políticas de límite de acceso de las principales a los grupos de federación de identidades de personal: iam.workforcePools.createPolicyBinding en el grupo de federación de identidades de personal de destino
  • Aplica políticas de límite de acceso de las principales a los grupos de federación de identidades para cargas de trabajo: iam.workloadIdentityPools.createPolicyBinding en el proyecto al que pertenece el grupo de federación de identidades de personal de destino
  • Aplica políticas de límite de acceso de las principales a un dominio de Google Workspace: iam.workspacePools.createPolicyBinding en la organización
  • Aplica políticas de límite de acceso de las principales al conjunto principal de un proyecto: resourcemanager.projects.createPolicyBinding en el proyecto
  • Aplica Políticas de Límite de Acceso de las Principales al conjunto principal de una carpeta: resourcemanager.folders.createPolicyBinding en la carpeta
  • Aplicar políticas de límite de acceso de las principales al conjunto principal de una organización: resourcemanager.organizations.createPolicyBinding en la organización

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Crea una Política de Límite de Acceso de las Principales

Puedes crear una política de límite de acceso de las principales con la consola de Google Cloud, gcloud CLI o la API de REST de IAM.

Console

  1. En la consola de Google Cloud, ve a la página Políticas de límite de acceso de las principales.

    Ir a Políticas de Límite de Acceso de las Principales

  2. Selecciona la organización para la que deseas crear políticas de límite de acceso de las principales.

  3. Haz clic en Crear política.

  4. Agrega reglas de límite de acceso de las principales a la política:

    1. Haz clic en Agregar regla de límite.
    2. En el campo Descripción, agrega una descripción de la regla de la Política de Límite de Acceso de las Principales. La descripción puede tener un máximo de 256 caracteres.
    3. En la sección Recursos, ingresa todos los recursos de Resource Manager (proyectos, carpetas y organizaciones) a los que deseas que los principales puedan acceder. Cualquier principal que esté sujeto a esta política es apto para acceder a estos recursos.

      Cada Política de Límite de Acceso de las Principales puede hacer referencia a un máximo de 500 recursos en todas las reglas de la política.

    4. Haz clic en Listo.

    5. Para agregar reglas de políticas adicionales, repite estos pasos. Una Política de Límite de Acceso de las Principales puede tener hasta 500 reglas.

  5. En la sección Nombre de la política, ingresa un nombre para la política. El nombre puede tener un máximo de 63 caracteres.

  6. En la lista Versión de aplicación, selecciona la versión de aplicación de la política. La versión de la política de límite de acceso de las principales determina para qué permisos IAM aplica la política de límite de acceso de las principales.

    Si deseas obtener más información sobre las versiones de aplicación, consulta Versiones de aplicación de límites de acceso de las principales.

  7. Haz clic en Crear.

gcloud

El comando gcloud beta iam principal-access-boundary-policies create crea una Política de Límite de Acceso de las Principales.

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • ORG_ID: Es el ID de la organización en la que deseas crear la política de límite de acceso de las principales. Los IDs de la organización son numéricos, como 123456789012.
  • PAB_POLICY_ID: Es un ID único para la política de límite de acceso de las principales, por ejemplo, example-policy. :
  • DISPLAY_NAME: Opcional Una descripción legible por humanos de la Política de Límite de Acceso de las Principales, por ejemplo, Example policy. El nombre visible puede tener un máximo de 63 caracteres.
  • FILE_PATH: Es la ruta de acceso a un archivo JSON que contiene los detalles de la regla de la política de límite de acceso de las principales. Este archivo debe tener el siguiente formato:

    {
      "description": DESCRIPTION,
      "resources": [
        RESOURCES
      ],
      "effect": ALLOW
    }
        

    Reemplaza los siguientes valores:

    • DESCRIPTION: Opcional La descripción de la regla de la Política de Límite de Acceso de las Principales. La descripción puede tener un máximo de 256 caracteres.
    • RESOURCES: Es una lista de recursos de Resource Manager (proyectos, carpetas y organizaciones) a los que deseas que los principales puedan acceder. Cualquier principal que esté sujeto a esta política es apto para acceder a estos recursos.

      Cada Política de Límite de Acceso de las Principales puede hacer referencia a un máximo de 500 recursos en todas las reglas de la política.

  • ENFORCEMENT_VERSION: Es la versión de las Política de Límite de Acceso de las Principales que usa IAM cuando aplica la política. La versión de aplicación determina para qué permisos IAM aplica la Política de Límite de Acceso de las Principales.

    Los valores aceptados son 1 y latest.

    Si deseas obtener más información sobre las versiones de aplicación, consulta Versiones de aplicación de límites de acceso de las principales.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud beta iam principal-access-boundary-policies create PAB_POLICY_ID \
    --organization=ORG_ID --location=global \
    --display-name=DISPLAY_NAME --details-rules=FILE_PATH.json \
    --details-enforcement-version=ENFORCEMENT_VERSION

Windows (PowerShell)

gcloud beta iam principal-access-boundary-policies create PAB_POLICY_ID `
    --organization=ORG_ID --location=global `
    --display-name=DISPLAY_NAME --details-rules=FILE_PATH.json `
    --details-enforcement-version=ENFORCEMENT_VERSION

Windows (cmd.exe)

gcloud beta iam principal-access-boundary-policies create PAB_POLICY_ID ^
    --organization=ORG_ID --location=global ^
    --display-name=DISPLAY_NAME --details-rules=FILE_PATH.json ^
    --details-enforcement-version=ENFORCEMENT_VERSION

La respuesta contiene una operación de larga duración que representa tu solicitud.

Create request issued for: [example-policy]
Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715373988044-6181fa136df85-3b06a30a-4816d25b] to complete...done.
Created principalAccessBoundaryPolicy [example-policy].

REST

El método principalAccessBoundaryPolicies.create crea una Política de Límite de Acceso de las Principales.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • ORG_ID: Es el ID de la organización en la que deseas crear la política de límite de acceso de las principales. Los IDs de la organización son numéricos, como 123456789012.
  • PAB_POLICY_ID: Es un ID único para la política de límite de acceso de las principales, por ejemplo, example-policy.
  • DISPLAY_NAME: Opcional Una descripción legible por humanos de la Política de Límite de Acceso de las Principales, por ejemplo, Example policy. El nombre visible puede tener un máximo de 63 caracteres.
  • PAB_RULES: Es una lista de reglas de límite de acceso principal que definen los recursos a los que pueden acceder las principales afectadas. Una Política de Límite de Acceso de las Principales puede tener hasta 500 reglas. Cada regla tiene el siguiente formato:

    {
    "description": "DESCRIPTION",
    "resources": [
      RESOURCES
    ],
    "effect": ALLOW
    }

    Reemplaza los siguientes valores:

    • DESCRIPTION: Opcional La descripción de la regla de la Política de Límite de Acceso de las Principales. La descripción puede tener un máximo de 256 caracteres.
    • RESOURCES: Es una lista de recursos de Resource Manager (proyectos, carpetas y organizaciones) a los que deseas que los principales puedan acceder. Cualquier principal que esté sujeto a esta política es apto para acceder a estos recursos.

      Cada Política de Límite de Acceso de las Principales puede hacer referencia a un máximo de 500 recursos en todas las reglas de la política.

  • ENFORCEMENT_VERSION: Es la versión de las Política de Límite de Acceso de las Principales que usa IAM cuando aplica la política. La versión de aplicación determina para qué permisos IAM aplica la Política de Límite de Acceso de las Principales.

    Los valores aceptados son 1 y latest.

    Si deseas obtener más información sobre las versiones de aplicación, consulta Versiones de aplicación de límites de acceso de las principales.

Método HTTP y URL:

POST https://iam.googleapis.com/v3beta/organizations/ORG_ID/locations/global?principalAccessBoundaryPolicyId=PAB_POLICY_ID

Cuerpo JSON de la solicitud:

{
  "displayName": DISPLAY_NAME,
  "details": {
    "rules": [
      PAB_RULES
    ],
    "effect": ALLOW
    }
  ],
  "enforcementVersion": "ENFORCEMENT_VERSION"
}

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene una operación de larga duración que representa tu solicitud.

{
  "name": "organizations/123456789012/locations/global/operations/operation-1715373120647-6181f6d8371d2-83309b71-2b8a7532",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata",
    "createTime": "2024-05-10T20:32:00.898809495Z",
    "target": "organizations/123456789012/locations/global/policyBindings/example-policy",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v3beta"
  },
  "done": false
}

Aplica una Política de Límite de Acceso de las Principales a un conjunto de principales

Para aplicar una Política de Límite de Acceso de las Principales a un conjunto de principales, crea un recurso de vinculación de políticas que vincule la política al conjunto de principales. Después de crear una vinculación de políticas, la política de límite de acceso de las principales en la vinculación se aplica a los principales en la vinculación.

Puedes crear una vinculación de políticas con la consola de Google Cloud, gcloud CLI o la API de REST de IAM.

Console

  1. En la consola de Google Cloud, ve a la página Políticas de límite de acceso de las principales.

    Ir a Políticas de Límite de Acceso de las Principales

  2. Selecciona la organización a la que pertenece la Política de Límite de Acceso de las Principales para la que deseas crear una vinculación.

  3. Haz clic en el ID de la Política de Límite de Acceso de las Principales para la que deseas crear una vinculación.

  4. Haz clic en la pestaña Vinculaciones y, luego, en Agregar vinculación.

  5. Ingresa los detalles de la vinculación:

    1. Opcional: En el campo Nombre visible, ingresa un nombre visible para la vinculación. El nombre visible puede tener un máximo de 63 caracteres.
    2. En el campo ID de vinculación, ingresa un nombre único para la vinculación, por ejemplo, example-binding.
    3. En la sección Conjunto de principales de destino, ingresa el tipo y el ID del conjunto de principales al que deseas vincular la política. No puedes cambiar este valor después de crear la vinculación de políticas.

      Para obtener más información sobre los principales incluidos en cada conjunto de principales, consulta Conjuntos de principales compatibles.

  6. Opcional: Para especificar para qué principales del conjunto de principales se aplica la política de límite de acceso de las principales, agrega una condición a la vinculación:

    1. Haz clic en Agregar condición.
    2. En el campo Título, ingresa un breve resumen del propósito de la condición.
    3. Opcional: En el campo Descripción, ingresa una descripción más detallada de la condición.
    4. En el campo Expression, ingresa la expresión de condición que usa la sintaxis de Common Expression Language (CEL). La expresión debe hacer referencia a los atributos principal.type o principal.subject. No se admiten otros atributos.
    5. Haz clic en Guardar.
  7. Para crear la vinculación, haz clic en Agregar.

gcloud

El comando gcloud beta iam policy-bindings create crea una vinculación de políticas.

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • BINDING_ID: Es un nombre único para la vinculación de políticas, por ejemplo, example-binding.
  • RESOURCE_TYPE: Es el tipo de recurso de Resource Manager (proyecto, carpeta u organización) del que es un elemento secundario la vinculación de políticas. Usa el valor project, folder o organization

    El tipo de recurso depende del principal establecido en la vinculación de políticas. Para ver qué tipo de recurso usar, consulta Tipos de principales compatibles.

  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización de la que es elemento secundario la vinculación de políticas. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los ID de carpeta y organización son numéricos, como 123456789012.
  • ORG_ID: Es el ID de la organización propietaria de la política de límite de acceso de las principales que deseas vincular al conjunto de principales. Los IDs de la organización son numéricos, como 123456789012.
  • PAB_POLICY_ID: Es el ID de la política de límite de acceso de las principales que deseas vincular al conjunto principal, por ejemplo, example-pab-policy. No puedes cambiar este valor después de crear la vinculación de políticas.
  • PRINCIPAL_SET: Es el conjunto de principales al que deseas vincular la política. Para obtener una lista de los tipos de principales válidos, consulta Conjuntos de principales admitidos. No puedes cambiar este valor después de crear la vinculación de políticas.
  • DISPLAY_NAME: Opcional Una descripción legible por humanos de la vinculación, por ejemplo, Example binding. El nombre visible puede tener un máximo de 63 caracteres.
  • CONDITION_DETAILS: Opcional Una expresión de condición que especifica para qué principales del conjunto de principales se aplica la Política de Límite de Acceso de las Principales. Contiene los siguientes campos:

    • expression: Es una expresión de condición que usa la sintaxis de Common Expression Language (CEL). La expresión debe hacer referencia a los atributos principal.type o principal.subject. No se admiten otros atributos.

      La expresión puede contener hasta 10 operadores lógicos (&&, ||, !) y puede tener hasta 250 caracteres.

    • title: Opcional Es un breve resumen del propósito de la condición.
    • description: Opcional Es una descripción más larga de la condición.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud beta iam policy-bindings create BINDING_ID \
    --RESOURCE_TYPE=RESOURCE_ID --location=global \
    --policy="organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID" \
    --target-principal-set=PRINCIPAL_SET_ID \
    --display-name=DISPLAY_NAME \
    CONDITION_DETAILS

Windows (PowerShell)

gcloud beta iam policy-bindings create BINDING_ID `
    --RESOURCE_TYPE=RESOURCE_ID --location=global `
    --policy="organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID" `
    --target-principal-set=PRINCIPAL_SET_ID `
    --display-name=DISPLAY_NAME `
    CONDITION_DETAILS

Windows (cmd.exe)

gcloud beta iam policy-bindings create BINDING_ID ^
    --RESOURCE_TYPE=RESOURCE_ID --location=global ^
    --policy="organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID" ^
    --target-principal-set=PRINCIPAL_SET_ID ^
    --display-name=DISPLAY_NAME ^
    CONDITION_DETAILS

La respuesta contiene una operación de larga duración que representa tu solicitud.

Create request issued for: [example-binding]
Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374545618-6181fc272c6f9-55ff07f4-97d0ac76] to complete...done.
Created policyBinding [example-binding].

REST

El método policyBindings.create crea una vinculación de políticas.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • RESOURCE_TYPE: Es el tipo de recurso de Resource Manager (proyecto, carpeta u organización) del que es un elemento secundario la vinculación de políticas. Usa el valor projects, folders o organizations

    El tipo de recurso depende del principal establecido en la vinculación de políticas. Para ver qué tipo de recurso usar, consulta Tipos de principales compatibles.

  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización de la que es elemento secundario la vinculación de políticas. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los ID de carpeta y organización son numéricos, como 123456789012.
  • BINDING_ID: Es un nombre único para la vinculación de políticas, por ejemplo, example-binding.
  • DISPLAY_NAME: Opcional Una descripción legible por humanos de la vinculación, por ejemplo, Example binding. El nombre visible puede tener un máximo de 63 caracteres.
  • PRINCIPAL_SET: Es el conjunto de principales al que deseas vincular la política. Para obtener una lista de los tipos de principales válidos, consulta Conjuntos de principales admitidos. No puedes cambiar este valor después de crear la vinculación de políticas.
  • ORG_ID: Es el ID de la organización propietaria de la política de límite de acceso de las principales que deseas vincular al conjunto de principales. Los IDs de la organización son numéricos, como 123456789012.
  • PAB_POLICY_ID: Es el ID de la política de límite de acceso de las principales que deseas vincular al conjunto principal, por ejemplo, example-pab-policy. No puedes cambiar este valor después de crear la vinculación de políticas.
  • CONDITION_DETAILS: Opcional Una expresión de condición que especifica para qué principales del conjunto de principales se aplica la Política de Límite de Acceso de las Principales. Contiene los siguientes campos:

    • expression: Es una expresión de condición que usa la sintaxis de Common Expression Language (CEL). La expresión debe hacer referencia a los atributos principal.type o principal.subject. No se admiten otros atributos.

      La expresión puede contener hasta 10 operadores lógicos (&&, ||, !) y puede tener hasta 250 caracteres.

    • title: Opcional Es un breve resumen del propósito de la condición.
    • description: Opcional Es una descripción más larga de la condición.

Método HTTP y URL:

POST https://iam.googleapis.com/v3beta/RESOURCE_TYPE/RESOURCE_ID/locations/global/policyBindings?policyBindingId=BINDING_ID

Cuerpo JSON de la solicitud:

{
  "displayName": DISPLAY_NAME,
  "target": {
    "principalSet": PRINCIPAL_SET
  },
  "policyKind": "PRINCIPAL_ACCESS_BOUNDARY",
  "policy": "organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID",
  "condition": {
    CONDITION_DETAILS
  }
}

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene una operación de larga duración que representa tu solicitud.

{
  "name": "organizations/123456789012/locations/global/operations/operation-1715373120647-6181f6d8371d2-83309b71-2b8a7532",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata",
    "createTime": "2024-05-10T20:32:00.898809495Z",
    "target": "organizations/123456789012/locations/global/policyBindings/example-binding",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v3beta"
  },
  "done": false
}

¿Qué sigue?