Papéis e permissões

O Google Cloud oferece o gerenciamento de identidade e acesso (IAM), que permite a concessão de acesso mais granular a recursos específicos do Google Cloud e impede o acesso indesejado a outros recursos. Nesta página, descrevemos os papéis da API Cloud DNS. Para uma descrição detalhada do IAM, consulte a documentação do gerenciamento de identidade e acesso.

Com o IAM, é possível adotar o princípio de segurança de privilégio mínimo para conceder apenas o acesso necessário aos recursos.

O IAM permite que você defina políticas para controlar quem tem quais permissões em que recursos. As políticas do IAM concedem papéis específicos a um usuário, que recebe determinadas permissões. Por exemplo, um determinado usuário pode precisar criar e modificar recursos de registro do Sistema de Nome de Domínio (DNS). Então, você concederia ao usuário (quem) o papel /roles/dns.admin, que tem as permissões dns.changes.create e dns.resourceRecordSets.create (quais) para que ele possa criar e atualizar conjuntos de registros de recurso (que). Por outro lado, um departamento de suporte pode precisar apenas visualizar conjuntos de registros de recurso existentes. Para isso, seria concedido apenas o papel /roles/dns.reader.

O Cloud DNS aceita permissões do IAM no nível do projeto e da zona de DNS individual. A permissão padrão está no nível do projeto. Para configurar permissões no nível da zona (ou recurso) DNS individual, consulte Criar uma zona com permissões específicas do IAM.

Permissões e papéis

Todos os métodos da API Cloud DNS exigem que o autor da chamada tenha as devidas permissões do IAM. As permissões são atribuídas por meio da atribuição de papéis a um usuário, grupo ou conta de serviço. Além dos papéis básicos de proprietário, editor e visualizador, é possível atribuir papéis da API Cloud DNS aos usuários do projeto.

Permissões

A tabela a seguir lista as permissões que o autor da chamada precisa ter para chamar cada método.

Método Permissões necessárias
dns.changes.create para criar um conjunto de registros de recurso. dns.changes.create e dns.resourceRecordSets.create no projeto que contém o conjunto de registros.
dns.changes.create para atualizar um conjunto de registros de recurso. dns.changes.create e dns.resourceRecordSets.update no projeto que contém o conjunto de registros.
dns.changes.create para excluir um conjunto de registros de recurso. dns.changes.create e dns.resourceRecordSets.delete no projeto que contém o conjunto de registros.
dns.changes.get dns.changes.get para o projeto que contém a zona gerenciada.
dns.changes.list dns.changes.list para o projeto que contém a zona gerenciada.
dns.dnsKeys.get dns.dnsKeys.get para o projeto que contém a zona gerenciada.
dns.dnsKeys.list dns.dnsKeys.list para o projeto que contém a zona gerenciada.
dns.managedZoneOperations.get dns.managedZoneOperations.get para o projeto que contém a zona gerenciada.
dns.managedZoneOperations.list dns.managedZoneOperations.list para o projeto que contém a zona gerenciada.
dns.managedZones.create dns.managedZones.create para o projeto que contém a zona gerenciada.

Ao criar uma zona particular, você também precisará de dns.networks.bindPrivateDNSZone e dns.networks.targetWithPeeringZone para cada projeto que contém uma rede VPC autorizada a acessar a zona.

Se estiver criando uma zona particular com a integração do GKE, você também vai precisar de dns.gkeClusters.bindPrivateDNSZone para cada cluster do GKE que autorizar a acessar a zona.

dns.managedZones.delete dns.managedZones.delete para o projeto que contém a zona gerenciada.
dns.managedZones.get dns.managedZones.get para o projeto que contém a zona gerenciada.
dns.managedZones.list dns.managedZones.list para o projeto que contém a zona gerenciada.
dns.managedZones.update dns.managedZones.update para o projeto que contém a zona gerenciada.

Ao criar uma zona particular, você também precisará de dns.networks.bindPrivateDNSZone e dns.networks.targetWithPeeringZone para cada projeto que contém uma rede VPC autorizada a acessar a zona.

Se você vincular uma zona particular a um cluster do GKE, também precisará de dns.gkeClusters.bindPrivateDNSZone para cada cluster do GKE que autorizar a acessar a zona.

dns.policies.create dns.policies.create para o projeto que contém a política.

Se a política for criada em uma rede VPC, você também precisará de dns.networks.bindPrivateDNSPolicy para cada projeto que contém uma rede VPC.

dns.policies.delete dns.policies.delete para o projeto que contém a política.
dns.policies.get dns.policies.get para o projeto que contém a política.
dns.policies.list dns.policies.list para o projeto que contém a política.
dns.policies.update dns.policies.update para o projeto que contém a política.

Se a política for atualizada para estar em uma rede VPC, você também precisará de dns.networks.bindPrivateDNSPolicy para cada projeto que contém uma rede VPC.

dns.projects.get dns.projects.get para o projeto
dns.resourceRecordSets.create dns.resourceRecordSets.create para o projeto que contém o conjunto de registros.
dns.resourceRecordSets.delete dns.resourceRecordSets.delete para o projeto que contém o conjunto de registros.
dns.resourceRecordSets.get dns.resourceRecordSets.get para o projeto que contém o conjunto de registros.
dns.resourceRecordSets.list dns.resourceRecordSets.list para o projeto que contém a zona gerenciada.
dns.resourceRecordSets.update dns.resourceRecordSets.update para o projeto que contém o conjunto de registros.
dns.responsePolicies.create dns.responsePolicies.create para o projeto que contém a política de resposta.

Você também precisa de dns.networks.bindDNSResponsePolicy para validar a solicitação.

Se você quiser criar uma política de resposta anexada a um cluster do GKE, será necessário dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicies.delete dns.responsePolicies.delete para o projeto que contém a política de resposta.
dns.responsePolicies.get dns.responsePolicies.get para o projeto que contém a política de resposta.
dns.responsePolicies.list dns.responsePolicies.list para o projeto
dns.responsePolicies.update dns.responsePolicies.update para o projeto que contém a política de resposta.

Você também precisa de dns.networks.bindDNSResponsePolicy para validar a solicitação.

Se você quiser criar uma política de resposta anexada a um cluster do GKE, será necessário dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicyRules.create dns.responsePolicyRules.create para o projeto que contém a regra de política de resposta.
dns.responsePolicyRules.delete dns.responsePolicyRules.delete para o projeto que contém a regra de política de resposta.
dns.responsePolicyRules.get dns.responsePolicyRules.get para o projeto que contém a regra de política de resposta.
dns.responsePolicyRules.list dns.responsePolicyRules.list para o projeto que contém a política de resposta.
dns.responsePolicyRules.update dns.responsePolicyRules.update para o projeto que contém a regra de política de resposta.

Papéis

Veja na tabela abaixo os papéis do IAM da API Cloud DNS com uma lista correspondente de todas as permissões incluídas em cada um. Cada permissão se aplica a um tipo específico de recurso.

Também é possível usar papéis básicos para fazer alterações de DNS.

Role Permissions

(roles/dns.admin)

Provides read-write access to all Cloud DNS resources.

Lowest-level resources where you can grant this role:

  • Managed zone

compute.networks.get

compute.networks.list

dns.changes.*

  • dns.changes.create
  • dns.changes.get
  • dns.changes.list

dns.dnsKeys.*

  • dns.dnsKeys.get
  • dns.dnsKeys.list

dns.gkeClusters.*

  • dns.gkeClusters.bindDNSResponsePolicy
  • dns.gkeClusters.bindPrivateDNSZone

dns.managedZoneOperations.*

  • dns.managedZoneOperations.get
  • dns.managedZoneOperations.list

dns.managedZones.create

dns.managedZones.delete

dns.managedZones.get

dns.managedZones.getIamPolicy

dns.managedZones.list

dns.managedZones.update

dns.networks.*

  • dns.networks.bindDNSResponsePolicy
  • dns.networks.bindPrivateDNSPolicy
  • dns.networks.bindPrivateDNSZone
  • dns.networks.targetWithPeeringZone
  • dns.networks.useHealthSignals

dns.policies.create

dns.policies.delete

dns.policies.get

dns.policies.getIamPolicy

dns.policies.list

dns.policies.update

dns.projects.get

dns.resourceRecordSets.*

  • dns.resourceRecordSets.create
  • dns.resourceRecordSets.delete
  • dns.resourceRecordSets.get
  • dns.resourceRecordSets.list
  • dns.resourceRecordSets.update

dns.responsePolicies.*

  • dns.responsePolicies.create
  • dns.responsePolicies.delete
  • dns.responsePolicies.get
  • dns.responsePolicies.list
  • dns.responsePolicies.update

dns.responsePolicyRules.*

  • dns.responsePolicyRules.create
  • dns.responsePolicyRules.delete
  • dns.responsePolicyRules.get
  • dns.responsePolicyRules.list
  • dns.responsePolicyRules.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dns.peer)

Access to target networks with DNS peering zones

dns.networks.targetWithPeeringZone

(roles/dns.reader)

Provides read-only access to all Cloud DNS resources.

Lowest-level resources where you can grant this role:

  • Managed zone

compute.networks.get

dns.changes.get

dns.changes.list

dns.dnsKeys.*

  • dns.dnsKeys.get
  • dns.dnsKeys.list

dns.managedZoneOperations.*

  • dns.managedZoneOperations.get
  • dns.managedZoneOperations.list

dns.managedZones.get

dns.managedZones.list

dns.policies.get

dns.policies.list

dns.projects.get

dns.resourceRecordSets.get

dns.resourceRecordSets.list

dns.responsePolicies.get

dns.responsePolicies.list

dns.responsePolicyRules.get

dns.responsePolicyRules.list

resourcemanager.projects.get

resourcemanager.projects.list

Gerenciar o controle de acesso

É possível usar o Console do Google Cloud para gerenciar o controle de acesso dos seus tópicos e projetos.

Para definir os controles de acesso para envolvidos no projeto, siga estas etapas.

Console

  1. No Console do Google Cloud, abra a página IAM.

    Acessar a página do IAM

  2. Selecione seu projeto no menu suspenso na parte superior.

  3. Clique em Adicionar.

  4. Em Novos principais, digite o endereço de e-mail de um novo principal.

  5. Selecione o papel desejado no menu suspenso.

  6. Clique em Save.

  7. Verifique se o principal está listado com o papel concedido.

A seguir