特権コンテナと機密マウント
このラボでは、EKSクラスタのdefault Namespaceにroot権限を持つprivileged Security Contextを持つコンテナを作成します。この特権コンテナはホストからの機密ディレクトリをマウントし、コンテナ内でボリュームとしてアクセスできるようになります。
この演習では、2つの異なる検出結果が生成されます。PrivilegeEscalation:Kubernetes/PrivilegedContainerは特権権限でコンテナが起動されたことを示し、Persistence:Kubernetes/ContainerWithSensitiveMountはコンテナ内に機密性の高い外部ホストパスがマウントされていることを示します。
検出結果をシミュレーションするために、すでに特定のパラメータが設定された事前構成されたマニフェストを使用します:
apiVersion: v1
kind: Pod
metadata:
name: ubuntu-privileged
spec:
containers:
- name: ubuntu-privileged
image: ubuntu
ports:
- containerPort: 22
securityContext:
privileged: true
volumeMounts:
- mountPath: /host-etc
name: host-etc
volumes:
- name: host-etc
hostPath:
path: /etc
restartPolicy: Never
SecurityContext: privileged: trueを設定することでPodに完全なroot権限を付与します
mountPath: /host-etcは、マップさ れたホストボリュームがコンテナ内で/host-etcでアクセス可能であることを指定します
path: /etcは、ホストシステムの/etcディレクトリがマウントのソースディレクトリになることを指定します
以下のコマンドで上記のマニフェストを適用します:
このPodは一度だけ実行され、Completed状態に達するまで実行されます
数分以内に、GuardDuty検出結果コンソールでPrivilegeEscalation:Kubernetes/PrivilegedContainerとPersistence:Kubernetes/ContainerWithSensitiveMountの2つの検出結果が表示されます。


ここでも、検出結果の詳細、アクション、Detective調査を分析する時間を取りましょう。
以下のコマンドを実行してPodをクリーンアップします: