Ruoli e autorizzazioni

Google Cloud offre Identity and Access Management (IAM), che consente di concedere un accesso più granulare a risorse Google Cloud specifiche e impedisce l'accesso indesiderato ad altre risorse. Questa pagina descrive i ruoli dell'API Cloud DNS. Per una descrizione dettagliata di IAM, consulta la documentazione di Identity and Access Management.

IAM ti consente di adottare il principio di sicurezza del privilegio minimo in modo da concedere solo l'accesso necessario alle tue risorse.

IAM consente di controllare chi ha quali autorizzazioni per quali risorse impostando i criteri IAM. I criteri IAM concedono ruoli specifici a un utente, concedendogli determinate autorizzazioni. Ad esempio, un determinato utente potrebbe dover creare e modificare le risorse dei record DNS (Domain Name System). Dovrai quindi assegnare a questo utente (chi) il ruolo /roles/dns.admin, che dispone delle autorizzazioni dns.changes.create e dns.resourceRecordSets.create (cosa), in modo che possa creare e aggiornare i set di record di risorse (quale). Al contrario, un reparto di assistenza potrebbe dover visualizzare solo i set di record di risorse esistenti, quindi otterrà un ruolo /roles/dns.reader.

Cloud DNS supporta le autorizzazioni IAM a livello di progetto e di singola zona DNS. L'autorizzazione predefinita è a livello di progetto. Per configurare le autorizzazioni a livello di singola zona (o risorsa) DNS, consulta Creare una zona con autorizzazioni IAM specifiche.

Autorizzazioni e ruoli

Ogni metodo API Cloud DNS richiede che il chiamante disponga delle autorizzazioni IAM necessarie. Le autorizzazioni vengono assegnate assegnando i ruoli a un utente, un gruppo o un account di servizio. Oltre ai ruoli di base Proprietario, Editor e Visualizzatore, puoi concedere i ruoli API Cloud DNS agli utenti del tuo progetto.

Autorizzazioni

Nella tabella seguente sono elencate le autorizzazioni che il chiamante deve avere per chiamare ciascun metodo.

Metodo Autorizzazioni richieste
dns.changes.create per creare un set di record di risorse. dns.changes.create e dns.resourceRecordSets.create sul progetto contenente il set di record.
dns.changes.create per aggiornare un set di record di risorse. dns.changes.create e dns.resourceRecordSets.update sul progetto contenente il set di record.
dns.changes.create per eliminare un set di record di risorse. dns.changes.create e dns.resourceRecordSets.delete sul progetto contenente il set di record.
dns.changes.get dns.changes.get sul progetto contenente la zona gestita.
dns.changes.list dns.changes.list sul progetto contenente la zona gestita.
dns.dnsKeys.get dns.dnsKeys.get sul progetto contenente la zona gestita.
dns.dnsKeys.list dns.dnsKeys.list sul progetto contenente la zona gestita.
dns.managedZoneOperations.get dns.managedZoneOperations.get sul progetto contenente la zona gestita.
dns.managedZoneOperations.list dns.managedZoneOperations.list sul progetto contenente la zona gestita.
dns.managedZones.create dns.managedZones.create sul progetto contenente la zona gestita.

Se stai creando una zona privata, hai bisogno anche di dns.networks.bindPrivateDNSZone e dns.networks.targetWithPeeringZone in ogni progetto con una rete VPC autorizzata ad accedere alla zona.

Se stai creando una zona privata con l'integrazione GKE, devi anche dns.gkeClusters.bindPrivateDNSZone per configurare l'ambito di un cluster GKE.

dns.managedZones.delete dns.managedZones.delete sul progetto contenente la zona gestita.
dns.managedZones.get dns.managedZones.get sul progetto contenente la zona gestita.
dns.managedZones.list dns.managedZones.list sul progetto contenente la zona gestita.
dns.managedZones.update dns.managedZones.update sul progetto contenente la zona gestita.

Se stai creando una zona privata, hai bisogno anche di dns.networks.bindPrivateDNSZone e dns.networks.targetWithPeeringZone in ogni progetto con una rete VPC autorizzata ad accedere alla zona.

Se stai creando una zona privata con l'integrazione GKE, devi anche dns.gkeClusters.bindPrivateDNSZone per configurare l'ambito di un cluster GKE.

dns.policies.create dns.policies.create sul progetto contenente il criterio.

Se il criterio viene creato su una rete VPC, è necessario anche dns.networks.bindPrivateDNSPolicy per ogni progetto contenente ciascuna rete VPC.

dns.policies.delete dns.policies.delete sul progetto contenente il criterio.
dns.policies.get dns.policies.get sul progetto contenente il criterio.
dns.policies.list dns.policies.list sul progetto contenente il criterio.
dns.policies.update dns.policies.update sul progetto contenente il criterio.

Se il criterio viene aggiornato in modo che sia su una rete VPC, è necessario anche dns.networks.bindPrivateDNSPolicy per ogni progetto contenente ciascuna rete VPC.

dns.projects.get dns.projects.get sul progetto.
dns.resourceRecordSets.create dns.resourceRecordSets.create sul progetto contenente il set di record.
dns.resourceRecordSets.delete dns.resourceRecordSets.delete sul progetto contenente il set di record.
dns.resourceRecordSets.get dns.resourceRecordSets.get sul progetto contenente il set di record.
dns.resourceRecordSets.list dns.resourceRecordSets.list sul progetto contenente la zona gestita.
dns.resourceRecordSets.update dns.resourceRecordSets.update e dns.changes.create sul progetto contenente il set di record.
dns.responsePolicies.create dns.responsePolicies.create sul progetto contenente il criterio di risposta.

Devi anche dns.networks.bindDNSResponsePolicy per convalidare la richiesta.

Se vuoi creare un criterio di risposta collegato a un cluster GKE, devi avere dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicies.delete dns.responsePolicies.delete sul progetto contenente il criterio di risposta.
dns.responsePolicies.get dns.responsePolicies.get sul progetto contenente il criterio di risposta.
dns.responsePolicies.list dns.responsePolicies.list sul progetto.
dns.responsePolicies.update dns.responsePolicies.update sul progetto contenente il criterio di risposta.

Devi anche dns.networks.bindDNSResponsePolicy per convalidare la richiesta.

Se vuoi creare un criterio di risposta collegato a un cluster GKE, devi avere dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicyRules.create dns.responsePolicyRules.create sul progetto contenente la regola del criterio di risposta.
dns.responsePolicyRules.delete dns.responsePolicyRules.delete sul progetto contenente la regola del criterio di risposta.
dns.responsePolicyRules.get dns.responsePolicyRules.get sul progetto contenente la regola del criterio di risposta.
dns.responsePolicyRules.list dns.responsePolicyRules.list sul progetto contenente il criterio di risposta.
dns.responsePolicyRules.update dns.responsePolicyRules.update sul progetto contenente la regola del criterio di risposta.

Ruoli

La seguente tabella elenca i ruoli IAM dell'API Cloud DNS con un elenco corrispondente di tutte le autorizzazioni incluse da ogni ruolo. Ogni autorizzazione è applicabile a un determinato tipo di risorsa.

Puoi anche utilizzare i ruoli di base per apportare modifiche 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.create

dns.policies.delete

dns.policies.get

dns.policies.getIamPolicy

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

Gestione del controllo dell'accesso

Puoi utilizzare la console Google Cloud per gestire controllo dell'accesso per i tuoi argomenti e progetti.

Per impostare i controlli dell'accesso a livello di progetto:

Console

  1. Nella console Google Cloud, vai alla pagina IAM.

    Vai alla pagina IAM

  2. Seleziona il progetto dal menu a discesa in alto.

  3. Fai clic su Aggiungi.

  4. In Nuove entità, inserisci l'indirizzo email di una nuova entità.

  5. Seleziona un ruolo dall'elenco.

  6. Fai clic su Salva.

  7. Verifica che l'entità sia elencata con il ruolo che hai concesso.

Passaggi successivi