VPC Service Controls für Cloud Service Mesh (verwaltet)

Cloud Service Mesh (verwaltet) unterstützt VPC Service Controls als allgemein verfügbares Feature (GA-Feature) für neue Steuerebenen.

Ob Ihre Steuerungsebene VPC Service Controls GA unterstützt, sehen Sie am Mesh-Funktionsstatus Ihrer Mitgliedschaft für die Bedingung „VPCSC_GA_SUPPORTED“.

gcloud container fleet mesh describe --project FLEET_PROJECT_ID

Die Ausgabe sieht etwa so aus:

(...)
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
(...)

Wenn Sie eine vorhandene Steuerungsebene haben, die die Bedingung VPCSC_GA_SUPPORTED nicht meldet, und VPC Service Controls verwenden möchten, wenden Sie sich an den Support.

Hinweise

Die VPC Service Controls-Organisationsrichtlinie und der Dienstperimeter werden auf Organisationsebene konfiguriert. Prüfen Sie, ob Ihnen die entsprechenden Rollen für die Verwaltung von VPC Service Controls erteilt wurden.

VPC Service Controls-Dienstperimeter einrichten

Erstellen oder aktualisieren Sie Ihren Dienstperimeter:

  1. Fügen Sie dem Dienstperimeter Ihre Projekte und Ihr Flottenprojekt hinzu. Ein Service Mesh, das auf mehrere VPC Service Controls-Perimeter verteilt ist, wird nicht unterstützt.

  2. Fügen Sie dem Dienstperimeter eingeschränkte Dienste hinzu.

    Sie müssen bestimmte Dienste zu den Listen der zulässigen und eingeschränkten Dienste im Dienstperimeter hinzufügen, damit Ihr Cloud Service Mesh-Cluster auf sie zugreifen kann. Der Zugriff auf diese Dienste wird auch über das VPC-Netzwerk (Virtual Private Cloud) Ihres Clusters eingeschränkt.

    Wenn diese Dienste nicht hinzugefügt werden, kann die Installation von Cloud Service Mesh fehlschlagen oder nicht ordnungsgemäß funktionieren. Wenn Sie beispielsweise die Mesh Configuration API nicht dem Dienstperimeter hinzufügen, schlägt die Installation fehl und die Arbeitslasten erhalten keine Envoy-Konfiguration von der verwalteten Steuerungsebene.

    Console

    1. Zum Bearbeiten des Perimeters befolgen Sie die Schritte unter Dienstperimeter aktualisieren.
    2. Klicken Sie auf die Seite VPC-Dienstperimeter bearbeiten.
    3. Klicken Sie unter Eingeschränkte Dienste, zu schützende Dienste auf Dienste hinzufügen.
    4. Klicken Sie im Dialogfeld Geben Sie Dienste an, die eingeschränkt werden sollen auf Filter-Dienste und geben Sie Mesh Configuration API ein.
    5. Klicken Sie das Kästchen des Dienstes an.
    6. Klicken Sie auf Add Mesh Configuration API.
    7. Wiederholen Sie die Schritte c bis f, um Folgendes hinzuzufügen:
      • Cloud Service Mesh Certificate Authority API
      • GKE Hub API
      • Cloud IAM API
      • Cloud Monitoring API
      • Cloud Trace API
      • Cloud Monitoring API
      • Google Cloud Resource Manager API
      • Google Compute Engine API
      • Google Container Registry API
      • Artifact Registry API
      • Google Cloud Storage API
      • Cloud Logging API
      • Security Token Service API
    8. Klicken Sie auf Speichern.

    gcloud

    Verwenden Sie zum Aktualisieren der Liste der eingeschränkten Dienste den Befehl update und geben Sie die hinzuzufügenden Dienste als durch Kommas getrennte Liste an:

    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

    Wobei:

    • PERIMETER_NAME ist der Name des Dienstperimeters, den Sie aktualisieren möchten.

    • POLICY_NAME ist der numerische Name der Zugriffsrichtlinie Ihrer Organisation. Beispiel: 330193482019.

  3. Klicken Sie auf Über VPC zugängliche Dienste und legen Sie sie auf „Alle eingeschränkten Dienste“ fest, sodass in dem obigen Schritt eingeschränkte Dienste weiterhin innerhalb des VPC Service Controls-Perimeters zugänglich sind.

  4. Wenn Sie Cloud Service Mesh nicht aus einem perimeterinternen Netzwerk installieren, fügen Sie eine Regel für eingehenden Traffic hinzu, damit die Identität, die den Befehl asmcli ausführt, Zugriff auf den Dienstperimeter hat.

    Weitere Informationen finden Sie unter Dienstperimeter aktualisieren.

Verwaltetes Cloud Service Mesh in einem VPC Service Controls-Perimeter installieren

Folgen Sie der Anleitung auf der Seite Verwaltetes Cloud Service Mesh konfigurieren. Prüfen Sie dann, ob die Steuerungsebene erfolgreich bereitgestellt wurde und es gibt keine VPC Service Controls-bezogenen Fehler.

Fehlerbehebung

Cluster kann nicht mit dem neuesten GKE-Image 1.22 erstellt werden

Es gibt ein bekanntes Problem, das die Erstellung eines Clusters mit dem neuesten 1.22-Image in einer Umgebung mit eingeschränkten VPC Service Controls verhindert. Sie können dieses Problem umgehen, indem Sie diesen Cluster zuerst mit dem Standard-GKE Channel-Image erstellen und dann das Image aktualisieren:

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

Container können ihre Images nicht herunterladen.

Das kann passieren, wenn sich die Images außerhalb des Dienstperimeters befinden. Verschieben Sie die Images entweder in einen Bucket innerhalb des Perimeters oder aktualisieren Sie den Perimeter, um eine Regel für ausgehenden Traffic hinzuzufügen. Typischerweise kann die Regel für ausgehenden Traffic ausgewählten Identitäten Zugriff auf die Container Registry API, Artifact Registry API und Cloud Storage API gewähren.

Im Feld „Status“ der ControlPlaneRevision-CRD werden VPC Service Controls-Fehler angezeigt.

Führen Sie diesen Befehl aus, um weitere Informationen zum Fehler zu erhalten:

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

Wobei:

  • PROJECT_ID ist die Projekt-ID des Projekts, in dem Fehler auftreten.