Netzwerkrichtlinien auf Arbeitslastebene erstellen

Auf dieser Seite finden Sie eine Anleitung zum Konfigurieren von Netzwerkrichtlinien auf Arbeitslastebene in Google Distributed Cloud (GDC) ohne Internetverbindung.

Netzwerkrichtlinien auf Arbeitslastebene bieten eine detaillierte Steuerung der Kommunikation zwischen einzelnen Arbeitslasten innerhalb eines Projekts. Diese Granularität ermöglicht eine strengere Kontrolle des Netzwerkzugriffs und verbessert so die Sicherheit und Ressourcennutzung.

Netzwerkrichtlinien auf Arbeitslastebene können PNP in einer einzelnen Zone erzwingen. Arbeitslasten in einer einzelnen Zone können bestimmte Labels hinzugefügt werden. So können Sie die Kommunikation zwischen einzelnen Arbeitslasten innerhalb eines Projekts oder in verschiedenen Projekten für diese Zone steuern. Weitere Informationen finden Sie unter Netzwerkrichtlinie auf Arbeitslast-Ebene für eine einzelne Zone.

Richtlinie für Intra-Project-Traffic auf Arbeitslast-Ebene erstellen

Sie können eine Intra-Project-Traffic-Richtlinie auf Arbeitslast-Ebene erstellen, um den Netzwerkzugriff für Traffic zwischen Arbeitslasten innerhalb eines Projekts zu aktivieren oder zu deaktivieren.

Netzwerkrichtlinie für eingehenden Intra-Projekt-Traffic auf Arbeitslast-Ebene

Wenn Sie ein Projekt erstellen, erstellen Sie implizit eine standardmäßige ProjectNetworkPolicy-Basisressource, die die Kommunikation zwischen allen Arbeitslasten innerhalb des Projekts ermöglicht. Diese Richtlinie lässt eingehenden Traffic von anderen Arbeitslasten im selben Projekt zu.

Wenn Sie eine Richtlinie für Intra-Projekt-Traffic auf Arbeitslastebene erstellen möchten, muss zuerst die Standardbasisrichtlinie gelöscht werden. Andernfalls kann es zu unerwartetem Verhalten kommen.

  1. Führen Sie den folgenden Befehl aus, um die Standard-Basisrichtlinie zu löschen:

    kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
    
  2. So erstellen Sie eine Intra-Projekt-Traffic-Netzwerkrichtlinie auf Ingress-Arbeitslastebene:

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: networking.global.gdc.goog/v1
    kind: ProjectNetworkPolicy
    metadata:
      namespace: PROJECT
      name: allow-intra-project-inbound-traffic-from-target-to-subject
    spec:
      policyType: Ingress
      subject:
        subjectType: UserWorkload
        workloadSelector:
          matchLabels:
            SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE
      ingress:
      - from:
        - projectSelector:
            projects:
              matchNames:
              - PROJECT
            workloads:
              matchLabels:
                TARGET_LABEL_KEY: TARGET_LABEL_VALUE
    EOF
    

    Ersetzen Sie Folgendes:

    • GLOBAL_API_SERVER: Der Kubeconfig-Pfad des globalen API-Servers. Weitere Informationen finden Sie unter Globale und zonale API-Server. Wenn Sie noch keine kubeconfig-Datei für den API-Server generiert haben, finden Sie weitere Informationen unter Anmelden.
    • PROJECT: Der Name des Projekts, in dem Sie eingehenden Intra-Projekt-Traffic auf Workload-Ebene zulassen möchten.
    • SUBJECT_LABEL_KEY: Der Schlüssel des Labels, mit dem die Quellarbeitslasten ausgewählt werden. Beispiel: app, tier oder role.
    • SUBJECT_LABEL_VALUE: Der Wert, der mit dem SUBJECT_LABEL_KEY verknüpft ist. Damit wird angegeben, welche Arbeitslasten die Quelle des zulässigen Traffics sind. Wenn SUBJECT_LABEL_KEY beispielsweise app und SUBJECT_LABEL_VALUE backend ist, sind Arbeitslasten mit dem Label app: backend die Traffic-Quelle.
    • TARGET_LABEL_KEY: Der Schlüssel des Labels, mit dem die Zielarbeitslasten ausgewählt werden.
    • TARGET_LABEL_VALUE: Der Wert, der mit dem TARGET_LABEL_KEY verknüpft ist. Damit wird angegeben, welche Arbeitslasten das Ziel des zulässigen Traffics sind.

Projektübergreifende Traffic-Richtlinie auf Arbeitslastenebene erstellen

Sie können eine projektübergreifende Traffic-Richtlinie auf Arbeitslastebene erstellen, um den Netzwerkzugriff für Traffic zwischen Arbeitslasten in verschiedenen Projekten zu aktivieren oder zu deaktivieren.

Netzwerkrichtlinie für projektübergreifenden Traffic auf Arbeitslast-Ebene für ausgehenden Traffic

  • Wenn Sie eine richtlinienbasierte Netzwerkrichtlinie für ausgehenden Traffic auf Arbeitslastebene für mehrere Projekte erstellen möchten, erstellen Sie die folgende benutzerdefinierte Ressource und wenden Sie sie an:

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: networking.global.gdc.goog/v1
    kind: ProjectNetworkPolicy
    metadata:
      namespace: PROJECT_1
      name: allow-cross-project-outbound-traffic-to-subject-from-target
    spec:
      policyType: Egress
      subject:
        subjectType: UserWorkload
        workloadSelector:
          matchLabels:
            SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE
      egress:
      - to:
        - projectSelector:
            projects:
              matchNames:
              - PROJECT_2
            workloads:
              matchLabels:
                TARGET_LABEL_KEY: TARGET_LABEL_VALUE
    EOF
    

    Ersetzen Sie Folgendes:

    • GLOBAL_API_SERVER: Der Kubeconfig-Pfad des globalen API-Servers. Weitere Informationen finden Sie unter Globale und zonale API-Server. Wenn Sie noch keine kubeconfig-Datei für den API-Server generiert haben, finden Sie weitere Informationen unter Anmelden.
    • PROJECT_1: Der Name des Projekts, in dem Sie ausgehenden Traffic auf Workload-Ebene zwischen Projekten zulassen möchten.
    • PROJECT_2: Der Name des Projekts, an das der projektübergreifende ausgehende Traffic auf Arbeitslastebene gesendet werden soll.
    • SUBJECT_LABEL_KEY: Der Schlüssel des Labels, mit dem die Quellarbeitslasten ausgewählt werden. Beispiel: app, tier oder role.
    • SUBJECT_LABEL_VALUE: Der Wert, der mit dem SUBJECT_LABEL_KEY verknüpft ist. Damit wird angegeben, welche Arbeitslasten die Quelle des zulässigen Traffics sind. Wenn SUBJECT_LABEL_KEY beispielsweise app und SUBJECT_LABEL_VALUE backend ist, sind Arbeitslasten mit dem Label app: backend die Traffic-Quelle.
    • TARGET_LABEL_KEY: Der Schlüssel des Labels, mit dem die Zielarbeitslasten ausgewählt werden.
    • TARGET_LABEL_VALUE: Der Wert, der mit dem TARGET_LABEL_KEY verknüpft ist. Damit wird angegeben, welche Arbeitslasten das Ziel des zulässigen Traffics sind.

Richtlinie für Intra-Projekt-Traffic auf Arbeitslast- und Zonenebene erstellen

Sie können eine Richtlinie für Intra-Projekt-Traffic auf Arbeitslast-Ebene für eine einzelne Zone erstellen, um den Netzwerkzugriff für Traffic zwischen Arbeitslasten innerhalb eines Projekts in einer bestimmten Zone zu aktivieren oder zu deaktivieren.

Netzwerkrichtlinie für Intra-Project-Traffic auf Arbeitslast-Ebene für eingehenden Traffic in einer einzelnen Zone

Wenn Sie ein Projekt erstellen, erstellen Sie implizit eine standardmäßige ProjectNetworkPolicy-Basisressource, die die Kommunikation zwischen allen Arbeitslasten innerhalb des Projekts ermöglicht. Diese Richtlinie lässt eingehenden Traffic von anderen Arbeitslasten im selben Projekt zu.

Wenn Sie eine Netzwerkrichtlinie für Intra-Project-Traffic auf Arbeitslastebene für eingehenden Traffic in einer einzelnen Zone erstellen möchten, muss zuerst die Standardbasisrichtlinie gelöscht werden. Andernfalls kann es zu unerwartetem Verhalten kommen.

  1. Führen Sie den folgenden Befehl aus, um die Standard-Basisrichtlinie zu löschen:

    kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
    
  2. Wenn Sie eine Intra-Projekt-Traffic-Netzwerkrichtlinie auf Arbeitslastebene für Ingress mit einer einzelnen Zone erstellen möchten, erstellen und wenden Sie die folgende benutzerdefinierte Ressource an:

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: networking.global.gdc.goog/v1
    kind: ProjectNetworkPolicy
    metadata:
      namespace: PROJECT
      name: allow-single-zone-intra-project-inbound-traffic-from-target-to-subject
    spec:
      policyType: Ingress
      subject:
        subjectType: UserWorkload
        workloadSelector:
          matchLabels:
            SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE
            ZONE_SUBJECT_LABEL_KEY: ZONE_SUBJECT_LABEL_VALUE
      ingress:
      - from:
        - projectSelector:
            projects:
              matchNames:
              - PROJECT
            workloads:
              matchLabels:
                TARGET_LABEL_KEY: TARGET_LABEL_VALUE
                ZONE_TARGET_LABEL_KEY: ZONE_TARGET_LABEL_VALUE
    EOF
    

    Ersetzen Sie Folgendes:

    • GLOBAL_API_SERVER: Der Kubeconfig-Pfad des globalen API-Servers. Weitere Informationen finden Sie unter Globale und zonale API-Server. Wenn Sie noch keine kubeconfig-Datei für den API-Server generiert haben, finden Sie weitere Informationen unter Anmelden.
    • PROJECT: Der Name des Projekts, in dem Sie eingehenden Intra-Projekt-Traffic auf Workload-Ebene für einzelne Zonen zulassen möchten.
    • SUBJECT_LABEL_KEY: Der Schlüssel des Labels, mit dem die Quellarbeitslasten ausgewählt werden. Beispiel: app, tier oder role.
    • SUBJECT_LABEL_VALUE: Der Wert, der mit dem SUBJECT_LABEL_KEY verknüpft ist. Damit wird angegeben, welche Arbeitslasten die Quelle des zulässigen Traffics sind. Wenn SUBJECT_LABEL_KEY beispielsweise app und SUBJECT_LABEL_VALUE backend ist, sind Arbeitslasten mit dem Label app: backend die Traffic-Quelle.
    • TARGET_LABEL_KEY: Der Schlüssel des Labels, mit dem die Zielarbeitslasten ausgewählt werden.
    • TARGET_LABEL_VALUE: Der Wert, der mit dem TARGET_LABEL_KEY verknüpft ist. Damit wird angegeben, welche Arbeitslasten das Ziel des zulässigen Traffics sind.
    • ZONE_SUBJECT_LABEL_KEY: Der Schlüssel des Labels, das zum Auswählen der Quellzone verwendet wird. Beispiel: zone oder region.
    • ZONE_SUBJECT_LABEL_VALUE: Der Wert, der mit dem ZONE_SUBJECT_LABEL_KEY verknüpft ist. Sie gibt an, welche Zone die Quelle des zulässigen Traffics ist. Wenn ZONE_SUBJECT_LABEL_KEY beispielsweise zone und ZONE_SUBJECT_LABEL_VALUE us-central1-a ist, sind Arbeitslasten mit dem Label zone: us-central1-a die Traffic-Quelle.
    • ZONE_TARGET_LABEL_KEY: Der Schlüssel des Labels, mit dem die Zielzone ausgewählt wird.
    • ZONE_TARGET_LABEL_VALUE: Der Wert, der mit dem ZONE_TARGET_LABEL_KEY verknüpft ist. Sie gibt an, welche Zone das Ziel des zulässigen Traffics ist.

Projektübergreifende Traffic-Richtlinie auf Arbeitslastenebene für eine einzelne Zone erstellen

Sie können eine projektübergreifende Traffic-Richtlinie auf Arbeitslastebene für eine einzelne Zone erstellen, um den Netzwerkzugriff für Traffic zwischen Arbeitslasten in verschiedenen Projekten in einer bestimmten Zone zu aktivieren oder zu deaktivieren.

Netzwerkrichtlinie für projektübergreifenden Traffic auf Arbeitslastebene für ausgehenden Traffic in einer einzelnen Zone

  • Wenn Sie eine netzwerkrichtlinie für den Intra-Projekt-Traffic auf Arbeitslast- und Einzelzonen-Egress-Ebene erstellen möchten, erstellen und wenden Sie die folgende benutzerdefinierte Ressource an:

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: networking.global.gdc.goog/v1
    kind: ProjectNetworkPolicy
    metadata:
      namespace: PROJECT_1
      name: allow-single-zone-cross-project-outbound-traffic-to-subject-from-target
    spec:
      policyType: Egress
      subject:
        subjectType: UserWorkload
        workloadSelector:
          matchLabels:
            SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE
            ZONE_SUBJECT_LABEL_KEY: ZONE_SUBJECT_LABEL_VALUE
      egress:
      - to:
        - projectSelector:
            projects:
              matchNames:
              - PROJECT_2
            workloads:
              matchLabels:
                TARGET_LABEL_KEY: TARGET_LABEL_VALUE
                ZONE_TARGET_LABEL_KEY: ZONE_TARGET_LABEL_VALUE
    EOF
    

    Ersetzen Sie Folgendes:

    • GLOBAL_API_SERVER: Der Kubeconfig-Pfad des globalen API-Servers. Weitere Informationen finden Sie unter Globale und zonale API-Server. Wenn Sie noch keine kubeconfig-Datei für den API-Server generiert haben, finden Sie weitere Informationen unter Anmelden.
    • PROJECT_1: Der Name des Projekts, in dem Sie ausgehenden Traffic auf Workload-Ebene zwischen Projekten in einer einzelnen Zone zulassen möchten.
    • PROJECT_2: Der Name des Projekts, an das Sie den projektübergreifenden ausgehenden Traffic auf Arbeitslastebene für eine einzelne Zone senden möchten.
    • SUBJECT_LABEL_KEY: Der Schlüssel des Labels, mit dem die Quellarbeitslasten ausgewählt werden. Beispiel: app, tier oder role.
    • SUBJECT_LABEL_VALUE: Der Wert, der mit dem SUBJECT_LABEL_KEY verknüpft ist. Damit wird angegeben, welche Arbeitslasten die Quelle des zulässigen Traffics sind. Wenn SUBJECT_LABEL_KEY beispielsweise app und SUBJECT_LABEL_VALUE backend ist, sind Arbeitslasten mit dem Label app: backend die Traffic-Quelle.
    • TARGET_LABEL_KEY: Der Schlüssel des Labels, mit dem die Zielarbeitslasten ausgewählt werden.
    • TARGET_LABEL_VALUE: Der Wert, der mit dem TARGET_LABEL_KEY verknüpft ist. Damit wird angegeben, welche Arbeitslasten das Ziel des zulässigen Traffics sind.
    • ZONE_SUBJECT_LABEL_KEY: Der Schlüssel des Labels, das zum Auswählen der Quellzone verwendet wird. Beispiel: zone oder region.
    • ZONE_SUBJECT_LABEL_VALUE: Der Wert, der mit dem ZONE_SUBJECT_LABEL_KEY verknüpft ist. Sie gibt an, welche Zone die Quelle des zulässigen Traffics ist. Wenn ZONE_SUBJECT_LABEL_KEY beispielsweise zone und ZONE_SUBJECT_LABEL_VALUE us-central1-a ist, sind Arbeitslasten mit dem Label zone: us-central1-a die Traffic-Quelle.
    • ZONE_TARGET_LABEL_KEY: Der Schlüssel des Labels, mit dem die Zielzone ausgewählt wird.
    • ZONE_TARGET_LABEL_VALUE: Der Wert, der mit dem ZONE_TARGET_LABEL_KEY verknüpft ist. Sie gibt an, welche Zone das Ziel des zulässigen Traffics ist.