0Pricing
Helm Academy · レッスン

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: true

Linuxケイパビリティを削除する

ほとんどのアプリには特別なカーネル権限は必要ないため、すべてのケイパビリティを削除し、ワークロードが本当に必要とするまれなものだけを追加してください。

capabilities:
  drop:
    - ALL

権限昇格を阻止する

allowPrivilegeEscalationをfalseに設定すると、setuidバイナリを介する場合でも、プロセスが開始時より高い権限を取得できなくなります。🔒

allowPrivilegeEscalation: false

fsGroupを設定する

PodのsecurityContextでfsGroupを使用すると、マウントされたボリュームを非rootユーザーが所属するグループの所有にできます。これにより、権限エラーを回避できます。

securityContext:
  fsGroup: 2000

privilegedを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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 標準ラベルと命名規則
  2. 適切で文書化されたデフォルト値
  3. securityContext による Pod の堅牢化
  4. バージョンの固定と latest の回避
← Helm Academyに戻る