Cette page explique comment configurer des règles de réseau au niveau de la charge de travail dans Google Distributed Cloud (GDC) sous air gap.
Les règles de réseau au niveau de la charge de travail offrent un contrôle précis de la communication entre les charges de travail individuelles d'un projet. Cette précision permet un contrôle plus strict de l'accès au réseau, ce qui améliore la sécurité et l'utilisation des ressources.
Les règles de réseau au niveau de la charge de travail peuvent appliquer le PNP dans une seule zone. Vous pouvez ajouter des libellés spécifiques aux charges de travail d'une même zone. Cela vous permet de contrôler la communication entre les charges de travail individuelles d'un projet ou de différents projets pour cette zone. Pour en savoir plus, consultez Règles réseau au niveau de la charge de travail à zone unique.
Créer une règle de trafic intra-projet au niveau de la charge de travail
Vous pouvez créer une règle de trafic intra-projet au niveau de la charge de travail pour activer ou désactiver l'accès au réseau pour le trafic entre les charges de travail d'un projet.
Stratégie de réseau pour le trafic Ingress au niveau de la charge de travail intra-projet
Lorsque vous créez un projet, vous créez implicitement une ressource ProjectNetworkPolicy
de base par défaut qui permet la communication intra-projet entre toutes les charges de travail. Cette règle autorise le trafic entrant provenant d'autres charges de travail du même projet.
Pour créer une règle de trafic intra-projet au niveau de la charge de travail, vous devez d'abord supprimer la règle de base par défaut. Dans le cas contraire, un comportement inattendu peut se produire.
Pour supprimer la règle de base par défaut, exécutez la commande suivante :
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
Pour créer une règle de réseau de trafic intra-projet au niveau de la charge de travail d'entrée, créez et appliquez la ressource personnalisée suivante :
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
Remplacez les éléments suivants :
GLOBAL_API_SERVER
: chemin d'accès au fichier kubeconfig du serveur d'API global. Pour en savoir plus, consultez Serveurs d'API globaux et zonaux. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API, consultez Se connecter pour en savoir plus.PROJECT
: nom du projet dans lequel vous souhaitez autoriser le trafic entrant intra-projet au niveau de la charge de travail.SUBJECT_LABEL_KEY
: clé du libellé utilisé pour sélectionner les charges de travail sources. Par exemple,app
,tier
ourole
.SUBJECT_LABEL_VALUE
: valeur associée àSUBJECT_LABEL_KEY
. Il spécifie les charges de travail qui sont à l'origine du trafic autorisé. Par exemple, siSUBJECT_LABEL_KEY
estapp
et queSUBJECT_LABEL_VALUE
estbackend
, les charges de travail portant le libelléapp: backend
sont la source de trafic.TARGET_LABEL_KEY
: clé du libellé utilisé pour sélectionner les charges de travail de destination.TARGET_LABEL_VALUE
: valeur associée àTARGET_LABEL_KEY
. Il spécifie les charges de travail qui sont la destination du trafic autorisé.
Créer une règle de trafic inter-projets au niveau de la charge de travail
Vous pouvez créer une règle de trafic interprojets au niveau de la charge de travail pour activer ou désactiver l'accès au réseau pour le trafic entre les charges de travail de différents projets.
Stratégie de réseau pour le trafic de sortie inter-projets au niveau de la charge de travail
Pour créer une règle de réseau de trafic inter-projets au niveau de la charge de travail de sortie, créez et appliquez la ressource personnalisée suivante :
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
Remplacez les éléments suivants :
GLOBAL_API_SERVER
: chemin d'accès au fichier kubeconfig du serveur d'API global. Pour en savoir plus, consultez Serveurs d'API globaux et zonaux. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API, consultez Se connecter pour en savoir plus.PROJECT_1
: nom du projet pour lequel vous souhaitez autoriser le trafic sortant inter-projets au niveau de la charge de travail.PROJECT_2
: nom du projet vers lequel vous souhaitez envoyer le trafic sortant multiprojet au niveau de la charge de travail.SUBJECT_LABEL_KEY
: clé du libellé utilisé pour sélectionner les charges de travail sources. Par exemple,app
,tier
ourole
.SUBJECT_LABEL_VALUE
: valeur associée àSUBJECT_LABEL_KEY
. Il spécifie les charges de travail qui sont à l'origine du trafic autorisé. Par exemple, siSUBJECT_LABEL_KEY
estapp
et queSUBJECT_LABEL_VALUE
estbackend
, les charges de travail portant le libelléapp: backend
sont la source de trafic.TARGET_LABEL_KEY
: clé du libellé utilisé pour sélectionner les charges de travail de destination.TARGET_LABEL_VALUE
: valeur associée àTARGET_LABEL_KEY
. Il spécifie les charges de travail qui sont la destination du trafic autorisé.
Créer une règle de trafic intra-projet au niveau de la charge de travail dans une seule zone
Vous pouvez créer une règle de trafic intra-projet au niveau de la charge de travail pour une seule zone afin d'activer ou de désactiver l'accès au réseau pour le trafic entre les charges de travail d'un projet dans une zone spécifique.
Stratégie réseau de trafic intra-projet au niveau de la charge de travail d'entrée à zone unique
Lorsque vous créez un projet, vous créez implicitement une ressource ProjectNetworkPolicy
de base par défaut qui permet la communication intra-projet entre toutes les charges de travail. Cette règle autorise le trafic entrant provenant d'autres charges de travail du même projet.
Pour créer une règle de réseau de trafic intra-projet au niveau de la charge de travail d'entrée à zone unique, la règle de base par défaut doit d'abord être supprimée. Dans le cas contraire, un comportement inattendu peut se produire.
Pour supprimer la règle de base par défaut, exécutez la commande suivante :
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
Pour créer une règle de réseau de trafic intra-projet au niveau de la charge de travail Ingress à zone unique, créez et appliquez la ressource personnalisée suivante :
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
Remplacez les éléments suivants :
GLOBAL_API_SERVER
: chemin d'accès au fichier kubeconfig du serveur d'API global. Pour en savoir plus, consultez Serveurs d'API globaux et zonaux. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API, consultez Se connecter pour en savoir plus.PROJECT
: nom du projet dans lequel vous souhaitez autoriser le trafic entrant intra-projet au niveau de la charge de travail à zone unique.SUBJECT_LABEL_KEY
: clé du libellé utilisé pour sélectionner les charges de travail sources. Par exemple,app
,tier
ourole
.SUBJECT_LABEL_VALUE
: valeur associée àSUBJECT_LABEL_KEY
. Il spécifie les charges de travail qui sont à l'origine du trafic autorisé. Par exemple, siSUBJECT_LABEL_KEY
estapp
et queSUBJECT_LABEL_VALUE
estbackend
, les charges de travail portant le libelléapp: backend
sont la source de trafic.TARGET_LABEL_KEY
: clé du libellé utilisé pour sélectionner les charges de travail de destination.TARGET_LABEL_VALUE
: valeur associée àTARGET_LABEL_KEY
. Il spécifie les charges de travail qui sont la destination du trafic autorisé.ZONE_SUBJECT_LABEL_KEY
: clé du libellé utilisé pour sélectionner la zone source. Par exemple,zone
ouregion
.ZONE_SUBJECT_LABEL_VALUE
: valeur associée àZONE_SUBJECT_LABEL_KEY
. Elle indique la zone qui est la source du trafic autorisé. Par exemple, siZONE_SUBJECT_LABEL_KEY
estzone
et queZONE_SUBJECT_LABEL_VALUE
estus-central1-a
, les charges de travail portant le libellézone: us-central1-a
sont la source de trafic.ZONE_TARGET_LABEL_KEY
: clé du libellé utilisé pour sélectionner la zone de destination.ZONE_TARGET_LABEL_VALUE
: valeur associée àZONE_TARGET_LABEL_KEY
. Elle spécifie la zone de destination du trafic autorisé.
Créer une règle de trafic inter-projets au niveau de la charge de travail à zone unique
Vous pouvez créer une règle de trafic interprojets au niveau de la charge de travail à zone unique pour activer ou désactiver l'accès au réseau pour le trafic entre les charges de travail de différents projets dans une zone spécifique.
Stratégie de réseau de trafic inter-projets au niveau de la charge de travail de sortie à zone unique
Pour créer une règle de réseau de trafic intra-projet au niveau de la charge de travail de sortie d'une seule zone, créez et appliquez la ressource personnalisée suivante :
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
Remplacez les éléments suivants :
GLOBAL_API_SERVER
: chemin d'accès au fichier kubeconfig du serveur d'API global. Pour en savoir plus, consultez Serveurs d'API globaux et zonaux. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API, consultez Se connecter pour en savoir plus.PROJECT_1
: nom du projet dans lequel vous souhaitez autoriser le trafic sortant multizone au niveau de la charge de travail.PROJECT_2
: nom du projet vers lequel vous souhaitez envoyer le trafic sortant multizone au niveau de la charge de travail.SUBJECT_LABEL_KEY
: clé du libellé utilisé pour sélectionner les charges de travail sources. Par exemple,app
,tier
ourole
.SUBJECT_LABEL_VALUE
: valeur associée àSUBJECT_LABEL_KEY
. Il spécifie les charges de travail qui sont à l'origine du trafic autorisé. Par exemple, siSUBJECT_LABEL_KEY
estapp
et queSUBJECT_LABEL_VALUE
estbackend
, les charges de travail portant le libelléapp: backend
sont la source de trafic.TARGET_LABEL_KEY
: clé du libellé utilisé pour sélectionner les charges de travail de destination.TARGET_LABEL_VALUE
: valeur associée àTARGET_LABEL_KEY
. Il spécifie les charges de travail qui sont la destination du trafic autorisé.ZONE_SUBJECT_LABEL_KEY
: clé du libellé utilisé pour sélectionner la zone source. Par exemple,zone
ouregion
.ZONE_SUBJECT_LABEL_VALUE
: valeur associée àZONE_SUBJECT_LABEL_KEY
. Elle indique la zone qui est la source du trafic autorisé. Par exemple, siZONE_SUBJECT_LABEL_KEY
estzone
et queZONE_SUBJECT_LABEL_VALUE
estus-central1-a
, les charges de travail portant le libellézone: us-central1-a
sont la source de trafic.ZONE_TARGET_LABEL_KEY
: clé du libellé utilisé pour sélectionner la zone de destination.ZONE_TARGET_LABEL_VALUE
: valeur associée àZONE_TARGET_LABEL_KEY
. Elle spécifie la zone de destination du trafic autorisé.