securityContext による Pod の堅牢化
最小権限のデフォルトをテンプレートに組み込みます。
「securityContext による Pod の堅牢化」はCoddyKit上の無料Helm Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはHelm Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Helm Academyコースには全4レッスンが含まれています。
デフォルトで堅牢化する理由
最小権限のデフォルト値で提供されるチャートは、インストールされるすべてのクラスターを保護します。ユーザーが追加設定を忘れないことに期待するより、テンプレートにセキュリティを組み込むほうが確実です。
securityContextの2つのレベル
すべてのコンテナに適用されるsecurityContextをPodレベルで設定でき、さらにコンテナごとに、より限定的な設定もできます。そのコンテナでは、コンテナ側の設定がPod側の設定を上書きします。
rootとして実行しない
runAsNonRootをtrueに設定すると、rootとして実行されるコンテナの起動をKubernetesが拒否します。チャートに設定できるデフォルト値の中で、最も効果の大きいものです。
securityContext:
runAsNonRoot: true
runAsUser: 1000読み取り専用のrootファイルシステム
readOnlyRootFilesystemを有効にすると、コンテナは自身のイメージレイヤーに書き込めなくなります。アプリが実際に書き込む必要のあるパスには、emptyDirをマウントしてください。
containers:
- name: app
securityContext:
readOnlyRootFilesystem: trueLinuxケイパビリティを削除する
ほとんどのアプリには特別なカーネル権限は必要ないため、すべてのケイパビリティを削除し、ワークロードが本当に必要とするまれなものだけを追加してください。
capabilities:
drop:
- ALL権限昇格を阻止する
allowPrivilegeEscalationをfalseに設定すると、setuidバイナリを介する場合でも、プロセスが開始時より高い権限を取得できなくなります。🔒
allowPrivilegeEscalation: falsefsGroupを設定する
PodのsecurityContextでfsGroupを使用すると、マウントされたボリュームを非rootユーザーが所属するグループの所有にできます。これにより、権限エラーを回避できます。
securityContext:
fsGroup: 2000privilegedをtrueに設定しない
privilegedコンテナはホストに対するほぼ完全なアクセス権を持つため、チャートのデフォルト値に登場させるべきではありません。未設定のままにしてください。これはfalseを意味します。
オーバーライド可能にする
toYamlを使ってsecurityContextをvaluesに接続し、ユーザーが調整できるようにします。ただし、堅牢化された設定は安全なデフォルト値として維持してください。
securityContext:
{{- toYaml .Values.securityContext | nindent 4 }}Pod Security Standardsに合わせる
これらのデフォルト値はKubernetesのrestricted Pod Security Standardに対応しているため、厳格に制限された名前空間でもチャートを問題なくインストールできます。
インストール後に検証する
実行中のPodのspecをkubectl get pod -o yamlで確認し、securityContextのフィールドを調べて、堅牢化が有効になったことを確認します。
kubectl get pod myapp -o jsonpath='{.spec.securityContext}'クイックチェック
rootユーザーとして実行されるコンテナの起動を阻止する設定はどれですか?
まとめ
runAsNonRoot、ケイパビリティの削除、読み取り専用ファイルシステム、権限昇格の無効化によってPodを堅牢化しました。安全なデフォルト値が、すべてのインストールを保護します。✅
よくある質問
「securityContext による Pod の堅牢化」レッスンは無料ですか?
はい。「securityContext による Pod の堅牢化」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Helm Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Helm Academyコースには全4レッスンが含まれています。
「securityContext による Pod の堅牢化」で何を学びますか?
最小権限のデフォルトをテンプレートに組み込みます。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Helm Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのHelm Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「securityContext による Pod の堅牢化」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このHelm Academyレッスンでコードを書いて実行できますか?
はい。すべてのHelm Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 標準ラベルと命名規則
- 適切で文書化されたデフォルト値
- securityContext による Pod の堅牢化
- バージョンの固定と latest の回避