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 la consola de Google Cloud, Google Cloud CLI o la API de REST v2
de IAM.
Antes de comenzar
Enable the IAM API.
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.
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.
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Go
Para usar las muestras de Go de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Node.js
Para usar las muestras de Node.js de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
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.
Roles obligatorios
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 a proyectos, carpetas y organizaciones.
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
Se requieren los siguientes permisos para administrar las políticas de rechazo:
-
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.
Solo se pueden denegar algunos permisos. Para obtener una lista de los permisos que puedes denegar, consulta Permisos admitidos en las políticas de denegación.
En algunos casos, también puedes usar grupos de permisos para denegar conjuntos de permisos. Para obtener más información, consulta Grupos de permisos.
Las políticas de denegación se administran con la API de REST
v2
, que requiere un formato especial para los nombres de los permisos. Por ejemplo, el permiso para crear un rol personalizada de IAM tiene el siguiente nombre:v1
API:iam.roles.create
v2
API:iam.googleapis.com/roles.create
Crea una política de denegación
Puedes agregar políticas de denegación a organizaciones, carpetas y proyectos. Cada recurso puede tener hasta 500 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.
Es una expresión de condición que especifica cuándo las principales no pueden usar los permisos. En las políticas de denegación, las expresiones de condiciones solo pueden usar funciones para etiquetas de recursos. No se admiten otras funciones ni operadores.
Cada recurso puede tener hasta 500 reglas de denegación en todas sus políticas de denegación adjuntas.
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 un rol 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.
Console
En la consola de Google Cloud, ve a la pestaña Denegar en la página IAM.
Selecciona un proyecto, una carpeta o una organización.
Haz clic en
Crear política de denegación.En la sección Nombre de la política, define el ID de la política haciendo una de las siguientes acciones:
- En el campo Nombre visible, ingresa un nombre visible para la política. Si completas este campo, se completará automáticamente el campo ID. Si quieres cambiar el ID de la política, actualiza el texto en el campo ID.
- En el campo ID, escribe un ID para la política.
En la sección Reglas de denegación, define las reglas de denegación de la política. Cada política de denegación debe tener al menos una regla de denegación. Para agregar reglas de denegación adicionales, haz clic en Agregar regla de denegación.
Para cada regla de denegación, haz lo siguiente:
- En el campo Principales rechazados, agrega uno o más principales a los que
desees impedir que usen los permisos especificados. El principal puede
ser cualquiera de los tipos de principales de la lista de identificadores de principales
v2
de IAM, excepto los principales cuyos IDs comienzan condeleted:
. - Opcional: En el campo Principales de excepción, agrega los principales que deseas que puedan usar los permisos especificados, incluso si esos principales se incluyen en la sección Principales rechazados. Por ejemplo, puedes usar este campo a fin de hacer una excepción para usuarios específicos que pertenecen a un grupo denegado.
En las secciones Permisos denegados, agrega los permisos que deseas negar. Los permisos deben ser compatibles con las políticas de denegación.
En algunos casos, también puedes usar grupos de permisos para denegar conjuntos de permisos. Para obtener más información, consulta Grupos de permisos.
Opcional: Agrega permisos de excepción. Los permisos de excepción son aquellos que no deseas que esta regla de denegación rechace, incluso si se incluyen en la lista de permisos denegados. Por ejemplo, puedes usar este campo para hacer excepciones para permisos específicos en un grupo de permisos.
Para agregar permisos de excepción, haz clic en Permisos de excepción, en
Agregar otro permiso y, luego, ingresa el permiso en el campo Permiso 1. Sigue agregando permisos hasta que hayas agregado todos los permisos que deseas exentar de la política de denegación.Opcional: Agrega una condición de denegación para especificar cuándo las principales no pueden usar el permiso. Para agregar una condición de denegación, haz clic en
Agregar condición de denegación y, luego, define los siguientes campos:- Título: opcional Es un breve resumen del propósito de la condición.
- Descripción: (opcional) Es una descripción más larga de la condición.
Expresión de condición: Puedes agregar una expresión de condición con el Creador de condiciones o el Editor de condiciones. El creador de condiciones proporciona una interfaz interactiva en la que puedes seleccionar el tipo de condición y el operador deseados, así como otros detalles aplicables sobre la expresión. El editor de condiciones proporciona una interfaz basada en texto en la que puedes ingresar de forma manual una expresión mediante la sintaxis de Common Expression Language (CEL).
Las condiciones de denegación deben basarse en etiquetas de recursos. No se admiten otras funciones ni operadores.
- En el campo Principales rechazados, agrega uno o más principales a los que
desees impedir que usen los permisos especificados. El principal puede
ser cualquiera de los tipos de principales de la lista de identificadores de principales
Haz clic en Crear.
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:
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:-
deniedPermissions
: Es una lista de permisos que no pueden usar las principales especificadas. Los permisos deben ser compatibles con las políticas de denegación.En algunos casos, también puedes usar grupos de permisos para denegar conjuntos de permisos. Para obtener más información, consulta Grupos de permisos.
-
exceptionPermissions
: Es una lista de permisos que pueden usar las principales especificadas, incluso si esos permisos se incluyen endeniedPermissions
. Por ejemplo, puedes usar este campo para hacer excepciones para permisos específicos en un grupo de permisos. -
deniedPrincipals
: Es una lista de principales que no pueden usar los permisos especificados. Usa el formato de la APIv2
para los identificadores principales. -
exceptionPrincipals
: Opcional Una lista de principales que pueden usar los permisos especificados, incluso si esas principales se incluyen endeniedPrincipals
. Por ejemplo, puedes usar este campo a fin de hacer una excepción para usuarios específicos que pertenecen a un grupo denegado. Usa el formato de la APIv2
para los identificadores principales. -
denialCondition
: Opcional Es una expresión de condición que especifica cuándo las principales no pueden usar los permisos. Contiene los campos siguientes:-
expression
: Es una expresión de condición que usa la sintaxis de Common Expression Language (CEL). La expresión debe usar las funciones de CEL para evaluar las etiquetas de recursos. No se admiten otras funciones ni operadores. -
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.
-
Para ver ejemplos de reglas de denegación, consulta Casos de uso comunes.
-
Por ejemplo, la siguiente política de denegación contiene una regla de denegación, que niega un permiso a Lucian:
{ "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 iam policies create
:gcloud 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 Punto de conexión. -
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 proyectomy-project
, mediante un archivo llamadopolicy.json
:gcloud iam policies create my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --policy-file=policy.json
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform. Para obtener más información, consulta la documentación de referencia del proveedor de Terraform.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Node.js
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Node.js.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
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 Punto de conexión. 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:-
deniedPermissions
: Es una lista de permisos que no pueden usar las principales especificadas. Los permisos deben ser compatibles con las políticas de denegación.En algunos casos, también puedes usar grupos de permisos para denegar conjuntos de permisos. Para obtener más información, consulta Grupos de permisos.
-
exceptionPermissions
: Es una lista de permisos que pueden usar las principales especificadas, incluso si esos permisos se incluyen endeniedPermissions
. Por ejemplo, puedes usar este campo para hacer excepciones para permisos específicos en un grupo de permisos. -
deniedPrincipals
: Es una lista de principales que no pueden usar los permisos especificados. Usa el formato de la APIv2
para los identificadores principales. -
exceptionPrincipals
: Opcional Una lista de principales que pueden usar los permisos especificados, incluso si esas principales se incluyen endeniedPrincipals
. Por ejemplo, puedes usar este campo a fin de hacer una excepción para usuarios específicos que pertenecen a un grupo denegado. Usa el formato de la APIv2
para los identificadores principales. -
denialCondition
: Opcional Es una expresión de condición que especifica cuándo las principales no pueden usar los permisos. Contiene los campos siguientes:-
expression
: Es una expresión de condición que usa la sintaxis de Common Expression Language (CEL). La expresión debe usar las funciones de CEL para evaluar las etiquetas de recursos. No se admiten otras funciones ni operadores. -
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.
-
Para ver ejemplos de reglas de denegación, consulta Casos de uso comunes.
-
Método HTTP y URL:
POST https://iam.googleapis.com/v2/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.v2.PolicyOperationMetadata", "createTime": "2022-06-28T19:06:12.455151Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.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": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-06-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 varias 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.
Console
En la consola de Google Cloud, ve a la pestaña Denegar en la página IAM.
Selecciona un proyecto, una carpeta o una organización.
En la consola de Google Cloud, se enumeran todas las políticas de denegación que se aplican a ese proyecto, carpeta u organización. Esto incluye las políticas de denegación que se heredaron de otros recursos. Para obtener más información sobre la herencia de políticas de denegación, consulta Herencia de políticas de denegación.
gcloud
Para enumerar las políticas de denegación de un recurso, ejecuta el comando
gcloud iam policies list
:gcloud 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 Punto de conexión.
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 iam policies list \ --attachment-point=cloudresourcemanager.googleapis.com/organizations/123456789012 \ --kind=denypolicies \ --format=json
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Node.js
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Node.js.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
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 Punto de conexión.
Método HTTP y URL:
GET https://iam.googleapis.com/v2/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": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-06-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": "2022-06-05T19:21:53.595455Z", "updateTime": "2022-06-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": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-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.
Console
En la consola de Google Cloud, ve a la pestaña Denegar en la página IAM.
Selecciona un proyecto, una carpeta o una organización.
En la columna ID de política, haz clic en el ID de la política que deseas ver.
En la consola de Google Cloud, se muestran los detalles de la política de denegación, incluido el ID de la política, la fecha de creación y las reglas de denegación de la política.
gcloud
Para obtener la política de denegación de un recurso, ejecuta el comando
gcloud iam policies get
:gcloud 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 Punto de conexión.
Por ejemplo, con el siguiente comando, se obtiene la política de denegación
my-deny-policy
para el proyectomy-project
y se guarda en un archivo llamadopolicy.json
:gcloud iam policies get my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --format=json \ > ./policy.json
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Node.js
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Node.js.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
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 Punto de conexión. POLICY_ID
: Es un identificador para la política de denegación.
Método HTTP y URL:
GET https://iam.googleapis.com/v2/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": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-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.
Puedes actualizar una política de denegación con la consola de Google Cloud o con uno de los siguientes métodos programáticos:
- La gcloud CLI
- La API de REST
- Las bibliotecas cliente de IAM
Actualiza una política de denegación con la consola de Google Cloud
En la consola de Google Cloud, ve a la pestaña Denegar en la página IAM.
Selecciona un proyecto, una carpeta o una organización.
En la columna ID de política, haz clic en el ID de la política que deseas editar.
Haz clic en
Editar.Actualiza la política de denegación:
- Para cambiar el nombre visible de la política, edita el campo Nombre visible.
- Para editar una regla de denegación existente, haz clic en ella y, luego, modifica las principales, las principales de excepción, los permisos de denegación, los permisos de excepción o la condición de denegación de la regla.
- Para quitar una regla de denegación, busca la regla que deseas borrar y, luego, haz clic en Borrar en esa fila.
- Para agregar una regla de denegación, haz clic en Agregar regla de denegación y, luego, crea una regla de denegación como lo haces cuando creas una política de denegación.
Cuando termines de actualizar la política de denegación, haz clic en Guardar.
Actualiza una política de denegación de forma programática
Para actualizar una política de denegación con la CLI de gcloud, la API de REST o las bibliotecas cliente de IAM, usa el patrón read-modify-write:
- Lee la versión actual de la política.
- Modifica la información en la política según sea necesario.
- 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 iam policies get
:gcloud 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 Punto de conexión.
Por ejemplo, con el siguiente comando, se obtiene la política de denegación
my-deny-policy
para el proyectomy-project
y se guarda en un archivo llamadopolicy.json
:gcloud iam policies get my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --format=json \ > ./policy.json
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Node.js
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Node.js.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
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 Punto de conexión. POLICY_ID
: Es un identificador para la política de denegación.
Método HTTP y URL:
GET https://iam.googleapis.com/v2/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": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-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. Eletag
cambia cada vez que actualizas la política. Cuando escribes la política actualizada, eletag
en tu solicitud debe coincidir con eletag
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 iam policies update
:gcloud 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 Punto de conexión. -
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 proyectomy-project
, mediante un archivo llamadopolicy.json
:gcloud iam policies update my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --policy-file=policy.json
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Node.js
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Node.js.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
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 Punto de conexión. 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": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-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/v2/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.v2.PolicyOperationMetadata", "createTime": "2021-10-05T22:26:21.968687Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.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": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-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 especificasetag
, este debe coincidir con eletag
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.Console
En la consola de Google Cloud, ve a la pestaña Denegar en la página IAM.
Selecciona un proyecto, una carpeta o una organización.
En la columna ID de política, haz clic en el ID de la política que deseas borrar.
Haz clic en
Borrar. En el cuadro de diálogo Confirmación, haz clic en Confirmar.
gcloud
Para borrar una política de denegación de un recurso, ejecuta el comando
gcloud iam policies delete
:gcloud 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 Punto de conexión.
También puedes agregar la marca
--etag=ETAG
. ReemplazaETAG
con el valoretag
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 proyectomy-project
:gcloud iam policies delete my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Node.js
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Node.js.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
Con 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 Punto de conexión. 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 valoretag
actual para la política.
Método HTTP y URL:
DELETE https://iam.googleapis.com/v2/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.v2.PolicyOperationMetadata", "createTime": "2021-10-05T19:45:00.133311Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-07-05T19:45:00.133311Z", "deleteTime": "2022-07-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 o las bibliotecas cliente, 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.
Go
En las muestras de código de esta página, se muestra cómo esperar a que finalice una operación de larga duración y, luego, acceder a su resultado.
Java
En las muestras de código de esta página, se muestra cómo esperar a que finalice una operación de larga duración y, luego, acceder a su resultado.
Node.js
En las muestras de código de esta página, se muestra cómo esperar a que finalice una operación de larga duración y, luego, acceder a su resultado.
Python
En las muestras de código de esta página, se muestra cómo esperar a que finalice una operación de larga duración y, luego, acceder a su resultado.
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 Punto de conexión. -
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. Un ejemplo es89cb3e508bf1ff01
.
Método HTTP y URL:
GET https://iam.googleapis.com/v2/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 campodone
se establece comotrue
, la operación está completa, y puedes dejar de obtener la operación.¿Qué sigue?
- Identifica los permisos compatibles con las políticas de denegación.
- Obtén el formato de los identificadores de principales en las políticas de denegación.
- Descubre cómo solucionar problemas de acceso con políticas de denegación.
- Obtén más información sobre cómo denegar el acceso a las principales.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-12-22 (UTC)