Nesta página, descrevemos como solucionar problemas de políticas de permissão, negação e limite de acesso do principal do Identity and Access Management (IAM).
Funções exigidas
Para ter as permissões necessárias para conferir todas as políticas de permissão e negação, peça ao administrador que conceda a você oRevisor de segurança (roles/iam.securityReviewer) do IAM na organização que contém o recurso.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Ver todas as políticas de permissão e negação que se aplicam a um recurso
Em Cloud de Confiance, as políticas de permissão e negação a seguir afetam o acesso a um recurso:
- A política de permissão do recurso
- As políticas de negação do recurso, se houver
- As políticas de permissão do projeto pai, pasta e organização do recurso, se houver
- As políticas de negação do projeto pai, da pasta e da organização do recurso, se houver
As políticas de permissão e negação de projetos, pastas e organizações pai afetam o acesso a um recurso devido à herança de política. Quando você anexa uma política de permissão ou negação a um projeto, pasta ou organização, essa política também se aplica a todos os recursos dentro do projeto, da pasta ou da organização.
Por exemplo, se uma política de negação para uma organização disser que um principal não pode usar uma permissão específica, o principal não poderá usar essa permissão para nenhum recurso dentro da organização. Essa regra se aplica mesmo que as pastas e os projetos nessa organização tenham políticas de negação mais permissivas ou permitam políticas que dão ao principal a permissão.
Da mesma forma, se uma política de permissão para um projeto conceder a um principal uma permissão específica, o principal terá essa permissão para qualquer recurso no projeto, desde que essa permissão não seja negada.
A união de todas essas políticas é chamada de política aplicável ou política vigente do recurso.
Em Cloud de Confiance, é possível conseguir uma lista de todas as políticas de permissão e negação
que afetam o acesso a um projeto usando o comando gcloud beta projects
get-ancestors-iam-policy com a flag --include-deny. Juntas, essas políticas compõem a política aplicável ao projeto. É possível
investigar cada política para ver como isso afeta o acesso do principal.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
PROJECT_ID: seu Cloud de Confiance projeto ID. Os IDs do projeto são strings alfanuméricas, comomy-project.
Execute o
gcloud beta projects get-ancestors-iam-policy
comando:
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 negação do projeto; quaisquer pastas que sejam
ancestrais do projeto; e a organização. O exemplo a seguir mostra as políticas de permissão da
organização 1234567890123 e do projeto my-project, além de 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, Raha recebe o papel de administrador da conta de serviço (roles/iam.serviceAccountAdmin) na organização, mas o projeto tem uma política de negação que impede Raha de usar a permissão iam.googleapis.com/serviceAccounts.create. Como resultado, se Raha tentar criar uma conta de serviço no projeto my-project, a solicitação será negada.
Em alguns casos, talvez seja necessário visualizar apenas a política de permissão efetiva de um recurso, por exemplo, se sua organização não usar políticas de negação. Nesses casos, é possível usar os seguintes métodos para ver a política de permissão efetiva:
Confira a política de permissão do IAM do recurso no Cloud de Confiance console. O Cloud de Confiance console mostra automaticamente a política vigente de cada recurso.
Para saber como conferir a política de permissão do IAM de um recurso no Cloud de Confiance console, consulte Ver o acesso atual.
Use a API Cloud Asset para acessar a política de permissão efetiva do recurso. Para saber mais, consulte Como ver políticas do IAM eficazes.