Esta página descreve como resolver problemas com as políticas de permissão, negação e limite de acesso principal da gestão de identidade e acesso (IAM).
Veja todas as políticas de permissão e recusa que se aplicam a um recurso
Em Trusted Cloud, as seguintes políticas de permissão e recusa afetam o acesso a um recurso:
- A política de permissão do recurso
- As políticas de recusa do recurso, se existirem
- As políticas de permissão do projeto principal, da pasta e da organização do recurso, se existirem
- As políticas de recusa do projeto, da pasta e da organização principais do recurso, se existirem
As políticas de permissão e negação de projetos, pastas e organizações principais afetam o acesso a um recurso devido à herança de políticas. Quando anexa uma política de permissão ou negação a um projeto, uma pasta ou uma organização, essa política também se aplica a todos os recursos no interior desse projeto, pasta ou organização.
Por exemplo, se uma política de recusa para uma organização indicar que um principal não pode usar uma autorização específica, o principal não pode usar essa autorização para nenhum recurso na organização. Esta regra aplica-se mesmo que as pastas e os projetos nessa organização tenham políticas de negação mais permissivas ou políticas de autorização que concedam a autorização ao principal.
Da mesma forma, se uma política de permissão para um projeto conceder a um principal uma autorização específica, o principal tem essa autorização para qualquer recurso no projeto, desde que essa autorização não lhe seja recusada.
A união de todas estas políticas é denominada política aplicável ou política em vigor para o recurso.
No Trusted Cloud, pode obter uma lista de todas as políticas de autorização e recusa
que afetam o acesso a um projeto através do comando gcloud beta projects
get-ancestors-iam-policy
com o sinalizador --include-deny
. Em conjunto, estas políticas constituem a política aplicável ao projeto. Pode investigar cada política para ver como afeta o acesso do principal.
gcloud
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
PROJECT_ID
: O ID do seu Trusted Cloud projeto. Os IDs dos projetos são strings alfanuméricas, comomy-project
.
Execute o comando
gcloud beta projects get-ancestors-iam-policy
:
Linux, macOS ou 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
A resposta contém as políticas de permissão e restrição para o projeto, todas as pastas que são antecessoras do projeto e a organização. O exemplo seguinte mostra políticas de permissão para a organização 1234567890123
e o projeto my-project
, bem como uma política de negação para o projeto 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" } ]
Neste exemplo, é concedida a Raha a função de administrador da conta de serviço (roles/iam.serviceAccountAdmin
) na organização, mas o projeto tem uma política de recusa que impede Raha de usar a autorização iam.googleapis.com/serviceAccounts.create
. Como resultado, se a Raha tentar criar uma conta de serviço no projeto my-project
, o pedido será recusado.
Em alguns casos, pode apenas ter de ver a política de autorização efetiva para um recurso, por exemplo, se a sua organização não usar políticas de recusa. Nestes casos, pode usar os seguintes métodos para ver a política de autorização efetiva:
Veja a política de autorização da IAM do recurso na Trusted Cloud consola. A consola Trusted Cloud mostra automaticamente a política eficaz de cada recurso.
Para saber como ver a política de autorização da IAM de um recurso na Trusted Cloud consola, consulte o artigo Veja o acesso atual.
Use a API Cloud Asset para obter a política de autorização em vigor do recurso. Para saber mais, consulte o artigo Ver políticas de IAM eficazes.