Pour accéder à vos stations de travail, vous pouvez spécifier un domaine personnalisé approuvé
par rapport au domaine cloudworkstations.dev
.
Architecture
Pour utiliser Cloud Workstations avec un nom d'hôte personnalisé, Configurez un cluster privé. et Configurer le point de terminaison Private Service Connect (PSC) pour l'entrée HTTP de votre cluster privé. Vous devez également créer un Équilibreur de charge d'application avec backend PSC qui cible le point de terminaison PSC créé pour votre cluster privé. Cet équilibreur de charge d'application peut être externe interne et gère le certificat SSL de votre domaine personnalisé.
Le schéma suivant illustre un cluster avec un domaine personnalisé:
Avant de commencer
Pour configurer un domaine personnalisé Cloud Workstations, procédez comme suit:
Créer un cluster privé et spécifier un domaine personnalisé approuvé à l'aide de la CLI
gcloud
ou Commandes de l'API REST.Créer un équilibreur de charge d'application externe global avec Private Service Connect (PSC) dans le même projet que celui utilisé pour le projet de cluster de stations de travail. Veuillez noter les points suivants :
Si vous souhaitez que vos stations de travail soient privées (inaccessibles via le réseau Internet public), veillez à créer un équilibreur de charge interne. Pour ce faire, créez une zone DNS privée et ajoutez un enregistrement qui mappe à l'adresse IP interne utilisée par l'équilibreur de charge. Pour en savoir plus sur la création d'un équilibreur de charge interne, consultez la documentation sur le VPC.
Rattachement de service que vous devez référencer dans l'équilibreur de charge peuvent être obtenues sur la ressource du cluster de stations de travail après avoir créé le cluster.
Assurez-vous d'obtenir un certificat et de le spécifier lors du chargement en tant que certificat générique pour votre domaine (par exemple,
*.us-west1-cluster1.example.com
Voir Certificats et équilibreurs de charge Google Cloud pour les types de certificats compatibles avec l'équilibreur de charge que vous avez sélectionnée.Vous pouvez également créer l'équilibreur de charge dans un autre projet vous l'ajoutez à la liste
PrivateClusterConfig.allowedProjects
.Si votre organisation compte plusieurs clusters de stations de travail, vous pouvez utilisez un seul équilibreur de charge avec des services de backend, des certificats et des règles de routage.
Configurer un système de noms de domaine (DNS). Comme il s'agit d'un domaine que vous gérez, configurez un DNS pour ce domaine en mapper tous les sous-domaines du domaine fourni à l'équilibreur de charge. Pour Par exemple, créez une zone DNS pour
us-west1-cluster1.example.com
et ajoutez une Mappage d'entrée*.us-west1-cluster1.example.com
sur l'adresse IP externe utilisés par votre équilibreur de charge.Pour accéder aux stations de travail à l'aide du domaine personnalisé, utilisez le cluster que vous avez créé pour créer une configuration de station de travail, puis créer une station de travail à l'aide de cette configuration de station de travail.
Démarrez votre station de travail et vérifiez l'URL. Quand vous spécifiez un domaine personnalisé, l'URL de la station de travail utilise le format suivant:
https://PORT-WORKSTATION_NAME.DOMAIN
Les parties suivantes de l'URL dépendent de votre configuration:
PORT
: numéro de port, qui correspond au port80
par défaut.WORKSTATION_NAME
: nom de votre station de travail.DOMAIN
: nom de domaine spécifique à votre cluster
Créer un cluster privé
Créez un cluster de stations de travail privé avec un point de terminaison privé :
gcloud
Avant de commencer, assurez-vous d'avoir initialisé la CLI
gcloud
en exécutantgcloud init
et d'avoir spécifié un projet par défaut. Les exemples suivants supposent que vous avez défini votre projet par défaut.Pour créer un cluster de stations de travail privé, exécutez la commande suivante:
gcloud workstations clusters create WORKSTATION_CLUSTER \ --region=REGION \ --domain=DOMAIN \ --enable-private-endpoint
Remplacez les éléments suivants :
WORKSTATION_CLUSTER
: nom du cluster de stations de travail à créer.REGION
: nom de la région du cluster.DOMAIN
: nom de domaine utilisé par Cloud Workstations pour Entrée HTTP. Utilisez un sous-domaine propre à ce cluster pour Exemple :us-west1-cluster1.example.com
.
Pour en savoir plus sur cette commande CLI gcloud
, consultez la
gcloud workstations clusters create
documentation de référence.
curl
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{"domain_config": {"domain": "DOMAIN"}, "private_cluster_config":{"enable_private_endpoint":true}}' https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstation_cluster_id=WORKSTATION_CLUSTER
Remplacez les éléments suivants :
DOMAIN
: nom de domaine utilisé par Cloud Workstations pour Entrée HTTP. Il doit s'agir d'un sous-domaine unique à ce cluster, Exemple :us-west1-cluster1.example.com
.PROJECT_NAME
: nom du projet.REGION
: nom de la région du cluster.WORKSTATION_CLUSTER
: nom du cluster de stations de travail à créer.
Pour en savoir plus sur cette méthode d'API, consultez la documentation de référence de workstationClusters.create
.
REST
POST https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstationClusterId=WORKSTATION_CLUSTER { "domainConfig": { "domain": "DOMAIN" }, "privateClusterConfig": { "enablePrivateEndpoint": true } }
Remplacez les éléments suivants :
PROJECT_NAME
: nom du projet.REGION
: nom de la région du cluster.WORKSTATION_CLUSTER
: nom du cluster de stations de travail à créer.DOMAIN
: nom de domaine utilisé par Cloud Workstations pour Entrée HTTP. Il doit s'agir d'un sous-domaine unique à ce cluster, Exemple :us-west1-cluster1.example.com
.
Pour en savoir plus sur cette méthode d'API, consultez la documentation de référence de workstationClusters.create
.
Créer un équilibreur de charge d'application externe global avec un backend PSC
Suivez ces étapes pour la CLI gcloud
et l'API REST pour créer un
équilibreur de charge d'application externe global avec un backend PSC:
- Créer un NEG pour vous connecter à un service publié
- Ajouter un backend à un équilibreur de charge d'application externe global
- Créer un mappage d'URL pour acheminer les requêtes entrantes vers le service de backend
- Créer un proxy HTTPS cible
- Créer une adresse globale
- Créer une règle de transfert
Créer un NEG pour se connecter à un service publié
Lorsque vous créez un NEG qui pointe vers un service publié, vous avez besoin que le service
URI de rattachement du service. Le rattachement de service a le format suivant:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
Vous pouvez trouver l'URI sur la ressource du cluster de stations de travail.
gcloud
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=REGION \ --network=NETWORK \ --subnet=SUBNET
Remplacez les éléments suivants :
NEG_NAME
: nom du groupe de points de terminaison du réseau.TARGET_SERVICE
: URI du rattachement de service.REGION
: région dans laquelle créer le groupe de points de terminaison du réseau. La région doit être la même que celle du service cible.NETWORK
: réseau dans lequel créer le groupe de points de terminaison du réseau. S'il n'est pas spécifié, le réseau par défaut est utilisé.SUBNET
: sous-réseau utilisé pour créer le point de terminaison du réseau groupe. Le sous-réseau doit se trouver dans la même région que celle du service cible. A doit être fourni si vous fournissez le réseau. Si le réseau et sous-réseau sont omis, le réseau par défaut est utilisé et le sous-réseau par défaut dans leREGION
spécifié est utilisé.
Pour en savoir plus sur cette commande CLI gcloud
, consultez la
gcloud compute network-endpoint-groups create
documentation de référence.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/networkEndpointGroups { "pscTargetService": "TARGET_SERVICE", "networkEndpointType": "PRIVATE_SERVICE_CONNECT", "name": "NEG_NAME" }
Remplacez les éléments suivants :
PROJECT_NAME
: nom du projet.REGION
: région dans laquelle créer le groupe de points de terminaison du réseau. La région doit être la même que celle du service cible.NEG_NAME
: nom du groupe de points de terminaison du réseau.TARGET_SERVICE
: URI du rattachement de service.
Ajouter un backend à un équilibreur de charge d'application externe global
gcloud
Créez un service de backend pour le service cible:
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global
Remplacez
BACKEND_SERVICE_NAME
par le nom du service de backend.Ajoutez le NEG Private Service Connect qui pointe vers le service cible.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=NEG_REGION \ --global
Remplacez les éléments suivants :
BACKEND_SERVICE_NAME
: nom du service de backend.NEG_NAME
: nom du groupe de points de terminaison du réseau.NEG_REGION
: région du groupe de points de terminaison du réseau.
Pour en savoir plus sur cette commande CLI gcloud
, consultez la
gcloud compute backend-services create
et
gcloud compute backend-services add-backend
documentation de référence.
REST
Créez un service de backend pour le service cible:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices { "protocol": "HTTPS", "loadBalancingScheme": "EXTERNAL_MANAGED", "name": "BACKEND_SERVICE_NAME" }
Remplacez
BACKEND_SERVICE_NAME
par le nom du service de backend.Ajoutez le NEG Private Service Connect qui pointe vers le service cible.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices/BACKEND_SERVICE_NAME { "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/NEG_REGION/networkEndpointGroups/NEG_NAME " } ] }
Remplacez les éléments suivants :
PROJECT_NAME
: nom du projet.BACKEND_SERVICE_NAME
: nom du service de backend.NEG_REGION
: région du groupe de points de terminaison du réseau.NEG_NAME
: nom du groupe de points de terminaison du réseau.
Créer un mappage d'URL pour acheminer les requêtes entrantes vers le service de backend
gcloud
gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE_NAME \ --global
Remplacez les éléments suivants :
URL_MAP_NAME
: nom du mappage d'URL à créer.BACKEND_SERVICE_NAME
: nom du backend à utiliser pour les requêtes lorsque ce mappage d'URL ne comporte aucun mappage.
Pour en savoir plus sur cette commande CLI gcloud
, consultez la
gcloud compute url-maps create
documentation de référence.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/urlMaps { "name": "URL_MAP_NAME", "defaultService": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices/BACKEND_SERVICE_NAME " }
Remplacez les éléments suivants :
PROJECT_NAME
: nom du projet.URL_MAP_NAME
: nom du mappage d'URL à créer.BACKEND_SERVICE_NAME
: nom du backend à utiliser pour les requêtes lorsque ce mappage d'URL ne comporte aucun mappage.
Créer un proxy HTTPS cible
Créez un proxy HTTPS cible pour rediriger les requêtes vers votre mappage d'URL. Le proxy est la partie de l'équilibreur de charge qui contient le certificat SSL pour HTTPS Équilibrage de charge. C'est pourquoi vous chargez également votre certificat à cette étape:
gcloud
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --global
Remplacez les éléments suivants :
TARGET_HTTPS_PROXY_NAME
: nom du proxy HTTPS cible à créer.SSL_CERTIFICATE_NAME
: certificat SSL associées à l'équilibreur de charge.URL_MAP_NAME
: ressource de mappage d'URL.
Pour en savoir plus sur cette commande de la CLI gcloud
, consultez la documentation de référence sur gcloud compute target-https-proxies create
.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/targetHttpsProxies { "sslCertificates": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/sslCertificates/SSL_CERTIFICATE_NAME" ], "urlMap": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/urlMaps/URL_MAP_NAME", "name": "TARGET_HTTPS_PROXY_NAME" }
Remplacez les éléments suivants :
PROJECT_NAME
: nom du projet.SSL_CERTIFICATE_NAME
: certificat SSL associées à l'équilibreur de charge.URL_MAP_NAME
: ressource de mappage d'URL.TARGET_HTTPS_PROXY_NAME
: nom du protocole HTTPS cible à créer.
Créer une adresse globale
Réservez une adresse IP statique qui sera utilisée par votre équilibreur de charge:
gcloud
gcloud compute addresses create LB_IP_ADDRESS_NAME \ --global
Remplacez les éléments suivants :
LB_IP_ADDRESS_NAME
: nom de l'adresse IP externe ou interne statique réservée de l'équilibreur de charge.
Pour en savoir plus sur cette commande CLI gcloud
, consultez la
gcloud compute addresses create
documentation de référence.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses { "name": "LB_IP_ADDRESS_NAME" }
Remplacez les éléments suivants :
PROJECT_NAME
: nom du projet.LB_IP_ADDRESS_NAME
: nom de l'élément statique réservé externe ou interne de l'équilibreur de charge.
Créer une règle de transfert
Créez une règle de transfert pour acheminer les requêtes entrantes vers le proxy :
gcloud
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=LB_IP_ADDRESS_NAME \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --global \ --ports=443
Remplacez les éléments suivants :
HTTPS_FORWARDING_RULE_NAME
: nom de la règle de transfert à créer.LB_IP_ADDRESS_NAME
: nom de l'élément statique réservé externe ou interne de l'équilibreur de charge.TARGET_HTTPS_PROXY_NAME
: proxy HTTPS cible qui reçoit le trafic.
Pour en savoir plus sur cette commande de la CLI gcloud
, consultez la documentation de référence sur gcloud compute forwarding-rules create
.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/forwardingRules { "loadBalancingScheme": "EXTERNAL_MANAGED", "networkTier": "PREMIUM", "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/LB_IP_ADDRESS_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/targetHttpsProxies/TARGET_HTTPS_PROXY_NAME", "name": "HTTPS_FORWARDING_RULE_NAME", "portRange": "443-443" }
Remplacez les éléments suivants :
PROJECT_NAME
: nom du projet.LB_IP_ADDRESS_NAME
: nom de l'adresse IP externe ou interne statique réservée de l'équilibreur de charge.TARGET_HTTPS_PROXY_NAME
: proxy HTTPS cible qui reçoit le trafic.HTTPS_FORWARDING_RULE_NAME
: nom de la règle de transfert à créer.
Configurer un DNS
Configurez un DNS et ajoutez un enregistrement qui mappe *.DOMAIN
, par exemple :
*.example.com
: à l'adresse IP réservée à l'étape précédente. Si vous utilisez
à l'aide de Cloud DNS pour gérer le DNS de votre domaine, consultez
Ajoutez un enregistrement DNS.
Créer la configuration et la station de travail
Pour accéder aux stations de travail à l'aide du domaine personnalisé, procédez comme suit:
Utilisez le cluster avec le domaine personnalisé pour Créez une configuration de station de travail.
Créez une station de travail à l'aide de la configuration de la station de travail avec le domaine personnalisé.
Étape suivante
Pour en savoir plus sur la configuration de domaines personnalisés et de clusters privés, consultez la page les éléments suivants:
- Tutoriel: Configurer un domaine à l'aide de Cloud DNS
- Configurer VPC Service Controls et des clusters privés