Esta página descreve como resolver problemas relacionados 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 Cloud de Confiance, 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 recusa a um projeto, uma pasta ou uma organização, essa política também se aplica a todos os recursos nesse 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 permitam políticas 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 Cloud de Confiance, 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 Cloud de Confiance 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 precisar 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 Cloud de Confiance consola. A Cloud de Confiance consola 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 Cloud de Confiance 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.