yuichi1992_west
2023年05月28日に参加
学習履歴詳細
CKS資格学習 Node Metadata Protection
ノードのメタデータ保護の必要性
攻撃者からコントロールプレーンにアクセスされ、ノードに関する情報(IPアドレス、ホスト名等)を取得されないために必要。主にNetworkPolicyやClusterRoleによって保護する。NetworkPolicyの例
コントロールプレーンのIPアドレス取得
kubectl get node controlplane -o jsonpath="{.status.addresses[0].address}"
Podからコントロールプレーンへのアクセスを拒否し、メタデータの取得を防ぐ
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-metadata
namespace: default
spec:
podSelector:
matchLabels:
app: app
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
except:
- <controlplane-ip>/32 # Replace with the actual IP address of the controlplane node
- RBAC(ClusterRole/ClusterRolebinding)の例
特定のユーザやServiceAccoutのみノード状態が見られるようにする。これにより不正なノードのメタデータの不正取得を防ぐ。 kubectl create clusterrole node-viewer --verb=get --verb=list --verb=watch --resource=nodes
- mTLS (相互TLS認証)
Istioの導入等が有効
- 参考文献
https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/
CKS(Certified Kubernetes Security Specialist)
2024年12月01日(日)
1.0時間