Questa pagina fornisce istruzioni per configurare i criteri di rete a livello di carico di lavoro in Google Distributed Cloud (GDC) con air gap.
I criteri di rete a livello di workload offrono un controllo granulare sulla comunicazione tra i singoli workload all'interno di un progetto. Questa granularità consente un controllo più rigoroso dell'accesso alla rete, migliorando la sicurezza e l'utilizzo delle risorse.
I criteri di rete a livello di workload possono applicare PNP lungo una singola zona. È possibile aggiungere etichette specifiche ai carichi di lavoro all'interno di una singola zona, consentendoti di controllare la comunicazione tra singoli carichi di lavoro all'interno di un progetto o in progetti diversi per quella zona. Per saperne di più, consulta Policy di rete a livello di workload per una singola zona.
Crea un criterio di traffico intra-progetto a livello di workload
Puoi creare una policy di traffico intra-progetto a livello di workload per attivare o disattivare l'accesso alla rete per il traffico tra i workload all'interno di un progetto.
Policy di rete per il traffico intraprogetto a livello di workload in entrata
Quando crei un progetto, crei implicitamente una risorsa di base
ProjectNetworkPolicy
predefinita che consente la comunicazione intra-progetto tra tutti i carichi di lavoro. Questa policy
consente il traffico in entrata da altri workload nello stesso progetto.
Per creare una policy di gestione del traffico intra-progetto a livello di workload, devi prima eliminare la policy di base predefinita. In caso contrario, potrebbero verificarsi comportamenti imprevisti.
Per eliminare la policy di base predefinita, esegui questo comando:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
Per creare una policy di rete per il traffico intra-progetto a livello di workload in entrata, crea e applica la seguente risorsa personalizzata:
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
Sostituisci quanto segue:
GLOBAL_API_SERVER
: il percorso kubeconfig del server API globale. Per saperne di più, vedi Server API globali e di zona. Se non hai ancora generato un file kubeconfig per il server API, consulta la sezione Accedi per maggiori dettagli.PROJECT
: il nome del progetto in cui vuoi consentire il traffico in entrata intraprogetto a livello di workload.SUBJECT_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare i carichi di lavoro di origine. Ad esempio,app
,tier
orole
.SUBJECT_LABEL_VALUE
: il valore associato aSUBJECT_LABEL_KEY
. Specifica quali carichi di lavoro sono l'origine del traffico consentito. Ad esempio, seSUBJECT_LABEL_KEY
èapp
eSUBJECT_LABEL_VALUE
èbackend
, i carichi di lavoro con l'etichettaapp: backend
sono la sorgente di traffico.TARGET_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare i carichi di lavoro di destinazione.TARGET_LABEL_VALUE
: il valore associato aTARGET_LABEL_KEY
. Specifica quali carichi di lavoro sono la destinazione del traffico consentito.
Crea una policy di gestione del traffico tra progetti a livello di carico di lavoro
Puoi creare una policy di traffico tra progetti a livello di workload per attivare o disattivare l'accesso alla rete per il traffico tra workload in progetti diversi.
Policy di rete per il traffico tra progetti a livello di carico di lavoro in uscita
Per creare una policy di rete per il traffico tra progetti a livello di workload in uscita, crea e applica la seguente risorsa personalizzata:
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
Sostituisci quanto segue:
GLOBAL_API_SERVER
: il percorso kubeconfig del server API globale. Per saperne di più, vedi Server API globali e di zona. Se non hai ancora generato un file kubeconfig per il server API, consulta la sezione Accedi per maggiori dettagli.PROJECT_1
: il nome del progetto in cui vuoi consentire il traffico in uscita tra progetti a livello di workload.PROJECT_2
: il nome del progetto a cui vuoi inviare il traffico in uscita tra progetti a livello di workload.SUBJECT_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare i carichi di lavoro di origine. Ad esempio,app
,tier
orole
.SUBJECT_LABEL_VALUE
: il valore associato aSUBJECT_LABEL_KEY
. Specifica quali carichi di lavoro sono l'origine del traffico consentito. Ad esempio, seSUBJECT_LABEL_KEY
èapp
eSUBJECT_LABEL_VALUE
èbackend
, i carichi di lavoro con l'etichettaapp: backend
sono la sorgente di traffico.TARGET_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare i carichi di lavoro di destinazione.TARGET_LABEL_VALUE
: il valore associato aTARGET_LABEL_KEY
. Specifica quali carichi di lavoro sono la destinazione del traffico consentito.
Crea un criterio di gestione del traffico intraprogetto a livello di carico di lavoro per una singola zona
Puoi creare una policy di traffico intra-progetto a livello di workload per abilitare o disabilitare l'accesso alla rete per il traffico tra i workload all'interno di un progetto in una zona specifica.
Policy di rete per il traffico intraprogetto a livello di workload in entrata in una singola zona
Quando crei un progetto, crei implicitamente una risorsa di base
ProjectNetworkPolicy
predefinita che consente la comunicazione intra-progetto tra tutti i carichi di lavoro. Questa policy
consente il traffico in entrata da altri workload nello stesso progetto.
Per creare un criterio di rete per il traffico intra-progetto a livello di workload in entrata a zona singola, devi prima eliminare il criterio di base predefinito. In caso contrario, potrebbero verificarsi comportamenti imprevisti.
Per eliminare la policy di base predefinita, esegui questo comando:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
Per creare un criterio di rete per il traffico intraprogetto a livello di workload Ingress a zona singola, crea e applica la seguente risorsa personalizzata:
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
Sostituisci quanto segue:
GLOBAL_API_SERVER
: il percorso kubeconfig del server API globale. Per saperne di più, vedi Server API globali e di zona. Se non hai ancora generato un file kubeconfig per il server API, consulta la sezione Accedi per maggiori dettagli.PROJECT
: il nome del progetto in cui vuoi consentire il traffico in entrata intraprogetto a livello di workload di una singola zona.SUBJECT_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare i carichi di lavoro di origine. Ad esempio,app
,tier
orole
.SUBJECT_LABEL_VALUE
: il valore associato aSUBJECT_LABEL_KEY
. Specifica quali carichi di lavoro sono l'origine del traffico consentito. Ad esempio, seSUBJECT_LABEL_KEY
èapp
eSUBJECT_LABEL_VALUE
èbackend
, i carichi di lavoro con l'etichettaapp: backend
sono la sorgente di traffico.TARGET_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare i carichi di lavoro di destinazione.TARGET_LABEL_VALUE
: il valore associato aTARGET_LABEL_KEY
. Specifica quali carichi di lavoro sono la destinazione del traffico consentito.ZONE_SUBJECT_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare la zona di origine. Ad esempio,zone
oregion
.ZONE_SUBJECT_LABEL_VALUE
: il valore associato aZONE_SUBJECT_LABEL_KEY
. Specifica la zona di origine del traffico consentito. Ad esempio, seZONE_SUBJECT_LABEL_KEY
èzone
eZONE_SUBJECT_LABEL_VALUE
èus-central1-a
, i carichi di lavoro con l'etichettazone: us-central1-a
sono la sorgente di traffico.ZONE_TARGET_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare la zona di destinazione.ZONE_TARGET_LABEL_VALUE
: il valore associato aZONE_TARGET_LABEL_KEY
. Specifica la zona di destinazione del traffico consentito.
Crea una policy di traffico tra progetti a livello di workload per una singola zona
Puoi creare una policy di traffico tra progetti a livello di workload per una singola zona per attivare o disattivare l'accesso alla rete per il traffico tra workload all'interno di progetti diversi in una zona specifica.
Policy di rete per il traffico tra progetti a livello di workload in uscita da una singola zona
Per creare un criterio di rete per il traffico intraprogetto a livello di workload in uscita da una singola zona, crea e applica la seguente risorsa personalizzata:
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
Sostituisci quanto segue:
GLOBAL_API_SERVER
: il percorso kubeconfig del server API globale. Per saperne di più, vedi Server API globali e di zona. Se non hai ancora generato un file kubeconfig per il server API, consulta la sezione Accedi per maggiori dettagli.PROJECT_1
: il nome del progetto in cui vuoi consentire il traffico in uscita tra progetti a livello di workload di una singola zona.PROJECT_2
: il nome del progetto in cui vuoi inviare il traffico in uscita tra progetti a livello di workload di una singola zona.SUBJECT_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare i carichi di lavoro di origine. Ad esempio,app
,tier
orole
.SUBJECT_LABEL_VALUE
: il valore associato aSUBJECT_LABEL_KEY
. Specifica quali carichi di lavoro sono l'origine del traffico consentito. Ad esempio, seSUBJECT_LABEL_KEY
èapp
eSUBJECT_LABEL_VALUE
èbackend
, i carichi di lavoro con l'etichettaapp: backend
sono la sorgente di traffico.TARGET_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare i carichi di lavoro di destinazione.TARGET_LABEL_VALUE
: il valore associato aTARGET_LABEL_KEY
. Specifica quali carichi di lavoro sono la destinazione del traffico consentito.ZONE_SUBJECT_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare la zona di origine. Ad esempio,zone
oregion
.ZONE_SUBJECT_LABEL_VALUE
: il valore associato aZONE_SUBJECT_LABEL_KEY
. Specifica la zona di origine del traffico consentito. Ad esempio, seZONE_SUBJECT_LABEL_KEY
èzone
eZONE_SUBJECT_LABEL_VALUE
èus-central1-a
, i carichi di lavoro con l'etichettazone: us-central1-a
sono la sorgente di traffico.ZONE_TARGET_LABEL_KEY
: la chiave dell'etichetta utilizzata per selezionare la zona di destinazione.ZONE_TARGET_LABEL_VALUE
: il valore associato aZONE_TARGET_LABEL_KEY
. Specifica la zona di destinazione del traffico consentito.