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 Nomes de Domínio (DNS). Você daria a esse usuário (quem) o papel /roles/dns.admin, que tem as permissões dns.changes.create e dns.resourceRecordSets.create (o quê) para que ele possa criar e atualizar conjuntos de registros de recurso (quais). Por outro lado, um departamento de suporte pode precisar apenas visualizar os conjuntos de registros de recurso atuais. Para isso, receberia um papel /roles/dns.reader.

O Cloud DNS oferece suporte a 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) de DNS individual, consulte Criar uma zona com permissões de IAM específicas.

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 no projeto que contém a zona gerenciada.
dns.changes.list dns.changes.list no projeto que contém a zona gerenciada.
dns.dnsKeys.get dns.dnsKeys.get no projeto que contém a zona gerenciada.
dns.dnsKeys.list dns.dnsKeys.list no projeto que contém a zona gerenciada.
dns.managedZoneOperations.get dns.managedZoneOperations.get no projeto que contém a zona gerenciada.
dns.managedZoneOperations.list dns.managedZoneOperations.list no projeto que contém a zona gerenciada.
dns.managedZones.create dns.managedZones.create no projeto que contém a zona gerenciada.

Se você estiver criando uma zona particular, também precisará de dns.networks.bindPrivateDNSZone e dns.networks.targetWithPeeringZone em cada projeto com uma rede VPC autorizada a acessar a zona.

Se você estiver criando uma zona particular com a integração do GKE, também precisará de dns.gkeClusters.bindPrivateDNSZone para configurar um escopo de cluster do GKE.

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

Se você estiver criando uma zona particular, também precisará de dns.networks.bindPrivateDNSZone e dns.networks.targetWithPeeringZone em cada projeto com uma rede VPC autorizada a acessar a zona.

Se você estiver criando uma zona particular com a integração do GKE, também precisará de dns.gkeClusters.bindPrivateDNSZone para configurar um escopo de cluster do GKE.

dns.policies.create dns.policies.create no 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 no projeto que contém a política.
dns.policies.get dns.policies.get no projeto que contém a política.
dns.policies.list dns.policies.list no projeto que contém a política.
dns.policies.update dns.policies.update no 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 no projeto.
dns.resourceRecordSets.create dns.resourceRecordSets.create no projeto que contém o conjunto de registros.
dns.resourceRecordSets.delete dns.resourceRecordSets.delete no projeto que contém o conjunto de registros.
dns.resourceRecordSets.get dns.resourceRecordSets.get no projeto que contém o conjunto de registros.
dns.resourceRecordSets.list dns.resourceRecordSets.list no projeto que contém a zona gerenciada.
dns.resourceRecordSets.update dns.resourceRecordSets.update e dns.changes.create no projeto que contém o conjunto de registros.
dns.responsePolicies.create dns.responsePolicies.create no 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 no projeto que contém a política de resposta.
dns.responsePolicies.get dns.responsePolicies.get no projeto que contém a política de resposta.
dns.responsePolicies.list dns.responsePolicies.list no projeto.
dns.responsePolicies.update dns.responsePolicies.update no 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 no projeto que contém a regra da política de resposta.
dns.responsePolicyRules.delete dns.responsePolicyRules.delete no projeto que contém a regra da política de resposta.
dns.responsePolicyRules.get dns.responsePolicyRules.get no projeto que contém a regra da política de resposta.
dns.responsePolicyRules.list dns.responsePolicyRules.list no projeto que contém a política de resposta.
dns.responsePolicyRules.update dns.responsePolicyRules.update no projeto que contém a regra da 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 um papel na lista.

  6. Clique em Salvar.

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

A seguir