CRD でコンテナ セキュリティを自動化する方法

CRD でコンテナ セキュリティを自動化する方法

[51CTO.com クイック翻訳] セキュリティは、私が勤務するカナダの保険・金融サービス協同組合を含め、多くの DevOps チームにとって長い間の懸案事項でした。当社の CI/CD パイプラインのほとんどはさまざまなツールの助けを借りて自動化されており、自動化されたコンテナベースのアプリケーション展開も標準となっていますが、セキュリティの自動化レベルはまだ遅れています。ほとんどの DevOps チームと同様に、脆弱性スキャンは自動化されていますが、運用中のアプリケーションとワークロードを保護するためのセキュリティ ポリシーを手動で構築する際には依然として問題があります。

幸いなことに、Kubernetes のカスタム リソース定義 (CRD) により、チームは独自のパイプラインを介してできるだけ早くアプリケーション セキュリティ ポリシー ステートメントをコードに組み込み、そのようなセキュリティ ポリシーを本番環境に自動的にデプロイできるようになりました。

現在、CRDを通じてさまざまなグローバルセキュリティポリシーを導入しています。これらのポリシーは、アプリケーションの許可された動作を事前に定義し、複数の Kubernetes クラスターにわたってさまざまな保護を適用します。 CRD を使用してセキュリティ ポリシーをコードとして自動化し、一元管理することで、ポリシーの適用を強化および簡素化しながら、さまざまなアプリケーションを効率的かつ耐障害性が高く、安全な方法で展開および更新できるようになります。

以下では、当社がアプリケーション セキュリティ ポリシーを自動化した方法をご紹介します。

CRDの利点

コンテナ ツールが提供する利点を活用するために、私たちのチームは NeuVector CRD を使用し、NeuVector コンテナ セキュリティ プラットフォーム内でさまざまなセキュリティ ポリシーを定義しました。

  • まず、CRD を通じて、これらのポリシーがアプリケーションの初期の正常かつ合法的な動作をキャプチャし、それを使用して完全なプロファイルを構築できるようにします。
  • CRD は、アプリケーションの標準操作と一致するすべてのネットワーク ルール、プロセス、プロトコル、ファイル アクティビティを含むこれらの動作をホワイトリストに登録します。
  • 最後に、アプリケーションのコンテナ環境内で、CRD は承認されたネットワーク接続 (ISO レイヤー 7 アプリケーション プロトコルを使用して識別および検査) のみを許可し、異常な外部接続を拒否することでセキュリティを提供します。

これに基づいて、当社の戦略は、攻撃者が内部または外部の通信接続を悪用して、アプリケーションが配置されている実稼働環境に侵入しようとするのを防ぐことができます。

CRD を使用すると、グローバルまたはサービスごとに異なるルールを定義できます。また、RBAC をサポートすることで、ローカル Kubernetes サービス アカウントとロールを使用してさまざまなセキュリティ ポリシーを実装できます。また、バージョン管理機能により、各アプリケーション リビジョンの戦略を追跡できます。さらに、Open Policy Agent などのセキュリティ ポリシー管理ツールも、必要に応じてさまざまな統合をサポートできます。

NeuVector CRD の作成

NeuVector CRD を使用すると、Kubernetes ネイティブ YAML ファイルを使用してセキュリティ ルールを作成できます。

まず、NeuVector CRD を作成する必要があります。下の図に示すように、YAML コードを使用して CRD を作成します。同時に、NvSecurityRule の名前空間スコープを定義し、クラスター間で動作できるように NvClusterSecurityRule のスコープを定義します。

次のコマンドを実行して CRD を作成します。

  • NeuVector CRD を使用すると、NvSecurityRule タイプによって呼び出されるすべてのカスタム リソースを CRD で処理できるようになりました。したがって、さまざまなカスタマイズされたリソースを継続的に作成して、より多くのセキュリティ ポリシーを定義できます。それを実行する前に、NeuVector のドキュメントを参照して、必要なすべての clusterrole と clusterrolebindings を追加してください。

さらに、CRD は Kubernetes 内にネイティブの RBAC 対応 NeuVector セキュリティ ルールをデプロイできます。特定の名前空間に対して CRD によって宣言されたセキュリティ ポリシーは、ワークスペースにデプロイする権限を持つサービス アカウントによってのみ適用できます。同様に、名前空間全体にクラスター全体の CRD 定義をデプロイするには、サービス アカウントに適切なクラスター管理者権限が必要です。

以下は、demo-security-v1.yaml ファイルのコード スニペットです。 HTTP プロトコルを使用して、demo 名前空間の nginx-pod コンテナが同じ名前空間の node-pod コンテナに接続することを制限します。

上記のコード スニペットに加えて、yaml ファイルでは、デモ名前空間内の各コンテナーに許可されるすべてのネットワーク接続、Redis プロトコルを使用したネットワーク接続、および各コンテナーに許可されるプロセスとファイル アクティビティを引き続き指定する必要があります。アプリケーションをデプロイする前に、セキュリティ ルールを NeuVector にデプロイして事前に準備することができます。これにより、アプリケーションの実行開始時に適切なセキュリティ属性が有効になります。

セキュリティ ポリシーを展開するには、次のコマンドを参照してください。

  • NeuVector は、新しく作成されたカスタム リソース内のセキュリティ ポリシーを解析し、NeuVector コントローラーへの REST API 呼び出しを継続します。コントローラーは、必要に応じて NeuVector でルールと構成を作成し、さまざまなポリシーを実装します。

セキュリティポリシーをコードとして利用するケース

私は個人的に、CRD とセキュリティ ポリシーをコードとして定義する機能により、DevOps、DevSecOps、開発チームに優れたセキュリティをもたらすことができると考えています。実践するには、次の 4 つの側面から始めることができます。

アプリケーションライフサイクルの早い段階で開発とテストのチェックリストを組み込む

アプリケーションのデプロイメントおよびセキュリティ チェックリストを作成することにより、開発者は CRD を活用して開発プロセスの早い段階でセキュリティを確保できます。イメージの構築、自動化された脆弱性スキャン、DevOps レビューを完了した後、DevOps 担当者はこれら 2 つのチェックリストをテストすることで、開発者に効果的なセキュリティ フィードバックを提供できます。

したがって、新しいアプリケーションには、起動された瞬間から実稼働環境に展開されるまで、効果的なセキュリティ ポリシーが付随します。

行動学習を使用してセキュリティ ポリシーを作成します。

DevOps チームは、テスト環境で NeuVector の行動学習機能を使用して、セキュリティ ポリシーを定義し、NeuVector CRD の YAML ファイルを作成できます。次のワークフロー (図の右下隅から開始) に従うことで、DevOps チームと QA チームはアプリケーションをテスト環境と QA 環境にスムーズにデプロイできます。つまり、アプリケーションは、適切なネットワーク、プロセス、ファイル アクセス セキュリティ ルールの生成など、動作に関連するすべての構成ファイルをここで完了します。

開発者は、本番環境にデプロイする前に、新しく作成したルールを YAML 形式でエクスポートして、検査、編集、DevOps 関連のテストを行うことができます。

グローバルセキュリティポリシーを定義する

注目すべきは、グローバル セキュリティ ポリシーの定義を有効にすることで、特定のアプリケーションに接続されておらず、クラスター内の特定の負荷を対象としていない負荷を NeuVector CRD を使用してグループ化できることです。たとえば、セキュリティ、コンプライアンス、または運用チームは、特定のプロセスがコンテナにまたがることを防ぐため、または特定のプロセスがクラスタ全体を監視および診断できるようにするために、ネットワークの入口と出口に関するグローバル セキュリティ ルールを定義する必要がある場合があります。

したがって、グローバル ポリシーとアプリケーション固有のポリシーを組み合わせることで、チームは組織に必要な正確なルールを開発できます。下の図に示すように、コンテナからの SSH 接続を拒否するには、次のルールを使用します。

ポリシーを開発から本番に移行します。

NeuVector CRD を使用すると、開発フェーズから本番環境にすべてまたは選択したセキュリティ ポリシーを自動的に移行できます。 NeuVector コンソールでは、「新しいサービス モード」を構成して、さまざまな設定を検出、監視、または保護できます。 「監視」または「保護」を選択すると、新しく展開または更新されたすべてのサービスに、アクティブ化する前に必要なセキュリティ ルールが含まれていることを確認できます。

要約すると、Kubernetes CRD とセキュリティ ポリシーをコードとして活用することで、開発チームと DevOps チームは、開発の開始から本番環境への展開までセキュリティ自動化が「有効」になっていることを保証し、アプリケーションの保護を強化できます。

元のタイトル: CRD を使用してセキュリティ ポリシーをコードとして取得し、コンテナー セキュリティを自動化する方法、著者: Niteen Kole

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  DevOps とクラウド コンピューティングがお互いを必要とする 3 つの理由

>>:  第14回51CTO中国企業年次選考の結果が出ました!

推薦する

加盟店コレクション: 香港VPS、Alipay決済

このサイトでは、香港の VPS を推奨しています。主に、国内ユーザーが購入するのに便利な Alipa...

Station B はまだ赤字ですが、アップローダーの中にはすでに年間数百万ドルを稼いでいる人もいます。

愛でパワーを生み出すアップローダーは、どれくらいの収入を得ることができるのでしょうか? Bilibi...

Baidu アプリをホームページに掲載する方法 SEO 技術分析

Baiduアプリケーション検索を表示するいくつかの方法さまざまなキーワードで Baidu アプリを検...

メイヤーの2番目の動きはQuoraとYelpの買収かもしれない

テンセントテクノロジーニュース(明宣)北京時間8月10日、外国メディアの報道によると、テクノロジーブ...

contabo: 米国中部の「セントルイス」データセンターの VPS の簡単なレビュー

Contabo の米国 (中部) データ センターは、米国の地理的位置のほぼ中心であるセントルイスに...

テクノロジー系スタートアップが成功に向かっていることを示す5つの兆候

テンセントテクノロジーニュース(万学)北京時間7月15日、海外メディアの報道によると、通信会社の取締...

仮想化はまだ初期段階だが、ハイブリッドクラウドの時代が到来するのはまだ遠い

[51CTO.com からのオリジナル記事]熱狂的に宣伝されたハイブリッドクラウドは、実装が難しいと...

#オーストラリア VPS# flowvps-$6.99/KVM/1g メモリ/10g NVMe/1T トラフィック

新ブランドのflowvpsは、Alpha Layer Pty Ltd(ABN: 99 617 970...

NetEase Bafangがサインインサービスを停止した6つの理由

テンセントテクノロジーロイス11月8日総合レポート「サインインは終わった」という叫びは2012年も鳴...

Baidu は人工知能に注力しているが、インターネットの未来を掴めるだろうか?

[IT Times Weekly 編集者注] Baidu が最近、Andrew Ng 氏などの一流学...

3月の第2週、中国は.COMドメイン名の総数で2位となり、6,621,677に達した。

IDC Review Network (idcps.com) は 3 月 21 日に次のように報告し...

#11.11# zji: 香港50G高防御サーバー、50%割引、香港アリババネットワーク(独立)サーバーは月額わずか480元

今から11月12日まで、zji(つまり、2011年に設立されたWeixiang Hostingですが...

パフォーマンスと効率の選択は進化する

コンピュータを組み立てたことがある人なら誰でも、マシンのパフォーマンスを追求する方法を知っています。...