説明
securityContext.capabilities.add の SYS_ADMIN は、ファイルシステムのマウントなど、多くの Linux 管理操作を許可する強力な capability です。隔離を弱め、侵害時の影響を広げる可能性があります。
allowPrivilegeEscalation: false はこの権限を無効化するものではなく、SYS_ADMIN と組み合わせることはできません。不要な capability 自体を取り除く必要があります。
想定される影響
- 侵害されたプロセスが、アプリケーションに不要なシステム管理操作を行える場合があります。
- ホストマウントや他の権限と組み合わさると、ノードや他のワークロードへ影響する可能性があります。
対処方法
securityContext.capabilities.addから不要なSYS_ADMINを削除してください。- 必要な機能をより限定的な権限で提供するか、隔離した専用処理へ分離できるか確認してください。
privileged、ホストマウント、実行ユーザーも確認してください。対応できる場合はallowPrivilegeEscalation: falseを適用し、アプリケーションをテストしてください。
例
例示用のイメージアドレスは実際のアプリケーションイメージへ置き換えてください。二つの Pod は権限設定を比較しています。
変更前
yaml
apiVersion: v1
kind: Pod
metadata:
name: pod4
spec:
containers:
- name: app
image: images.my-company.example/app:v4
securityContext:
allowPrivilegeEscalation: true
capabilities:
add:
- SYS_ADMIN
SYS_ADMIN と権限昇格を許可しています。アプリケーションに不要なら削除してください。
変更後
yaml
apiVersion: v1
kind: Pod
metadata:
name: pod1
spec:
containers:
- name: app
image: images.my-company.example/app:v4
securityContext:
allowPrivilegeEscalation: false
追加した SYS_ADMIN を削除し、権限昇格も制限しています。既定の capability まですべて削除した構成ではないため、必要な権限だけが残っているか確認してください。