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 pour les nouveaux plans de contrôle.

Pour savoir si votre plan de contrôle est compatible avec VPC Service Controls en disponibilité générale, vérifiez l'état des fonctionnalités du réseau maillé de votre adhésion 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 utiliser 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 d'avoir un maillage de services réparti 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 du 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.

    Ne pas ajouter ces services peut entraîner l'échec de l'installation de Cloud Service Mesh ou un dysfonctionnement. 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 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 cette option sur "Tous les services restreints" pour que les services restreints lors de l'étape ci-dessus soient toujours accessibles depuis le périmètre VPC Service Controls.

  4. À moins que vous n'installiez Cloud Service Mesh à partir d'un réseau situé dans un 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 le maillage Cloud Service géré dans un périmètre VPC Service Controls

Suivez les étapes décrites sur la page Configurer le maillage de services Cloud géré. Ensuite, vérifiez que le plan de contrôle a bien été provisionné et qu'il n'y a aucune erreur lié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 de 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 la CRD ControlPlaneRevision affiche les 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.