Funções e permissões

Google Cloud oferece a gestão de identidade e de acesso (IAM), que lhe permite conceder um acesso mais detalhado a recursos Google Cloud específicos e impede o acesso indesejado a outros recursos. Esta página descreve as funções da API Cloud DNS. Para uma descrição detalhada da IAM, consulte a documentação da gestão de identidade e de acesso.

O IAM permite-lhe adotar o princípio de segurança do menor privilégio para que conceda apenas o acesso necessário aos seus recursos.

A IAM permite-lhe controlar quem tem que autorizações para que recursos através da definição de políticas IAM. As políticas de IAM concedem funções específicas a um utilizador, o que lhe dá determinadas autorizações. Por exemplo, um utilizador específico pode ter de criar e modificar recursos de registo do sistema de nomes de domínio (DNS). Em seguida, atribuiria a esse utilizador a função de /roles/dns.admin, que tem as autorizações dns.changes.create e dns.resourceRecordSets.create (o quê) para que possa criar e atualizar conjuntos de registos de recursos (o quê). Por outro lado, um departamento de apoio técnico pode apenas precisar de ver conjuntos de registos de recursos existentes, pelo que receberia uma função /roles/dns.reader.

O Cloud DNS suporta autorizações do IAM ao nível do projeto e ao nível da zona DNS individual. A autorização predefinida está ao nível do projeto. Para configurar autorizações ao nível da zona de DNS individual (ou recurso), consulte o artigo Crie uma zona com autorizações IAM específicas.

Autorizações e funções

Todos os métodos da API Cloud DNS requerem que o autor da chamada tenha as autorizações de IAM necessárias. As autorizações são atribuídas através da concessão de funções a um utilizador, um grupo ou uma conta de serviço. Além das funções básicas Proprietário, Editor e Leitor, pode conceder funções da API Cloud DNS aos utilizadores do seu projeto.

Autorizações

A tabela seguinte lista as autorizações que o autor da chamada tem de ter para chamar cada método.

Método Autorizações necessárias
dns.changes.create para criar um conjunto de registos de recursos. dns.changes.create e dns.resourceRecordSets.create no projeto que contém o conjunto de registos.
dns.changes.create para atualizar um conjunto de registos de recursos. dns.changes.create e dns.resourceRecordSets.update no projeto que contém o conjunto de registos.
dns.changes.create para eliminar um conjunto de registos de recursos. dns.changes.create e dns.resourceRecordSets.delete no projeto que contém o conjunto de registos.
dns.changes.get dns.changes.get no projeto que contém a zona gerida.
dns.changes.list dns.changes.list no projeto que contém a zona gerida.
dns.dnsKeys.get dns.dnsKeys.get no projeto que contém a zona gerida.
dns.dnsKeys.list dns.dnsKeys.list no projeto que contém a zona gerida.
dns.managedZoneOperations.get dns.managedZoneOperations.get no projeto que contém a zona gerida.
dns.managedZoneOperations.list dns.managedZoneOperations.list no projeto que contém a zona gerida.
dns.managedZones.create dns.managedZones.create no projeto que contém a zona gerida.

Se estiver a criar uma zona privada, também precisa de ter dns.networks.bindPrivateDNSZone e dns.networks.targetWithPeeringZone em cada projeto com uma rede VPC autorizada a aceder à zona.

Se estiver a criar uma zona privada com a integração do GKE, também tem de dns.gkeClusters.bindPrivateDNSZoneconfigurar um âmbito do cluster do GKE.

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

Se estiver a criar uma zona privada, também precisa de ter dns.networks.bindPrivateDNSZone e dns.networks.targetWithPeeringZone em cada projeto com uma rede VPC autorizada a aceder à zona.

Se estiver a criar uma zona privada com a integração do GKE, também tem de dns.gkeClusters.bindPrivateDNSZoneconfigurar um âmbito do cluster do GKE.

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

Se a política for criada numa rede VPC, também precisa de dns.networks.bindPrivateDNSPolicy para cada projeto que contenha cada 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 numa rede VPC, também precisa de dns.networks.bindPrivateDNSPolicy para cada projeto que contenha cada rede VPC.

dns.projects.get dns.projects.get no projeto.
dns.resourceRecordSets.create dns.resourceRecordSets.create no projeto que contém o conjunto de registos.
dns.resourceRecordSets.delete dns.resourceRecordSets.delete no projeto que contém o conjunto de registos.
dns.resourceRecordSets.get dns.resourceRecordSets.get no projeto que contém o conjunto de registos.
dns.resourceRecordSets.list dns.resourceRecordSets.list no projeto que contém a zona gerida.
dns.resourceRecordSets.update dns.resourceRecordSets.update e dns.changes.create no projeto que contém o conjunto de registos.
dns.responsePolicies.create dns.responsePolicies.create no projeto que contém a política de resposta.

Também tem de dns.networks.bindDNSResponsePolicy validar o pedido.

Se quiser criar uma política de resposta anexada a um cluster do GKE, precisa de 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.

Também tem de dns.networks.bindDNSResponsePolicy validar o pedido.

Se quiser criar uma política de resposta anexada a um cluster do GKE, precisa de dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicyRules.create dns.responsePolicyRules.create no projeto que contém a regra da política de respostas.
dns.responsePolicyRules.delete dns.responsePolicyRules.delete no projeto que contém a regra da política de respostas.
dns.responsePolicyRules.get dns.responsePolicyRules.get no projeto que contém a regra da política de respostas.
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 respostas.

Funções

A tabela seguinte apresenta as funções de IAM da API Cloud DNS com uma lista correspondente de todas as autorizações que cada função inclui. Cada autorização é aplicável a um tipo de recurso específico.

Também pode usar funções básicas 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.*

  • dns.policies.create
  • dns.policies.delete
  • dns.policies.get
  • 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

(roles/dns.serviceAgent)

Gives Cloud DNS Service Agent access to Cloud Platform resources.

compute.globalNetworkEndpointGroups.attachNetworkEndpoints

compute.globalNetworkEndpointGroups.create

compute.globalNetworkEndpointGroups.delete

compute.globalNetworkEndpointGroups.detachNetworkEndpoints

compute.globalNetworkEndpointGroups.get

compute.globalOperations.get

compute.healthChecks.get

Faça a gestão do controlo de acesso

Pode usar a Google Cloud consola para gerir o controlo de acesso aos seus tópicos e projetos.

Para definir controlos de acesso ao nível do projeto, siga estes passos.

Consola

  1. Na Google Cloud consola, aceda à página IAM.

    Aceda à página IAM

  2. Selecione o seu projeto no menu pendente na parte superior.

  3. Clique em Adicionar.

  4. Em Novos membros, introduza o endereço de email de um novo membro.

  5. Selecione uma função na lista.

  6. Clique em Guardar.

  7. Verifique se o principal está listado com a função que lhe atribuiu.

O que se segue?