Helm チャートを介してクラスタを接続する

注意: この機能は、Cloud Vulnerability Management ライセンスでは使用できません。

これは、Helm チャートを使用してクラスタを Tenable に接続するためのハウツーガイドです。

  • Kubernetes 機能の概念概要については、「 Kubernetes」を参照してください。
  • Kubernetes クラスタの表示と管理に関するハウツー ガイドについては、「 Kubernetesクラスターを参照してください。
  • よく寄せられる質問については、「 FAQ: Kubernetes」を参照してください。

Tenable では、クラウドネイティブの API メソッドの代わりに Helm チャートを使用して Kubernetes クラスタを接続できます。この方法は、アイデンティティベースまたはネットワークベースのアクセスが制限されているプライベートクラスタ、オンプレミス環境、またはマネージドクラスタに必要です。さらに、センサーベースの脆弱性管理やアドミッションコントローラーなどの Kubernetes 機能には Helm が必要です。

次のセクションを使用して、リソース同期、ランタイム検出、ワークロード保護、追加のセキュリティ機能に Helm チャート (センサーベース) とクラウドネイティブ (エージェントレス) のどちらの方法を使用するかを判断します。

Helm チャートメソッドを使用するタイミング

Helm チャートの統合により、セキュリティポスチャーが基本的なメタデータ検出だけでなく、包括的なディープスキャン分析に拡張されます。次のシナリオでは、この統合方法を選択する必要があります。

  • 接続の確立: クラスタが以下の場合は、このメソッドを使用します。
    • マネージド (プライベート): API サーバーがインターネットからアクセスできないマネージド (プライベート) クラスタを使用します。
    • オンプレミス: プライベートデータセンターなど、カスタマーマネージドのリソースでインフラをホストします。
  • Kubernetes 固有の機能の有効化: 脅威検出、アドミッションコントローラーの概要、脆弱性管理などの機能を有効化します。
  • 以下に挙げるような高度なセキュリティ要件またはコンプライアンス要件に対応します。
    • リアルタイムポリシーの実施: Kubernetes アドミッションコントローラーの概要に必要です。
    • 詳細な設定の可視性: ロールベースのアクセス制御 (RBAC) とクラスタ設定に関する詳細な文脈情報を提供します。

詳細については、Kubernetesクラスターを接続するを参照してください。

Kubernetes クラスタの接続

クラスタを接続する前に、デプロイメントモデルに Helm チャートメソッドが必要かどうかを確認してください。プライベートクラスタ、オンプレミス環境、およびクラウドネイティブ API メソッドがサポートされていない特定のセキュリティ機能には、Kubernetes クラスタ Helm チャートを使用します。

Kubernetes リソース同期および脆弱性管理

クラウドプロバイダー マネージド (パブリック) マネージド (プライベート) アンマネージド
AWS 1 適切なアクセス許可の付与 (エージェントレス) Helm チャートからのインストール (センサー) Helm チャートからのインストール (センサー)
Azure 2 適切なアクセス許可の付与 (エージェントレス) Helm チャートからのインストール (センサー) Helm チャートからのインストール (センサー)
GCP 3 適切なアクセス許可の付与 (エージェントレス) Helm チャートからのインストール (センサー) Helm チャートからのインストール (センサー)
OCI クラスタのアクセス許可を付与する (エージェントレス) Helm チャートからのインストール (センサー) Helm チャートからのインストール (センサー)
オンプレミスと、サポートされていないクラウドプラットフォームすべて 該当なし 該当なし Helm チャートからのインストール (センサー)

以下の機能は、脆弱性管理スキャンで現在サポートされていません。
AWS 1 - Fargate は脆弱性管理でサポートされていません。
Azure 2 - 仮想ノードは脆弱性管理でサポートされていません。
GCP 3 - Autopilot は脆弱性管理でサポートされていません。

注意: エージェントレスの統合は、脆弱性管理スキャンをサポートするうえで最も一般的かつ推奨されるアプローチですが、特定のシナリオではセンサーベースの設定が必要です。詳細については、エージェントレススキャンとエージェントベーススキャンの比較を参照してください。

ランタイム検出

脅威検出を使用するには、Helm を使用してセンサーをインストールする必要があります。この要件は、パブリック、プライベート、アンマネージド Kubernetes と OpenShift クラスタにおける、サポート対象のすべてのクラウドプロバイダーに適用されます。

接続用に Helm ベースのセンサーを使用している場合、別途インストールを行う必要はありません。代わりに、既存のデプロイメントをランタイムフラグで更新してください。インストールまたは更新を実行するときには、ランタイムセキュリティを有効にするために --set sensor.runtimeDetection=true フラグを含めてください。

詳細については、Kubernetes ランタイム検出センサーのインストールを参照してください。

アドミッションコントローラー

アドミッションコントローラーの概要を使用するには、Helm を使用してセンサーをインストールする必要があります。この要件は、パブリック、プライベート、アンマネージド Kubernetes と OpenShift クラスタにおける、サポート対象のすべてのクラウドプロバイダーに適用されます。

詳細については、アドミッションコントローラーのインストールを参照してください。

Kubernetes クラスタコネクタ (API トークン) を追加する

注意: 環境内のすべてのクラスタに対して 1 つのコネクタを追加できます。クラスターごとまたはクラスターグループごとにこの手順を繰り返す必要はありません。

Helm を使用してクラスタ クラスターを追加する する前に、クラスタコネクタを作成する必要があります。これは、クラスタと Tenable間の安全な通信を認証するための API トークンとして機能します。

コネクタを追加する方法

  1. Tenable One Cloud Exposure コンソールで、[Settings > Integrations] > [Add Integration > Kubernetes Cluster] に移動します。
  2. [組織] ドロップダウンで アカウントの範囲 を選択します。デフォルトでは、組織全体 (すべてのアカウント) が選択されています。

    注意:

    • クラスターを追加するときには、コネクタを選択する必要があります。選択した範囲によって、コネクタを使用できる場所が決まります。たとえば、コネクタを AWS フォルダーに追加した場合、その範囲内でのみ選択できます。
    • [Kubernetes クラスタ] ページの [リソース同期] 列は、コネクタアイコンを介してコネクタを使用するすべてのクラスタを Kubernetes で示します。
  3. コネクタに意味のある 名前 を入力します。
  4. [追加] をクリックします。

クラウドマネージドクラスタのリソースを同期する

Tenable では、 EKS、 AKS、 GKE、 OKE のドキュメントで説明されているクラウドベースの方法を使用して、クラウドマネージドクラスタを接続することを推奨しています。

ただし、これらの方法が実行できない場合は、Kubernetes クラスタ Helm チャートを使用してクラスタリソースを同期できます。この方法により、クラウド間直接接続が利用できない場合でも、コンテナリソースの更新されたインベントリを Tenable が確実に受け取ることができます。

次のような理由により、Helm チャート経由で同期することを選択できます。

  • アイデンティティ関連のアクセス許可がない。これは、 Tenable ロールにクラスタへのアクセス許可がない場合に発生します。GCP と OCI にはこれらのアクセス許可は必要ありませんが、他のプロバイダーには必要であり、一部の設定 (Azure でのローカル認証など) は従来の統合ではサポートされていません。
  • ネットワークベースのアクセスがありません。これは、プライベートクラスタなど、クラスタコントロールプレーンがパブリックにアクセスできない場合に発生します。

Helm をパッケージマネージャーとして使用し、安全な通信を確立することで、これらのクラスタを Tenable に接続できます。

Helm チャートを使用してクラウドマネージドクラスタのリソースを同期する方法

  1. Kubernetes クラスタコネクタを追加する
  2. クラスターを追加する

オンプレミスまたはマネージド (プライベート) クラスタのリソースの同期

オンプレミスまたはプライベートマネージドクラスタを Tenable に接続して、クラスタに関連付けられているすべてのアイデンティティとリソースを完全に可視化します。この接続により、アクセス許可、サブスクリプション使用状況、セキュリティ設定に関するデータが得られます。

これらのクラスタを同期するには、Helm チャートを使用してワークロード (デプロイメント) をインストールします。この Helm チャートには、データを同期し、セキュリティ設定をクラスタに適用するために必要な Kubernetes リソースが含まれています。詳細については、「 Tenable が Helm チャートを使用してクラスタに接続する方法」を参照してください。

注意: 統合を完了するまで、 Tenable はクラスタに関連付けられているオブジェクトや設定を分析または調査できません。[Kubernetes クラスタ] ページの リソース同期ステータス は、 Tenable が Kubernetes API に接続できるかどうかを示します。

Helm チャートを使用してオンプレミスクラスタを同期する方法

  1. Kubernetes クラスタコネクタを追加する
  2. クラスターを追加する

Kubernetes ランタイム検出センサーのインストール

必要なライセンス: この機能は Enterprise ライセンスでのみ利用できます。詳細については、ライセンスを参照してください。

注意: この機能は早期リリース版として提供されており、変更される可能性があります。機能およびサポートが制限される場合があります。アクセス権のリクエストやフィードバックの提供については、Tenable の担当者までご連絡ください。

ランタイム検出センサーは eBPF テクノロジーを使用して、システムレベルのアクティビティを監視し、クラスター内の不審なアクティビティを特定します。その後、センサーはこれらのイベントを Tenable に送信して、ほぼリアルタイムで分析します。詳細については、「 脅威検出」を参照してください。

Kubernetes ワークロードを監視して不審なアクティビティがないか確認する方法

  1. ランタイム検出用のアクセス許可と接続性など、すべての脅威検出の要件を満たしていることを確認します。
  2. 次のいずれかを実行します。

アドミッションコントローラーのインストール

Helm チャートコマンドを使用してアドミッションコントローラーをインストールし、環境内の関連する Kubernetes クラスタを接続します。この設定により安全な接続が確保され、アドミッションコントローラーがポリシーを管理できるようになります。

アドミッションコントローラーは、クラスタ接続の初期時または後でこの機能でクラスタをアップグレードすることによってインストールできます。

アドミッションコントローラーを有効にして Helm チャートをインストールすると、システムによって CA 証明書、サーバーキー、サーバー証明書が生成されます。これらの証明書により、 kube-apiserver と Tenable アドミッションコントローラー Webhook サーバーの間に安全な通信と信頼が確立されます。証明書は生成日から 3 年間有効です。

脆弱なコンテナイメージポリシーを有効にするには、アドミッションコントローラーがイメージプルシークレットを読み取って、デプロイされているコンテナイメージを識別する必要があります。これには Tenable Kubernetes Helm チャートバージョン 1.1.6 以降が必要です。シークレットアクセスは、デフォルトでは無効になっています。オンにするには、Helm コマンドに --set admissionController.readSecrets=true パラメーターを含めます。 Tenable はシークレットをリストするアクセス許可を付与しますが、アドミッションコントローラーはイメージプルシークレットのみを調べます。

詳細な手順については、「 クラスターを追加するを参照してください。

Vulnerability Management Sensor for Kubernetes をインストールする

必要なライセンス: この機能は Enterprise ライセンスでのみ利用できます。詳細については、ライセンスを参照してください。

Helm チャート付きのワークロード保護センサーをインストールして、オンプレミスおよびクラウドマネージドの Kubernetes クラスタの脆弱性をスキャンします。センサーは、クラスタで実行されている仮想マシン (ノード) とコンテナイメージの脆弱性を特定します。

センサーはパッケージマネージャーとインストールされているライブラリのクエリを実行し、ホストにインストールされているソフトウェアと、ノードで実行されているコンテナイメージを特定します。次に、センサーはこのソフトウェアインベントリを分析のために Tenable に送信します。

詳細については、「 エージェントベースの Kubernetes ワークロードスキャン」を参照してください。

Kubernetes ワークロードの脆弱性をスキャンする方法

  1. ワークロードスキャンの追加要件も含め、すべての要件を満たしていることを確認します。
  2. 次のいずれかを実行します。

クラスターを追加する

クラスタを追加するには、動的に生成されたコマンドを使用して Tenable 提供の Helm チャートをインストールします。

要件

インストールする前に、クラスタが次の要件を満たしていることを確認してください。

クラスター基準 要件
Helm バージョン
  • 最小 3.9.0
  • Tenable 3.16.4 以上を推奨
一般リソース
  • 最小 100m CPU(0.1 vCPU またはシングルコアの 10%)
  • クラスタあたり 512 MiB (メビバイト) のメモリ
ワークロードスキャン
  • (追加) ワーカーノードあたり 1000m CPU と 1GiB メモリ。
  • サポートされているランタイムには、containerd、CRI-O、Docker が含まれます
ランタイム検出
  • CPU (Pod 制限): 1 コア (1000m)
  • メモリ (RAM): 1 GiB
接続性
  • [許可されたデスティネーション] にリストされているTenable宛先への送信アクセスファイヤーウォール、プロキシ、またはネットワークポリシーによってクラスタからの送信トラフィックが制限されている場合は、これらの宛先を許可します。
  • 無制限の送信アクセスもサポートされていますが、 Tenable ではセキュリティ上の理由から、リストされている送信先への送信トラフィックを制限することを推奨しています。
  • プロキシサーバーは、 Helm のオプションのコマンドパラメーターを介してサポートされます。
プライベートレジストリ: Kubernetes環境でプライベート・レジストリを使用している場合は、インストールを開始する前に、 プライベートレジストリを持つクラスタ を使用してミラーリングまたはプルスルーを構成してください。

許可されたデスティネーション

クラスタからの送信トラフィックを制限する場合は、次の宛先を許可します。ワイルドカードエントリは、 Tenable ドメインにのみ適用されます。

デスティネーション 目的
containers.tenable.com Helm チャートがデプロイするコンテナイメージをプルします。
charts.tenable.com Tenable Helm リポジトリをホストします。helm repo addを実行する必要があります。プライベートレジストリを持つクラスタを使用する場合は必要ありません。
app.tenable.com クラスタと クラウドサイバーエクスポージャー間の通信
*.app.tenable.com クラスタとサイトの クラウドサイバーエクスポージャー エンドポイント間の通信 ( <site-code>.app.tenable.com など)。
<site-code>-tunnel.internal.app.tenable.com クラスタと クラウドサイバーエクスポージャー間の接続専用のトンネルエンドポイントです。
app.tenable.us と *.app.tenable.us 米国ガバメントクラウド環境でのみ必要です。
  • ワイルドカード *.app.tenable.com はサブドメインのみに適合します。app.tenable.com一致しないので、両方を許可します。
  • Kubernetes ネットワークポリシーなどの一部のツールは、ワイルドカード FQDN をサポートしていません。その場合は、ワイルドカードエントリの代わりに明示的なホスト名を許可します。たとえば、シンガポールサイト (1sg) の場合、次のことを許可します。
    • containers.tenable.com
    • charts.tenable.com
    • app.tenable.com
    • sg1.app.tenable.com
    • sg1-tunnel.internal.app.tenable.com sg1 をサイトコードに置き換えてください。
地域 サイトコード
米国 us1
オーストラリア au1
ブラジル br1
カナダ ca1
ヨーロッパ eu1
インド in1
日本 jp1
シンガポール sg1
韓国 kr1
アラブ首長国連邦 ae1
英国 uk1
米国ガバメントクラウド usgov1

Helm コマンドを設定して実行する

クラスタを追加するには、クラスタ上で helm install コマンドを設定して実行します。

クラスタを追加する方法

  1. クラウドサイバーエクスポージャー コンソールで、[Explore > Kubernetes Clusters] に移動します。
  2. (オプション)組織ツリーで、 アカウントの範囲を選択します。デフォルトでは、コンソールは組織全体 (すべてのアカウント) を選択します。

    注意: 選択する範囲は、 Tenable Kubernetes Cluster Connector の範囲と一致する必要があります。たとえば、AWS フォルダーにコネクタを追加した場合、そのコネクタはその範囲内でのみ選択できます。
  3. 次のいずれかのアクションを実行します。
    • 複数のクラスタ ( Tenable によってまだ検出されていないアンマネージドクラスタを含む) を一度に接続するには、[Helm 経由でクラスタの追加] をクリックします。
    • (管理者のみ) Tenableによってすでに検出された個別のクラスタを接続するには、[Kubernetesクラスタ] テーブルでクラスタを検索し、 三点リーダー メニューをクリックして [Install Helm] を選択します。
    • (管理者のみ)クラスタがすでに接続されているが、新しい機能をインストールする場合は、「 Kubernetesクラスタ」 テーブルでクラスタを検索し、三点リーダーアイコンをクリックして、「 Upgrade Helm」をクリックします。
  4. Kubernetes のパッケージマネージャーとして Helm をインストールします。使用を開始するには、Helm の ドキュメント を参照してください。
  5. クラスタに接続するように kubectl を設定します。
  6. 次のコマンドを実行して、 Tenable リポジトリを追加します。
    helm repo add tenable https://charts.tenable.com
    ( プライベートレジストリを持つクラスタを使用している場合は、この手順をスキップして、チャートが内部リポジトリで利用可能であることを確認してください)。

    注意:

    • リポジトリをすでに追加している場合は、 helm repo update tenable を実行して最新のチャートに更新します。
    • 以前の URL (https://charts.ermetic.com) は廃止されるため、https://charts.tenable.com を使用する必要があります。
  7. 関連するコネクタを選択します。コネクタがない場合は、続行する前に コネクタを追加 してください。すべてのクラスタに対して 1 つのコマンドを使用できます。
  8. クラスタに関連付けるアカウントを選択します。アカウントは手動で選択するか、 クラスタアカウントの場所を使用できます。
  9. 使用する機能を選択します。選択した内容は、次のステップで生成されるコマンドに影響を与えます。
    • リソース同期。クラスタリソースの可視性を提供し、検出された設定ミスに関する検出結果をトリガーします。
    • (Enterprise ライセンスのみ) ランタイムの検出。eBPF センサーを使用してクラスターワークロードのイベントを監視し、不審なアクティビティを検出します。詳細については、「 脅威検出」を参照してください。
    • (Enterprise ライセンスのみ) アドミッションコントローラー。API リクエストをインターセプトして、ポリシーを強制し、設定を検証します。詳細については、「 アドミッションコントローラーの概要を参照してください。
    • (Enterprise ライセンスのみ)脆弱性管理クラスタノードとコンテナイメージをスキャンして脆弱性を検出します。追加要件など、詳細については、「 Kubernetes のワークロード保護センサーのインストール」を参照してください。
  10. Tenable に接続してデータを送信するには、[Add Clusters via Helm] (Helm を介してクラスタを追加する) ダイアログに表示されるコマンドを実行します。このコマンドにより、クラスタに Kubernetes コネクタチャートがインストールされます。コマンドは、選択されたコネクタ、アカウント範囲、有効な機能に基づいて動的に生成されます。
  11. (オプション) オプションのパラメーター をコマンドに追加します。
    次の画像は、オンプレミスワークロードスキャンが有効になっている場合の、このコマンドのサンプル出力を示しています。

    Sample output of the helm install command

デプロイメントの検証

センサーがデプロイされ、実行されていることを検証するには、次のコマンドを実行します。

  • kubectl get pods -n tenable-cloud-security-kubernetes-cluster

    注意: 通常、PodがRunning状態になるまでに1〜2分かかります。センサーは Kubernetes クラスタノードごとに実行されます。

以下の例では、2 つのノードがあります。

kubectl output showing the connector, sensor, and updater pods in the Running state

問題のトラブルシューティングについては、 Helm チャートのトラブルシューティングを参照してください。

API 経由でのクラウドマネージドクラスタの接続

クラスタを追加するには、マネージドクラスタを自動的に検出して同期するために必要なクラウドアクセス許可を クラウドサイバーエクスポージャー に付与します。

クラスタを追加する方法

  1. クラウドサイバーエクスポージャー コンソールで、[Explore > Kubernetes Clusters] に移動します。
  2. (オプション) 組織ツリーで、 アカウントの範囲を選択します。デフォルトでは、コンソールは組織全体 (すべてのアカウント) を選択します。

    注意: 選択する範囲は、 Tenable Kubernetes Cluster Connector の範囲と一致する必要があります。たとえば、AWS フォルダーにコネクタを追加した場合、そのコネクタはその範囲内でのみ選択できます。
  3. 接続方法オプションから [クラウド管理] をクリックします。
  4. [Select Clusters] (クラスタの選択 ) ステップで、テーブル内のターゲットクラスタを見つけます。[名前] または [アカウント] フィルターを使用して、リストを絞り込むことができます。
  5. 接続する各クラスタの横にあるチェックボックスを選択します。

    注意: この方法は通常、リソース 同期 ステータスが [アクセス許可なし] または [接続失敗] と表示されている検出されたクラスタに対して使用されます。
  6. [次へ] をクリックして、[スクリプト] のステップに進みます。
  7. 異なるクラウドアカウントでクラスタを選択した場合は、スクリプトウィンドウの上部にある関連するアカウントタブを選択します。アカウントごとに個別にスクリプトを実行する必要があります。
  8. ローカルのターミナルまたは Cloud Shell 環境が次の要件を満たしていることを確認します。
    • クラウドプロバイダー CLI がインストールされ、アクティブなプロファイルまたは CloudShell 経由で認証されます。
    • kubectl がインストールされています。
    • 認証されたアカウント/プロファイルには、接続しているターゲット Kubernetes クラスタへの明示的な書き込み許可があります。
  9. コンソールボックスに表示されている動的に生成された bash スクリプトをコピーします。
  10. ターミナルでローカルでスクリプトを実行するか、プロバイダーのクラウドシェルから直接スクリプトを実行し、 Tenable とクラスタの間に安全な接続アクセスエントリを確立します。

高度なクラスター設定

特定の環境に合わせて Helm チャートのインストールをカスタマイズできます。ワークフローに最適な方法を選択してください。

  • Helm のオプションのコマンドパラメーター (CLI) 1 回限りの素早い変更や、初期インストール時の簡単なオーバーライド (クラスタ名やプロキシの設定など) に最適です。
  • values.yaml ファイル: 複雑な設定やバージョン管理されたデプロイメント、または詳細なリソース制限、アフィニティルール、セキュリティコンテキストを定義する必要がある場合に最適です。
  • プライベートレジストリ: カスタムコンテナレジストリを使用する場合は、 プライベートレジストリを持つクラスタを参照してください。
  • カスタム CA 証明書: コンポーネントがインスペクションプロキシまたは内部認証局を信頼できるように Tenable CA証明書を提供します。

Helm のオプションのコマンドパラメーター (CLI)

これらのパラメーターを helm install コマンドに追加して、設定をカスタマイズします。

パラメーター 説明 例
--set name デフォルトのクラスタ名 (DNS 名) をオーバーライドします。 --set name="cluster1.mycompany.internal"
--set accountId 別のアカウント ID またはオンプレミスのデフォルトアカウント (opDefault) を選択することで、検出されたアカウントの場所をオーバーライドします。詳細については、「 クラスタアカウントの場所を参照してください。 --set accountId="123456789012"、--set accountId=opDefault
--set configureIdentity、--set configureNetwork デフォルトでは、 Tenable はクラスタに接続して、アイデンティティ関連のアクセスとネットワークベースのアクセスの両方を設定します。このデフォルトをオーバーライドし、これらの形式のアクセスの 1 つを無効にするには、必要に応じて、 次のいずれかを コマンドに追加し、値を false に追加します。詳細については、「 Tenable のクラスターへの接続方法」を参照してください。 --set configureIdentity="false"
--set proxyUrl プロキシサーバーを使用して接続します。
  • 認証なしの場合:
    --set proxyUrl="http://your-proxy:<port>"
  • 認証あり
    --set proxyUrl="http://<username>:<password>@your-proxy:<port>"

values.yaml ファイル

高度なユースケースでは、 values.yaml ファイルを使用して設定をカスタマイズできます。

values.yamlファイルを使用してクラスタを設定する方法

  1. ファイルを取得します。
    helm show values tenable/cloud-security-kubernetes-cluster
  2. 必要に応じて values.yaml ファイルを 構成し、保存します。
  3. ファイルを helm install コマンドに追加します。
    helm install {...} -f custom-values.yaml

    注意: {...}は、[Add Clusters]ダイアログから動的に生成されたコマンドを表します。

共通 values.yaml パラメーター

values.yaml ファイルには次の共通するパラメーターが含まれています。

パラメーター 説明 デフォルト
アイデンティティ デフォルトでは、 Tenable はクラスタに接続して アイデンティティアクセスを設定します。このデフォルトをオーバーライドしてアクセス権を無効にするには、 false に変更します。 true
ネットワーク デフォルトでは、 Tenable はクラスタに接続して ネットワークアクセスを設定します。このデフォルトをオーバーライドしてアクセス権を無効にするには、 false に変更します。 true
レジストリ デプロイメントに独自のコンテナイメージレジストリを使用する場合は、このパラメーターを使用して設定できます。このパラメータは、すべてのコンポーネントに共通です。 containers.tenable.com
リポジトリ デプロイメントに独自のコンテナイメージリポジトリを使用する場合は、このパラメーターを使用してパスを設定できます。このパラメーターは、各コンポーネントに対して個別に編集できます。 cloud-security/kubernetes-cluster-manager
アフィニティ ラベルと条件に基づいて、Pod をノードに割り当てるためのルールを定義します。
注釈 任意の非識別メタデータをポッドに添付するために使用されるキーと値のペア。
ラベル Pod を識別および選択し、Pod 間の関係を指定するために使用されるキーと値のペア。
リソース CPU やメモリなど、Pod のコンピューティングリソースの要件と制限を指定します。
tolerations taint のあるノードに Pod をスケジュールできる条件を指定します。
resourceNamePrefix Tenableによってクラスターで作成された各リソースにカスタムプレフィックスを追加します。 kubernetes-cluster
proxyUrl プロキシサーバーを使用して接続します。
  • 認証なし:
    proxyUrl: "http://your-proxy:<port>"
  • 認証がある場合
    proxyUrl: "http://<username>:<password>@your-proxy:<port>"
containerCaCertificate インスペクションプロキシまたは内部認証局の背後にある環境で、すべての Tenable コンポーネントにカスタムCA証明書を提供します。pem を使用して証明書をインラインで設定するか、secretNameを使用して既存のクラスタシークレットを参照します。カスタム カスタム CA 証明書を参照してください。

アドミッションコントローラーのオプションのパラメーター

パラメーター 説明 デフォルト
webhook.port Webhook がリッスンしているポート番号。クラスタ内でポートにアクセスできることを確認します。 8443
webhook.replicas アドミッションコントローラーのポッドインスタンスの数。 3
readSecrets アドミッションコントローラーにシークレットをリストするアクセス許可を付与します。これにより、 脆弱なコンテナイメージ ポリシー用にデプロイされているコンテナイメージを識別できるようになります。アドミッションコントローラーは、イメージプルシークレットのみを調べます。--set admissionController.readSecrets=trueで設定します。チャートバージョン1.1.6以降が必要です。 false

Values.YAML デフォルト値

コピー

YAML

accountId: null
admissionController:
  containerImage:
    repository: cloud-security/kubernetes-cluster-admission-controller
    tag: null
  enabled: false
  healthPort: 9090
  logLevel: "information"
  readSecrets: false
  networkPolicy:
    enabled: false
    ingress: {}
  pod:
    affinity: {}
    annotations: {}
    containers:
      securityContext: {}
    labels: {}
    resources:
      limits:
        cpu: "100m"
        memory: "256Mi"
      requests:
        cpu: "100m"
        memory: "256Mi"
    tolerations: []
  replicas: 3
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  webhook:
    failurePolicy: Ignore
    port: 8443
    timeoutSeconds: 3
apiKeyToken: ""
apiUrl: ""
clusterId: null
connector:
  enabled: true
  identity: true
  network: true
  pod:
    affinity: {}
    annotations: {}
    containers:
      securityContext: {}
    labels: {}
    resources: {}
    tolerations: []
containerCaCertificate:
  pem: null
  secretName: null
containerEnvironmentVariables: []
containerImage:
  pullSecrets: []
  registry: containers.tenable.com
  registryPassword: null
  registryUsername: null
  repository: cloud-security/kubernetes-cluster-manager
  tag: null
containerSecrets:
  apiKeyTokenName: null
  injectExternally: false
  volumeMountPath: "/var/run/secrets/application"
hooks:
  pod:
    affinity: {}
    annotations: {}
    containers:
      securityContext: {}
    labels: {}
    resources: {}
    tolerations: []
name: null
pod:
  affinity: {}
  annotations: {}
  containers:
    securityContext:
      runAsUser: 1000
  labels: {}
  resources:
    limits:
      cpu: "100m"
      memory: "512Mi"
    requests:
      cpu: "100m"
      memory: "512Mi"
  tolerations: []
proxyUrl: null
resourceNamePrefix: kubernetes-cluster
sensor:
  containerImage:
    repository: cloud-security/kubernetes-cluster-sensor
    tag: null
  dataPath: "/var/lib/tenable"
  enabled: false
  pod:
    affinity: {}
    annotations: {}
    labels: {}
    resources:
      limits:
        cpu: "1"
        memory: "1Gi"
      requests:
        cpu: "300m"
        memory: "256Mi"
    tolerations: []
updater:
  pod:
    affinity: {}
    annotations: {}
    containers:
      securityContext: {}
    labels: {}
    resources: {}
    tolerations: []

カスタム CA 証明書

インスペクションプロキシ経由でトラフィックをルーティングする環境や、内部認証局に依存する環境では、カスタムCA証明書を提供して、 Tenable コンポーネントが信頼できる接続を確立できるようにすることができます。 Tenable は、デプロイされたコンポーネントにのみ証明書をインストールします。クラスター全体の信頼は変更されません。

values.yamlファイルのcontainerCaCertificateセクションで証明書を設定します。

コピー

YAML

containerCaCertificate:
  pem: <CA certificate in PEM format>
  secretName: <name of an existing cluster secret that holds the certificate>

証明書をインラインで pem を指定するか、既存のクラスタシークレットを secretName で参照します。

コマンドラインから証明書を設定することもできます。

  • --set-file containerCaCertificate.pem=<path>を使用して証明書ファイルを提供します。
  • --set containerCaCertificate.secretName=<name>を使用して、既存のクラスタシークレットを参照します。
注意: Helm 設定の長さが制限されているため、 Tenable では、証明書がバンドルされている場合やサイズが大きい (200 KB を超える場合)、pem でインラインで埋め込むのではなく、 secretName で証明書を参照することを推奨しています。

クラスタアカウントの場所

クラスタを追加すると、 Tenable はクラスタがあるアカウントを検出しようとします。

  • 接続されたクラウドアカウント: 関連付けられているクラウドアカウントがすでに接続されている場合、クラスタはそのクラウドプロバイダーの関連するアカウント範囲 (フォルダー) に追加されます。
  • 未接続のクラウドアカウント: 関連付けられているクラウドアカウントが接続されていない場合、 Tenable はワーカーノードのアカウントに基づいて場所の特定を試みます。
  • 手動関連付け: アカウントを検出できない場合 Tenable 、クラスタを別の接続済みアカウントまたはオンプレミスのデフォルトアカウントに関連付けることができます。これを行うには、Helm コマンドの設定中にドロップダウンメニューからアカウントを選択するか、 Helm コマンドを設定して実行する コマンドの --set accountId パラメーターを使用します。

    注意: 通常、オンプレミスのデフォルトアカウントに追加されたクラスタはオンプレミスですが、他のアカウントが検出されない場合は、他のタイプのクラスタもこのフォルダーにマッピングされることがあります。

検出されたアカウントの場所をオーバーライドすると、 Tenable は定義したアカウント範囲にクラスタを追加します。パラメーターを使用して場所をオーバーライドする方法の詳細については、 Helm のオプションのコマンドパラメーターを参照してください。