Kubernetes のセキュリティに関する基本事項を理解し、クラスターとアプリケーション セキュリティ ガイダンスのセキュリティで保護されたセットアップを確認します。 Kubernetes クラスターの分散型の動的な性質により、Kubernetes のセキュリティはコンテナー ライフサイクル全体で重要です。 アプリケーションは、アプリケーションのセキュリティを構成するサービスチェーン内の最も弱いリンクと同じくらい安全です。
計画、トレーニング、証明
作業を開始すると、次のセキュリティの要点チェックリストと Kubernetes セキュリティ リソースが、クラスターの運用とアプリケーションのセキュリティの計画に役立ちます。 このセクションの終わりまでに、次の質問に答えることができるようになります。
- Kubernetes クラスターのセキュリティと脅威モデルを確認しましたか?
- クラスターで Kubernetes ロールベースのアクセス制御が有効になっていますか?
セキュリティ チェックリスト:
セキュリティに関する重要事項に関するホワイト ペーパーを理解する。 セキュリティで保護された Kubernetes 環境の主な目標は、実行するアプリケーションを確実に保護し、セキュリティの問題を迅速に特定して対処できること、および将来の同様の問題を防ぐことです。 詳細については、
The Definitive Guide to Securing Kubernetes
(ホワイト ペーパー) を参照してください。クラスター ノードのセキュリティ強化のセットアップを確認します。 セキュリティが強化されたホスト OS は、攻撃の対象領域を減らし、コンテナーを安全にデプロイできるようにします。 詳細については、 AKS 仮想マシン ホストでのセキュリティ強化に関するページを参照してください。
クラスター Kubernetes ロールベースのアクセス制御 (Kubernetes RBAC) を設定します。 この制御メカニズムを使用すると、リソースの作成や変更、実行中のアプリケーション ワークロードからのログの表示などを行うアクセス許可をユーザーまたはユーザーのグループに割り当てることができます。
詳細については、以下を参照してください。
運用環境にデプロイし、Kubernetes セキュリティのベスト プラクティスを適用する
運用環境用にアプリケーションを準備するときは、ベスト プラクティスの最小セットを実装します。 この段階では、このチェックリストを使用してください。 このセクションの終わりまでに、次の質問に答えることができるようになります。
- イングレス、エグレス、ポッド内通信のネットワーク セキュリティ規則を設定しましたか?
- クラスターは、ノードのセキュリティ更新プログラムを自動的に適用するように設定されていますか?
- クラスターとコンテナー サービスのセキュリティ スキャン ソリューションを実行していますか?
セキュリティ チェックリスト:
グループ メンバーシップを使用してクラスターへのアクセスを制御します。 Kubernetes ロールベースのアクセス制御 (Kubernetes RBAC) を構成して、ユーザー ID またはグループ メンバーシップに基づいてクラスター リソースへのアクセスを制限します。 詳細については、「 Kubernetes RBAC と Microsoft Entra ID を使用してクラスター リソースへのアクセスを制御する」を参照してください。
シークレット管理ポリシーを作成します。 Kubernetes のシークレット管理を使用して、パスワードや証明書などの機密情報を安全にデプロイおよび管理します。 詳細については、「 Kubernetes でのシークレット管理について (ビデオ)」を参照してください。
ネットワーク ポリシーを使用してポッド内ネットワーク トラフィックをセキュリティで保護します。 最小特権の原則を適用して、クラスター内のポッド間のネットワーク トラフィック フローを制御します。 詳細については、「 ネットワーク ポリシーを使用してポッド内トラフィックをセキュリティで保護する」を参照してください。
承認された IP を使用して API サーバーへのアクセスを制限します。 API サーバーへのアクセスを制限された IP アドレス範囲のセットに制限することで、クラスターのセキュリティを強化し、攻撃対象領域を最小限に抑えます。 詳細については、「 API サーバーへのアクセスをセキュリティで保護する」を参照してください。
クラスターエグレス トラフィックを制限します。 クラスターのエグレス トラフィックを制限する場合に許可するポートとアドレスについて説明します。 Azure Firewall またはサードパーティのファイアウォール アプライアンスを使用して、エグレス トラフィックをセキュリティで保護し、これらの必要なポートとアドレスを定義できます。 詳細については、 AKS のクラスター ノードのエグレス トラフィックの制御に関するページを参照してください。
Web アプリケーション ファイアウォール (WAF) を使用してトラフィックをセキュリティで保護します。 Kubernetes クラスターのイングレス コントローラーとして Azure Application Gateway を使用します。 詳細については、「 Azure Application Gateway をイングレス コントローラーとして構成する」を参照してください。
セキュリティとカーネルの更新プログラムをワーカー ノードに適用します。 AKS ノードの更新エクスペリエンスについて説明します。 クラスターを保護するために、AKS のノードにセキュリティ更新プログラムが自動的に適用されます。 これらの更新プログラムには、OS のセキュリティ修正プログラムやカーネルの更新プログラムが含まれています。 これらの更新プログラムの中には、プロセスを完了するためにノードの再起動が必要なものがあります。 詳細については、「 kured を使用してノードを自動的に再起動して更新プログラムを適用する」を参照してください。
コンテナーとクラスターのスキャン ソリューションを構成します。 Azure Container Registry にプッシュされたコンテナーをスキャンし、クラスター ノード、クラウド トラフィック、およびセキュリティ制御をより深く可視化します。
詳細については、以下を参照してください。
最適化とスケーリング
アプリケーションが運用環境になったので、ワークフローを最適化し、スケーリングするアプリケーションとチームを準備するにはどうすればよいですか? 最適化とスケーリングのチェックリストを使用して準備します。 このセクションの終わりまでに、この質問に答えることができるようになります。
- ガバナンスとクラスター ポリシーを大規模に適用できますか?
セキュリティ チェックリスト:
クラスター ガバナンス ポリシーを適用します。 クラスターに大規模な適用とセーフガードを一元的かつ一貫した方法で適用します。 詳細については、 Azure Policy を使用したデプロイの制御に関するページを参照してください。
クラスター証明書を定期的にローテーションします。 Kubernetes では、多くのコンポーネントでの認証に証明書が使用されます。 セキュリティまたはポリシー上の理由から、これらの証明書を定期的にローテーションすることが必要になる場合があります。 詳細については、 Azure Kubernetes Service (AKS) での証明書のローテーションに関するページを参照してください。