Gérer les autorisations DNS

Les autorisations DNS vous permettent de prouver que vous êtes propriétaire de domaines pour les certificats gérés par Google. Lors de la création d'un certificat géré par Google, vous pouvez spécifier une ou plusieurs autorisations DNS à utiliser pour le provisionnement et le renouvellement.

Cette page explique comment créer et gérer des autorisations DNS à utiliser avec les certificats gérés par Google.

Pour en savoir plus, consultez Autorisations de domaine.

Créer une autorisation DNS

Une autorisation DNS ne couvre qu'un seul nom de domaine. Vous devez créer une autorisation DNS distincte pour chaque nom de domaine que vous souhaitez utiliser avec le certificat cible.

Si vous créez une autorisation DNS pour un certificat générique, tel que *.myorg.example.com, configurez l'autorisation DNS pour le domaine parent (par exemple, myorg.example.com).

Pour gérer indépendamment les certificats dans plusieurs projets, vous pouvez utiliser l'autorisation DNS PER_PROJECT_RECORD. Le gestionnaire de certificats peut émettre et gérer des certificats pour chaque projet de manière indépendante dans Google Cloud. Les autorisations et les certificats DNS que vous utilisez dans un projet sont autonomes et n'interagissent pas avec ceux d'autres projets.

Console

Vous pouvez créer une autorisation DNS ou en associer une existante lorsque vous créez un certificat. Pour en savoir plus, consultez Créer un certificat géré par Google faisant référence à l'autorisation DNS.

gcloud

Selon vos besoins, vous pouvez créer l'un de ces deux types d'autorisations DNS : FIXED_RECORD ou PER_PROJECT_RECORD. Pour en savoir plus, consultez Autorisation DNS.

Autorisation DNS FIXED_RECORD

Pour créer une autorisation DNS FIXED_RECORD, utilisez la commande gcloud certificate-manager dns-authorizations create suivante :

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type=[FIXED_RECORD] \
    [--location="LOCATION"]

Remplacez les éléments suivants :

  • AUTHORIZATION_NAME : nom de l'autorisation DNS.
  • DOMAIN_NAME : nom du domaine cible pour lequel vous créez cette autorisation DNS. Le nom de domaine doit être un nom de domaine complet, tel que myorg.example.com.
  • LOCATION : emplacement Google Cloud cible où vous créez l'autorisation DNS.

Après avoir créé l'autorisation DNS FIXED_RECORD, vérifiez-la à l'aide de la commande gcloud certificate-manager dns-authorizations describe :

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

Le résultat renvoyé ressemble à ceci : Dans le résultat, recherchez la ligne dnsResourceRecord et obtenez l'enregistrement CNAME (data, name et type) à ajouter à votre configuration DNS.

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
  data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog.
  name: _acme-challenge.myorg.example.com.
  type: CNAME
domain: myorg.example.com
name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

Autorisation DNS PER_PROJECT_RECORD

Pour créer une autorisation DNS PER_PROJECT_RECORD, utilisez la commande gcloud certificate-manager dns-authorizations create suivante :

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type=PER_PROJECT_RECORD \
    [--location="LOCATION"]

Remplacez les éléments suivants :

  • AUTHORIZATION_NAME : nom de l'autorisation DNS.
  • DOMAIN_NAME : nom du domaine cible pour lequel vous créez cette autorisation DNS. Le nom de domaine doit être un nom de domaine complet, tel que myorg.example.com.
  • LOCATION : emplacement Google Cloud cible où vous créez l'autorisation DNS.

Après avoir créé l'autorisation DNS PER_PROJECT_RECORD, vérifiez-la à l'aide de la commande gcloud certificate-manager dns-authorizations describe :

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

Le résultat renvoyé ressemble à ceci : Dans le résultat, recherchez la ligne dnsResourceRecord et obtenez l'enregistrement CNAME (data, name et type) à ajouter à votre configuration DNS.

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
  data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog.
  name: _acme-challenge_ujmmovf2vn55tgye.myorg.example.com
  type: CNAME
domain: myorg.example.com
name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

Terraform

Pour créer une autorisation DNS, vous pouvez utiliser une ressource google_certificate_manager_dns_authorization.

resource "google_certificate_manager_dns_authorization" "default" {
  name        = "${local.name}-dnsauth-${random_id.tf_prefix.hex}"
  description = "The default dns auth"
  domain      = local.domain
  labels = {
    "terraform" : true
  }
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.

API

Pour créer une autorisation DNS, envoyez une requête POST à la méthode dnsAuthorizations.create :

POST /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME"
{
  "domain": "DOMAIN_NAME",
  "type": "PER_PROJECT_RECORD" //optional
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud .
  • LOCATION : emplacement Google Cloud cible où vous créez l'autorisation DNS. Pour l'emplacement global, utilisez global.
  • AUTHORIZATION_NAME : nom de l'autorisation DNS.
  • DOMAIN_NAME : nom du domaine cible pour lequel vous créez cette autorisation DNS. Le nom de domaine doit être un nom de domaine complet, tel que myorg.example.com.

Ajouter l'enregistrement CNAME à votre configuration DNS

Si vous utilisez une solution DNS tierce pour gérer votre DNS, consultez sa documentation pour ajouter l'enregistrement CNAME à la configuration DNS. Si vous utilisezGoogle Cloud pour gérer votre DNS, suivez les étapes décrites dans cette section.

Console

Pour créer un jeu d'enregistrements, procédez comme suit :

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

    Accéder aux zones Cloud DNS

  2. Cliquez sur le nom de la zone DNS à laquelle vous souhaitez ajouter l'enregistrement.

  3. Sur la page Détails de la zone, cliquez sur Ajouter un jeu d'enregistrements standard.

  4. Sur la page Créer un jeu d'enregistrements, saisissez le sous-domaine de la zone DNS dans le champ Nom DNS.

    Lorsque vous saisissez le nom du sous-domaine, assurez-vous que celui-ci, y compris le texte grisé affiché dans le champ Nom DNS, correspond à la valeur complète du champ dnsResourceRecord.name telle qu'elle est affichée dans la sortie de la commande gcloud certificate-manager dns-authorizations describe.

    Consultez les exemples suivants :

    • Si la valeur du champ dnsResourceRecord.name est _acme-challenge.myorg.example.com. et que le texte grisé dans le champ Nom DNS est .example.com., saisissez _acme-challenge.myorg.

    • Si la valeur du champ dnsResourceRecord.name est _acme-challenge.myorg.example.com. et que le texte grisé dans le champ Nom DNS est .myorg.example.com., saisissez _acme-challenge.

    • Si la valeur du champ dnsResourceRecord.name est _acme-challenge_ujmmovf2vn55tgye.myorg.example.com. et que le texte grisé dans le champ Nom DNS est .myorg.example.com., saisissez _acme-challenge_ujmmovf2vn55tgye.

  5. Dans le champ Type d'enregistrement de la ressource, sélectionnez CNAME.

  6. Dans le champ TTL, saisissez une valeur numérique positive correspondant à la durée de vie (Time To Live) de l'enregistrement de la ressource, c'est-à-dire le délai pendant lequel il peut être mis en cache.

  7. Dans la liste Unité TTL, sélectionnez l'unité de temps (par exemple, 30 minutes).

  8. Dans le champ Nom canonique, saisissez la valeur complète du champ dnsResourceRecord.data telle qu'elle s'affiche dans la sortie de la commande gcloud certificate-manager dns-authorizations describe.

  9. Pour saisir des informations supplémentaires, cliquez sur Ajouter un élément.

  10. Cliquez sur Créer.

gcloud

Lorsque vous créez une autorisation DNS, la commande gcloud CLI renvoie l'enregistrement CNAME correspondant. Pour ajouter l'enregistrement CNAME à votre configuration DNS dans la zone DNS du domaine cible, procédez comme suit :

  1. Lancez la transaction d'enregistrement DNS :

    gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
    

    Remplacez DNS_ZONE_NAME par le nom de la zone DNS cible.

  2. Ajoutez l'enregistrement CNAME à la zone DNS cible :

    gcloud dns record-sets transaction add CNAME_RECORD \
        --name="VALIDATION_SUBDOMAIN_NAME.DOMAIN_NAME." \
        --ttl="30" \
        --type="CNAME" \
        --zone="DNS_ZONE_NAME"
    

    Remplacez les éléments suivants :

    • CNAME_RECORD : valeur de données complète de l'enregistrement CNAME renvoyé par la commande Google Cloud CLI qui a créé l'autorisation DNS correspondante.
    • VALIDATION_SUBDOMAIN_NAME : sous-domaine de préfixe de la zone DNS, tel que _acme-challenge. Vous pouvez copier le nom à partir du journal des commandes gcloud certificate-manager dns-authorizations describe, comme décrit dans Créer une autorisation DNS.
    • DOMAIN_NAME : nom du domaine cible.Il doit s'agir d'un nom de domaine complet, tel que myorg.example.com. Vous devez également inclure le point final après le nom de domaine cible.
    • DNS_ZONE_NAME : nom de la zone DNS cible.

    Consultez l'exemple ci-dessous :

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \
        --name="_acme-challenge.myorg.example.com." \
        --ttl="30" \
        --type="CNAME" \
        --zone="myorg-example-com"
    
  3. Exécutez la transaction d'enregistrement DNS pour enregistrer vos modifications :

    gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
    

    Remplacez DNS_ZONE_NAME par le nom de la zone DNS cible.

Terraform

Pour ajouter l'enregistrement CNAME à votre configuration DNS, vous pouvez utiliser une ressource google_dns_record_set.

resource "google_dns_record_set" "cname" {
  name         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].name
  managed_zone = google_dns_managed_zone.default.name
  type         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].type
  ttl          = 300
  rrdatas      = [google_certificate_manager_dns_authorization.default.dns_resource_record[0].data]
}

Modifier une autorisation DNS

Lorsque vous mettez à jour une autorisation DNS, vous pouvez effectuer les opérations suivantes :

  • Spécifier de nouveaux libellés
  • Spécifier une nouvelle description

gcloud

Pour mettre à jour une autorisation DNS, utilisez la commande certificate-manager dns-authorizations update :

gcloud certificate-manager dns-authorizations update AUTHORIZATION_NAME \
    [--update-labels="LABELS"] \
    [--description="DESCRIPTION"] \
    [--location="LOCATION"]

Remplacez les éléments suivants :

  • AUTHORIZATION_NAME : nom de l'autorisation DNS.
  • LABELS : libellés de cette autorisation DNS. Cette option est facultative.
  • DESCRIPTION : description de cette autorisation DNS. Cette option est facultative.
  • LOCATION : emplacement Google Cloud cible. L'emplacement par défaut est global.

API

Mettez à jour une autorisation DNS en envoyant une requête PATCH à la méthode dnsAuthorizations.patch comme suit :

PATCH /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations/AUTHORIZATION_NAME?updateMask=labels,description"
{
    description: "DESCRIPTION",
    labels: { "LABEL_KEY": "LABEL_VALUE" }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud .
  • LOCATION : emplacement Google Cloud cible. L'emplacement par défaut est global.
  • AUTHORIZATION_NAME : nom de l'autorisation DNS.
  • DESCRIPTION : champ facultatif qui spécifie la description de cette autorisation DNS.
  • LABEL_KEY : clé de libellé appliquée à cette autorisation DNS.
  • LABEL_VALUE : valeur de libellé appliquée à cette autorisation DNS.

Lister les autorisations DNS

Vous pouvez afficher toutes les autorisations DNS de votre projet et leurs détails.

gcloud

Pour lister les autorisations DNS, utilisez la commande certificate-manager dns-authorizations list :

gcloud certificate-manager dns-authorizations list \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY" \
    [--location="LOCATION"]

Remplacez les éléments suivants :

  • FILTER : expression qui limite les résultats renvoyés à des valeurs spécifiques.

    Par exemple, vous pouvez filtrer les résultats selon les critères suivants :

    • Domaine : --filter='domain=myorg.example.com'
    • Libellés et heure de création : --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Pour obtenir d'autres exemples de filtrage que vous pouvez utiliser avec Certificate Manager, consultez Trier et filtrer les résultats de liste dans la documentation de Cloud Key Management Service.

  • PAGE_SIZE : nombre de résultats à renvoyer par page.

  • LIMIT : nombre maximal de résultats à renvoyer.

  • SORT_BY : liste de champs name séparés par une virgule selon lesquels les résultats renvoyés sont triés. L'ordre de tri par défaut est croissant. Pour un ordre décroissant, ajoutez un tilde (~) devant le champ.

  • LOCATION : emplacement Google Cloud cible. Pour lister les autorisations DNS de toutes les régions, utilisez - comme valeur. La valeur par défaut est -. Cette option est facultative.

API

Répertoriez toutes les autorisations DNS configurées en envoyant une requête GET à la méthode dnsAuthorizations.list comme suit :

GET /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud .
  • LOCATION : emplacement Google Cloud cible. Pour afficher toutes les autorisations DNS dans tous les emplacements, spécifiez un seul tiret (-).
  • FILTER : expression qui limite les résultats renvoyés à des valeurs spécifiques.

    Par exemple, vous pouvez filtrer les résultats selon les critères suivants :

    • Domaine : --filter='domain=myorg.example.com'
    • Libellés et heure de création : --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
  • PAGE_SIZE : nombre de résultats à renvoyer par page.

  • SORT_BY : liste de champs name séparés par une virgule selon lesquels les résultats renvoyés sont triés. L'ordre de tri par défaut est croissant. Pour un ordre décroissant, ajoutez un tilde (~) devant le champ.

Supprimer une autorisation DNS

Pour supprimer une autorisation DNS attribuée à des certificats gérés par Google, supprimez les certificats avant de supprimer l'autorisation DNS.

gcloud

Pour supprimer une autorisation DNS, utilisez la commande certificate-manager dns-authorizations delete :

gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME \
    [--location="LOCATION"]

Remplacez les éléments suivants :

  • AUTHORIZATION_NAME : nom de l'autorisation DNS.
  • LOCATION : emplacement Google Cloud cible. L'emplacement par défaut est global.

API

Supprimez une autorisation DNS en envoyant une requête DELETE à la méthode dnsAuthorizations.delete comme suit :

DELETE /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations/AUTHORIZATION_NAME

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud .
  • LOCATION : emplacement Google Cloud cible. L'emplacement par défaut est global.
  • AUTHORIZATION_NAME : nom de l'autorisation DNS.

Étapes suivantes