Configurer Certificate Authority Service pour Managed Cloud Service Mesh
Ce guide explique comment configurer le service d'autorité de certification pour Cloud Service Mesh géré. Pour en savoir plus sur Cloud Service Mesh intégré au cluster, consultez la page Installer les fonctionnalités par défaut et le service Certificate Authority (CA).
En plus de l'autorité de certification Cloud Service Mesh, vous pouvez configurer Cloud Service Mesh Certificate Authority Service. Ce guide vous offre l'occasion d'intégrer le service CA, qui est recommandé pour les cas d'utilisation suivants :
- Vous avez besoin de plusieurs autorités de certification différentes pour signer des certificats de charge de travail sur différents clusters.
- Vous devez sauvegarder vos clés de signature dans un HSM géré.
- Vous travaillez dans un secteur hautement réglementé et vous êtes soumis à des exigences de conformité.
- Vous souhaitez associer votre autorité de certification Cloud Service Mesh à un certificat racine d'entreprise personnalisé pour signer les certificats de charge de travail.
Les coûts liés à l'utilisation de l'autorité de certification Cloud Service Mesh sont inclus dans la tarification de Cloud Service Mesh. Le service d'autorité de certification n'est pas inclus dans le prix de base de Cloud Service Mesh et est facturé séparément. En outre, le service d'autorité de certification est fourni avec un contrat de niveau de service explicite, contrairement à l'autorité de certification Cloud Service Mesh.
Conditions requises
Activez l'API requise dans le projet où le pool d'autorités de certification sera configuré.
gcloud services enable privateca.googleapis.com \
--project=CA_PROJECT_ID
Configurer le service d'autorité de certification
- Créez le pool d'autorités de certification au niveau
DevOps
et dans la même région que le cluster qu'il dessert, afin d'éviter des problèmes de latence excessive ou des pannes interrégionales potentielles. Pour en savoir plus, consultez la page Niveaux optimisés pour les charges de travail. - Créez l'autorité de certification afin de disposer d'au moins une autorité de certification active dans le pool d'autorités de certification du même projet que le cluster GKE. Utiliser des autorités de certification subordonnées pour signer Certificats de charge de travail Cloud Service Mesh. Notez le pool d'autorités de certification correspondant à l'autorité de certification subordonnée.
S'il est destiné à seuls les certificats de service pour les charges de travail Cloud Service Mesh, configurez la stratégie d'émission suivante pour le pool d'autorités de certification :
policy.yaml
baselineValues: keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
Pour mettre à jour la stratégie d'émission du pool d'autorités de certification, exécutez la commande suivante :
gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
Pour en savoir plus sur la définition d'une stratégie sur un pool, consultez la section Utiliser une stratégie d'émission de certificat.
Si vous utilisez un modèle de certificat, configurez-le maintenant. Pour plus d'informations, suivez le guide du service CA pour les certificats d'identité de charge de travail. Vérifiez que le modèle de certificat est créé dans la même région que le pool d'autorités de certification. S'il existe plusieurs régions pour les pools d'autorités de certification, créez un modèle de certificat par région.
Rôles requis pour utiliser le service CA
Pour cette intégration, toutes les charges de travail dans Cloud Service Mesh nécessitent les éléments suivants : Rôles IAM Ces liaisons de rôles doivent être appliquées explicitement pour les charges de travail Cloud Service Mesh :
WORKLOAD_IDENTITY="FLEET_PROJECT_ID.svc.id.goog:/allAuthenticatedUsers/"
gcloud privateca pools add-iam-policy-binding CA_POOL \
--project FLEET_PROJECT_ID \
--location ca_region \
--member "group:${WORKLOAD_IDENTITY}" \
--role "roles/privateca.workloadCertificateRequester"
gcloud privateca pools add-iam-policy-binding CA_POOL \
--project FLEET_PROJECT_ID \
--location ca_region \
--member "group:${WORKLOAD_IDENTITY}" \
--role "roles/privateca.auditor"
Si vous utilisez des modèles de certificat :
gcloud privateca templates add-iam-policy-binding CERT_TEMPLATE_ID \
--member "group:${WORKLOAD_IDENTITY}" \
--role "roles/privateca.templateUser"
Limites
- Configurez et sélectionnez l'autorité de certification avant de provisionner votre plan de contrôle Cloud Service Mesh. Il n'est pas possible de modifier l'autorité de certification.
Configurer Cloud Service Mesh géré pour utiliser le service CA
Vérifiez que l'espace de noms
istio-system
existe ou créez-le si tel est le cas. manquant:kubectl create ns istio-system
Vérifiez si le ConfigMap
asm-options
existe dans l'espace de nomsistio-system
:kubectl get configmap/asm-options -n istio-system
Créez le configmap s'il n'existe pas :
kubectl create configmap -n istio-system asm-options
Appliquez un correctif au ConfigMap pour ajouter la configuration CAS :
kubectl patch configmap/asm-options -n istio-system --type merge \ -p '{"data":{"ASM_OPTS": "CA=PRIVATECA;CAAddr=projects/CA_PROJECT_ID/locations/ca_region/caPools/CA_POOL"}}'
Si un modèle de certificat est nécessaire, ajoutez l'ID du modèle à l'adresse du pool d'autorités de certification à l'aide de
:
comme séparateur :kubectl patch configmap/asm-options -n istio-system --type merge \ -p '{"data":{"ASM_OPTS": "CA=PRIVATECA;CAAddr=projects/CA_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID"}}'
Une fois les étapes de configuration terminées, poursuivez l'installation de Cloud Service Mesh géré en activant la gestion automatique.