Roles y permisos

Google Cloud ofrece gestión de identidad y acceso (IAM), que le permite brindar acceso más granular a datos específicos. Google Cloud Recursos y evita el acceso no deseado a otros recursos. Esta página describe los roles de la API de Cloud DNS. Para obtener una descripción detallada de IAM, consulte la documentación de Administración de Identidad y Acceso .

IAM le permite adoptar el principio de seguridad del mínimo privilegio para otorgar solo el acceso necesario a sus recursos.

IAM permite controlar quién tiene qué permisos sobre qué recursos mediante la configuración de políticas de IAM. Estas políticas otorgan roles específicos a cada usuario, otorgándole ciertos permisos. Por ejemplo, un usuario podría necesitar crear y modificar recursos de registros del Sistema de Nombres de Dominio (DNS). A ese usuario (who) se le asignaría el rol /roles/dns.admin , que tiene los permisos dns.changes.create y dns.resourceRecordSets.create (what) para que pueda crear y actualizar conjuntos de registros de recursos (which). Por el contrario, un departamento de soporte podría necesitar solo ver los conjuntos de registros de recursos existentes, por lo que se le asignaría el rol /roles/dns.reader .

Cloud DNS admite permisos de IAM a nivel de proyecto y de zona DNS individual. El permiso predeterminado es a nivel de proyecto. Para configurar permisos a nivel de zona DNS individual (o recurso), consulte Crear una zona con permisos de IAM específicos .

Permisos y roles

Cada método de la API de Cloud DNS requiere que quien lo llama tenga los permisos de IAM necesarios. Los permisos se asignan otorgando roles a un usuario, grupo o cuenta de servicio. Además de los roles básicos de Propietario, Editor y Visor, puedes otorgar roles de la API de Cloud DNS a los usuarios de tu proyecto.

Permisos

La siguiente tabla enumera los permisos que debe tener el llamador para llamar a cada método.

Método Permiso(s) requerido(s)
dns.changes.create para crear un conjunto de registros de recursos. dns.changes.create y dns.resourceRecordSets.create en el proyecto que contiene el conjunto de registros.
dns.changes.create para actualizar un conjunto de registros de recursos. dns.changes.create y dns.resourceRecordSets.update en el proyecto que contiene el conjunto de registros.
dns.changes.create para eliminar un conjunto de registros de recursos. dns.changes.create y dns.resourceRecordSets.delete en el proyecto que contiene el conjunto de registros.
dns.changes.get dns.changes.get en el proyecto que contiene la zona administrada.
dns.changes.list dns.changes.list en el proyecto que contiene la zona administrada.
dns.dnsKeys.get dns.dnsKeys.get en el proyecto que contiene la zona administrada.
dns.dnsKeys.list dns.dnsKeys.list en el proyecto que contiene la zona administrada.
dns.managedZoneOperations.get dns.managedZoneOperations.get en el proyecto que contiene la zona administrada.
dns.managedZoneOperations.list dns.managedZoneOperations.list en el proyecto que contiene la zona administrada.
dns.managedZones.create dns.managedZones.create en el proyecto que contiene la zona administrada.

Si está creando una zona privada, también necesitará dns.networks.bindPrivateDNSZone y dns.networks.targetWithPeeringZone en cada proyecto con una red VPC autorizada para acceder a la zona.

Si está creando una zona privada con integración de GKE, también necesita dns.gkeClusters.bindPrivateDNSZone para configurar un ámbito de clúster de GKE.

dns.managedZones.delete dns.managedZones.delete en el proyecto que contiene la zona administrada.
dns.managedZones.get dns.managedZones.get en el proyecto que contiene la zona administrada.
dns.managedZones.list dns.managedZones.list en el proyecto que contiene la zona administrada.
dns.managedZones.update dns.managedZones.update en el proyecto que contiene la zona administrada.

Si está creando una zona privada, también necesitará dns.networks.bindPrivateDNSZone y dns.networks.targetWithPeeringZone en cada proyecto con una red VPC autorizada para acceder a la zona.

Si está creando una zona privada con integración de GKE, también necesita dns.gkeClusters.bindPrivateDNSZone para configurar un ámbito de clúster de GKE.

dns.policies.create dns.policies.create en el proyecto que contiene la política.

Si la política se crea en una red VPC, también necesitará dns.networks.bindPrivateDNSPolicy para cada proyecto que contenga cada red VPC.

dns.policies.delete dns.policies.delete en el proyecto que contiene la política.
dns.policies.get dns.policies.get en el proyecto que contiene la política.
dns.policies.list dns.policies.list en el proyecto que contiene la política.
dns.policies.update dns.policies.update en el proyecto que contiene la política.

Si la política se actualiza para estar en una red VPC, también necesitará dns.networks.bindPrivateDNSPolicy para cada proyecto que contenga cada red VPC.

dns.projects.get dns.projects.get en el proyecto.
dns.resourceRecordSets.create dns.resourceRecordSets.create en el proyecto que contiene el conjunto de registros.
dns.resourceRecordSets.delete dns.resourceRecordSets.delete en el proyecto que contiene el conjunto de registros.
dns.resourceRecordSets.get dns.resourceRecordSets.get en el proyecto que contiene el conjunto de registros.
dns.resourceRecordSets.list dns.resourceRecordSets.list en el proyecto que contiene la zona administrada.
dns.resourceRecordSets.update dns.resourceRecordSets.update y dns.changes.create en el proyecto que contiene el conjunto de registros.
dns.responsePolicies.create dns.responsePolicies.create en el proyecto que contiene la política de respuesta.

También necesita dns.networks.bindDNSResponsePolicy para validar la solicitud.

Si desea crear una política de respuesta adjunta a un clúster de GKE, necesita dns.gkeClusters.bindDNSResponsePolicy .

dns.responsePolicies.delete dns.responsePolicies.delete en el proyecto que contiene la política de respuesta.
dns.responsePolicies.get dns.responsePolicies.get en el proyecto que contiene la política de respuesta.
dns.responsePolicies.list dns.responsePolicies.list en el proyecto.
dns.responsePolicies.update dns.responsePolicies.update en el proyecto que contiene la política de respuesta.

También necesita dns.networks.bindDNSResponsePolicy para validar la solicitud.

Si desea crear una política de respuesta adjunta a un clúster de GKE, necesita dns.gkeClusters.bindDNSResponsePolicy .

dns.responsePolicyRules.create dns.responsePolicyRules.create en el proyecto que contiene la regla de política de respuesta.
dns.responsePolicyRules.delete dns.responsePolicyRules.delete en el proyecto que contiene la regla de política de respuesta.
dns.responsePolicyRules.get dns.responsePolicyRules.get en el proyecto que contiene la regla de política de respuesta.
dns.responsePolicyRules.list dns.responsePolicyRules.list en el proyecto que contiene la política de respuesta.
dns.responsePolicyRules.update dns.responsePolicyRules.update en el proyecto que contiene la regla de política de respuesta.

Roles

La siguiente tabla enumera los roles de IAM de la API de Cloud DNS con la lista correspondiente de todos los permisos que incluye cada rol. Cada permiso se aplica a un tipo de recurso específico.

También puedes usar roles básicos para realizar cambios 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

Gestionar el control de acceso

Puedes utilizar el Google Cloud Consola para administrar el control de acceso para sus temas y proyectos.

Para establecer controles de acceso a nivel de proyecto, siga estos pasos.

Consola

  1. En el Google Cloud consola, vaya a la página de IAM .

    Ir a la página de IAM

  2. Seleccione su proyecto en el menú desplegable superior.

  3. Haga clic en Agregar .

  4. En Nuevos directores , ingrese la dirección de correo electrónico de un nuevo director.

  5. Seleccione un rol de la lista.

  6. Haga clic en Guardar .

  7. Verifique que el principal se encuentre listado con el rol que le otorgó.

¿Qué sigue?