よくある質問 - Kubernetes
この記事では、 Tenable One Cloud Exposure内のKubernetesに関連するよくある質問を紹介します。
オンプレミスまたはセルフマネージドクラスタのクラスタコネクタ要件
回答: コネクタは、 クラウドサイバーエクスポージャー がクラスタに接続するために必要な API トークンとして機能します。環境内のすべての関連クラスタにコネクタを 1 つ追加してください。
Tenable での Kubernetes Cluster Connector API キーのアクセス許可
回答: Tenable の Kubernetes Cluster Connector は、Kubernetes クラスタと クラウドサイバーエクスポージャー プラットフォーム間の安全な通信を認証し有効化するために使用される API キーです。その主な役割は、監視および分析のために Kubernetes 環境と Tenable の統合を促進することです。
回答: Kubernetes Cluster Connector API キーは、その名前にもかかわらず、範囲が 狭く特定のものです。これはKubernetes関連の操作に厳格に制限されており、エンティティデータのクエリやアカウントレベルのアクションの実行など、より広範なTenable API へのアクセスは付与されません。プラットフォームの他の部分へのアクセスなど、本来の目的以外で使用する試みは拒否されます。
クラスタアカウントの関連付け
回答:
Helm チャートがクラスタにインストールされると、 クラウドサイバーエクスポージャー は以下のようにクラスタアカウントの場所を検出します。
- 関連付けられているクラウドアカウントがすでに接続されている場合、クラスタはクラウドプロバイダーの関連するアカウント範囲 (フォルダー) に追加されます。
- 関連付けられているクラウドアカウントが接続されていない場合、 Tenable はワーカーノードのアカウントに基づいて場所の特定を試みます。
-
関連付けられたアカウントが検出されない場合、 Tenable はクラスタをオンプレミスのデフォルトアカウントに追加します。
注意: ほとんどの場合、このデフォルトアカウントに追加されるクラスターはオンプレミスですが、他のクラスタータイプもこのフォルダーにマッピングされる場合があります。たとえば、クラウドサイバーエクスポージャー によってサポートされていないクラウドプロバイダーに属するクラスタなどです。 - --set accountId={accountId} を Helm コマンドに追加することで、検出されたアカウントの場所をオーバーライドできます。詳細については クラスターを追加する を参照してください。
コンソールでのリソースの可視性
回答: お使いの環境で データの同期と更新の頻度 ときに、リソースが表示されます。
新しいコンテナイメージのスキャン
センサーは約 30 分以内にノードをスキャンして新規または更新されたコンテナイメージを探します。検出結果は ご使用の環境内で Tenable が次回 データの同期と更新の頻度 ときに更新されます。
OpenShift クラスタのサポート
クラスタの移動
Helm チャートを使用してクラスタをアンインストールしてから、 再インストールしてください。アンインストールするには、クラスタで次のコマンドを実行します。 helm uninstall tenable-kubernetes-cluster-connector -n tenable
カスタムクラスター名
回答: はい。セルフマネージド/オンプレミスクラスターを接続する場合、デフォルトの名前は DNS 名になります。--set name={name} を Helm コマンドに追加することで、この名前をオーバーライドできます。詳細については、 オプションのコマンドパラメーター を参照してください。
エージェントのバージョン
バージョンを取得するには、クラスタで kubectl を実行し、ワークロード Pod ログを確認します。kubectl logs <tenable connector pod name> -n <namespace> | grep Version
コネクタ ポッドの場合は、出力で Version を検索します。バージョンは、それぞれアドミッションコントローラーポッドとセンサーポッドの出力で BuildVersion と buildVersion で表されます。
アドミッションコントローラー
回答: ポート 8443 がKubernetesアドミッション Webhook に一般的に使用される安全な HTTPS ポートであるため、Webhook はデフォルトでポート 8443 でリッスンします。これにより、ワーカーノードからのすべての受信コントロールリクエストが安全に処理されます。
回答: プライベート GKE セットアップでは、ファイヤーウォールルール、VPC 設定、その他のセキュリティメカニズムなどのネットワーク制限により、ワーカーノードがブロックされてポート 8443 の Webhook に到達できない場合があります。これにより、アドミッションコントローラーが適切に機能しなくなる可能性があります。
回答: ワーカーノードに Webhook へのアクセスを許可するには
- ファイアウォールルール: ファイアウォールルールが、すべてのワーカーノードからポート 8443 の Webhook エンドポイントへのトラフィックを許可するようにします。
- VPC ピアリング: Webhook が別の VPC で実行されている場合は、適切なピアリングとルーティングを設定します。
- ネットワークポリシー: Kubernetesで、通信をブロックしている可能性のある NetworkPolicy がないか確認して、変更します。
- エンドポイントのアクセシビリティ: Webhook サービスが正しく公開され、クラスタ内で到達可能であることを確認します。
回答: はい、必要に応じて別のポートでリッスンするように Webhook を設定できます。ただし、そのためには Kubernetes で Webhook 設定を更新し、ファイヤーウォールルールで新しいポートへのトラフィックが許可される必要があります。
回答: デフォルトのポート(8443)にアクセスできない場合、顧客の上書きオプションにより、ユーザーはカスタム設定を指定できます。これには、別のポートを定義したり、接続を確保するための代替ネットワークルールを設定したりすることが含まれます。
回答: 脆弱なコンテナイメージポリシーを有効にするために、アドミッションコントローラーはイメージプルシークレットを読み取ることで、デプロイされているコンテナイメージを識別します。 Tenableはシークレットをリストするアクセス許可を付与しますが、アドミッションコントローラーはイメージプルシークレットのみを調べます。このアクセスは、デフォルトでは無効になっています。--set admissionController.readSecrets=trueで有効にします。これには Tenable Kubernetes Helm チャートバージョン 1.1.6 以降が必要です。
プライベートリポジトリから クラウドサイバーエクスポージャー Helm チャートをデプロイする
プライベート Git リポジトリから クラウドサイバーエクスポージャー Helm チャートをデプロイするには、次の手順に従います。
-
以下を実行して、公式 Tenable repo から Helm チャートのクローンを作成します。
helm repo add <local path/cloned repo>または、コピーを指すようにサードパーティの継続デプロイメントプラットフォームを設定します。注意: 必要に応じて、チャートをインストールしたい場所へリポジトリ/チャートをコピーします。
2.helm install コマンドを更新して、Tenable のパブリックGitHubリポジトリではなく、プライベートリポジトリまたはローカルパスをポイントします。
回答: はい。 Tenable では、少なくとも 2 週間に 1 回、プライベートリポジトリを最新の Helm チャートリリースと同期することを推奨しています。これにより、最新の機能、機能改善、セキュリティ更新を確実に利用できます。
回答: デプロイメントでプライベートコンテナレジストリを使用する必要がある場合、顧客は Tenable のコンテナイメージもプライベートレジストリにミラーする必要があります。これには、必要に応じて Helm 値のイメージ参照を更新することも含まれます。
詳細については、こちらのドキュメントを参照してください。
Helm チャートと同様に、イメージには、機能、パフォーマンス、セキュリティに関する更新を頻繁に受け取る実際のランタイムコンポーネントが含まれているため、イメージも定期的に更新する必要があります。
Kubernetes クラスタに特定のセンサーバージョンを使用する方法
ダウンロードできるのは、 Tenable が公開している最新バージョンのセンサーのみです。ただし、クラスタとプライベート プライベートレジストリを持つクラスタを使用することで、特定のバージョンを自分で管理および固定できます。
最新バージョンをダウンロードしたら、プライベートレジストリにプッシュし、バージョン管理のニーズに応じてタグ付けします。ここから、クラスタがプルするタグを制御します。