オープン ソース Kubernetes ポリシー エンジンとは必要な理由と選び方

Kubernetes ポリシーの背後にある考え方は、開発チームが遵守していることを確認するためのガードレールを配置すれば、より成功するということです。 Kubernetes のベスト プラクティス. ポリシーを作成すると、開発者が Kubernetes で非常に安全でない、非効率的、または信頼できないことをしていないことを確認するのに役立ちます。 ポリシーを決定したら、オープン ソースの Kubernetes ポリシー エンジンを調べて、開発者が組織の標準に従ってすべてをデプロイしていることを確認することをお勧めします。

オープン ソース ポリシー エンジンにより、次のことが可能になります。 すべてのポリシーを適用する 組織全体の高レベルで。 ポリシー エンジンはパッシブ モードで実行でき、環境を監査したり、インフラストラクチャをコードとして監査したりして、準拠状況を確認できます。 採用したこれらのポリシーの数と、準拠していないチームを確認できます。 ポリシー エンジンをよりアクティブなモードで実行することもできるため、特定のレベルの事前定義された要件を満たさないものをブロックできます。

Kubernetes コンテキストのポリシー エンジンは、アプリケーションの構成に重点を置いています。 それ以上のことができますが、それが重要なユースケースです。 の出現で コードとしてのインフラストラクチャ 開発者が運用により多くの影響力を持つようになったため、構成は開発プロセスの中核部分になりました。特に、アプリケーションを Kubernetes 上で実行する場合はそうです。 ポリシー エンジンは、YAML、Helm、Terraform のいずれであっても、構成マニフェストで動作します。

なぜポリシーエンジンが必要なのですか?

組織はクラウドとコンテナーを活用して、市場投入を早め、アプリやサービスをより迅速に出荷できるようにしています。 Kubernetes を使用すると、クラウドでのコンテナーの実行と管理が容易になります。 ポリシー エンジンは重要です。なぜなら、Kubernetes へのデプロイ方法を管理し、ポリシーを一貫して適用することがはるかに簡単になるからです。

異なるプラクティスに従う複数のチーム

Kubernetes にデプロイするチームは通常、アプリケーション チームと開発チームであり、その主な仕事はコードと機能を作成することです。 もっている ポリシー エンジン は、これらのチームが確実かつ一貫して出荷できるようにするのに役立ちます。 アプリケーション構成を改善する方法を開発者に伝えるフィードバック ループを配置できます。 また、ダウンタイムの可能性など、ビジネスに悪影響を与える可能性のある現在の構成の問題を特定することもできます。 たとえば、ポリシー エンジンからの情報は、 liveness または readiness プローブ 金の旗 コンプライアンス 特定の方法で Kubernetes を構成しない場合の問題。

最も重要なことは、ポリシー エンジンは、Kubernetes 環境が断片化されていないこと、すべてのアプリケーションが運用環境で一意に構成されていないことを保証することで、迅速に移行し、アプリケーションをより迅速に出荷するという目標をサポートできることです。 不必要なリスクを招くことなく、チームがアプリを確実に実行できるようにします。

メンテナンスのコストを削減するには、すべてのクラスターに一貫性を持たせる必要があります

Kubernetes は複雑なエコシステムであり、学ぶべきことがたくさんあります。 すべての開発者が K8s のエキスパートになることや、すべての開発チームが Kubernetes のエキスパートになることを期待することはできません。 1 つまたは 2 つのクラスターのみで過去の展開に移行すると、いくつかのクラスターが必要になります。 ガードレール 開発チームが、信頼性の低いアプリケーション、安全でない展開、またはコスト超過につながらないコードを出荷していることを確認するのに役立ちます。

Kubernetes のマルチテナント展開には、共有リソースのガバナンスが必要です

Kubernetes の概念実証段階からマルチテナント Kubernetes 戦略への拡大に移行している企業は、複数のアプリまたは複数のチームが単一のクラスターにデプロイされている環境に移行している可能性があります。 個々のアプリ チームがワークロードを構成するときに、そのクラスター内の共有リソースが悪影響を受けないようにするためには、ガバナンスが必要です。 クラスターが正常に動作し、あるチームが別のチームに影響を与えないように、適用されるポリシーが適切に設定されていることを確認する必要があります。

さまざまなチームやさまざまな企業がマルチテナント戦略を追求しているため、個々のチームが異なる状況にあることに気付く場合もあります。 Kubernetes の成熟度. あるチームが、別のチームとは異なるプラクティスに従っている場合があります。 これは、構成がチームからチームへとコピー アンド ペーストされていることが原因である場合があります。これは、チームがさまざまなワークロード間で多くの間違いを伝播していることを意味する場合があります。 ポリシー エンジンは、プル リクエスト フェーズから本番環境に至るまで、これらの問題を防ぐのに役立ちます。

オープンソース ポリシー エンジンに求めるもの

最も重要なことは、組織が Kubernetes の展開を成熟させるにつれて、成長できるポリシー エンジンを見つけることです。 以下に、覚えておくべき 3 つの基本的な要件を示します。

  1. 特に最初は、簡単に採用できる必要があります。

  2. 簡単な構文で動作するエンジンや、すぐに実装できるすぐに使えるポリシーを備えたエンジンを探してください。

  3. カスタム ポリシーをサポートするポリシー エンジンを探します。 6 か月でポリシー エンジンが大きくなりすぎないようにします。

さまざまな種類のポリシー エンジンがあり、すべての組織に最適な単一のポリシー エンジンはありません。

優れたポリシー エンジンと、それらのポリシーを組織全体に展開するための優れた戦略を設計するには、多くの作業が必要です。 最初に考慮すべきことは、評価したいことです。 セキュリティの問題、責任の問題、一貫性の問題、コストの問題はありますか? SOC2に準拠する必要がありますか、それとも PCI-DSS 準拠? これらのユース ケースには、特定のポリシーがある場合があります。

すでに組み込まれている必要があるポリシーが付属しているポリシー エンジンを確認してください。 適用したいポリシーをサポートするのはどれですか? 適用したいポリシーをよく理解したら、 どこで、いつ 適用する必要があることは特に重要です。

  • 本番環境には適用する必要があるが、開発環境やステージング環境には適用しないポリシーはありますか?

  • これらのポリシーを Infrastructure as Code に適用したいが、すべての運用環境に適用したくないですか?

  • ポリシーは、システム レベルのワークロードとアプリケーションのワークロードに適用する必要がありますか?

  • リソースのグループにのみ適用されるポリシーはありますか? たとえば、アプリ チームとクラスター アドオンです。

ポリシー エンジンの統合と自動化

また、統合ポイントに関して何が必要かを検討する必要があります. 統合ポイントは、開発プロセスのできるだけ早い段階で、開発者と DevOps エンジニアにポリシーの問題に関連するフィードバックを提供します。 優れたポリシー エンジン ソリューションは、プル リクエストからランタイムおよびアドミッション コントロールまで統合されます。 ポリシー エンジンを使用して、ファイルを変更したり、構成をある構成から別の構成に変更したりすることもできます。

最後に、自動化について考えてみましょう。 ポリシー違反またはトリガーされたポリシーに対して何をしたいですか? これらのポリシーのいずれかがトリガーされたら、Slack にアラートを送信したり、Jira チケットを開いたり、 PagerDuty 重大な脆弱性である場合は警告します。 ポリシー エンジンの統合ポイントと自動化により、エンジニアがすでに注意を払っている場所に簡単にアクセスできるようになり、何かが機能していないときに対策を講じていることを確認できるようになります。

オープン ソース ポリシー エンジンのオプション

Polaris、OPA、Kyverno など、よく知られているオープン ソース ポリシー エンジンがいくつかあります。 3 つのプロジェクトはすべて、ポリシーを Kubernetes ユーザーにとってよりアクセスしやすいものにします。 これらはすべて適切に管理されたプロジェクトであり、どのプロジェクトを選択するかは、ユース ケースと組織によって異なります。

オープン ソース ポリシー エンジンの比較

オープン ソース ポリシー エンジンの比較

検討しているポリシー エンジンでは、カスタム ポリシーを記述できることを確認してください。 すべてのポリシーをゼロから作成する必要がないため、パブリック ポリシー ライブラリを備えたものを探します。 すべての主要なエンジンには、いくつかのポリシーが組み込まれているか、ポリシーを作成して GitHub にプッシュしたコミュニティが組み込まれているため、それらを環境に取り込むことができます。

の概念をサポートするポリシー エンジンを探します。 アドミッションコントロール. ポリシーに準拠しているものと準拠していないものだけを表示するエンジンは必要ありませんが、承認時にブロックしたり、ポリシーに準拠するために承認時にそれらを変更したりできるエンジンが必要です。 もっている アドミッション コントローラの変更は、リソースを変更してポリシーに確実に準拠させることができるため、探すのに適した追加機能です。

ポラリス クラスタ インストールの問題を理解しやすくします。 複数のチームが未解決の問題を確認できるダッシュボードを提供します。 また、可能な限り左にシフトし、基礎となる YAML コードへの修正を自動化することもできます。 ビジネスのニーズに合わせて、すべての組織に適用する必要があるいくつかの共通のポリシーと慣行があることを認識している人はほとんどいません。 Polaris は、誰もが間違えるベースライン ポリシーとベスト プラクティスをプリロードするため、信頼性、安全性、コスト効率に優れた Kubernetes 展開が実現します。 ポラリスは フェアウィンズ インサイト このプラットフォームには、小規模なクラスターで利用できる無料利用枠があります。

オープン ポリシー エージェント (OPA) Kubernetes だけに固有ではない広範なポリシー エンジンです。 Kubernetes、Envoy、Terraform、Kafka、SQL、および Linux で使用できます。 クラウド ネイティブ環境にポリシー ベースの制御を提供します。 OPAには宣言型ポリシー言語があり、 レゴ、ポリシーを作成するために使用する必要があります。 OPA は、卒業した Cloud Native Computing Foundation (CNCF) プロジェクトです。 OPA は、人々が活用したい標準であるため、Fairwinds Insights プラットフォームに含まれています。

キベルノ Kubernetes に固有です。 それはインキュベーション プロジェクトとして CNCF にあります。 Kyverno では、ポリシーは Kubernetes リソースとして管理されます。 つまり、kubectl、git、kustomize などのツールを使用してポリシーを管理できます。

オープンソースの Kubernetes ポリシー エンジンを使ってみる

組織は、使いやすく、すぐに起動して実行でき、Kubernetes の成熟度のさまざまな段階で適用できるポリシー エンジンを必要としています。 組織のポリシー エンジンを選択するときは、シフトレフト コンテキストで実行できるポリシーを探してください。そうすれば、開発の初期段階でポリシーをスキャンできます。 ポリシー エンジンは、組織が Kubernetes のベスト プラクティスを適用して準拠するのに役立つため、展開は安全で、費用対効果が高く、信頼性があります。

ウェビナーを見るKubernetes に最適なオープン ソース ポリシー エンジン」を参照して、さまざまなポリシー エンジン、最初に使用するポリシーなどの詳細を確認してください。

インサイトの無料利用枠

*** これは、Fairwinds の Security Bloggers Network シンジケート ブログです。 Robert Brennan が執筆したブログ。 元の投稿を読む: https://www.fairwinds.com/blog/what-are-open-source-kubernetes-policy-engines

Leave a Comment

Your email address will not be published. Required fields are marked *