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中国企業年次選考の結果が出ました!

推薦する

百度と滴滴出行が戦う

2015年12月、滴滴出行の自動運転部門のCEOである張波氏が正式に父親になった。これは彼の人生にお...

#クリスマス# vsyshost: 1Gbps の帯域幅、無制限のトラフィック、苦情防止 VPS、月額わずか 10 ドル、オランダ/ウクライナ

vsys.host では、VPS のクリスマス超割引プロモーションを実施しており、月額 10 ドルか...

iQiyiの地域ブランドマーケティングを1枚の写真で理解しましょう!

大画面時代を迎え、スマートテレビが大人気。デジタルマーケティングの生命線をどう掴むのか?ブランドイメ...

Apple、2014年のApp Storeで最も人気のあるアプリのリストを発表

最近、Appleは複数のメディアウェブサイトとiTunes公式ページで、iPad向けのベスト有料アプ...

ウェブサイト構築の細部にまで気を配り、ウェブサイトが飛躍的に発展できるようにしましょう。

今日、インターネットは人々の生活に欠かせないものとなり、インターネット時代が到来しました。最新の統計...

OEM製品の製造からオンライン販売まで

OEMはプライベートラベル生産とも呼ばれ、現在は沿岸地域で人気があります。この記事で取り上げる OE...

第一回美団クラウド人工知能サミットが開幕、エコパートナーと協力して最もオープンなAIプラットフォームを構築

10月31日、中関村サイエンスパーク管理委員会の指導の下、美団クラウドが主催し、「AIの力で共存とW...

Baidu が新しいサイトを素早くインデックスできるようにするためのヒント

新しいサイトのインデックス作成が遅いことは、Baidu に対する批判の 1 つであり、多くの Web...

競合他社のマーケティング戦略に関する洞察をドメインが巧みに活用

SEO雲南ブログのBaiduドメインクエリ結果1 か月前、G 省のある業界の B2C 電子商取引 W...

2019年コンテンツ業界半期レポート!

過去6か月間、ニューメディアコンテンツ業界では、「転換」、「草を生やす」、「商品を売る」という言葉が...

domain.com - 複数のドメイン拡張子、登録料 40% オフ、数量無制限、各ドメインは最大 5 年間登録可能

domain.com では、すべてのドメイン名(任意のサフィックス)が 40% オフで販売されており...

2022年メタバース業界マップ

人工知能とメタバースの相互統合と推進の発展動向に焦点を当てます。 9月1日、2022年世界人工知能会...

データセンター構築の進化における 4 つの新しい側面について知りたいですか?

インターネットの発展のための最も基本的な基盤として、最も理想的なデータセンターにはどのような機能があ...

ウェブサイトのランクを上げるにはどうすればいいですか?

最近、同じ質問をする多くの顧客から連絡を受けました。彼らはウェブサイトに多くの時間を費やし、インター...