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

Nur Cloud-

Cloud Service Mesh (verwaltet) unterstützt VPC Service Controls als allgemein verfügbare Funktion für neue Steuerungsebenen.

Wenn Sie prüfen möchten, ob Ihre Steuerungsebene VPC Service Controls GA unterstützt, prüfen Sie den Mesh-Featurestatus 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 Organisationsrichtlinie und der Dienstperimeter von VPC Service Controls 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 über 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 darauf 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 Cloud Service Mesh-Installation fehlschlagen oder nicht ordnungsgemäß funktioniert. Wenn Sie beispielsweise die Mesh Configuration API nicht dem Dienstperimeter hinzufügen, schlägt die Installation fehl und die Arbeitslasten empfangen ihre Envoy-Konfiguration nicht 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 Zugriffsfähige VPC-Dienste und legen Sie den Wert auf „Alle eingeschränkten Dienste“ fest, damit die im obigen Schritt eingeschränkten Dienste weiterhin innerhalb des VPC Service Controls-Perimeters zugänglich sind.

  4. Wenn Sie Cloud Service Mesh nicht aus einem Perimeternetzwerk installieren, fügen Sie eine Regel für eingehenden Traffic hinzu, um der Identität, die den Befehl asmcli ausführt, Zugriff auf den Dienstperimeter zu gewähren.

    Weitere Informationen finden Sie unter Dienstperimeter aktualisieren.

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

Führen Sie die Schritte auf der Seite Verwaltetes Cloud Service Mesh konfigurieren aus. Prüfen Sie dann, ob die Steuerungsebene erfolgreich bereitgestellt wurde und keine VPC Service Controls-Fehler vorliegen.

Fehlerbehebung

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

Es gibt ein bekanntes Problem, das das Erstellen eines Clusters mit dem neuesten 1.22-Image in einer eingeschränkten Umgebung von 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 Statusfeld 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.