Papéis e permissões (original) (raw)

OGoogle Cloud oferece Identity and Access Management (IAM), que permite conceder 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 edns.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 atuais. Para isso, é 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 de DNS (ou recurso) individual, consulteCriar uma zona com permissões específicas do IAM.

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 registro de recurso, defina dns.changes.create e dns.resourceRecordSets.create no projeto que contém o conjunto de registros.Para atualizar um registro de recurso, defina dns.changes.create e dns.resourceRecordSets.update no projeto que contém o conjunto de registros. Para excluir um registro de recurso, defina 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 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 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 dedns.networks.bindDNSResponsePolicy para validar a solicitação. Se quiser criar uma política de resposta anexada a um cluster do GKE, você vai precisar dedns.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 dedns.networks.bindDNSResponsePolicy para validar a solicitação. Se quiser criar uma política de resposta anexada a um cluster do GKE, você vai precisar dedns.gkeClusters.bindDNSResponsePolicy.
dns.responsePolicyRules.create dns.responsePolicyRules.create no projeto que contém a regra de política de resposta.
dns.responsePolicyRules.delete dns.responsePolicyRules.delete no projeto que contém a regra de política de resposta.
dns.responsePolicyRules.get dns.responsePolicyRules.get no projeto que contém a regra de 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 de política de resposta.
networksecurity.dnsThreatDetectors.list networksecurity.dnsThreatDetectors.list no projeto em que as redes VPC são monitoradas em busca de ameaças.
networksecurity.dnsThreatDetectors.get networksecurity.dnsThreatDetectors.get no projeto em que as redes VPC são monitoradas em busca de ameaças.
networksecurity.dnsThreatDetectors.create networksecurity.dnsThreatDetectors.create no projeto que contém as redes VPC que você quer monitorar em busca de ameaças.
networksecurity.dnsThreatDetectors.update networksecurity.dnsThreatDetectors.update no projeto em que as redes VPC são monitoradas em busca de ameaças.
networksecurity.dnsThreatDetectors.delete networksecurity.dnsThreatDetectors.delete no projeto em que as redes VPC são monitoradas em busca de ameaças.

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
DNS Administrator (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.createTagBinding dns.policies.delete dns.policies.deleteTagBinding dns.policies.get dns.policies.list dns.policies.listEffectiveTags dns.policies.listTagBindings 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
DNS Peer (roles/dns.peer) Access to target networks with DNS peering zones dns.networks.targetWithPeeringZone
DNS Reader (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.policies.listEffectiveTags dns.policies.listTagBindings 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

Service agent roles

Service agent roles should only be granted to service agents.

Role Permissions
Cloud DNS Service Agent (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

Confira na tabela abaixo os papéis do IAM do DNS Armor com uma lista correspondente de todas as permissões incluídas em cada um.

Papel Permissões
Administrador do detector de ameaças de DNS (roles/networksecurity.dnsThreatDetectorAdmin) Permite acesso total aos recursos do detector de ameaças de DNS. networksecurity.dnsThreatDetectors.* networksecurity.dnsThreatDetectors.create networksecurity.dnsThreatDetectors.delete networksecurity.dnsThreatDetectors.get networksecurity.dnsThreatDetectors.list networksecurity.dnsThreatDetectors.update resourcemanager.projects.get resourcemanager.projects.list
Leitor do detector de ameaças de DNS (roles/networksecurity.dnsThreatDetectorViewer) Ativa o acesso de leitura aos recursos do detector de ameaças DNS. networksecurity.dnsThreatDetectors.get networksecurity.dnsThreatDetectors.list resourcemanager.projects.get resourcemanager.projects.list

Gerenciar o controle de acesso

É possível usar o console 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 , acesse a página IAM.
    Acessar a página do IAM
  2. Selecione seu projeto no menu suspenso na parte superior.
  3. Clique em Add.
  4. Em Novos principais, digite o endereço de e-mail de um novo principal.
  5. Selecione uma função na lista.
  6. Clique em Salvar.
  7. Verifique se o principal está listado com o papel concedido.

A seguir