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

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

Prüfen Sie das Mesh-Feature, um zu prüfen, ob Ihre Steuerungsebene VPC Service Controls GA unterstützt Status 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 den VPCSC_GA_SUPPORTED-Bedingung und möchten VPC Service Controls verwenden. Wenden Sie sich an den Support.

Hinweise

Die VPC Service Controls-Organisationsrichtlinie und der Dienstperimeter werden Organisationsebene an. 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 verteilt ist Perimeter wird nicht unterstützt.

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

    Sie müssen bestimmte Dienste den Listen mit den zulässigen und eingeschränkten Diensten hinzufügen in den Dienstperimeter, damit der 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 Sie diese Dienste nicht hinzufügen, kann die Cloud Service Mesh-Installation fehlschlagen oder nicht ordnungsgemäß funktionieren. Wenn Sie beispielsweise das Tag Mesh Configuration API mit dem Dienstperimeter zu verknüpfen, schlägt die Installation fehl. und die Arbeitslasten erhalten ihre Envoy-Konfiguration nicht vom 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 Barrierefreie VPC-Dienste und legen Sie „Alle eingeschränkten Dienste“ fest, damit die im obigen Schritt eingeschränkten Dienste weiterhin über den Perimeter von VPC Service Controls zugänglich sind.

  4. Wenn Sie Cloud Service Mesh nicht über ein Perimeternetzwerk installieren, fügen Sie ein Eingangsregel, um der Identität, die den Befehl asmcli ausführt, Zugriff auf den Dienstperimeter.

    Weitere Informationen finden Sie unter Dienstperimeter aktualisieren.

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

Folgen Sie der Anleitung in Verwaltetes Cloud Service Mesh konfigurieren Seite. Gehen Sie dann so vor: Bereitstellung der Steuerungsebene prüfen 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 der aktuellen 1.22-Image in einer eingeschränkten Umgebung von VPC Service Controls 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 CRD ControlPlaneRevision 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.