solutions/gke/kubernetes/cluster-defaults/admin-namespaces/networkpolicy.yaml (106 lines of code) (raw):
# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#########
# AC-4, AC-4(21), SC-7(5), SC-7(9), SC-7(11) - Network Policies to allow or deny ingress and egress traffic to/from gateway-infra namespace
# Allow ingress within namespace
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
namespace: gateway-infra
name: allow-ingress-within-namespace
spec:
podSelector: {}
# AC-4, AC-4(21), SC-7(5), SC-7(9), SC-7(11)
ingress:
# From all pods within the same namespace
- from:
- podSelector: {}
---
# Allow ingress from lb health check
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
namespace: gateway-infra
name: allow-ingress-from-lb-health-check
spec:
podSelector: {}
# AC-4, AC-4(21), SC-7(5), SC-7(9), SC-7(11)
ingress:
- from:
- ipBlock:
cidr: 35.191.0.0/16
- from:
- ipBlock:
cidr: 130.211.0.0/22
- from:
- ipBlock:
cidr: 209.85.152.0/22
- from:
- ipBlock:
cidr: 209.85.204.0/22
---
# Allow egress within namespace
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
namespace: gateway-infra
name: allow-egress-within-namespace
spec:
podSelector: {}
# AC-4, AC-4(21), SC-7(5), SC-7(9), SC-7(11)
egress:
# To all pods within the same namespace
- to:
- podSelector: {}
---
# Allow egress to metadata server
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
namespace: gateway-infra
name: allow-egress-to-metadata-server
spec:
podSelector: {}
# AC-4, AC-4(21), SC-7(5), SC-7(9), SC-7(11)
egress:
# Network policy and Workload Identity
# For clusters running GKE version 1.21.0-gke.1000 and later, allow egress to 169.254.169.252/32 on port 988
# For clusters running GKE Dataplane V2, allow egress to 169.254.169.254/32 on port 80
# Allow access to NodeLocal DNSCache on ip 169.254.20.10 and port 53
- to:
- ipBlock:
cidr: 169.254.169.252/32
ports:
- port: 988
- to:
- ipBlock:
cidr: 169.254.169.254/32
ports:
- port: 53
protocol: UDP
- port: 53
protocol: TCP
- port: 80
- to:
- ipBlock:
cidr: 169.254.20.10/32
ports:
- port: 53
protocol: UDP
- port: 53
protocol: TCP
---
# Allow egress for GCP API
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
namespace: gateway-infra
name: allow-egrees-to-gcp-api
spec:
podSelector: {}
# AC-4, AC-4(21), SC-7(5), SC-7(9), SC-7(11)
egress:
- to:
- ipBlock:
cidr: 10.255.255.254/32
ports:
- port: 443
---
# Allow egress to private IP ranges (includes K8S cluster)
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-private-egress
spec:
podSelector: {}
# AC-4, AC-4(21), SC-7(5), SC-7(9), SC-7(11)
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 10.0.0.0/8
- to:
- ipBlock:
cidr: 192.168.0.0/16
- to:
- ipBlock:
cidr: 172.16.0.0/20