Google Cloud ofrece Identity and Access Management (IAM), que te permite brindar acceso más detallado a recursos de Google Cloud específicos y evita el acceso no deseado a otros recursos. En esta página, se describen los roles de la API de Cloud DNS. Para obtener una descripción detallada de IAM, consulta la documentación de Identity and Access Management.
Con IAM, puedes adoptar el principio de privilegio mínimo de seguridad, de manera que solo otorgas el acceso necesario a tus recursos.
Con IAM, puedes controlar quién tiene qué permisos para qué
recursos configurando las políticas de IAM. Las políticas de IAM
asignan roles específicos a un usuario, lo que le otorga ciertos permisos. Por
ejemplo, quizás un usuario en particular necesite crear y modificar recursos de registros del
sistema de nombres de dominio (DNS). Luego, debes otorgar a ese usuario (quién) el
rol /roles/dns.admin, que incluye los permisos dns.changes.create y
dns.resourceRecordSets.create (qué) para que pueda crear y
actualizar los conjuntos de registros de recursos (qué). Por otro lado, es posible que las personas de un departamento de asistencia
solo necesiten ver los conjuntos de registros de recursos existentes, por lo que obtendrán un
rol /roles/dns.reader.
Cloud DNS admite permisos de IAM a nivel del proyecto y a nivel de la zona del DNS individual. El permiso predeterminado se encuentra a nivel del proyecto. Para configurar permisos a nivel de la zona (o recurso) de DNS individual, consulta Crea una zona con permisos de IAM específicos.
Permisos y roles
Cada método de la API de Cloud DNS requiere que la persona que llama tenga los permisos de IAM necesarios. Los permisos se asignan con el otorgamiento de roles a un usuario, grupo o cuenta de servicio. Además de los roles básicos de propietario, editor y visualizador, puedes asignar roles de la API de Cloud DNS a los usuarios de tu proyecto.
Permisos
En la siguiente tabla, se enumeran los permisos necesarios para llamar a cada método:
| Método | Permisos necesarios |
|---|---|
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 borrar 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 creas una zona privada, también necesitas
Si creas una zona privada con integración en GKE,
también necesitarás |
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 creas una zona privada, también necesitas
Si creas una zona privada con integración en GKE,
también necesitarás |
dns.policies.create |
dns.policies.create en el proyecto que contiene la política.
Si la política se crea en una red de VPC, también necesitas
|
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 de VPC, también
necesitas |
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 |