En esta página, se describe cómo solucionar problemas relacionados con las políticas de límite de acceso permitido, denegado y principales de Identity and Access Management (IAM).
Visualiza todas las políticas de permiso y denegación que se aplican a un recurso
En Trusted Cloud, las siguientes políticas de permisos y denegación afectan el acceso a un recurso:
- La política de permiso del recurso
- Las políticas de denegación del recurso, si las hay
- Las políticas de permiso del proyecto superior, la carpeta y la organización del recurso, si las hay
- Las políticas de denegación del proyecto superior, la carpeta y la organización del recurso, si las hay
Las políticas de permiso y denegación de los proyectos superiores, las carpetas y las organizaciones afectan el acceso a un recurso debido a la herencia de políticas. Cuando adjuntas una política de permiso o denegación a un proyecto, una organización o una carpeta, esa política también se aplica a todos los recursos dentro de ese proyecto, organización o carpeta.
Por ejemplo, si una política de denegación para una organización indica que una principal no puede usar un permiso específico, la principal no puede usar ese permiso en ningún recurso dentro de la organización. Esta regla se aplica incluso si las carpetas y proyectos dentro de esa organización tienen políticas de denegación más permisivas o políticas de permiso que otorgan permiso a la principal.
Del mismo modo, si una política de permisos para un proyecto le da a una principal un permiso específico, la principal tiene ese permiso para cualquier recurso dentro del proyecto, siempre que no se le deniegue ese permiso.
La unión de todas estas políticas se denomina política aplicable o política vigente del recurso.
En Trusted Cloud, puedes obtener una lista de todas las políticas de permiso y rechazo que afectan el acceso a un proyecto con el comando gcloud beta projects
get-ancestors-iam-policy
y la marca --include-deny
. En conjunto, estas políticas conforman la política aplicable para el proyecto. Puedes investigar cada política para ver cómo afecta el acceso de la principal.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID de tu proyecto de Trusted Cloud . Los IDs de proyecto son cadenas alfanuméricas, comomy-project
.
Ejecuta el comando
gcloud beta projects get-ancestors-iam-policy
:
Linux, macOS o Cloud Shell
gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json
Windows (PowerShell)
gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json
Windows (cmd.exe)
gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json
La respuesta contiene las políticas de permiso y rechazo del proyecto. cualquier carpeta que sea principal del proyecto; y la organización. En el siguiente ejemplo, se muestran las políticas de permiso para la organización 1234567890123
y el proyecto my-project
, así como una política de denegación para el proyecto my-project
:
[ { "id": "1234567890123", "policy": { "bindings": [ { "members": [ "principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/cloud-admins" ], "role": "roles/iam.denyAdmin" }, { "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/raha@example.com" ], "role": "roles/iam.serviceAccountAdmin" } ], "etag": "BwXW6Eab7TI=", "version": 1 }, "type": "organization" }, { "id": "my-project", "policy": { "bindings": [ { "members": [ "principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/cloud-admins" ], "role": "roles/owner" } ], "etag": "BwXXjOM7L6M=", "type": "project" } }, { "id": "my-project", "policy": { "createTime": "2022-02-14T21:46:35.865279Z", "displayName": "My deny policy", "etag": "MTgyMzg2ODcwNTEyMjMxMTM3Mjg=", "kind": "DenyPolicy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F123456789012/denypolicies/my-deny-policy", "rules": [ { "denyRule": { "deniedPermissions": [ "iam.googleapis.com/serviceAccounts.create" ], "deniedPrincipals": [ "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/raha@example.com" ] }, "description": "Prevent service account creation" } ], "uid": "c83e3dc3-d8a6-6f51-4018-814e9f200b05", "updateTime": "2022-02-14T21:46:35.865279Z" }, "type": "project" } ]
En este ejemplo, a Raha se le otorga el rol de administrador de cuenta de servicio (roles/iam.serviceAccountAdmin
) en la organización, pero el proyecto tiene una política de denegación que impide que Raha use el permiso iam.googleapis.com/serviceAccounts.create
. Como resultado, si Raha intenta crear una cuenta de servicio en el proyecto my-project
, se rechazará la solicitud.
En algunos casos, es posible que solo necesites ver la política de permisos vigente de un recurso, por ejemplo, si tu organización no usa políticas de denegación. En estos casos, puedes usar los siguientes métodos para ver la política de permisos vigente:
Ver la política de permiso de IAM del recurso en la consola deTrusted Cloud La consola de Trusted Cloud muestra automáticamente la política vigente de cada recurso.
Para obtener información sobre cómo ver la política de permiso de IAM de un recurso en la consola deTrusted Cloud , consulta Visualiza el acceso actual.
Usa la API de Cloud Asset para obtener la política de permiso vigente del recurso. Para obtener más información, consulta Visualiza políticas de IAM eficaces.