Deniega el acceso a los recursos

En esta página, se explica cómo denegar el acceso de las principales evitando que usen permisos específicos de Identity and Access Management (IAM).

En IAM, deniegas el acceso con políticas de denegación. Cada política de denegación está vinculada a una organización, una carpeta o un proyecto de Google Cloud. Una política de denegación contiene reglas de denegación, que identifican las principales y enumeran los permisos que las principales no pueden usar.

Las políticas de denegación son independientes de las políticas de permiso, también conocidas como políticas de IAM. Una política de permiso proporciona acceso a los recursos mediante la asignación de funciones de IAM a las principales.

Puedes administrar las políticas de denegación con Google Cloud CLI o la API de REST v2beta de IAM.

Antes de comenzar

Funciones requeridas

Si deseas obtener los permisos que necesitas para administrar las políticas de denegación, pídele al administrador que te otorgue los siguientes roles de IAM en la organización:

  • Para ver las políticas de denegación, otorga: Revisor de denegaciones (roles/iam.denyReviewer)
  • Para ver, crear, actualizar y borrar políticas de denegación, otorga: Administrador de denegación (roles/iam.denyAdmin)

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Estas funciones predefinidas contienen los permisos necesarios para administrar las políticas de denegación. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

  • Para ver las políticas de denegación, haz lo siguiente:
    • iam.denypolicies.get
    • iam.denypolicies.list
  • Para crear, actualizar y borrar políticas de denegación, otorga:
    • iam.denypolicies.create
    • iam.denypolicies.delete
    • iam.denypolicies.get
    • iam.denypolicies.update

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

Identifica los permisos para denegar

Antes de crear una política de denegación, debes decidir qué permisos deseas denegar y a qué principales deben denegarse.

Puedes denegar un subconjunto de todos los permisos de IAM. Para obtener una lista de los permisos que puedes denegar, consulta Permisos admitidos en las políticas de denegación.

Las políticas de denegación se administran con la API de REST v2beta, que requiere un formato especial para los nombres de los permisos. Por ejemplo, el permiso para crear una función personalizada de IAM tiene el siguiente nombre:

  • v1 API: iam.roles.create
  • v2beta API: iam.googleapis.com/roles.create

Identifica el punto de conexión

Cada política de denegación se adjunta a una organización, carpeta o proyecto. Para trabajar con políticas de denegación, necesitas un identificador del recurso al que se adjunta la política de denegación, que se denomina punto de conexión. Este identificador usa uno de los siguientes formatos:

Formato de punto de conexión
Organización

cloudresourcemanager.googleapis.com/organizations/ORG_ID
Reemplaza ORG_ID por el ID numérico de la organización. Para la API de REST, codifica todo el valor en URL.

Ejemplo de la CLI de gcloud:
cloudresourcemanager.googleapis.com/organizations/123456789012

Ejemplo de la API de REST:
cloudresourcemanager.googleapis.com%2Forganizations%2F123456789012

Carpeta

cloudresourcemanager.googleapis.com/folders/FOLDER_ID
Reemplaza FOLDER_ID por el ID de la carpeta numérica. Para la API de REST, codifica todo el valor en URL.

Ejemplo de la CLI de gcloud:
cloudresourcemanager.googleapis.com/folders/987654321098

Ejemplo de la API de REST:
cloudresourcemanager.googleapis.com%2Ffolders%2F987654321098

Proyecto

cloudresourcemanager.googleapis.com/projects/PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto alfanumérico o numérico. Para la API de REST, codifica todo el valor en URL.

Ejemplo de la CLI de gcloud:
cloudresourcemanager.googleapis.com/projects/my-project

Ejemplo de la API de REST:
cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project

Crea una política de denegación

Puedes agregar políticas de denegación a organizaciones, carpetas y proyectos. Cada uno de estos recursos puede tener hasta 5 políticas de denegación.

Las políticas de denegación contienen reglas de denegación, que especifican lo siguiente:

  • Los permisos que se deben denegar.
  • Las principales que a las que se deniegan esos permisos.
  • Opcional: Principales que están exentas de la denegación de permisos.

    Por ejemplo, puedes denegar un permiso a un grupo, pero eximir a usuarios específicos que pertenecen a ese grupo.

  • Opcional: Una expresión de condición que especifica cuándo las principales no pueden usar los permisos, según las etiquetas del recurso.

Las políticas de denegación se heredan a través de la jerarquía de recursos. Por ejemplo, si deniegas un permiso a nivel de la organización, ese permiso también se denegará en las carpetas y proyectos de esa organización y en los recursos específicos del servicio dentro de cada proyecto.

Las políticas de denegación anulan las políticas de permiso. Si a una principal se le otorga una función que contiene un permiso específico, pero una política de denegación indica que la principal no puede usar ese permiso, la principal no puede usar el permiso.

gcloud

A fin de crear una política de denegación para un recurso, primero crea un archivo JSON que contenga la política. Una política de denegación usa el siguiente formato:

{
  "displayName": "POLICY_NAME",
  "rules": [
    {
      "denyRule": DENY_RULE_1
    },
    {
      "denyRule": DENY_RULE_2
    },
    {
      "denyRule": DENY_RULE_N
    }
  ]
}

Ingresa los siguientes valores:

Por ejemplo, la siguiente política de denegación contiene una regla de denegación, que niega un permiso al usuario lucian@example.com:

{
  "displayName": "My deny policy.",
  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principal://goog/subject/lucian@example.com"
        ],
        "deniedPermissions": [
          "iam.googleapis.com/roles.create"
        ]
      }
    }
  ]
}

A continuación, ejecuta el comando gcloud beta iam policies create:

gcloud beta iam policies create POLICY_ID \
    --attachment-point=ATTACHMENT_POINT \
    --kind=denypolicies \
    --policy-file=POLICY_FILE

Ingresa los siguientes valores:

  • POLICY_ID: Es el identificador de la política de denegación.

  • ATTACHMENT_POINT: Un identificador para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

  • POLICY_FILE: Es la ruta del archivo JSON que contiene la política de denegación.

De forma predeterminada, si este comando tiene éxito, no imprime ningún resultado. Para imprimir una respuesta detallada, agrega la marca --format=json al comando.

Por ejemplo, el siguiente comando crea una política de denegación llamada my-deny-policy para el proyecto my-project, mediante un archivo llamado policy.json:

gcloud beta iam policies create my-deny-policy \
    --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
    --kind=denypolicies \
    --policy-file=policy.json

REST

El método policies.createPolicy crea una política de denegación para un recurso.

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

  • ENCODED_ATTACHMENT_POINT: Un identificador codificado en URL para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

  • POLICY_ID: Es un identificador para la política de denegación.
  • POLICY_NAME: Es el nombre visible de la política de denegación.
  • DENY_RULE_1, DENY_RULE_2, ...DENY_RULE_N: Son las reglas de denegación de la política. Cada regla de denegación puede contener estos campos:

    Para ver ejemplos de reglas de denegación, consulta Casos de uso comunes.

Método HTTP y URL:

POST https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies?policyId=POLICY_ID

Cuerpo JSON de la solicitud:

{
  "displayName": "POLICY_NAME",
  "rules": [
    {
      "denyRule": DENY_RULE_1
    },
    {
      "denyRule": DENY_RULE_2
    },

    {
      "denyRule": DENY_RULE_N
    }
  ]
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v2beta.PolicyOperationMetadata",
    "createTime": "2021-09-28T19:06:12.455151Z"
  },
  "response": {
    "@type": "type.googleapis.com/google.iam.v2beta.Policy",
    "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
    "uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
    "kind": "DenyPolicy",
    "displayName": "My deny policy.",
    "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=",
    "createTime": "2021-09-28T19:06:12.455151Z",
    "updateTime": "2021-09-28T22:26:21.968687Z"
    "rules": [
      {
        "denyRule": {
          "deniedPrincipals": [
            "principal://goog/subject/lucian@example.com"
          ],
          "deniedPermissions": [
            "iam.googleapis.com/roles.create"
          ]
        }
      }
    ]
  }
}

La respuesta identifica una operación de larga duración. Puedes supervisar el estado de la operación de larga duración para saber cuándo se completa. Para obtener más información, consulta Revisa el estado de una operación de larga duración en esta página.

Enumera las políticas de denegación

Un recurso puede tener hasta 5 políticas de denegación. Puedes enumerar todas las políticas de denegación que están conectadas a un recurso y, luego, ver cada política de denegación para ver las reglas de denegación de cada política.

gcloud

Para enumerar las políticas de denegación de un recurso, ejecuta el comando gcloud beta iam policies list:

gcloud beta iam policies list \
    --attachment-point=ATTACHMENT_POINT \
    --kind=denypolicies \
    --format=json

Ingresa el siguiente valor:

  • ATTACHMENT_POINT: Un identificador para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

Por ejemplo, con el siguiente comando, se enumeran las políticas de denegación adjuntas a una organización cuyo ID numérico es 123456789012:

gcloud beta iam policies list \
    --attachment-point=cloudresourcemanager.googleapis.com/organizations/123456789012 \
    --kind=denypolicies \
    --format=json

REST

El método policies.listPolicies permite enumerar las políticas de denegación de un recurso.

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

  • ENCODED_ATTACHMENT_POINT: Un identificador codificado en URL para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

Método HTTP y URL:

GET https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "policies": [
    {
      "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy",
      "uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
      "kind": "DenyPolicy",
      "displayName": "My deny policy.",
      "createTime": "2021-09-28T19:06:12.455151Z",
      "updateTime": "2021-09-28T22:26:21.968687Z"
    },
    {
      "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy-2",
      "uid": "8465d710-ea20-0a08-d92c-b2a3ebf766ab",
      "kind": "DenyPolicy",
      "displayName": "My second deny policy.",
      "createTime": "2021-10-05T19:21:53.595455Z",
      "updateTime": "2021-10-05T19:21:53.595455Z"
    },
    {
      "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy-3",
      "uid": "ee9f7c2f-7e8c-b05c-d4e5-e03bfb2954e0",
      "kind": "DenyPolicy",
      "displayName": "My third deny policy.",
      "createTime": "2021-10-05T19:22:26.770543Z",
      "updateTime": "2021-10-05T19:22:26.770543Z"
    }
  ]
}

Visualiza una política de denegación

Puedes ver una política de denegación para ver las reglas de denegación que contiene, incluidos los permisos denegados y las principales que no pueden usar esos permisos.

gcloud

Para obtener la política de denegación de un recurso, ejecuta el comando gcloud beta iam policies get:

gcloud beta iam policies get POLICY_ID \
    --attachment-point=ATTACHMENT_POINT \
    --kind=denypolicies \
    --format=json

Ingresa los siguientes valores:

  • POLICY_ID: Es el identificador de la política de denegación.

  • ATTACHMENT_POINT: Un identificador para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

Por ejemplo, con el siguiente comando, se obtiene la política de denegación my-deny-policy para el proyecto my-project y se guarda en un archivo llamado policy.json:

gcloud beta iam policies get my-deny-policy \
    --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
    --kind=denypolicies \
    --format=json \
    > ./policy.json

REST

El método policies.get obtiene una política de denegación para un recurso.

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

  • ENCODED_ATTACHMENT_POINT: Un identificador codificado en URL para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

  • POLICY_ID: Es un identificador para la política de denegación.

Método HTTP y URL:

GET https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
  "uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
  "kind": "DenyPolicy",
  "displayName": "My deny policy.",
  "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=",
  "createTime": "2021-10-05T19:22:26.770543Z",
  "updateTime": "2021-10-05T19:22:26.770543Z",
  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principal://goog/subject/lucian@example.com"
        ],
        "deniedPermissions": [
          "iam.googleapis.com/roles.create"
        ]
      }
    }
  ]
}

Actualiza una política de denegación

Después de crear una política de denegación, puedes actualizar las reglas de denegación que contiene y su nombre visible.

Para actualizar una política de denegación, usa el patrón read-modify-write:

  1. Lee la versión actual de la política.
  2. Modifica la información en la política según sea necesario.
  3. Escribe la política actualizada:

Lee la política de denegación

gcloud

Para obtener la política de denegación de un recurso, ejecuta el comando gcloud beta iam policies get:

gcloud beta iam policies get POLICY_ID \
    --attachment-point=ATTACHMENT_POINT \
    --kind=denypolicies \
    --format=json

Ingresa los siguientes valores:

  • POLICY_ID: Es el identificador de la política de denegación.

  • ATTACHMENT_POINT: Un identificador para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

Por ejemplo, con el siguiente comando, se obtiene la política de denegación my-deny-policy para el proyecto my-project y se guarda en un archivo llamado policy.json:

gcloud beta iam policies get my-deny-policy \
    --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
    --kind=denypolicies \
    --format=json \
    > ./policy.json

REST

El método policies.get obtiene una política de denegación para un recurso.

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

  • ENCODED_ATTACHMENT_POINT: Un identificador codificado en URL para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

  • POLICY_ID: Es un identificador para la política de denegación.

Método HTTP y URL:

GET https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
  "uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
  "kind": "DenyPolicy",
  "displayName": "My deny policy.",
  "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=",
  "createTime": "2021-10-05T19:22:26.770543Z",
  "updateTime": "2021-10-05T19:22:26.770543Z",
  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principal://goog/subject/lucian@example.com"
        ],
        "deniedPermissions": [
          "iam.googleapis.com/roles.create"
        ]
      }
    }
  ]
}

Modifica la política de denegación

Para modificar la política de denegación, realiza cambios en la copia de la política que leíste desde IAM. Puedes actualizar el nombre visible o agregar, cambiar o quitar reglas de denegación. Los cambios no se aplicarán hasta que escribas la política actualizada.

Por ejemplo, puedes agregar un permiso a una regla de denegación existente:

{
  "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
  "uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
  "kind": "DenyPolicy",
  "displayName": "My deny policy.",
  "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=",
  "createTime": "2021-10-05T19:22:26.770543Z",
  "updateTime": "2021-10-05T19:22:26.770543Z",
  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principal://goog/subject/lucian@example.com"
        ],
        "deniedPermissions": [
          "iam.googleapis.com/roles.create",
          "iam.googleapis.com/roles.delete"
        ]
      }
    }
  ]
}

Escribe la política de denegación actualizada

Después de modificar la política de denegación de forma local, debes escribir la política de denegación actualizada en IAM.

Cada política de denegación contiene un campo etag que identifica la versión de la política. El etag cambia cada vez que actualizas la política. Cuando escribes la política actualizada, el etag en tu solicitud debe coincidir con el etag actual almacenado en IAM. Si los valores no coinciden, la solicitud falla. Esta característica ayuda a evitar que los cambios simultáneos se reemplacen entre sí.

gcloud

Para actualizar la política de denegación de un recurso, ejecuta el comando gcloud beta iam policies update:

gcloud beta iam policies update POLICY_ID \
    --attachment-point=ATTACHMENT_POINT \
    --kind=denypolicies \
    --policy-file=POLICY_FILE

Ingresa los siguientes valores:

  • POLICY_ID: Es el identificador de la política de denegación.

  • ATTACHMENT_POINT: Un identificador para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

  • POLICY_FILE: Es la ruta del archivo JSON que contiene la política de denegación.

De forma predeterminada, si este comando tiene éxito, no imprime ningún resultado. Para imprimir una respuesta detallada, agrega la marca --format=json al comando.

Por ejemplo, con el siguiente comando, se actualiza una política de denegación llamada my-deny-policy para el proyecto my-project, mediante un archivo llamado policy.json:

gcloud beta iam policies update my-deny-policy \
    --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
    --kind=denypolicies \
    --policy-file=policy.json

REST

El método policies.update actualiza una política de denegación.

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

  • ENCODED_ATTACHMENT_POINT: Un identificador codificado en URL para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

  • POLICY_ID: Es un identificador para la política de denegación.
  • POLICY: Es la política de denegación actualizada.

    Por ejemplo, para agregar un permiso a la política que se muestra en el paso anterior, reemplaza POLICY por lo siguiente:

    {
      "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
      "uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
      "kind": "DenyPolicy",
      "displayName": "My deny policy.",
      "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=",
      "createTime": "2021-10-05T19:22:26.770543Z",
      "updateTime": "2021-10-05T19:22:26.770543Z",
      "rules": [
        {
          "denyRule": {
            "deniedPrincipals": [
              "principal://goog/subject/lucian@example.com"
            ],
            "deniedPermissions": [
              "iam.googleapis.com/roles.create",
              "iam.googleapis.com/roles.delete"
            ]
          }
        }
      ]
    }

Método HTTP y URL:

PUT https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID

Cuerpo JSON de la solicitud:

POLICY

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/8b2d0ab2daf1ff01",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v2alpha.PolicyOperationMetadata",
    "createTime": "2021-10-05T22:26:21.968687Z"
  },
  "response": {
    "@type": "type.googleapis.com/google.iam.v2alpha.Policy",
    "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
    "uid": "6665c437-a3b2-a018-6934-54dd16d3426e",
    "kind": "DenyPolicy",
    "displayName": "My deny policy.",
    "etag": "MTgxNTIxNDE3NTYxNjQxODYxMTI=",
    "createTime": "2021-10-05T19:22:26.770543Z",
    "updateTime": "2021-10-05T22:26:21.968687Z",
    "rules": [
      {
        "denyRule": {
          "deniedPrincipals": [
            "principal://goog/subject/lucian@example.com"
          ],
          "deniedPermissions": [
            "iam.googleapis.com/roles.create",
            "iam.googleapis.com/roles.delete"
          ]
        }
      }
    ]
  }
}

La respuesta identifica una operación de larga duración. Puedes supervisar el estado de la operación de larga duración para saber cuándo se completa. Para obtener más información, consulta Revisa el estado de una operación de larga duración en esta página.

Borra una política de denegación

Si ya no deseas aplicar las reglas en una política de denegación, puedes borrar la política.

De manera opcional, puedes especificar el etag para la versión de la política que estás borrando. Si especificas etag, este debe coincidir con el etag actual que almacena IAM. Si los valores no coinciden, la solicitud falla. Puedes usar esta función para asegurarte de borrar la política deseada, en lugar de una versión actualizada de esa política.

Si omites el etag de la solicitud, IAM borra la política de forma incondicional.

gcloud

Para borrar una política de denegación de un recurso, ejecuta el comando gcloud beta iam policies delete:

gcloud beta iam policies delete POLICY_ID \
    --attachment-point=ATTACHMENT_POINT \
    --kind=denypolicies

Ingresa los siguientes valores:

  • POLICY_ID: Es el identificador de la política de denegación.

  • ATTACHMENT_POINT: Un identificador para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

También puedes agregar la marca --etag=ETAG. Reemplaza ETAG con el valor etag actual para la política de denegación.

De forma predeterminada, si este comando tiene éxito, no imprime ningún resultado. Para imprimir una respuesta detallada, agrega la marca --format=json al comando.

Por ejemplo, el siguiente comando borra una política de denegación llamada my-deny-policy del proyecto my-project:

gcloud beta iam policies delete my-deny-policy \
    --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
    --kind=denypolicies

REST

Mediante el método policies.delete, se borra una política de denegación de un recurso.

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

  • ENCODED_ATTACHMENT_POINT: Un identificador codificado en URL para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

  • POLICY_ID: Es un identificador para la política de denegación.
  • ETAG: Opcional Es un identificador para la versión de la política. Si está presente, este valor debe coincidir con el valor etag actual para la política.

Método HTTP y URL:

DELETE https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID?etag=ETAG

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/8223fe308bf1ff01",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v2beta.PolicyOperationMetadata",
    "createTime": "2021-10-05T19:45:00.133311Z"
  },
  "response": {
    "@type": "type.googleapis.com/google.iam.v2beta.Policy",
    "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy",
    "kind": "DenyPolicy",
    "displayName": "My deny policy.",
    "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=",
    "createTime": "2021-09-28T19:06:12.455151Z",
    "updateTime": "2021-10-05T19:45:00.133311Z",
    "deleteTime": "2021-10-05T19:45:00.133311Z",
    "rules": [
      {
        "denyRule": {
          "deniedPrincipals": [
            "principal://goog/subject/lucian@example.com"
          ],
          "deniedPermissions": [
            "iam.googleapis.com/roles.create"
          ]
        }
      }
    ]
  }
}

La respuesta identifica una operación de larga duración. Puedes supervisar el estado de la operación de larga duración para saber cuándo se completa. Para obtener más información, consulta Revisa el estado de una operación de larga duración en esta página.

Revisa el estado de una operación de larga duración

Cuando usas la API de REST, cualquier método que cambie una política de denegación mostrará una operación de larga duración o LRO. La operación de larga duración realiza un seguimiento del estado de la solicitud y también indica si se completó el cambio en la política. Puedes sondear la operación de larga duración para supervisar su estado.

Para sondear una operación de larga duración, primero obtén su estado actual:

REST

El método policies.operations.get muestra el estado de una operación de larga duración.

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

  • ENCODED_ATTACHMENT_POINT: Un identificador codificado en URL para el recurso al que se adjunta la política de denegación. Para obtener información sobre cómo dar formato a este valor, consulta Identifica el punto de conexión en esta página.

  • OPERATION_ID: Es el identificador para la operación. Recibirás este identificador en la respuesta a tu solicitud original, como parte del nombre de la operación. Usa el valor hexadecimal al final del nombre de la operación. Por ejemplo, 89cb3e508bf1ff01

Método HTTP y URL:

GET https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/operations/OPERATION_ID

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01",
  "done": true
}

Si el campo done de la operación no está presente, continúa supervisando su estado mediante la obtención de la operación repetidas veces. Usa la retirada exponencial truncada para ingresar una demora entre cada solicitud. Cuando el campo done se establece como true, la operación está completa, y puedes dejar de obtener la operación.

¿Qué sigue?