新着:プロジェクトの最新情報をTwitterMastodonで入手してください。

Istioサービスメッシュの保護

Istio は、プロジェクト istio-csr を使用して cert-manager と統合できます。istio-csr は、Istio メッシュのすべてのメンバーの証明書署名要求を受信し、cert-manager を介して署名するエージェントをデプロイします。

istio-csr は、Istio のワークロードおよびコントロールプレーンコンポーネントを cert-manager を使用して保護できるようにするエージェントです。

クラスター内外の両方で mTLS を促進する証明書は、cert-manager の Issuer を使用して署名、配信、および更新されます。

インストール

新規の kind クラスターに istio-csr をセットアップする方法については、インストールガイドを参照してください。

ガイドに従うのが、istio-csr の動作を確認するのに最適な方法です。

詳細(経験豊富な Istio ユーザー向け)

⚠️ istio-csr を試したいだけであれば、インストールガイドの方がより良い場所です!

istio-csr を実行するには、いくつかのステップと前提条件が順番に必要です。

  1. Istio がまだインストールされていないクラスター
  2. クラスターに インストールされた cert-manager
  3. Istio 証明書の発行に使用される Issuer または ClusterIssuer
  4. (おそらく Helm を介して)インストールされた istio-csr
  5. インストールされた Istio。たとえば、リポジトリの構成例を使用するなど、いくつかのカスタム構成が必要です。

カスタム Istio インストールマニフェストが必要な理由

Istio インストールマニフェストの例の内容を見ると、いくつかの重要なカスタム構成オプションがあります。

必要な変更には、ENABLE_CA_SERVERfalse に設定し、Istio が証明書を要求する caAddress を設定することが含まれます。CAサーバーを置き換えることは istio-csr の要点です!

ルートCAのマウントと静的な指定も、推奨される重要な手順です。手動で指定されたルートCAがない場合、istio-csr はデフォルトでルートCAを自動的に発見しようとします。これにより、たとえば署名者のトークン(cert-managerコントローラーのトークンなど)が盗まれた場合に、署名者ハイジャック攻撃につながる可能性があります。

Issuer または ClusterIssuer?

ClusterIssuer が必要なことがわかっている場合を除き、Issuer から始めることをお勧めします。Issuer のアクセス制御について推論するのが容易であるためです。名前空間化されているため、スコープが少し限定されています。

とはいえ、Kubernetes クラスター全体を信頼ドメイン自体と見なす場合は、ClusterIssuer の方がより自然に適合します。最適な選択は、特定の状況によって異なります。

当社のインストールガイドでは、Issuerを使用しています。

どの Issuer タイプ?

Issuer または ClusterIssuer のどちらを使用する場合でも、次のような必要な Issuer のタイプを選択する必要があります。

重要な要件は、Istio が SPIFFE ID を配置するため、subjectAltName (SAN) X.509 拡張に任意の値を配置できることです。

つまり、ACME Issuer は機能しません。Let's Encrypt によって発行されたものなどの公開的に信頼された証明書では、非常に正当な理由で、SAN に任意の値を入力することは許可されていません。

すでに HashiCorp Vault を使用している場合は、Vault Issuer が明らかに最適な選択肢です。独自の PKI を完全に制御したい場合は、CA Issuer をお勧めします。最終的な選択はあなた次第です。

Istio の後に istio-csr をインストールする

これは安全に行うことが非常に困難なため、サポートされていません。istio-csr を にインストールすると、すべての Istio サイドカーが古い Istio 管理の CA と新しい cert-manager 管理の CA の両方を信頼する期間が必要になるため、ダウンタイムなしで istio-csr をインストールできない可能性があります。

istio-csr はどのように機能するのですか?

istio-csr は、gRPC Istio 証明書サービスを実装します。このサービスは、Istio ワークロードからの証明書署名要求を認証、承認、署名し、クラスターにインストールされた cert-manager を介してすべての証明書処理をルーティングします。

これにより、cert-manager を介して証明書管理が可能になりながら、標準的なインストールにおける istiod の動作とシームレスに一致します。