Rôles et autorisations

Google Cloud propose Identity and Access Management (IAM), qui vous permet de définir de manière plus précise l'accès à des ressources spécifiques de Google Cloud et d'empêcher tout accès indésirable à d'autres ressources. Vous trouverez sur cette page la présentation des rôles disponibles avec l'API Cloud DNS. Pour obtenir une description détaillée d'IAM, consultez la documentation Identity and Access Management.

IAM vous permet d'adopter le principe de sécurité du moindre privilège afin de n'accorder que l'accès nécessaire à vos ressources.

Avec IAM, vous pouvez contrôler qui dispose de quelles autorisations sur quelles ressources en définissant des stratégies IAM. Ces stratégies permettent d'attribuer un ou plusieurs rôles spécifiques à un utilisateur afin de lui accorder certaines autorisations. Par exemple, un certain utilisateur peut avoir besoin de créer et de modifier des ressources d'enregistrement DNS (Domain Name System). Vous attribuez ensuite à cet utilisateur (qui) le rôle /roles/dns.admin qui dispose des autorisations dns.changes.create et dns.resourceRecordSets.create (quelles autorisations), afin qu'il puisse créer et mettre à jour des jeux d'enregistrements de ressources (quelles ressources). En revanche, pour un service d'assistance qui n'aurait besoin que de visualiser les jeux d'enregistrements de ressources existants, vous attribueriez le rôle /roles/dns.reader.

Cloud DNS est compatible avec les autorisations IAM au niveau du projet et au niveau de la zone DNS individuelle. L'autorisation par défaut est appliquée au niveau du projet. Pour configurer des autorisations au niveau d'une zone DNS (ou d'une ressource) individuelle, consultez la page Créer une zone avec des autorisations IAM spécifiques.

Autorisations et rôles

Pour appeler une méthode de l'API Cloud DNS, un utilisateur doit disposer des autorisations IAM obligatoires pour cette méthode. Les rôles permettent d'accorder certaines autorisations à un utilisateur, à un groupe d'utilisateurs ou à un compte de service. En plus des rôles de propriétaire, éditeur et lecteur de base, vous pouvez attribuer les rôles de l'API Cloud DNS aux utilisateurs de votre projet.

Autorisations

Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode.

Méthode Autorisation(s) requise(s)
dns.changes.create pour créer un jeu d'enregistrements de ressources. dns.changes.create et dns.resourceRecordSets.create sur le projet contenant le jeu d'enregistrements.
dns.changes.create pour mettre à jour un jeu d'enregistrements de ressources. dns.changes.create et dns.resourceRecordSets.update sur le projet contenant le jeu d'enregistrements.
dns.changes.create pour supprimer un jeu d'enregistrements de ressources. dns.changes.create et dns.resourceRecordSets.delete sur le projet contenant le jeu d'enregistrements.
dns.changes.get dns.changes.get pour le projet contenant la zone gérée.
dns.changes.list dns.changes.list pour le projet contenant la zone gérée.
dns.dnsKeys.get dns.dnsKeys.get pour le projet contenant la zone gérée.
dns.dnsKeys.list dns.dnsKeys.list pour le projet contenant la zone gérée.
dns.managedZoneOperations.get dns.managedZoneOperations.get pour le projet contenant la zone gérée.
dns.managedZoneOperations.list dns.managedZoneOperations.list pour le projet contenant la zone gérée.
dns.managedZones.create dns.managedZones.create pour le projet contenant la zone gérée.

Si vous créez une zone privée, vous avez également besoin des autorisations dns.networks.bindPrivateDNSZone et dns.networks.targetWithPeeringZone pour tous les projets contenant chaque réseau VPC que vous autorisez à accéder à la zone.

Si vous créez une zone privée avec une intégration GKE, vous avez également besoin de l'autorisation dns.gkeClusters.bindPrivateDNSZone pour chaque cluster GKE que vous autorisez à accéder à la zone.

dns.managedZones.delete dns.managedZones.delete pour le projet contenant la zone gérée.
dns.managedZones.get dns.managedZones.get pour le projet contenant la zone gérée.
dns.managedZones.list dns.managedZones.list pour le projet contenant la zone gérée.
dns.managedZones.update dns.managedZones.update pour le projet contenant la zone gérée.

Si vous créez une zone privée, vous avez également besoin des autorisations dns.networks.bindPrivateDNSZone et dns.networks.targetWithPeeringZone pour tous les projets contenant chaque réseau VPC que vous autorisez à accéder à la zone.

Si vous créez une liaison entre une zone privée et un cluster GKE, vous avez également besoin de l'autorisation dns.gkeClusters.bindPrivateDNSZone pour chaque cluster GKE que vous autorisez à accéder à la zone.

dns.policies.create dns.policies.create pour le projet contenant la règle.

Si la règle est créée sur un réseau VPC, vous avez également besoin de l'autorisation dns.networks.bindPrivateDNSPolicy pour tous les projets contenant chaque réseau VPC.

dns.policies.delete dns.policies.delete pour le projet contenant la règle.
dns.policies.get dns.policies.get pour le projet contenant la règle.
dns.policies.list dns.policies.list pour le projet contenant la règle.
dns.policies.update dns.policies.update pour le projet contenant la règle.

Si la règle est mise à jour pour s'appliquer à un réseau VPC, vous avez également besoin de l'autorisation dns.networks.bindPrivateDNSPolicy pour tous les projets contenant chaque réseau VPC.

dns.projects.get dns.projects.get pour le projet.
dns.resourceRecordSets.create dns.resourceRecordSets.create pour le projet contenant le jeu d'enregistrements.
dns.resourceRecordSets.delete dns.resourceRecordSets.delete pour le projet contenant le jeu d'enregistrements.
dns.resourceRecordSets.get dns.resourceRecordSets.get pour le projet contenant le jeu d'enregistrements.
dns.resourceRecordSets.list dns.resourceRecordSets.list pour le projet contenant la zone gérée.
dns.resourceRecordSets.update dns.resourceRecordSets.update pour le projet contenant le jeu d'enregistrements.
dns.responsePolicies.create dns.responsePolicies.create pour le projet contenant la stratégie de réponse.

Vous devez également utiliser dns.networks.bindDNSResponsePolicy pour valider la requête.

Si vous souhaitez créer une stratégie de réponse associée à un cluster GKE, vous avez besoin de l'autorisation dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicies.delete dns.responsePolicies.delete pour le projet contenant la stratégie de réponse.
dns.responsePolicies.get dns.responsePolicies.get pour le projet contenant la stratégie de réponse.
dns.responsePolicies.list dns.responsePolicies.list pour le projet.
dns.responsePolicies.update dns.responsePolicies.update pour le projet contenant la stratégie de réponse.

Vous devez également utiliser dns.networks.bindDNSResponsePolicy pour valider la requête.

Si vous souhaitez créer une stratégie de réponse associée à un cluster GKE, vous avez besoin de l'autorisation dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicyRules.create dns.responsePolicyRules.create pour le projet contenant la règle de stratégie de réponse.
dns.responsePolicyRules.delete dns.responsePolicyRules.delete pour le projet contenant la règle de stratégie de réponse.
dns.responsePolicyRules.get dns.responsePolicyRules.get pour le projet contenant la règle de stratégie de réponse.
dns.responsePolicyRules.list dns.responsePolicyRules.list pour le projet contenant la stratégie de réponse.
dns.responsePolicyRules.update dns.responsePolicyRules.update pour le projet contenant la règle de stratégie de réponse.

Rôles

Dans le tableau suivant, vous trouverez le récapitulatif des rôles IAM applicables à l'API Cloud DNS, ainsi que la liste de toutes les autorisations incluses dans chaque rôle. Chaque autorisation est applicable à un type de ressource particulier.

Vous pouvez également utiliser des rôles de base pour effectuer des modifications 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

Gérer le contrôle des accès

Vous pouvez utiliser la console Google Cloud pour gérer le contrôle des accès à vos thèmes et vos projets.

Pour définir les contrôles d'accès au niveau du projet, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page IAM.

    Accéder à la page IAM

  2. Sélectionnez votre projet dans le menu déroulant situé en haut de la page.

  3. Cliquez sur Ajouter.

  4. Dans Nouveaux comptes principaux, saisissez l'adresse e-mail d'un nouveau compte principal.

  5. Sélectionnez le rôle souhaité dans le menu déroulant.

  6. Cliquez sur Enregistrer.

  7. Vérifiez que le compte principal est bien répertorié avec le rôle que vous lui avez accordé.

Étapes suivantes