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
- No console do Google Cloud , acesse a página IAM.
Acessar a página do IAM - Selecione seu projeto no menu suspenso na parte superior.
- Clique em Add.
- Em Novos principais, digite o endereço de e-mail de um novo principal.
- Selecione uma função na lista.
- Clique em Salvar.
- Verifique se o principal está listado com o papel concedido.
A seguir
- Para começar a usar o Cloud DNS, consulteGuia de início rápido: como configurar registros DNS para um nome de domínio com o Cloud DNS.
- Para achar soluções de problemas comuns que podem ser encontrados ao usar o Cloud DNS, consulte Solução de problemas.