イルミオASPのあまり知られていない機能–ポリシーコンピューティングエンジン証明書チェック
このクイックシリーズでは、イルミオの製品管理チームが、あまり知られていない(しかしそれほど強力な)機能に焦点を当てます。 Illumio ASP.
トランスポート層セキュリティ (TLS) プロトコル は、公開鍵証明書を利用してコンピュータ ネットワーク上の通信を保護するための暗号化プロトコルです。公開鍵証明書の最も一般的な形式は、 RFC 5280 で説明されている X.509 です。X.509 証明書は、認証、暗号化、信頼などのさまざまな用途に使用できるオプションを備えた複雑な暗号化ドキュメントです。業界のベストプラクティスに従って、 イルミオASP 通信はTLSを使用して保護されています。
Illumio ASPで通信を保護するには、特定の展開基準を持つ証明書に特定のオプションが存在する必要があり、証明書は、可視性とポリシー管理を一元化するIllumio ASPの「頭脳」である Policy Compute Engine(PCE)にインストールする必要があります。これらは証明書の一般的な基準ですが、面倒な場合があり、ユーザー側で細部に注意を払う必要があります。
このブログ投稿では、Illumio PCE証明書の展開基準と、証明書チェックのあまり知られていない機能について説明します。
TLS プロトコルと証明書
TLS は、次の通信セッションを保護するために使用されます。
- HTTPS (HTTP over TLS) プロトコルを介した PCE Web コンソールおよび REST API へのユーザー アクセス。
- HTTPS 経由の REST API と TLS over TCP を使用するカスタム プロトコルであるイベント サービスを使用した、PCE と VEN 間の通信。
- クラスター管理やサービス検出など、マルチノードクラスター内の異なる PCE ノード上の PCE サービス間の通信。
TLS の場合、インストール時に各 PCE ノードに X.509 サーバー証明書をインストールする必要があります。クライアント(VENなど)がPCEへのTLSセッションを開くと、PCEはX.509サーバー証明書を提示して、クライアントとの通信を保護します。インストール中に、サーバー証明書は、サーバー証明書と一連の CA 証明書(中間またはルート)を含む証明書バンドルの一部として PCE にアップロードされ、ルート CA への信頼チェーンを確立します。
X.509 証明書は通常、Digicert、Verisign、GoDaddy、LetsEncrypt などのパブリック認証局 (CA) によって発行されます。さらに、お客様は、独自のプライベート CA (内部 CA) によって発行された証明書を使用するか、自己署名証明書を使用することができます。証明書の発行方法に関係なく、クライアントは、この証明書のルート CA への信頼チェーンを検証できる必要があります。そうしないと、TLS ハンドシェイクが失敗し、セキュアな通信チャネルを確立できません。
PCE証明書チェック
PCE の初期展開中に、ユーザーは通常、証明書を検証して、多様で複雑な要件が満たされていることを確認する必要があります。Illumio PCEには、特定の展開基準に照らして証明書のチェックを自動化することでユーザーを支援する証明書チェックツールが付属しています。
イルミオPCEの証明書パッケージは、次の基準を満たす必要があります。
- PEM でエンコードされた証明書が含まれている必要があります。
- 証明書は、許容可能な署名アルゴリズムを使用して署名されます。
- パッケージには、ルート CA への信頼チェーンを確立するために必要なすべての CA 証明書 (中間証明書またはルート証明書) が含まれている必要があります。証明書がプライベートCAによって生成された場合、パッケージには、ルートCAと中間CA証明書への信頼チェーン内のすべての証明書を含める必要があります。
- サーバー証明書は、バンドル内の最初の証明書である必要があります。
- バンドル内のすべての証明書は、現在の日付に有効である必要があります。
- 証明書は、サブジェクトとサブジェクトの代替名(SAN)フィールドの両方で、PCE FQDNと一致する必要があります。
- 証明書は、サーバー認証とクライアント認証の両方をサポートする必要があります。
同様に、X.509 証明書に一致する秘密キーは、次の基準で各 PCE ノードにインストールする必要があります。
- 秘密鍵は PEM でエンコードされている必要があります。
- ファイルは、他の方法でエンコードしてはなりません。DER、PKCS7/P7B、PKCS8、またはPKCS12/PFX。
- ファイルはパスワードで保護されていません。
時間の経過とともに、イルミオは、証明書の作成と展開に関して、企業でのPCE展開が複数の課題に直面していることを発見しました。
たとえば、証明書は PCE FQDN に対して発行されない場合があります。または、複数のノードのホスト名がSANフィールドに正しく含まれていません。または、証明書の [拡張キーの使用法] フィールドに正しいオプション セットが指定されていません。同様に、インストールプロセス中に、ファイルまたはディレクトリに対する適切なアクセス許可なしで証明書がインストールされたり、インストール中に信頼チェーンの一部が欠落したりする可能性があります。
課題は初期インストール プロセス用に予約されており、それ以上に拡張される可能性があります。PCE が 4 ノード クラスターから 6 ノード クラスターにスケーリングされる場合は、SAN フィールドに新しいノードの FQDN を含めるように証明書を更新する必要があります。証明書の手作業を減らすために、Illumioは証明書を自動的にチェックする「illumio-pce-env」と呼ばれる管理コマンドラインツールを提供しています。
このツールには、さまざまなユースケースの証明書を検証するためのいくつかのオプションが用意されており、その中には次のようなものがあります。
- 信頼チェーンやその他の側面を含む基本的なテストで TLS 証明書を検証するには、次のコマンドを実行します。
- illumio-pce-env setup --list
- 「--list」オプションを指定すると、構成と証明書が検査され、戻りコードを設定することで問題の可能性が示されます。これは問題をすばやく確認する方法であり、Chef、Ansible、またはその他のインストールスクリプトの一部として呼び出すことができます。
- 信頼チェーンやその他の側面を含む基本的なテストで TLS 証明書を検証するには、次のコマンドを実行します。
- illumio-pce-envセットアップ–リスト–テスト5
- 前のコマンドが失敗した場合、管理者は何が問題だったのかを正確に見つけたいと思うかもしれません。これを支援するために、--test オプションを使用して詳細レベルの引数 (1 (最小) から 5 (最大) まで指定できます。詳細レベル 5 を使用すると、コマンドは、実行されたテストや各テストの結果に関する情報など、証明書検証の各ステップで詳細な結果を表示します。これは、証明書または信頼チェーンに関する正確な問題を診断するのに役立ちます。
- 代替ドメイン名で証明書を検証するには、次のコマンドを実行します。
- illumio-pce-env setup --list –test 5:some.alternative.hostAndDomainName
- 本番環境で PCE に使用する FQDN 計画がテスト展開と異なる場合、または PCE が 4 ノード クラスタから 6 ノード クラスタに拡張されている場合は、SAN フィールドに正しいホスト名が含まれているかどうかを証明書を確認する必要があります。SAN フィールドではワイルドカードの使用が許可されているため、有効なホスト名を手動で確認するのは少し難しいです。この構文は、指定された some.alternative.hostAndDomainName に対して証明書とチェーンをチェックします。
- '+' 構文を使用したエンドツーエンドのテストで証明書を検証するには、次のコマンドを実行します。
- illumio-pce-envセットアップ --list --test 5+
- ここで、テストする引数は「5+」です。証明書の静的テストでは不十分な場合があり、管理者はオペレーティング システムの TLS ライブラリを使用して証明書の完全なエンドツーエンド テストを使用してシステムを検証したい場合があります。これは、証明書の実際の実行時の使用をエミュレートします。「+」構文は、ポート 4433 で実行されているループバック OpenSSL サーバーを作成し、curl コマンドを使用して TLS 接続を確立しようとします。
- 計画された運用場所にコピーする前に証明書を検証するには、次のコマンドを実行します。
- illumio-pce-env setup --batch --list \email=required@emailaddress node=value \cert=/path/to/cert \pkey=/path/to/private_key \trust=/path/to/certificate_chain \--test 5
- 管理者が実際に証明書をインストールせずに証明書を確認したい場合は、それを許可する構文があります。これは、新しい証明書が展開され、管理者が PCE 要件を満たしているかどうかを確認する場合に使用されます。
illumio-pce-envツールによって表示されるメッセージの完全なリストと、潜在的なエラーメッセージの包括的なリストについては、Illumio PCEのドキュメントを参照してください。
要約すると、TLS との通信を保護するために使用される X.509 証明書には多様で複雑な要件があり、管理者が検証するのは面倒な場合があります。Illumio ASPは、基本的なテストから完全なエンドツーエンドのテスト、展開前のより正確かつ正確なテストまで、さまざまなニーズに合わせて証明書を検証するための豊富なオプションセットを備えたコマンドラインツールを提供します。
このブログ投稿が、イルミオPCEのこのあまり知られていない便利な機能についての洞察を提供するのに役立つことを願っています。さらにご質問がある場合は、[ email protected] までお問い合わせいただき、このシリーズの他の投稿を忘れずにチェックしてください。