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時間