VPC Service Controls pour Cloud Service Mesh (géré)

Cloud Service Mesh (géré) est compatible avec VPC Service Controls en tant que fonctionnalité en disponibilité générale (GA) pour les nouveaux plans de contrôle.

Pour vérifier si votre plan de contrôle est compatible avec la version GA de VPC Service Controls, vérifiez l'état de la fonctionnalité de réseau maillé de votre appartenance pour la condition VPCSC_GA_SUPPORTED.

gcloud container fleet mesh describe --project FLEET_PROJECT_ID

Le résultat est semblable à :

(...)
membershipStates:
  projects/FLEET_PROJECT_NUMBER/locations/MEMBERSHIP_LOCATION/memberships/MEMBERSHIP_ID:
    servicemesh:
      conditions:
      - code: VPCSC_GA_SUPPORTED
        details: This control plane supports VPC Service Controls GA.
        documentationLink: http://cloud.google.com/service-mesh/docs/managed/VPC Service Controls
        severity: INFO
(...)

Si vous disposez d'un plan de contrôle existant qui ne signale pas la condition VPCSC_GA_SUPPORTED et que vous souhaitez vous appuyer sur VPC Service Controls, contactez l'assistance.

Avant de commencer

La règle d'administration et le périmètre de service VPC Service Controls sont configurés au niveau de l'organisation. Assurez-vous que vous disposez des rôles appropriés pour l'administration de VPC Service Controls.

Configurer votre périmètre de service VPC Service Controls

Créez ou mettez à jour votre périmètre de service :

  1. Ajoutez vos projets de cluster et votre projet de parc au périmètre de service. Il n'est pas possible de répartir un maillage de services sur plusieurs périmètres VPC Service Controls.

  2. Ajoutez des services restreints au périmètre de service.

    Vous devez ajouter des services spécifiques aux listes de services autorisés et restreints dans le périmètre de service, afin que votre cluster Cloud Service Mesh puisse y accéder. L'accès à ces services est également restreint au sein du réseau de cloud privé virtuel (VPC) de votre cluster.

    Le fait de ne pas ajouter ces services peut faire échouer l'installation de Cloud Service Mesh ou affecter son fonctionnement. Par exemple, si vous n'ajoutez pas l'API Mesh Configuration au périmètre de service, l'installation échouera et les charges de travail ne recevront pas leur configuration Envoy de la part du plan de contrôle géré.

    Console

    1. Pour modifier le périmètre, suivez les étapes décrites dans la section Mettre à jour un périmètre de service.
    2. Cliquez sur la page Modifier le périmètre de service VPC.
    3. Sous Services restreints, Services à protéger, cliquez sur Ajouter des services.
    4. Dans la boîte de dialogue Spécifier les services à limiter, cliquez sur Filtrer les services, puis saisissez API Mesh Configuration.
    5. Cochez la case du service.
    6. Cliquez sur Ajouter l'API Mesh Configuration.
    7. Répétez les étapes c à f pour ajouter les éléments suivants :
      • API Cloud Service Mesh Certificate Authority
      • API GKE Hub
      • API Cloud IAM
      • API Cloud Monitoring
      • Cloud Trace API
      • API Cloud Monitoring
      • API Google Cloud Resource Manager
      • Google Compute Engine API
      • API Google Container Registry
      • API Artifact Registry
      • API Google Cloud Storage
      • API Cloud Logging
      • API Security Token Service
    8. Cliquez sur Enregistrer.

    gcloud

    Pour mettre à jour la liste des services limités, exécutez la commande update et spécifiez la liste des services à ajouter, séparés par une virgule :

    gcloud access-context-manager perimeters update PERIMETER_NAME \
      --add-restricted-services=meshconfig.googleapis.com,meshca.googleapis.com,gkehub.googleapis.com,iam.googleapis.com,monitoring.googleapis.com,cloudtrace.googleapis.com,monitoring.googleapis.com,cloudresourcemanager.googleapis.com,compute.googleapis.com,containerregistry.googleapis.com,artifactregistry.googleapis.com,storage.googleapis.com,logging.googleapis.com,sts.googleapis.com \
      --policy=POLICY_NAME

    Où :

    • PERIMETER_NAME est le nom du périmètre de service que vous souhaitez mettre à jour.

    • POLICY_NAME est le nom (au format numérique) de la règle d'accès de votre organisation. Exemple :330193482019

  3. Cliquez sur Services accessibles par VPC et définissez-le sur "Tous les services restreints" afin que les services restreints à l'étape ci-dessus soient toujours accessibles à partir du périmètre VPC Service Controls.

  4. À moins d'installer Cloud Service Mesh à partir d'un réseau de périmètre, ajoutez une règle d'entrée pour autoriser l'identité exécutant la commande asmcli à accéder au périmètre de service.

    Pour en savoir plus, consultez la section Mettre à jour un périmètre de service.

Installer Cloud Service Mesh géré dans un périmètre VPC Service Controls

Suivez les étapes de la page Configurer Cloud Service Mesh géré. Vérifiez que le plan de contrôle a bien été provisionné et qu'aucune erreur n'est associée à VPC Service Controls.

Dépannage

Impossible de créer un cluster avec la dernière image GKE 1.22

Un problème connu empêche la création d'un cluster avec la dernière image 1.22 dans un environnement restreint VPC Service Controls. La solution consiste à créer d'abord ce cluster avec l'image du canal GKE par défaut, puis à mettre à jour l'image :

gcloud container clusters create CLUSTER \
  --region REGION \
  --release-channel=rapid \
  --workload-pool=PROJECT_ID.svc.id.goog \
  --project PROJECT_ID
gcloud container clusters upgrade CLUSTER \
  --region REGION \
  --master --cluster-version 1.22 \
  --project PROJECT_ID

Impossible de télécharger les images des conteneurs

Cela peut se produire si les images se trouvent en dehors du périmètre de service. Déplacez les images vers un bucket situé à l'intérieur du périmètre, ou mettez à jour le périmètre pour ajouter une règle de sortie. En règle générale, la règle de sortie peut autoriser les identités sélectionnées à accéder à l'API Container Registry, à l'API Artifact Registry et à l'API Cloud Storage.

Le champ "État" de l'objet CRD ControlPlaneRevision affiche des erreurs liées à VPC Service Controls

Exécutez cette commande pour obtenir plus d'informations sur l'erreur :

gcloud logging read --project=PROJECT_ID \
'protoPayload.metadata.@type=type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata'

Où :

  • PROJECT_ID est l'ID du projet qui rencontre des erreurs.