Kubernetes 強化ガイド

MuleSoft は、Mule アプリケーションデプロイメントのセキュリティと信頼性を最高レベルまで高めるための努力を続けています。その一環として、MuleSoft は Kubernetes 強化ガイドラインを推奨事項として提供するだけでなく、自社のデプロイメントにおいてもこれらのガイドラインを真摯に遵守しています。MuleSoft は、Kubernetes 強化ガイドラインに厳格に従うことで、自社のアプリケーションとインフラストラクチャの保護を強化し、潜在的な脅威や脆弱性からこれらを保護するとともに、お客様と社内業務の両方の環境の堅牢性とセキュリティを維持しています。

MuleSoft は、NSA (米国家安全保障局) の強化ガイドに触発され、Runtime Fabric 上で詳細なセキュリティ制御を実現しています。下記のガイドでは、ガイドラインに基づいて Kubernetes クラスターをセットアップして、どのようにセキュリティを強化できるかについて説明しています。完全なガイダンスについては、 「Kubernetes Hardening Guide (Kubernetes 強化ガイド)^」​を参照してください。

次のセキュリティコントロールで Runtime Fabric エージェントを設定すると、エージェントは CIS (Center for Internet Security) の Kubernetes ベンチマーク​のポリシーセクションに完全に準拠します。

K8s クラスターにおける一般的なセキュリティ上の懸念事項

次の一般的な危急化の原因を確認してください。

  • サプライチェーンのリスク:

    • コンテナビルドサイクル

    • インフラストラクチャの取得

  • 悪意のある脅威の実行者:

    • 脆弱性と設定ミスの悪用

  • 内部の脅威:

    • 管理者、ユーザー、またはクラウドプロバイダーによる権限の乱用

Runtime Fabric 環境の保護

Runtime Fabric を使用すると、上記の懸念から環境を保護することができます。

  • コンテナとポッドの脆弱性や設定ミスをスキャンするためにローカルレジストリを有効にします。

  • セキュリティアーキテクチャ​と​認証済み名前空間​のコンテナとポッドが可能な限り最小限の権限に抑えられているかを確認します。

  • ネットワークの分離と安全な接続のために、セキュリティアーキテクチャを見直します。

  • ファイアウォールを使用して不要なネットワーク接続を制限し、暗号化を使用して機密性を保証します。

  • 強力な認証と認証を使用して、ユーザーと管理者のアクセスを制限し、攻撃対象を限定します。

  • システム管理者が潜在的な悪意のある活動を事前に把握できるように、監査ログを取得して監視します。

  • 定期的にすべての K8s の設定を見直し、脆弱性スキャンを使用して、リスクが適切に特定され、セキュリティパッチが適用されていることを確認します。

推奨事項と実装

  • Kubernetes ポッドのセキュリティ:

    • 非 root ユーザーとしてアプリケーションを実行するようにビルドされたコンテナを使用します。

      • コンテナイメージは、非 root ユーザーと非 root グループでアプリケーションを実行する必要があります。

      • K8s では、​SecurityContext:runAsUser​で非 0 ユーザーを指定することで、非ルートコンテナを適用します。

    • アプリケーション固有のディレクトリでのみ読み書き可能なファイルシステムをマウントすることで、不変のコンテナファイルシステムを使用します。

    • 技術的なコントロールを使用して、次のような最低限のセキュリティを適用します。

      • 特権コンテナの禁止

      • hostPID、hostIPC、hostNetwork、allowedHostPathなど、すり抜けに悪用されやすいコンテナの機能の拒否

      • root ユーザーとして実行したり root への昇格を許可したりするコンテナの拒否

    • 安全なコンテナイメージの構築:

      • 信頼できるリポジトリのみを使用します。

      • イメージの脆弱性や設定ミスをスキャンします。スキャナーは偽陽性を無視できます。

    • ポッドサービスアカウントトークンの保護:

      • すべてのポッドにデフォルトでマウントされるサービスアカウントトークンを設定します。

      • automountServiceAccountToken:false​ で無効にできます。

      • インスタンスが外部サービスに認証するためにトークンが必要な場合は、RBAC を使用してクラスター内のポッドの権限を制限します。

  • 認証および承認:

    • ユーザー、管理者、開発者、サービスアカウント、インフラストラクチャチームにそれぞれ別々のロールを割り当てる RBAC ポリシーを作成します。

  • 監査ログと脅威検出:

    • ノード、ポッド、コンテナレベルで障害が発生した場合でも可用性が確保されるように、ログを維持します。

    • クラスター外部のログを集約します。

  • ネットワークの分離と強化:

    • デフォルトの名前空間は分離されていませんが、RBAC、ネットワークポリシー、リソースポリシーによるルールの適用が可能です。

  • アップグレードとセキュリティ対策:

    • セキュリティパッチと更新を迅速に適用します。

    • 未使用のコンポーネントを環境からアンインストールして削除します。

Mule アプリケーションのデプロイメントにセキュリティ設定を適用するには、​「Mule アプリケーション Kubernetes リソースのカスタマイズ」​ドキュメントのガイドラインに従ってください。