インストール
Red Hat Advanced Cluster Security for Kubernetes のインストール
概要
第1章 RHACS のインストールの概要
Red Hat Advanced Cluster Security for Kubernetes (RHACS) は、OpenShift Container Platform または Amazon Elastic Kubernetes Service (Amazon EKS)、Google Kubernetes Engine (Google GKE)、Microsoft Azure Kubernetes Service (Microsoft AKS) などのセルフマネージド Red Hat OpenShift Kubernetes システム、またはプラットフォームにセキュリティサービスを提供します。
サポートされるプラットフォームおよびアーキテクチャーの詳細は、Red Hat Advanced Cluster Security for Kubernetes Support Matrix を参照してください。RHACS のライフサイクルのサポート情報は、Red Hat Advanced Cluster Security for Kubernetes サポートポリシー を参照してください。
1.1. 汎用インストールガイドライン
最高のインストールエクスペリエンスを確保するには、次のガイドラインに従ってください。
- このモジュールで説明されているインストールのプラットフォームと方法を理解する。
- Red Hat Advanced Cluster Security for Kubernetes アーキテクチャー を理解する。
- デフォルトのリソース要件 を確認する。
1.2. 各プラットフォームのインストール方法
各種のプラットフォームで各種のインストールを実行できます。
すべてのプラットフォームですべてのインストール方法がサポートされているわけではありません。詳細は、Red Hat Advanced Cluster Security for Kubernetes Support Matrix を参照してください。
プラットフォームタイプ | プラットフォーム | 推奨されるインストール方法 | インストールの手順 |
---|---|---|---|
マネージドサービスプラットフォーム | Red Hat OpenShift Dedicated (OSD) |
Operator (推奨)、Helm チャート、または | |
Azure Red Hat OpenShift (ARO) | |||
Red Hat OpenShift Service on AWS (ROSA) | |||
Red Hat OpenShift on IBM Cloud | |||
Amazon Elastic Kubernetes Service (Amazon EKS) |
Helm チャート (推奨)、または | ||
Google Kubernetes Engine (Google GKE) | |||
Microsoft Azure Kubernetes Service (Microsoft AKS) | |||
セルフマネージドプラットフォーム | Red Hat OpenShift Container Platform (OCP) |
Operator (推奨)、Helm チャート、または | |
Red Hat OpenShift Kubernetes Engine (OKE) |
-
このインストール方法に従うための特別な要件がない限り、
roxctl
インストール方法を使用しないでください。
1.3. 各アーキテクチャーのインストール方法
Red Hat Advanced Cluster Security for Kubernetes (RHACS) は、次のアーキテクチャーをサポートします。サポートされるプラットフォームおよびアーキテクチャーの詳細は、Red Hat Advanced Cluster Security for Kubernetes Support Matrix を参照してください。また、以下の表では、各アーキテクチャーで利用可能なインストール方法を説明します。
サポート対象のアーキテクチャー | サポート対象のインストール方法 |
---|---|
AMD64 |
Operator (推奨)、Helm チャート、または |
ppc64le (IBM Power) | 演算子 |
s390x (IBM Z および IBM® LinuxONE) |
第2章 Red Hat Advanced Cluster Security for Kubernetes のデフォルトのリソース要件
2.1. 一般要件
RHACS には、インストールする前に満たす必要のあるシステム要件がいくつかあります。
次の場所に Red Hat Cluster Security for Kubernetes をインストールしないでください。
- Amazon Elastic File System (Amazon EFS)。代わりに、デフォルトの gp2 ボリュームタイプで Amazon Elastic Block Store (Amazon EBS) を使用してください。
- Streaming SIMD Extensions (SSE) 4.2 命令セットを備えていない古い CPU。たとえば、Sandy Bridge より古い Intel プロセッサー、および Bulldozer より古い AMD プロセッサー。(これらのプロセッサーは 2011 年にリリースされました。)
Red Hat Advanced Cluster Security for Kubernetes をインストールするには、以下のシステムのいずれかが必要です。
- OpenShift Container Platform バージョン 4.11 以降、および Red Hat Enterprise Linux CoreOS (RHCOS) または Red Hat Enterprise Linux (RHEL) のサポートされているオペレーティングシステムを搭載したクラスターノード。
サポートされているマネージド Kubernetes プラットフォーム、および Amazon Linux、CentOS、Google の Container-Optimized OS、Red Hat Enterprise Linux CoreOS (RHCOS)、Debian、Red Hat Enterprise Linux (RHEL)、または Ubuntu のサポートされているオペレーティングシステムを搭載したクラスターノード。
詳細は、Red Hat Advanced Cluster Security for Kubernetes Support Policy を参照してください。
クラスターノードの最小要件:
アーキテクチャー:
amd64
、ppc64le
、またはs390x
注記RHACS 4.3 以降、Central クラスターサービスとセキュアクラスターサービスの両方が、IBM Power (
ppc64le
)、IBM Z (s390x
)、および IBM® LinuxONE (s390x
) クラスターでサポートされます。- プロセッサー: 3 CPU コア
メモリー: 6 GiB メモリー
注記各コンポーネントのデフォルトのメモリー要件と CPU 要件を確認し、ノードサイズがそれらをサポートできることを確認してください。
永続ボリューム要求 (PVC) を使用した永続ストレージ:
最高のパフォーマンスを得るには、ソリッドステートドライブ (SSD) を使用してください。ただし、SSD を使用できない場合は、別のタイプのストレージを使用できます。
重要Red Hat Advanced Cluster Security for Kubernetes で Ceph FS ストレージを使用しないでください。Red Hat は、Red Hat Advanced Cluster Security for Kubernetes に RBD ブロックモード PVC を使用することを推奨します。
Helm チャートを使用してインストールするには:
-
Helm チャートを使用して Red Hat Advanced Cluster Security for Kubernetes をインストールまたは設定する場合は、Helm コマンドラインインターフェイス (CLI) v3.2 以降が必要です。
helm version
コマンドを使用して、インストールされている Helm のバージョンを確認します。 -
Red Hat Container Registry へのアクセスがあること。
registry.redhat.io
からイメージをダウンロードする方法は、Red Hat コンテナーレジストリーの認証 を参照してください。
2.2. 中央サービス (セルフマネージド)
Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service) を使用している場合、 Central サービスは Red Hat によって管理されるため、Central サービスの要件を確認する必要はありません。確認する必要があるのは、セキュアなクラスターサービスの要件のみです。
Central サービスには次のコンポーネントが含まれています。
- Central
- Scanner
2.2.1. Central
Central と呼ばれるコンテナー化されたサービスは API インタラクションと RHACS Web ポータルアクセスを処理し、Central DB (PostgreSQL 13) と呼ばれるコンテナー化されたサービスはデータの永続性を処理します。
Central DB には永続ストレージが必要です。
ストレージは永続ボリューム要求 (PVC) を使用して提供できます。
注記hostPath ボリュームをストレージに使用できるのは、すべてのホスト (またはホストのグループ) が NFS 共有やストレージアプライアンスなどの共有ファイルシステムをマウントしている場合のみです。それ以外の場合、データは単一のノードにのみ保存されます。Red Hat は、hostPath ボリュームの使用を推奨していません。
- 最高のパフォーマンスを得るには、ソリッドステートドライブ (SSD) を使用してください。ただし、SSD を使用できない場合は、別のタイプのストレージを使用できます。
Web プロキシーまたはファイアウォールを使用する場合は、
definitions.stackrox.io
ドメインとcollector-modules.stackrox.io
ドメインのトラフィックを許可するバイパスルールを設定し、Red Hat Advanced Cluster Security for Kubernetes が Web プロキシーまたはファイアウォールを信頼できるようにする必要があります。そうしないと、脆弱性定義とカーネルサポートパッケージの更新が失敗します。Red Hat Advanced Cluster Security for Kubernetes には、以下へのアクセスが必要です。
-
definitions.stackrox.io では
、更新された脆弱性定義がダウンロードできます。脆弱性定義の更新により、Red Hat Advanced Cluster Security for Kubernetes は、新しい脆弱性が発見されたとき、または追加のデータソースが追加されたときに、最新の脆弱性データを維持できます。 -
更新されたカーネルサポートパッケージをダウンロードするには、
collector-modules.stackrox.io
を使用します。更新されたカーネルサポートパッケージにより、Red Hat Advanced Cluster Security for Kubernetes は、最新のオペレーティングシステムをモニターし、コンテナー内で実行されているネットワークトラフィックとプロセスに関するデータを収集できます。これらの更新がないと、クラスターに新しいノードを追加したり、ノードのオペレーティングシステムを更新したりすると、Red Hat Advanced Cluster Security for Kubernetes がコンテナーのモニターに失敗する可能性があります。
-
セキュリティー上の理由から、管理アクセスが制限されたクラスターに Central をデプロイする必要があります。
メモリー、CPU、およびストレージの要件
次の表に、Central のインストールと実行に必要な最小メモリーとストレージの値を示します。
Central | CPU | メモリー | Storage |
---|---|---|---|
要求 | 1.5 コア | 4 GiB | 100 GiB |
制限 | 4 コア | 8 GiB | 100 GiB |
Central ではデータを保存するために Central DB が必要です。次の表に、Central DB のインストールと実行に必要な最小メモリーとストレージの値を示します。
Central DB | CPU | メモリー | Storage |
---|---|---|---|
要求 | 4 コア | 8 GiB | 100 GiB |
制限 | 8 コア | 16 GiB | 100 GiB |
2.2.2. Scanner
Red Hat Advanced Cluster Security for Kubernetes には、Scanner と呼ばれるイメージ脆弱性 Scanner が含まれています。このサービスは、イメージレジストリーに統合されているスキャナーでスキャンされていないイメージをスキャンします。
メモリーと CPU の要件
Scanner | CPU | メモリー |
---|---|---|
要求 | 1 コア | 1500 MiB |
制限 | 2 コア | 4000 MiB |
スキャナーはデータを保存するために Scanner-DB を必要とします。次の表に、Scanner-DB のインストールと実行に必要な最小メモリーとストレージの値を示します。
Scanner-DB | CPU | メモリー |
---|---|---|
要求 | .2 コア | 200 MiB |
制限 | 2 コア | 4000 MiB |
2.3. セキュアクラスターサービス
セキュアクラスターサービスには、次のコンポーネントが含まれています。
- Sensor
- Admission controller
- Collector
2.3.1. Sensor
Sensor は、Kubernetes および OpenShift Container Platform クラスターをモニターします。これらのサービスは現在、単一のデプロイメントでデプロイされ、Kubernetes API とのインタラクションを処理し、Collector と連携しています。
メモリーと CPU の要件
次の表に、セキュアクラスターに Sensor をインストールして実行するために必要なメモリーとストレージの最小値を示します。
Sensor | CPU | メモリー |
---|---|---|
要求 | 2 コア | 4 GiB |
制限 | 4 コア | 8 GiB |
2.3.2. Admission controller
Admission Controller は、ユーザーが設定したポリシーに違反するワークロードを作成するのを防ぎます。
メモリーと CPU の要件
デフォルトでは、アドミッションコントロールサービスは 3 つのレプリカを実行します。次の表に、各レプリカのリクエストと制限を示します。
Admission controller | CPU | メモリー |
---|---|---|
要求 | 0.05 コア | 100 MiB |
制限 | 0.5 コア | 500 MiB |
2.3.3. Collector
Collector は、セキュアクラスター内の各ノードのランタイムアクティビティーを監視します。Sensor に接続してこの情報をレポートします。コレクター Pod には 3 つのコンテナーがあります。最初のコンテナーはコレクターで、ノード上のランタイムアクティビティーを実際に監視して報告します。他の 2 つはコンプライアンスと node-inventory です。
コレクション要件
CORE_BPF
収集方法を使用するには、ベースカーネルが BTF をサポートし、BTF ファイルが Collector で使用できる必要があります。通常、カーネルのバージョンは 5.8 (RHEL ノードの場合は 4.18) 以降である必要があり、CONFIG_DEBUG_INFO_BTF
設定オプションを設定する必要があります。
Collector は、次の一覧に示されている標準の場所で BTF ファイルを検索します。
例2.1 BTF ファイルの場所
/sys/kernel/btf/vmlinux /boot/vmlinux-<kernel-version> /lib/modules/<kernel-version>/vmlinux-<kernel-version> /lib/modules/<kernel-version>/build/vmlinux /usr/lib/modules/<kernel-version>/kernel/vmlinux /usr/lib/debug/boot/vmlinux-<kernel-version> /usr/lib/debug/boot/vmlinux-<kernel-version>.debug /usr/lib/debug/lib/modules/<kernel-version>/vmlinux
これらのファイルのいずれかが存在する場合は、カーネルに BTF サポートがあり、CORE_BPF
が設定可能である可能性があります。
メモリーと CPU の要件
デフォルトでは、アドミッションコントロールサービスは 3 つのレプリカを実行します。次の表に、各レプリカのリクエストと制限を示します。
Collector | CPU | メモリー | |
---|---|---|---|
Collector Container | 要求 | 0.05 コア | 320 MiB |
制限 | 0.75 コア | 1000 MiB | |
Compliance Container | 要求 | 0.01 コア | 10 MiB |
制限 | 1 コア | 2000 MiB | |
Node-Inventory Container | 要求 | 0.01 コア | 10 MiB |
制限 | 1 コア | 500 MiB | |
Total | 要求 | 0.07 コア | 340 MiB |
制限 | 2.75 コア | 3500 MiB |
第3章 Red Hat Advanced Cluster Security for Kubernetes の推奨されるリソース要件
推奨されるリソースのガイドラインは、指定された数の namespace にわたって次のオブジェクトを作成する集中的なテストを実行することによって作成されました。
- 10 のデプロイメント、スリープ状態の 3 つの Pod レプリカ、4 つのシークレット、4 つの config map のマウント
- 10 のサービス。それぞれが以前のデプロイメントの 1 つの TCP/8080 および TCP/8443 ポートを指します。
- 以前のサービスの最初を指す 1 つのルート
- 2048 個のランダムな文字列文字を含む 10 個のシークレット
- 2048 個のランダムな文字列文字を含む 10 個の config map
結果の分析中に、使用されるリソースの増加の主な要因としてデプロイメントの数が特定されます。また、必要なリソースの見積もりにはデプロイメントの数を使用しています。
関連情報
3.1. 中央サービス (セルフマネージド)
Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service) を使用している場合、 Central サービスは Red Hat によって管理されるため、Central サービスの要件を確認する必要はありません。確認する必要があるのは、セキュアなクラスターサービスの要件のみです。
Central サービスには次のコンポーネントが含まれています。
- Central
Scanner
注記スキャナーのデフォルトのリソース要件については、デフォルトのリソース要件のページを参照してください。
3.1.1. Central
メモリーと CPU の要件
次の表は、1 つのセキュアクラスターで Central を実行するために必要なメモリーと CPU の最小値を示しています。この表には、Web ポータルの同時ユーザー数が含まれています。
デプロイメント | Web ポータルの同時ユーザー | CPU | メモリー |
---|---|---|---|
< 25,000 | 1 ユーザー | 2 コア | 8 GiB |
< 25,000 | 5 ユーザー未満 | 6 コア | 12 GiB |
< 50,000 | 1 ユーザー | 2 コア | 12 GiB |
< 50,000 | 5 ユーザー未満 | 6 コア | 16 GiB |
3.1.2. Scanner
メモリーと CPU の要件
次の表に、Central クラスターでのスキャナーのデプロイメントに必要な最小メモリーと CPU の値を示します。この表には、すべての保護されたクラスターにデプロイされている一意のイメージの数が含まれています。
一意のイメージの数 | レプリカ | CPU | メモリー |
---|---|---|---|
< 100 | 1 レプリカ | 1 コア | 1.5 GiB |
< 500 | 1 レプリカ | 2 コア | 2.5 GiB |
< 2000 | 2 レプリカ | 2 コア | 2.5 GiB |
< 5000 | 3 レプリカ | 2 コア | 2.5 GiB |
関連情報
3.2. セキュアクラスターサービス
セキュアクラスターサービスには、次のコンポーネントが含まれています。
- Sensor
- Admission controller
Collector
注記このページには Collector コンポーネントは含まれていません。必要なリソース要件は、デフォルトのリソース要件ページにリストされています。
3.2.1. Sensor
Sensor は、Kubernetes および OpenShift Container Platform クラスターをモニターします。これらのサービスは現在、単一のデプロイメントでデプロイされ、Kubernetes API とのインタラクションを処理し、Collector と連携しています。
メモリーと CPU の要件
次の表に、セキュアクラスターで Sensor を実行するために必要なメモリーと CPU の最小値を示します。
デプロイメント | デプロイメントごとの Pod | CPU | メモリー |
---|---|---|---|
< 25,000 | 3 | 2 コア | 8 GiB |
< 50,000 | 3 | 2 コア | 16 GiB |
3.2.2. Admission controller
Admission controller は、ユーザーが設定したポリシーに違反するワークロードを作成するのを防ぎます。
メモリーと CPU の要件
次の表に、セキュアクラスターでアドミッションコントローラーを実行するために必要なメモリーと CPU の最小値を示します。
デプロイメント | デプロイメントごとの Pod | CPU | メモリー |
---|---|---|---|
< 25,000 | 3 | 0.5 コア | 600 MiB |
< 50,000 | 3 | 0.5 コア | 1200 MiB |
第4章 Red Hat OpenShift への RHACS のインストール
4.1. Red Hat OpenShift での RHACS の Central サービスのインストール
Central は、RHACS アプリケーション管理インターフェイスとサービスを含むリソースです。データの永続性、API インタラクション、および RHACS ポータルアクセスを処理します。同じ Central インスタンスを使用して、複数の OpenShift Container Platform または Kubernetes クラスターを保護できます。
以下のいずれかの方法を使用して、OpenShift Container Platform または Kubernetes クラスターに Central をインストールできます。
- Operator を使用してインストールする
- Helm チャートを使用してインストールする
-
roxctl
CLI を使用してインストールします (この方法を使用する必要がある特定のインストールが必要でない限り、この方法は使用しないでください)。
4.1.1. Operator を使用して Central をインストールする
4.1.1.1. Red Hat Advanced Cluster Security for Kubernetes Operator のインストール
OpenShift Container Platform に同梱される OperatorHub を使用するのが、Red Hat Advanced Cluster Security for Kubernetes をインストールする最も簡単な方法です。
前提条件
- Operator インストールパーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできること。
- OpenShift Container Platform 4.11 以降を使用する必要があります。詳細は、Red Hat Advanced Cluster Security for Kubernetes Support Policy を参照してください。
手順
- Web コンソールで、Operators → OperatorHub ページに移動します。
- Red Hat Advanced Cluster Security for Kubernetes が表示されない場合は、Filter by keyword ボックスに Advanced Cluster Security と入力して、Red Hat Advanced Cluster Security for Kubernetes Operator を検索します。
- 詳細ページを表示するには、Red Hat Advanced Cluster Security for Kubernetes Operator を 選択します。
- Operator に関する情報を読み、Install をクリックします。
Install Operator ページで以下を行います。
- Installation mode のデフォルト値を All namespaces on the cluster として保持します。
- Installed namespace フィールドの Operator をインストールする特定の namespace を選択します。Red Hat Advanced Cluster Security for Kubernetes Operator を rhacs-operator namespace にインストールします。
Update approval には、自動更新または手動更新を選択します。
自動更新を選択した場合、Operator の新しいバージョンが利用可能になると、Operator Lifecycle Manager (OLM) は Operator の実行中のインスタンスを自動的にアップグレードします。
手動による更新を選択する場合は、新しいバージョンの Operator が利用可能になると、OLM は更新リクエストを作成します。クラスター管理者は、更新リクエストを手動で承認して、Operator を最新バージョンに更新する必要があります。
重要手動更新を選択した場合、Central がインストールされているクラスターで RHACS Operator を更新するときに、すべてのセキュアクラスターで RHACS Operator を更新する必要があります。最適な機能を確保するには、セキュアクラスターと Central がインストールされているクラスターのバージョンが同じである必要があります。
- Install をクリックします。
検証
- インストールが完了したら、Operators → Installed Operators に移動して、Red Hat Advanced Cluster Security for Kubernetes Operator が Succeeded のステータスでリスト表示されていることを確認します。
次の手順
-
Central
カスタムリソースをインストール、設定、およびデプロイします。
4.1.1.2. Operator メソッドを使用した Central のインストール
Red Hat Advanced Cluster Security for Kubernetes の主要コンポーネントは Central と呼ばれます。Central
カスタムリソースを使用して、OpenShift Container Platform に Central をインストールできます。Central は 1 回だけデプロイし、同じ Central インストールを使用して複数の個別のクラスターをモニターできます。
Red Hat Advanced Cluster Security for Kubernetes を初めてインストールする場合、SecuredCluster
カスタムリソースのインストールは Central が生成する証明書に依存するため、最初に Central
カスタムリソースをインストールする必要があります。
前提条件
- OpenShift Container Platform 4.11 以降を使用する必要があります。詳細は、Red Hat Advanced Cluster Security for Kubernetes Support Policy を参照してください。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators ページに移動します。
- インストールされている Operator のリストから、Red Hat Advanced Cluster Security for Kubernetes Operator を選択します。
推奨される namespace に Operator をインストールした場合、OpenShift Container Platform はプロジェクトを
rhacs-operator
としてリストします。Project: rhacs-operator を選択し → Create project を選択します。警告-
別の namespace に Operator をインストールした場合、OpenShift Container Platform は
rhacs-operator
ではなくその namespace の名前を表示します。 -
Red Hat Advanced Cluster Security for Kubernetes
Central
カスタムリソースは、rhacs-operator
およびopenshift-operator
プロジェクトではなく、独自のプロジェクト、または Red Hat Advanced Cluster Security for Kubernetes Operator をインストールしたプロジェクトにインストールする必要があります。
-
別の namespace に Operator をインストールした場合、OpenShift Container Platform は
-
新しいプロジェクト名 (たとえば、
stackrox
) を入力し、Create をクリックします。Red Hat では、プロジェクト名としてstackrox
を使用することを推奨します。 - Provided APIs セクションで、Central を選択します。Create Central をクリックします。
オプション: 宣言型設定を使用している場合は、次の方法で Configure via: の横にある YAML view をクリックし、次の例に示すように宣言型設定の情報を追加します。
... spec: central: declarativeConfiguration: configMaps: - name: "<declarative-configs>" 1 secrets: - name: "<sensitive-declarative-configs>" 2 ...
-
Central
カスタムリソースの名前を入力し、適用するラベルを追加します。それ以外の場合は、使用可能なオプションのデフォルト値を受け入れます。 - Create をクリックします。
クラスター全体のプロキシーを使用している場合、Red Hat Advanced Cluster Security for Kubernetes は、そのプロキシー設定を使用して外部サービスに接続します。
次のステップ
- Central インストールを確認します。
- オプション: Central オプションを設定します。
-
Central
リソースとSecuredCluster
リソース間の通信を可能にするクラスターシークレットを含む init バンドルを生成します。このバンドルをダウンロードし、それを使用して保護対象のクラスターにリソースを生成し、バンドルをセキュアに保管する必要があります。 - 監視する各クラスターにセキュアクラスターサービスをインストールします。
4.1.1.3. PostgreSQL インスタンスでのデータベースのプロビジョニング
既存の PostgreSQL インフラストラクチャーを使用して、RHACS 用のデータベースをプロビジョニングできます。このセクションの手順を使用して、PostgreSQL データベース環境を設定し、ユーザー、データベース、スキーマ、ロールを作成し、必要な権限を付与します。
外部 PostgreSQL サポートはテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
手順
新しいユーザーを作成します。
CREATE USER stackrox WITH PASSWORD <password>;
データベースを作成します。
CREATE DATABASE stackrox;
データベースに接続します。
\connect stackrox
ユーザースキーマを作成します。
CREATE SCHEMA stackrox;
(オプション) パブリックでの権限を取り消します。
REVOKE CREATE ON SCHEMA public FROM PUBLIC; REVOKE USAGE ON SCHEMA public FROM PUBLIC; REVOKE ALL ON DATABASE stackrox FROM PUBLIC;
ロールを作成します。
CREATE ROLE readwrite;
ロールへの接続権限を付与します。
GRANT CONNECT ON DATABASE stackrox TO readwrite;
必要な権限を
readwrite
ロールに追加します。GRANT USAGE ON SCHEMA stackrox TO readwrite; GRANT USAGE, CREATE ON SCHEMA stackrox TO readwrite; GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA stackrox TO readwrite; ALTER DEFAULT PRIVILEGES IN SCHEMA stackrox GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO readwrite; GRANT USAGE ON ALL SEQUENCES IN SCHEMA stackrox TO readwrite; ALTER DEFAULT PRIVILEGES IN SCHEMA stackrox GRANT USAGE ON SEQUENCES TO readwrite;
readwrite
ロールをstackrox
ユーザーに割り当てます。GRANT readwrite TO stackrox;
4.1.1.4. Operator 方式と外部データベースを使用した Central のインストール
外部 PostgreSQL サポートはテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Red Hat Advanced Cluster Security for Kubernetes の主要コンポーネントは Central と呼ばれます。Central
カスタムリソースを使用して、OpenShift Container Platform に Central をインストールできます。Central は 1 回だけデプロイし、同じ Central インストールを使用して複数の個別のクラスターをモニターできます。
Red Hat Advanced Cluster Security for Kubernetes を初めてインストールする場合、SecuredCluster
カスタムリソースのインストールは Central が生成する証明書に依存するため、最初に Central
カスタムリソースをインストールする必要があります。
前提条件
- OpenShift Container Platform 4.11 以降を使用する必要があります。詳細は、Red Hat Advanced Cluster Security for Kubernetes Support Policy を参照してください。
PostgreSQL 13 をサポートするデータベースインスタンスと、以下のパーミッションを持つユーザーにデータベースが必要です。
- データベースに接続する権限。
-
スキーまでの
Usage
およびCreate
。 -
スキーマ内のすべてのテーブルでの
Select
、Insert
、Update
、およびDelete
。 -
スキーマ内のすべてのシーケンスでの
Usage
。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators ページに移動します。
- インストールされている Operator のリストから、Red Hat Advanced Cluster Security for Kubernetes Operator を選択します。
推奨される namespace に Operator をインストールした場合、OpenShift Container Platform はプロジェクトを
rhacs-operator
としてリストします。Project: rhacs-operator を選択し → Create project を選択します。警告-
別の namespace に Operator をインストールした場合、OpenShift Container Platform は
rhacs-operator
ではなくその namespace の名前を表示します。 -
Red Hat Advanced Cluster Security for Kubernetes
Central
カスタムリソースは、rhacs-operator
およびopenshift-operator
プロジェクトではなく、独自のプロジェクト、または Red Hat Advanced Cluster Security for Kubernetes Operator をインストールしたプロジェクトにインストールする必要があります。
-
別の namespace に Operator をインストールした場合、OpenShift Container Platform は
-
新しいプロジェクト名 (たとえば、
stackrox
) を入力し、Create をクリックします。Red Hat では、プロジェクト名としてstackrox
を使用することを推奨します。 OpenShift Container Platform Web コンソールまたはターミナルを使用して、デプロイされた namespace にパスワードシークレットを作成します。
-
OpenShift Container Platform Web コンソールで、Workloads → Secrets ページに移動します。キー
password
、およびプロビジョニングされたデータベースのスーパーユーザーのパスワードを含むプレーンテキストファイルのパスとしての値を使用して、キー/値のシークレット を作成します。 または、ターミナルで次のコマンドを実行します。
$ oc create secret generic external-db-password \ 1 --from-file=password=<password.txt> 2
-
OpenShift Container Platform Web コンソールで、Workloads → Secrets ページに移動します。キー
- OpenShift Container Platform Web コンソールの Red Hat Advanced Cluster Security for Kubernetes Operator ページに戻ります。Provided APIs セクションで、Central を選択します。Create Central をクリックします。
- オプション: 宣言型設定を使用している場合は、Configure via: の横にある YAML view をクリックします。
次の例に示すように、宣言型設定の情報を追加します。
... spec: central: declarativeConfiguration: configMaps: - name: <declarative-configs> 1 secrets: - name: <sensitive-declarative-configs> 2 ...
-
Central
カスタムリソースの名前を入力し、適用するラベルを追加します。 - Central Component Settings → Central DB Settings に移動します。
-
Administrator Password には、参照されるシークレットを
external-db-password
(または以前に作成したパスワードのシークレット名) として指定します。 -
Connection String (Technology Preview) に、
keyword=value
形式で接続文字列を指定します。たとえば、host=<host> port=5432 database=stackrox user=stackrox sslmode=verify-ca
です。 -
Persistence → PersistentVolumeClaim → Claim Name の場合は、
central-db
を削除します。 必要に応じて、データベース証明書と Central の間に信頼関係が確立されるように、認証局を指定できます。これを追加するには、次の例に示すように、YAML ビューに移動し、最上位仕様の下に TLS ブロックを追加します。
spec: tls: additionalCAs: - name: db-ca content: | <certificate>
- Create をクリックします。
クラスター全体のプロキシーを使用している場合、Red Hat Advanced Cluster Security for Kubernetes は、そのプロキシー設定を使用して外部サービスに接続します。
次のステップ
- Central インストールを確認します。
- オプション: Central オプションを設定します。
-
Central
リソースとSecuredCluster
リソース間の通信を可能にするクラスターシークレットを含む init バンドルを生成します。このバンドルをダウンロードし、それを使用して保護対象のクラスターにリソースを生成し、バンドルをセキュアに保管する必要があります。 - 監視する各クラスターにセキュアクラスターサービスをインストールします。
4.1.1.5. Operator 方式を使用した Central インストールの検証
Central のインストールが完了したら、RHACS ポータルにログインして、Central が正常にインストールされたことを確認します。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators ページに移動します。
- インストールされている Operator のリストから、Red Hat Advanced Cluster Security for Kubernetes Operator を選択します。
- Central タブを選択します。
-
Centrals リストから、
stackrox-central-services
を選択して詳細を表示します。 admin
ユーザーのパスワードを取得するには、以下のいずれかを行います。- Admin Password Secret Reference のリンクをクリックします。
Red Hat OpenShift CLI を使用して、Admin Credentials Info にリストされているコマンドを入力します。
$ oc -n stackrox get secret central-htpasswd -o go-template='{{index .data "password" | base64decode}}'
Red Hat OpenShift CLI コマンドを使用して、RHACS ポータルへのリンクを見つけます。
$ oc -n stackrox get route central -o jsonpath="{.status.ingress[0].host}"
または、Red Hat Advanced Cluster Security for Kubernetes Web コンソールを使用して、次のコマンドを実行することにより、RHACS ポータルへのリンクを見つけることができます。
- Networking → Routes に移動します。
- central ルートを見つけて、Location 列の下にある RHACS ポータルリンクをクリックします。
-
ユーザー名 admin と、前の手順で取得したパスワードを使用して、RHACS ポータルにログインします。RHACS の設定が完了するまで (たとえば、
Central
リソースと少なくとも 1 つのSecuredCluster
リソースをインストールして設定する)、ダッシュボードでデータを使用できません。SecuredCluster
リソースは、Central
リソースと同じクラスターにインストールおよび設定できます。SecuredCluster
リソースを備えたクラスターは、Red Hat Advanced Cluster Management (RHACM) のマネージドクラスターに似ています。
次のステップ
- オプション: central 設定を設定します。
-
Central
リソースとSecuredCluster
リソース間の通信を可能にするクラスターシークレットを含む init バンドルを生成します。このバンドルをダウンロードし、それを使用して保護対象のクラスターにリソースを生成し、バンドルをセキュアに保管する必要があります。 - 監視する各クラスターにセキュアクラスターサービスをインストールします。
4.1.2. Helm チャートを使用して Central をインストールする
カスタマイズせずに Helm チャートを使用するか、デフォルト値を使用するか、設定パラメーターをさらにカスタマイズして Helm チャートを使用することにより、Central をインストールできます。
4.1.2.1. カスタマイズせずに Helm チャートを使用して Central をインストールする
RHACS は、カスタマイズせずにクラスターにインストールできます。集中型コンポーネントである Central と Scanner をインストールするために、Helm チャートリポジトリーを追加し、central-services
Helm チャートをインストールする必要があります。
4.1.2.1.1. Helm チャートリポジトリーの追加
手順
RHACS チャートリポジトリーを追加します。
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
Red Hat Advanced Cluster Security for Kubernetes の Helm リポジトリーには、異なるコンポーネントをインストールするための Helm チャートが含まれています。
集中型コンポーネント (Central および Scanner) をインストールするための Central サービス Helm チャート (
central-services
)。注記集中型コンポーネントは 1 回だけデプロイします。同じインストールを使用して複数の別のクラスターを監視できます。
クラスターおよびノードごとのコンポーネント (Sensor、Admission Controller、Collector、および Scanner-slim) をインストールするためのセキュアクラスターサービスの Helm チャート (
secured-cluster-services
)。注記モニターする各クラスターにクラスターごとのコンポーネントをデプロイし、モニターするすべてのノードにノードごとのコンポーネントをデプロイします。
検証
次のコマンドを実行して、追加されたチャートリポジトリーを確認します。
$ helm search repo -l rhacs/
4.1.2.1.2. カスタマイズせずに central-services Helm チャートをインストールする
次の手順を使用して、central-services
Helm チャートをインストールし、集中型コンポーネント (Central および Scanner) をデプロイします。
前提条件
-
Red Hat Container Registry へのアクセスがあること。
registry.redhat.io
からイメージをダウンロードする方法は、Red Hat コンテナーレジストリーの認証 を参照してください。
手順
次のコマンドを実行して Central services をインストールし、ルートを使用して Central を公開します。
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ 1 --set imagePullSecrets.password=<password> \ 2 --set central.exposure.route.enabled=true
または、次のコマンドを実行して Central services をインストールし、ロードバランサーを使用して Central を公開します。
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ 1 --set imagePullSecrets.password=<password> \ 2 --set central.exposure.loadBalancer.enabled=true
または、次のコマンドを実行して Central services をインストールし、port forward を使用して Central を公開します。
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ 1 --set imagePullSecrets.password=<password> 2
外部サービスに接続するためにプロキシーが必要なクラスターに Red Hat Cluster Security for Kubernetes をインストールする場合は、
proxyConfig
パラメーターを使用してプロキシー設定を指定する必要があります。以下に例を示します。env: proxyConfig: | url: http://proxy.name:port username: username password: password excludes: - some.domain
-
インストール先の namespace に 1 つ以上のイメージプルシークレットをすでに作成している場合は、ユーザー名とパスワードを使用する代わりに、
--set imagePullSecrets.useExisting="<pull-secret-1;pull-secret-2>"
を使用できます。 イメージプルシークレットは使用しないでください。
-
quay.io/stackrox-io
または認証を必要としないプライベートネットワークのレジストリーからイメージを取得する場合。ユーザー名とパスワードを指定する代わりに、--set imagePullSecrets.allowNone=true
を使用します。 -
インストールする namespace のデフォルトサービスアカウントでイメージプルシークレットをすでに設定している場合。ユーザー名とパスワードを指定する代わりに、
--set imagePullSecrets.useFromDefaultServiceAccount=true
を使用します。
-
インストールコマンドの出力は次のとおりです。
- 自動的に生成された管理者パスワード。
- すべての設定値を保存するための手順。
- Helm が生成する警告。
4.1.2.2. カスタマイズされた Helm チャートを使用して Central をインストールする
helm install
および helm upgrade
コマンドで Helm チャート設定パラメーターを使用することにより、Red Hat OpenShift クラスターに RHACS をカスタマイズしてインストールできます。これらのパラメーターは、--set
オプションを使用するか、YAML 設定ファイルを作成することで指定できます。
以下のファイルを作成して、Red Hat Advanced Cluster Security for Kubernetes をインストールするための Helm チャートを設定します。
-
パブリック設定ファイル
values-public.yaml
: このファイルを使用して、機密性の低いすべての設定オプションを保存します。 -
プライベート設定ファイル
values-private.yaml
: このファイルを使用して、機密性の高いすべての設定オプションを保存します。このファイルは安全に保管してください。 -
設定ファイル
declarative-config-values.yaml
: 宣言設定を使用して宣言設定マウントを Central に追加する場合は、このファイルを作成します。
4.1.2.2.1. プライベート設定ファイル
このセクションでは、values-private.yaml
ファイルの設定可能なパラメーターをリストします。これらのパラメーターのデフォルト値はありません。
4.1.2.2.1.1. イメージプルのシークレット
レジストリーからイメージをプルするために必要な認証情報は、以下の要素によって異なります。
カスタムレジストリーを使用している場合、以下のパラメーターを指定する必要があります。
-
imagePullSecrets.username
-
imagePullSecrets.password
-
image.registry
-
カスタムレジストリーへのログインにユーザー名とパスワードを使用しない場合は、以下のいずれかのパラメーターを指定する必要があります。
-
imagePullSecrets.allowNone
-
imagePullSecrets.useExisting
-
imagePullSecrets.useFromDefaultServiceAccount
-
パラメーター | 説明 |
---|---|
| レジストリーへのログインに使用されるアカウントのユーザー名。 |
| レジストリーへのログインに使用されるアカウントのパスワード |
|
カスタムレジストリーを使用していて、クレデンシャルなしでイメージをプルできる場合は、 |
|
値としてのシークレットのコンマ区切りリスト。たとえば、 |
|
十分なスコープのイメージプルシークレットを使用してターゲット namespace にデフォルトのサービスアカウントをすでに設定している場合は、 |
4.1.2.2.1.2. プロキシー設定
外部サービスに接続するためにプロキシーが必要なクラスターに Red Hat Cluster Security for Kubernetes をインストールする場合は、proxyConfig
パラメーターを使用してプロキシー設定を指定する必要があります。以下に例を示します。
env: proxyConfig: | url: http://proxy.name:port username: username password: password excludes: - some.domain
パラメーター | 説明 |
---|---|
| プロキシー設定。 |
4.1.2.2.1.3. Central
Central の設定可能なパラメーター。
新規インストールの場合、次のパラメーターをスキップできます。
-
central.jwtSigner.key
-
central.serviceTLS.cert
-
central.serviceTLS.key
-
central.adminPassword.value
-
central.adminPassword.htpasswd
-
central.db.serviceTLS.cert
-
central.db.serviceTLS.key
-
central.db.password.value
- これらのパラメーターの値を指定しない場合、Helm チャートはそれらの値を自動生成します。
-
これらの値を変更する場合は、
helm upgrade
コマンドを使用し、--set
オプションを使用して値を指定できます。
管理者パスワードの設定には、central.adminPassword.value
または central.adminPassword.htpasswd
のいずれかのみを使用できますが、両方を使用することはできません。
パラメーター | 説明 |
---|---|
| Red Hat Advanced Cluster Security for Kubernetes が認証用の JSON Web トークン (JWT) に署名するために使用する必要がある秘密鍵。 |
| Central サービスが Central をデプロイするために使用する必要がある内部証明書。 |
| Central サービスが使用する必要がある内部証明書の秘密鍵。 |
| Central が使用する必要のあるユーザー向けの証明書。Red Hat Advanced Cluster Security for Kubernetes は、RHACS ポータルにこの証明書を使用します。
|
| Central が使用する必要のあるユーザー向け証明書の秘密鍵。
|
| Central DB の接続パスワード。 |
| Red Hat Advanced Cluster Security for Kubernetes にログインするための管理者パスワード。 |
| Red Hat Advanced Cluster Security for Kubernetes にログインするための管理者パスワード。このパスワードは、bcrypt を使用してハッシュ形式で保存されます。 |
| Central DB サービスが Central DB をデプロイするために使用する内部証明書。 |
| Central DB サービスが使用する内部証明書の秘密キー。 |
| Central DB への接続に使用されるパスワード。 |
Central.adminPassword.htpasswd
パラメーターを使用している場合は、bcrypt でエンコードされたパスワードハッシュを使用する必要があります。コマンド htpasswd -nB admin
を実行して、パスワードハッシュを生成できます。以下に例を示します。
htpasswd: | admin:<bcrypt-hash>
4.1.2.2.1.4. Scanner
Scanner の設定可能なパラメーター。
新規インストールの場合、次のパラメーターをスキップでき、Helm チャートがそれらの値を自動生成します。それ以外の場合、新しいバージョンにアップグレードする場合は、以下のパラメーターの値を指定してください。
-
scanner.dbPassword.value
-
scanner.serviceTLS.cert
-
scanner.serviceTLS.key
-
scanner.dbServiceTLS.cert
-
scanner.dbServiceTLS.key
パラメーター | 説明 |
---|---|
| Scanner データベースでの認証に使用するパスワード。Red Hat Advanced Cluster Security for Kubernetes はその値を内部で自動的に作成して使用するため、このパラメーターは変更しないでください。 |
| Scanner サービスが Scanner のデプロイに使用する必要がある内部証明書。 |
| Scanner サービスが使用する必要がある内部証明書の秘密鍵。 |
| Scanner-db サービスが Scanner データベースをデプロイするために使用する必要がある内部証明書。 |
| Scanner-db サービスが使用する必要がある内部証明書の秘密鍵。 |
4.1.2.2.2. パブリック設定ファイル
このセクションでは、values-public.yaml
ファイルの設定可能なパラメーターをリストします。
4.1.2.2.2.1. イメージプルのシークレット
イメージプルシークレットは、レジストリーからイメージをプルするために必要なクレデンシャルです。
パラメーター | 説明 |
---|---|
|
カスタムレジストリーを使用していて、クレデンシャルなしでイメージをプルできる場合は、 |
|
値としてのシークレットのコンマ区切りリスト。たとえば、 |
|
十分なスコープのイメージプルシークレットを使用してターゲット namespace にデフォルトのサービスアカウントをすでに設定している場合は、 |
4.1.2.2.2.2. Image
Image は、Helm チャートが central.image
、scanner.image
、および scanner.dbImage
パラメーターのイメージを解決するために使用するメインレジストリーをセットアップするための設定を宣言します。
パラメーター | 説明 |
---|---|
|
イメージレジストリーのアドレス。 |
4.1.2.2.2.3. 環境変数
Red Hat Advanced Cluster Security for Kubernetes は、クラスター環境を自動的に検出し、env.openshift
、env.istio
、および env.platform
の値を設定します。クラスター環境の自動検出をオーバーライドするには、これらの値のみを設定してください。
パラメーター | 説明 |
---|---|
|
OpenShift Container Platform クラスターにインストールし、クラスター環境の自動検出をオーバーライドする場合は、 |
|
|
|
Red Hat Advanced Cluster Security for Kubernetes をインストールするプラットフォーム。その値を |
|
オフラインモードで Red Hat Advanced Cluster Security for Kubernetes を使用するには、 |
4.1.2.2.2.4. 追加の信頼された認証局
Red Hat Advanced Cluster Security for Kubernetes は、信頼するシステムルート証明書を自動的に参照します。Central または Scanner が、組織内の機関またはグローバルに信頼されているパートナー組織によって発行された証明書を使用するサービスに到達する必要がある場合、次のパラメーターを使用して信頼するルート認証局を指定することにより、これらのサービスの信頼を追加できます。
パラメーター | 説明 |
---|---|
| 信頼するルート認証局の PEM エンコード証明書を指定します。 |
4.1.2.2.2.5. Central
Central の設定可能なパラメーター。
-
hostPath
またはPersistentVolumeClaim
のいずれかとして永続ストレージオプションを指定する必要があります。 -
外部アクセス用の Central のデプロイメントを公開するため。1 つのパラメーター、
central.exposure.loadBalancer
、central.exposure.nodePort
、またはcentral.exposure.route
のいずれかを指定する必要があります。これらのパラメーターに値を指定しない場合は、手動で Central を公開するか、ポート転送を使用して Central にアクセスする必要があります。
次の表には、外部 PostgreSQL データベース (テクノロジープレビュー) の設定が含まれています。
外部 PostgreSQL サポートはテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
パラメーター | 説明 |
---|---|
| 宣言的設定に使用される config map をマウントします。 |
| 宣言型設定に使用されるシークレットをマウントします。 |
| Central のエンドポイント設定オプションです。 |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Central の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Central の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
|
ポート番号 |
|
Central イメージのグローバル |
|
デフォルトの Central イメージ名 ( |
|
Central イメージのデフォルトタグをオーバーライドするカスタムイメージタグです。新規インストール時に独自のイメージタグを指定した場合は、 |
|
Central イメージのレジストリーアドレス、イメージ名、およびイメージタグを含む完全なリファレンスです。このパラメーターの値を設定すると、 |
| Central がデフォルト値をオーバーライドするためのメモリーリクエストです。 |
| Central がデフォルト値をオーバーライドするための CPU リクエストです。 |
| Central がデフォルト値をオーバーライドためのメモリー制限です。 |
| Central がデフォルト値をオーバーライドための CPU 制限です。 |
| RHACS がデータベースボリュームを作成するノード上のパス。Red Hat はこのオプションの使用を推奨していません。 |
| 使用している永続ボリューム要求 (PVC) の名前です。 |
|
新しい PVC を作成するには |
| 指定された要求によるマネージドの永続ボリュームのサイズ (GiB 単位) です。 |
|
ロードバランサーを使用して Central を公開するには、 |
| Central を公開するポート番号です。デフォルトのポート番号は 443 です。 |
|
|
| Central を公開するポート番号です。このパラメーターをスキップすると、OpenShift Container Platform は自動的にポート番号を割り当てます。Red Hat では、ノードポートを使用して Red Hat Advanced Cluster Security for Kubernetes を公開する場合、ポート番号を指定しないことを推奨しています。 |
|
ルートを使用して Central を公開するには、 |
|
(テクノロジープレビュー) Central DB をデプロイメントせず、外部データベースを使用することを指定するには、 |
|
(テクノロジープレビュー) Central がデータベースへの接続に使用する接続文字列。これは、
|
| 確立されるデータベースへの接続の最小数。 |
| 確立されるデータベースへの接続の最大数。 |
| 単一のクエリーまたはトランザクションがデータベースに対してアクティブにできるミリ秒数。 |
| PostgreSQL ドキュメントの「追加リソース」で説明されているように、Central DB に使用される postgresql.conf。 |
| PostgreSQL ドキュメントの「追加リソース」で説明されているように、Central DB に使用される pg_hba.conf。 |
|
ノードセレクターのラベルを |
|
Central DB イメージのグローバル |
|
デフォルトの Central DB イメージ名 ( |
|
Central DB イメージのデフォルトのタグをオーバーライドするカスタムイメージタグ。新規インストール時に独自のイメージタグを指定した場合は、 |
|
Central DB イメージのレジストリーアドレス、イメージ名、イメージタグを含む完全なリファレンス。このパラメーターの値を設定すると、 |
| Central DB がデフォルト値をオーバーライドするためのメモリー要求。 |
| Central DB がデフォルト値をオーバーライドするための CPU 要求。 |
| Central DB がデフォルト値をオーバーライドするためのメモリー制限。 |
| Central DB がデフォルト値をオーバーライドするための CPU 制限。 |
| RHACS がデータベースボリュームを作成するノード上のパス。Red Hat はこのオプションの使用を推奨していません。 |
| 使用している永続ボリューム要求 (PVC) の名前です。 |
|
|
| 指定された要求によるマネージドの永続ボリュームのサイズ (GiB 単位) です。 |
4.1.2.2.2.6. Scanner
Scanner の設定可能なパラメーター。
パラメーター | 説明 |
---|---|
|
Scanner を使用せずに Red Hat Advanced Cluster Security for Kubernetes をインストールする場合は |
|
|
|
Scanner のデプロイメント用に作成するレプリカの数です。 |
|
Scanner のログレベルを設定します。Red Hat では、ログレベルのデフォルト値 ( |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
|
|
| 自動スケーリングのレプリカの最小数です。 |
| 自動スケーリングのレプリカの最大数です。 |
| Scanner がデフォルト値をオーバーライドするためのメモリーリクエストです。 |
| Scanner がデフォルト値をオーバーライドするための CPU リクエストです。 |
| Scanner がデフォルト値をオーバーライドするためのメモリー制限です。 |
| Scanner がデフォルト値をオーバーライドするための CPU 制限です。 |
| Scanner データベースのデプロイメントがデフォルト値をオーバーライドするためのメモリーリクエストです。 |
| Scanner データベースのデプロイメントがデフォルト値をオーバーライドするための CPU リクエストです。 |
| Scanner データベースのデプロイメントがデフォルト値をオーバーライドするためのメモリー制限です。 |
| Scanner データベースのデプロイメントがデフォルト値をオーバーライドするための CPU 制限です。 |
| Scanner イメージのカスタムレジストリーです。 |
|
デフォルトの Scanner イメージ名 ( |
| Scanner DB イメージのカスタムレジストリーです。 |
|
デフォルトの Scanner DB イメージ名 ( |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
4.1.2.2.2.7. カスタマイズ
これらのパラメーターを使用して、Red Hat Advanced Cluster Security for Kubernetes が作成するすべてのオブジェクトの追加の属性を指定します。
パラメーター | 説明 |
---|---|
| すべてのオブジェクトにアタッチするカスタムラベルです。 |
| すべてのオブジェクトにアタッチするカスタムアノテーションです。 |
| すべてのデプロイメントにアタッチするカスタムラベルです。 |
| すべてのデプロイメントにアタッチするカスタムアノテーションです。 |
| すべてのオブジェクトのすべてのコンテナーのカスタム環境変数。 |
| Central が作成するすべてのオブジェクトに割り当てるカスタムラベル。 |
| Central が作成するすべてのオブジェクトに割り当てるカスタムアノテーション。 |
| すべての Central のデプロイメントにアタッチするカスタムラベルです。 |
| すべての Central のデプロイメントにアタッチするカスタムアノテーションです。 |
| すべての Central コンテナーのカスタム環境変数。 |
| Scanner が作成するすべてのオブジェクトに割り当てるカスタムラベル。 |
| Scanner が作成するすべてのオブジェクトに割り当てるカスタムアノテーション。 |
| すべての Scanner のデプロイメントにアタッチするカスタムラベルです。 |
| すべての Scanner のデプロイメントにアタッチするカスタムアノテーションです。 |
| すべての Scanner コンテナーのカスタム環境変数。 |
| Scanner DB が作成するすべてのオブジェクトに割り当てるカスタムラベル。 |
| Scanner DB が作成するすべてのオブジェクトに割り当てるカスタムアノテーション。 |
| すべての Scanner DB のデプロイメントにアタッチするカスタムラベルです。 |
| すべての Scanner DB のデプロイメントにアタッチするカスタムアノテーションです。 |
| すべての Scanner DB コンテナーのカスタム環境変数です。 |
以下のように使用することもできます。
-
すべてのオブジェクトのラベルとアノテーションを指定するための
customize.other.service/*.labels
およびcustomize.other.service/*.annotations
パラメーターです。 -
または、特定のサービス名を指定します。たとえば、
customize.other.service/central-loadbalancer.labels
とcustomize.other.service/central-loadbalancer.annotations
をパラメーターとして指定し、それらの値を設定します。
4.1.2.2.2.8. 高度なカスタマイズ
このセクションで指定されているパラメーターは、情報提供のみを目的としています。Red Hat は、namespace とリリース名が変更された Red Hat Advanced Cluster Security for Kubernetes インスタンスをサポートしていません。
パラメーター | 説明 |
---|---|
|
|
|
|
4.1.2.2.3. 宣言的な設定値
宣言型設定を使用するには、宣言型設定マウントを Central に追加する YAML ファイル (この例では declarative-config-values.yaml という名前) を作成する必要があります。このファイルは Helm インストールで使用されます。
手順
次の例をガイドラインとして使用して、YAML ファイル (この例では
declarative-config-values.yaml
という名前) を作成します。central: declarativeConfiguration: mounts: configMaps: - declarative-configs secrets: - sensitive-declarative-configs
-
「central-services Helm チャートのインストール」の説明に従って、
declarative-config-values.yaml
ファイルを参照して、Central サービス Helm チャートをインストールします。
4.1.2.2.4. central-services Helm チャートのインストール
values-public.yaml
ファイルと values-private.yaml
ファイルを設定した後、central-services
Helm チャートをインストールして、集中型コンポーネント (Central と Scanner) をデプロイします。
手順
以下のコマンドを実行します。
$ helm install -n stackrox --create-namespace \ stackrox-central-services rhacs/central-services \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> 1
- 1
-f
オプションを使用して、YAML 設定ファイルのパスを指定します。
オプション: 宣言型設定を使用する場合は、このコマンドに -f <path_to_declarative-config-values.yaml
を追加して、宣言型設定ファイルを Central にマウントします。
4.1.2.3. central-services Helm チャートをデプロイした後の設定オプションの変更
central-services
Helm チャートをデプロイした後、任意の設定オプションに変更を加えることができます。
手順
-
values-public.yaml
およびvalues-private.yaml
設定ファイルを新しい値で更新します。 helm upgrade
コマンドを実行し、-f
オプションを使用して設定ファイルを指定します。$ helm upgrade -n stackrox \ stackrox-central-services rhacs/central-services \ -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
注記--set
または--set-file
パラメーターを使用して設定値を指定することもできます。ただし、これらのオプションは保存されないため、変更を加えるたびにすべてのオプションを手動で再度指定する必要があります。
4.1.3. roxctl CLI を使用して Central をインストールする
実稼働環境では、Red Hat は Operator または Helm チャートを使用して RHACS をインストールすることを推奨しています。この方法を使用する必要がある特定のインストールがない限り、roxctl
のインストール手法を使用しないでください。
4.1.3.1. roxctl CLI のインストール
Red Hat Advanced Cluster Security for Kubernetes をインストールするには、バイナリーをダウンロードして roxctl
CLI をインストールする必要があります。roxctl
は、Linux、Windows、または macOS にインストールできます。
4.1.3.1.1. Linux への roxctl CLI のインストール
次の手順を使用して、Linux に roxctl
CLI バイナリーをインストールできます。
Linux 用の roxctl
CLI は、amd64
、ppcl64le
、および s390x
アーキテクチャーで使用できます。
手順
ターゲットのオペレーティングシステムの
roxctl
アーキテクチャーを確認します。$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
roxctl
CLI をダウンロードします。$ curl -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Linux/roxctl${arch}"
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
4.1.3.1.2. macOS への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを macOS にインストールできます。
macOS 用の roxctl
CLI は、amd64
アーキテクチャーで利用できます。
手順
roxctl
CLI をダウンロードします。$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Darwin/roxctl
バイナリーからすべての拡張属性を削除します。
$ xattr -c roxctl
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
4.1.3.1.3. Windows への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを Windows にインストールできます。
Windows 用の roxctl
CLI は、amd64
アーキテクチャーで使用できます。
手順
roxctl
CLI をダウンロードします。$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Windows/roxctl.exe
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
4.1.3.2. 対話型インストーラーの使用
対話型インストーラーを使用して、お使いの環境に必要なシークレット、デプロイメント設定、およびデプロイメントスクリプトを生成します。
手順
対話型インストールコマンドを実行します。
$ roxctl central generate interactive
重要roxctl
CLI を使用して RHACS をインストールすると、下位互換性のためにデフォルトで PodSecurityPolicy (PSP) オブジェクトが作成されます。RHACS を Kubernetes バージョン 1.25 以降または OpenShift Container Platform バージョン 4.12 以降にインストールする場合、PSP オブジェクトの作成を無効にする必要があります。これを行うには、roxctl central generate
コマンドとroxctl sensor generate
コマンドで--enable-pod-security-policies
オプションをfalse
に指定します。Enter を押してプロンプトのデフォルト値を受け入れるか、必要に応じてカスタム値を入力します。次の例は、対話型インストーラーのプロンプトを示しています。
Enter path to the backup bundle from which to restore keys and certificates (optional): Enter read templates from local filesystem (default: "false"): Enter path to helm templates on your local filesystem (default: "/path"): Enter PEM cert bundle file (optional): 1 Enter Create PodSecurityPolicy resources (for pre-v1.25 Kubernetes) (default: "true"): 2 Enter administrator password (default: autogenerated): Enter orchestrator (k8s, openshift): Enter default container images settings (development_build, stackrox.io, rhacs, opensource); it controls repositories from where to download the images, image names and tags format (default: "development_build"): Enter the directory to output the deployment bundle to (default: "central-bundle"): Enter the OpenShift major version (3 or 4) to deploy on (default: "0"): Enter whether to enable telemetry (default: "false"): Enter central-db image to use (if unset, a default will be used according to --image-defaults): Enter Istio version when deploying into an Istio-enabled cluster (leave empty when not running Istio) (optional): Enter the method of exposing Central (route, lb, np, none) (default: "none"): 3 Enter main image to use (if unset, a default will be used according to --image-defaults): Enter whether to run StackRox in offline mode, which avoids reaching out to the Internet (default: "false"): Enter list of secrets to add as declarative configuration mounts in central (default: "[]"): 4 Enter list of config maps to add as declarative configuration mounts in central (default: "[]"): 5 Enter the deployment tool to use (kubectl, helm, helm-values) (default: "kubectl"): Enter scanner-db image to use (if unset, a default will be used according to --image-defaults): Enter scanner image to use (if unset, a default will be used according to --image-defaults): Enter Central volume type (hostpath, pvc): 6 Enter external volume name for Central (default: "stackrox-db"): Enter external volume size in Gi for Central (default: "100"): Enter storage class name for Central (optional if you have a default StorageClass configured): Enter external volume name for Central DB (default: "central-db"): Enter external volume size in Gi for Central DB (default: "100"): Enter storage class name for Central DB (optional if you have a default StorageClass configured):
- 1
- カスタム TLS 証明書を追加する場合は、PEM でエンコードされた証明書のファイルパスを指定します。カスタム証明書を指定すると、対話型インストーラーは、使用しているカスタム証明書の PEM 秘密鍵を提供するように要求します。
- 2
- Kubernetes バージョン 1.25 以降を実行している場合は、この値を
false
に設定します。 - 3
- RHACS ポータルを使用するには、ルート、ロードバランサー、またはノードポートを使用して Central を公開する必要があります。
- 4
- 認証と認可に宣言型設定を使用する方法の詳細は、Red Hat Advanced Cluster Security for Kubernetes での RBAC の管理の認証および認可リソースの宣言型設定を参照してください。
- 5
- 認証と認可に宣言型設定を使用する方法の詳細は、Red Hat Advanced Cluster Security for Kubernetes での RBAC の管理の認証および認可リソースの宣言型設定を参照してください。
- 6
- hostPath ボリュームを使用して OpenShift Container Platform に Red Hat Cluster Security for Kubernetes をインストールする場合は、SELinux ポリシーを変更する必要があります。
警告OpenShift Container Platform で、hostPath ボリュームを使用するには、SELinux ポリシーを変更して、ホストとコンテナーが共有するディレクトリーへのアクセスを許可する必要があります。これは、SELinux がデフォルトでディレクトリー共有をブロックしているためです。SELinux ポリシーを変更するには、次のコマンドを実行します。
$ sudo chcon -Rt svirt_sandbox_file_t <full_volume_path>
ただし、Red Hat は SELinux ポリシーの変更を推奨していません。代わりに、OpenShift Container Platform にインストールするときに PVC を使用してください。
完了すると、インストーラーは central-bundle という名前のフォルダーを作成します。このフォルダーには、Central をデプロイするために必要な YAML マニフェストとスクリプトが含まれています。さらに、信頼できる認証局である Central と Scanner をデプロイするために実行する必要があるスクリプトの画面上の説明と、RHACS ポータルにログインするための認証手順、プロンプトに答える際にパスワードを入力しなかった場合は自動生成されたパスワードも表示されます。
4.1.3.3. Central インストールスクリプトの実行
対話型インストーラーを実行したら、setup.sh
スクリプトを実行して Central をインストールできます。
手順
setup.sh
スクリプトを実行して、イメージレジストリーアクセスを設定します。$ ./central-bundle/central/scripts/setup.sh
必要なリソースを作成します。
$ oc create -R -f central-bundle/central
デプロイメントの進行状況を確認します。
$ oc get pod -n stackrox -w
Central の実行後、RHACS ポータルの IP アドレスを見つけて、ブラウザーで開きます。プロンプトに応答するときに選択した公開方法に応じて、次のいずれかの方法を使用して IP アドレスを取得します。
公開方法 コマンド アドレス 例 ルート
oc -n stackrox get route central
出力の
HOST/PORT
列の下のアドレスhttps://central-stackrox.example.route
ノードポート
oc get node -owide && oc -n stackrox get svc central-loadbalancer
サービス用に表示されたポート上の任意のノードの IP またはホスト名
https://198.51.100.0:31489
ロードバランサー
oc -n stackrox get svc central-loadbalancer
EXTERNAL-IP、またはポート 443 でサービスに表示されるホスト名
https://192.0.2.0
なし
central-bundle/central/scripts/port-forward.sh 8443
https://localhost:8443
https://localhost:8443
対話型インストール中に自動生成されたパスワードを選択した場合は、次のコマンドを実行して、Central にログインするためのパスワードを確認できます。
$ cat central-bundle/password
4.2. オプション - Operator を使用した RHACS の Central 設定オプションの設定
このトピックでは、Operator を使用して設定できる任意の設定オプションについて説明します。
4.2.1. Operator を使用した Central 設定オプション
Central インスタンスを作成すると、Operator は Central
カスタムリソースの次の設定オプションをリスト表示します。
次の表には、外部 PostgreSQL データベース (テクノロジープレビュー) の設定が含まれています。
外部 PostgreSQL サポートはテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
4.2.1.1. Central 設定
パラメーター | 説明 |
---|---|
|
|
| デフォルトでは、Central は内部 TLS 証明書のみを提供します。つまり、Ingress またはロードバランサーレベルで TLS 終了を処理する必要があります。Central で TLS を終了し、カスタムサーバー証明書を提供する場合は、証明書と秘密鍵を含むシークレットを指定できます。 |
|
管理者パスワードの自動生成を無効にするには、このパラメーターを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Central の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
|
ロードバランサーを介して Central を公開するには、これを |
| このパラメーターを使用して、ロードバランサーのカスタムポートを指定します。 |
| このパラメーターを使用して、ロードバランサー用に予約されている静的 IP アドレスを指定します。 |
|
これを |
| Central のルートに使用するカスタムホスト名を指定します。OpenShift Container Platform のデフォルト値を受け入れるには、これを未設定のままにします。 |
|
これを |
| これを使用して、明示的なノードポートを指定します。 |
|
Central の監視を有効にするには、 |
| このコンポーネントを特定のノードでのみ実行する場合は、このパラメーターを使用してノードセレクターを設定できます。 |
| ホスト上のディレクトリーに永続データを保存するためのホストパスを指定します。Red Hat はこれの使用を推奨していません。ホストパスを使用する必要がある場合は、ノードセレクターで使用する必要があります。 |
|
永続データを管理するための PVC の名前。指定された名前の PVC が存在しない場合は、作成されます。設定されていない場合、デフォルト値は |
| クレームを通じて作成されたときの永続ボリュームのサイズ。これはデフォルトで自動的に生成されます。 |
| PVC に使用するストレージクラスの名前。クラスターがデフォルトのストレージクラスで設定されていない場合は、このパラメーターの値を指定する必要があります。 |
| このパラメーターを使用して、Central のデフォルトのリソース制限をオーバーライドします。 |
| このパラメーターを使用して、Central のデフォルトのリソースリクエストをオーバーライドします。 |
| このパラメーターを使用して、Central イメージのイメージプルシークレットを指定します。 |
|
|
|
(テクノロジープレビュー): このパラメーターを設定すると Central DB はデプロイされず、Central は指定された接続文字列を使用して接続します。このパラメーターの値を指定する場合は、
|
| ノードセレクターが Taint されたノードを選択する場合、このパラメーターを使用して、Central DB の Taint Toleration キー、値、および効果を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
| ホスト上のディレクトリーに永続データを保存するためのホストパスを指定します。Red Hat はこれの使用を推奨していません。ホストパスを使用する必要がある場合は、ノードセレクターで使用する必要があります。 |
|
永続データを管理するための PVC の名前。指定された名前の PVC が存在しない場合は、作成されます。設定されていない場合、デフォルト値は |
| クレームを通じて作成されたときの永続ボリュームのサイズ。これはデフォルトで自動的に生成されます。 |
| PVC に使用するストレージクラスの名前。クラスターがデフォルトのストレージクラスで設定されていない場合は、このパラメーターの値を指定する必要があります。 |
| このパラメーターを使用して、Central DB のデフォルトのリソース制限をオーバーライドします。 |
| このパラメーターを使用して、Central DB のデフォルトのリソース要求をオーバーライドします。 |
4.2.1.2. Scanner 設定
パラメーター | 説明 |
---|---|
| この Scanner を特定のノードでのみ実行する場合は、このパラメーターを使用してノードセレクターを設定できます。 |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
| このパラメーターを使用して、scanner のデフォルトのリソース制限をオーバーライドします。 |
| このパラメーターを使用して、scanner のデフォルトのリソースリクエストをオーバーライドします。 |
| 有効にすると、アナライザーレプリカの数は、指定された範囲内で、負荷に応じて動的に管理されます。 |
| アナライザーの自動スケーリング設定で使用するレプリカの最大数を指定します |
| アナライザーの自動スケーリング設定で使用する最低限のレプリカを指定します |
| 自動スケーリングが無効になっている場合、レプリカの数は常にこの値に一致するように設定されます。 |
| このコンポーネントを特定のノードでのみ実行する場合は、このパラメーターを使用してノードセレクターを設定できます。 |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
| このパラメーターを使用して、scanner のデフォルトのリソース制限をオーバーライドします。 |
| このパラメーターを使用して、scanner のデフォルトのリソースリクエストをオーバーライドします。 |
|
スキャナーの監視を有効にするには、 |
| Scanner をデプロイしない場合は、このパラメーターを使用して Scanner を無効にできます。Scanner を無効にすると、このセクションの他のすべての設定は effect を持ちません。Red Hat は、Red Hat Advanced Cluster Security for Kubernetes Scanner を無効にすることを推奨していません。 |
4.2.1.3. 一般およびその他の設定
パラメーター | 説明 |
---|---|
| セキュアクラスターが信頼する追加の信頼できる CA 証明書。これらの証明書は、通常、プライベート認証局を使用してサービスと統合するときに使用されます。 |
|
Central の |
| Central デプロイメントのカスタムアノテーションを指定できます。 |
| 環境変数を設定するための詳細設定。 |
| RHACS をオンラインモードまたはオフラインモードのどちらで実行するかを設定します。オフラインモードでは、脆弱性定義とカーネルモジュールの自動更新は無効になります。 |
|
このオプションを |
| 「Operator とオーバーレイを使用したインストールのカスタマイズ」を参照してください。 |
4.2.2. Operator とオーバーレイを使用したインストールのカスタマイズ
Operator とオーバーレイを使用して RHACS のインストールを調整する方法を説明します。
4.2.2.1. オーバーレイ
Central
または SecuredCluster
のカスタムリソースが特定の低レベル設定オプションをパラメーターとして公開していない場合は、.spec.overlays
フィールドを使用して調整できます。このフィールドを使用して、これらのカスタムリソースによって生成された Kubernetes リソースを修正します。
.spec.overlays
フィールドは一連のパッチで構成されます。パッチはフィールド内のリストの順序で適用されます。これらのパッチは、デプロイメントがクラスターに送信される前に、Kubernetes リソース上で Operator によって処理されます。
Central
と SecuredCluster
の両方の .spec.overlays
フィールドを使用すると、ユーザーは任意の方法で低レベルの Kubernetes リソースを変更できます。この機能は、SecuredCluster
または Central
カスタムリソースを通じて必要なカスタマイズが利用できない場合にのみ使用してください。
.spec.overlays
機能のサポートは限定的です。その主な理由は、この機能が Kubernetes リソースに複雑かつ非常に詳細な変更を加える権限を付与することにあります。Kubernetes リソースは、実装ごとに大幅に異なる場合があります。このレベルのカスタマイズを行うと、標準的な使用シナリオの範囲を超える複雑さが生じるため、広範なサポートを提供することが困難になります。場合によっては、固有の変更を行うことになり、製品のさまざまなバージョンや設定に応じて、Kubernetes システムに予期しない影響が発生する可能性があります。このような変動性があるため、このレベルのカスタマイズのトラブルシューティングを実施し、安定性を確保するには、各個人のセットアップに応じた一定レベルの専門知識と理解が必要です。そのため、この機能を使用すると、ニーズに合わせて的確に Kubernetes リソースを調整できる一方で、特に基盤となる製品のアップグレード変更時には、設定の互換性と安定性を確保するために、より大きな責任を担うことが要求されます。
次の例は、オーバーレイの構造を示しています。
overlays: - apiVersion: v1 1 kind: ConfigMap 2 name: my-configmap 3 patches: - path: .data 4 value: | 5 key1: data2 key2: data2
4.2.2.1.1. オーバーレイの追加
カスタマイズのために、Central
または SecuredCluster
カスタムリソースにオーバーレイを追加できます。変更には、OpenShift CLI (oc
) または OpenShift Container Platform Web コンソールを使用します。
オーバーレイが期待どおりに有効にならない場合は、RHACS Operator ログに構文エラーや問題が記録されていないか確認してください。
4.2.2.2. オーバーレイの例
4.2.2.2.1. Central ServiceAccount の EKS Pod ロール ARN の指定
次の例に示すように、Amazon Elastic Kubernetes Service (EKS) Pod ロールの Amazon Resource Name (ARN) アノテーションを central
ServiceAccount に追加します。
apiVersion: platform.stackrox.io kind: Central metadata: name: central spec: # ... overlays: - apiVersion: v1 kind: ServiceAccount name: central patches: - path: metadata.annotations.eks\.amazonaws\.com/role-arn value: "\"arn:aws:iam:1234:role\""
4.2.2.2.2. Central デプロイメントへの環境変数の注入
次の例に示すように、環境変数を central
デプロイメントに注入します。
apiVersion: platform.stackrox.io kind: Central metadata: name: central spec: # ... overlays: - apiVersion: apps/v1 kind: Deployment name: central patches: - path: spec.template.spec.containers[name:central].env[-1] value: | name: MY_ENV_VAR value: value
4.2.2.2.3. Ingress ルールを使用したネットワークポリシーの拡張
次の例に示すように、ポート 999 トラフィック用の Ingress ルールを allow-ext-to-central
ネットワークポリシーに追加します。
apiVersion: platform.stackrox.io kind: Central metadata: name: central spec: # ... overlays: - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy name: allow-ext-to-central patches: - path: spec.ingress[-1] value: | ports: - port: 999 protocol: TCP
4.2.2.2.4. ConfigMap データの変更
次の例に示すように、central-endpoints
ConfigMap のデータを変更します。
apiVersion: platform.stackrox.io kind: Central metadata: name: central spec: # ... overlays: - apiVersion: v1 kind: ConfigMap name: central-endpoints patches: - path: data value: | endpoints.yaml: | disableDefault: false
4.2.2.2.5. Central
デプロイメントへのコンテナーの追加
次の例に示すように、新しいコンテナーを central
デプロイメントに追加します。
apiVersion: platform.stackrox.io kind: Central metadata: name: central spec: # ... overlays: - apiVersion: apps/v1 kind: Deployment name: central patches: - path: spec.template.spec.containers[-1] value: | name: nginx image: nginx ports: - containerPort: 8000 name: http protocol: TCP
4.3. Red Hat OpenShift での RHACS の init バンドルの生成と適用
SecuredCluster
リソースをクラスターにインストールする前に、init バンドルを作成する必要があります。SecuredCluster
がインストールおよび設定されているクラスターは、このバンドルを使用して Central で認証します。RHACS ポータルまたは roxctl
CLI を使用して、init バンドルを作成できます。次に、それを使用してリソースを作成することにより、init バンドルを適用します。
RHACS Cloud Service の init バンドルを設定するには、次のリソースを参照してください。
init バンドルを作成するには、Admin
ユーザーロールが必要です。
4.3.1. init バンドルの生成
4.3.1.1. RHACS ポータルを使用した init バンドルの生成
RHACS ポータルを使用して、シークレットを含む init バンドルを作成できます。
init バンドルを作成するには、Admin
ユーザーロールが必要です。
手順
公開方法に基づいて RHACS ポータルのアドレスを見つけます。
ルートの場合。
$ oc get route central -n stackrox
ロードバランサーの場合。
$ oc get service central-loadbalancer -n stackrox
port forward の場合:
以下のコマンドを実行します。
$ oc port-forward svc/central 18443:443 -n stackrox
-
https://localhost:18443/
に移動します。
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Authentication Tokens セクションに移動し、Cluster Init Bundle をクリックする。
- Generate bundle をクリックする。
クラスター初期化バンドルの名前を入力し、Generate をクリックする。
- Helm チャートを使用してインストールする場合は、Download Helm Values File をクリックして、生成されたバンドルをダウンロードします。
- Operator を使用してインストールする場合は、Download Kubernetes Secret File をクリックして、生成されたバンドルをダウンロードします。
このバンドルにはシークレットが含まれているため、セキュアに保管してください。同じバンドルを使用して、複数のセキュアなクラスターを作成できます。
次のステップ
- セキュアなクラスターでリソースを作成して、init バンドルを適用します。
- 各クラスターにセキュアなクラスターサービスをインストールします。
4.3.1.2. roxctl CLI を使用した init バンドルの生成
roxctl
CLI を使用して、シークレットを含む init バンドルを作成できます。
init バンドルを作成するには、Admin
ユーザーロールが必要です。
前提条件
ROX_API_TOKEN
およびROX_CENTRAL_ADDRESS
環境変数が設定されている。次のコマンドを実行して
ROX_API_TOKEN
を設定します。$ export ROX_API_TOKEN=<api_token>
次のコマンドを実行して、
ROX_CENTRAL_ADDRESS
環境変数を設定します。$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>
手順
Helm インストールのシークレットを含むクラスター初期化バンドルを生成するには、次のコマンドを実行します。
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> \ --output cluster_init_bundle.yaml
Operator インストール用のシークレットを含むクラスター初期化バンドルを生成するには、次のコマンドを実行します。
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> \ --output-secrets cluster_init_bundle.yaml
重要このバンドルにはシークレットが含まれているため、安全に保管してください。同じバンドルを使用して、複数のセキュアクラスターを設定できます。
4.3.1.3. init バンドルを使用したリソースの作成
セキュアなクラスターをインストールする前に、init バンドルを使用して、セキュアなクラスター上のサービスが Central と通信できるようにする必要なリソースをクラスター上に作成する必要があります。
Helm チャートを使用してインストールする場合は、この手順を実行しないでください。Helm を使用してインストールを完了してください。「関連情報」セクションの 「Helm チャートを使用したセキュアクラスターへの RHACS のインストール」を参照してください。
前提条件
- シークレットを含む init バンドルを生成している必要があります。
手順
リソースを作成するには、次のいずれかの手順を実行します。
- OpenShift Container Platform Web コンソールのトップメニューで + をクリックし、Import YAML ページを開きます。init バンドルファイルをドラッグするか、その内容をコピーしてエディターに貼り付け、Create をクリックします。
Red Hat OpenShift CLI を使用して、次のコマンドを実行してリソースを作成します。
$ oc create -f <init_bundle>.yaml \ 1 -n <stackrox> 2
4.3.2. 次のステップ
- 監視するすべてのクラスターに RHACS のセキュアクラスターサービスをインストールします。
4.3.3. 関連情報
4.4. Red Hat OpenShift での RHACS 用のセキュアなクラスターサービスのインストール
このセクションでは、セキュアなクラスターに Red Hat Advanced Cluster Security for Kubernetes をインストールするためのインストール手順について説明します。
次のいずれかの方法を使用して、セキュアなクラスターに RHACS をインストールできます。
- Operator を使用してインストールする
- Helm チャートを使用してインストールする
-
roxctl
CLI を使用してインストールします (この方法を使用する必要がある特定のインストールが必要でない限り、この方法は使用しないでください)。
4.4.1. Operator を使用したセキュアなクラスターへの RHACS のインストール
4.4.1.1. セキュアクラスターサービスのインストール
SecuredCluster
カスタムリソースを使用して、セキュアなクラスターサービスをクラスターにインストールできます。モニターする環境内のすべてのクラスターに、セキュリティーでセキュアなクラスターサービスをインストールする必要があります。
セキュアクラスターサービスをインストールすると、コレクターもインストールされます。Unified Extensible Firmware Interface (UEFI) があり、Secure Boot が有効になっているシステムに Collector をインストールするには、カーネルモジュールが署名されておらず、UEFI ファームウェアが署名されていないパッケージをロードできないため、eBPF プローブを使用する必要があります。Collector は、開始時に Secure Boot ステータスを識別し、必要に応じて eBPF プローブに切り替えます。
前提条件
- OpenShift Container Platform を使用している場合は、バージョン 4.11 以降をインストールする必要があります。
- RHACS Operator をインストールしました。
- init バンドルを生成し、クラスターに適用しました。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators ページに移動します。
- RHACS Operator をクリックします。
- Operator details ページの central ナビゲーションメニューから Secured Cluster をクリックします。
- Create SecuredCluster をクリックします。
Configure via フィールドで次のいずれかのオプションを選択します。
- Form view: 画面上のフィールドを使用してセキュアなクラスターを設定し、他のフィールドを変更する必要がない場合は、このオプションを使用します。
- YAML view: このビューを使用して、YAML ファイルを使用してセキュアなクラスターをセットアップします。YAML ファイルがウィンドウに表示され、その中のフィールドを編集できます。このオプションを選択した場合、ファイルの編集が終了したら、Create をクリックします。
- Form view を使用している場合は、デフォルトの名前を受け入れるか編集して、新しいプロジェクト名を入力します。デフォルト値は stackrox-secured-cluster-services です。
- オプション: クラスターのラベルを追加します。
-
SecuredCluster
カスタムリソースの一意の名前を入力します。 Central Endpoint には、Central インスタンスのアドレスとポート番号を入力します。たとえば、Central が
https://central.example.com
で利用できる場合は、central エンドポイントをcentral.example.com:443
として指定します。デフォルト値のcentral.stackrox.svc:443
は、セキュアなクラスターサービスと Central を同じクラスターにインストールした場合にのみ機能します。複数のクラスターを設定する場合は、デフォルト値を使用しないでください。代わりに、各クラスターの Central Endpoint 値を設定するときにホスト名を使用します。-
セキュアなクラスターサービスと Central を同じクラスターにインストールする場合のみ、
central.stackrox.svc:443
を使用します。
-
セキュアなクラスターサービスと Central を同じクラスターにインストールする場合のみ、
- デフォルト値を受け入れるか、必要に応じてカスタム値を設定します。たとえば、カスタム証明書または信頼されていない CA を使用している場合は、TLS を設定する必要がある場合があります。
- Create をクリックします。
次のステップ
- オプション: 追加のセキュアなクラスター設定を設定します。
- インストールの検証
4.4.2. Helm チャートを使用したセキュアクラスターへの RHACS のインストール
Helm チャートをカスタマイズせずに使用するか、デフォルト値を使用するか、設定パラメーターをカスタマイズして、セキュアクラスターに RHACS をインストールできます。
4.4.2.1. カスタマイズせずに Helm チャートを使用してセキュアクラスターに RHACS をインストールする
4.4.2.1.1. Helm チャートリポジトリーの追加
手順
RHACS チャートリポジトリーを追加します。
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
Red Hat Advanced Cluster Security for Kubernetes の Helm リポジトリーには、異なるコンポーネントをインストールするための Helm チャートが含まれています。
集中型コンポーネント (Central および Scanner) をインストールするための Central サービス Helm チャート (
central-services
)。注記集中型コンポーネントは 1 回だけデプロイします。同じインストールを使用して複数の別のクラスターを監視できます。
クラスターおよびノードごとのコンポーネント (Sensor、Admission Controller、Collector、および Scanner-slim) をインストールするためのセキュアクラスターサービスの Helm チャート (
secured-cluster-services
)。注記モニターする各クラスターにクラスターごとのコンポーネントをデプロイし、モニターするすべてのノードにノードごとのコンポーネントをデプロイします。
検証
次のコマンドを実行して、追加されたチャートリポジトリーを確認します。
$ helm search repo -l rhacs/
4.4.2.1.2. カスタマイズせずに secured-cluster-services Helm チャートをインストールする
次の手順に従って、secure-cluster-services
Helm チャートをインストールし、クラスターおよびノードごとのコンポーネント (Sensor、Admission controller、Collector、および Scanner-slim) をデプロイします。
Unified Extensible Firmware Interface (UEFI) があり、Secure Boot が有効になっているシステムに Collector をインストールするには、カーネルモジュールが署名されておらず、UEFI ファームウェアが署名されていないパッケージをロードできないため、eBPF プローブを使用する必要があります。Collector は、開始時に Secure Boot ステータスを識別し、必要に応じて eBPF プローブに切り替えます。
前提条件
- クラスターの RHACS init バンドルを生成しておく必要があります。
-
Red Hat Container Registry へのアクセス権と、認証用のプルシークレットが必要です。
registry.redhat.io
からイメージをダウンロードする方法は、Red Hat コンテナーレジストリーの認証 を参照してください。 - Central サービスを公開するアドレスとポート番号が必要です。
手順
OpenShift Container Platform クラスターで以下のコマンドを実行します。
$ helm install -n stackrox --create-namespace \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <path_to_cluster_init_bundle.yaml> \ 1 -f <path_to_pull_secret.yaml> \ 2 --set clusterName=<name_of_the_secured_cluster> \ --set centralEndpoint=<endpoint_of_central_service> 3 --set scanner.disable=false 4
- 1
-f
オプションを使用して、init バンドルのパスを指定します。- 2
- -f オプションを使用して、Red Hat Container Registry 認証のプルシークレットのパスを指定します。
- 3
- Central のアドレスとポート番号を指定します。例:
acs.domain.com:443
- 4
scanner.disable
パラメーターの値をfalse
に設定します。これは、インストール中に Scanner-slim が有効になることを意味します。Kubernetes では、セキュアクラスターサービスに、オプションのコンポーネントとして Scanner-slim が含まれています。
4.4.2.2. カスタマイズした secured-cluster-services Helm チャートの設定
このセクションでは、helm install
および helm upgrade
コマンドで使用できる Helm チャート設定パラメーターについて説明します。これらのパラメーターは、--set
オプションを使用するか、YAML 設定ファイルを作成することで指定できます。
以下のファイルを作成して、Red Hat Advanced Cluster Security for Kubernetes をインストールするための Helm チャートを設定します。
-
パブリック設定ファイル
values-public.yaml
: このファイルを使用して、機密性の低いすべての設定オプションを保存します。 -
プライベート設定ファイル
values-private.yaml
: このファイルを使用して、機密性の高いすべての設定オプションを保存します。このファイルはセキュアに保管してください。
Download Helm Values File
Helm チャートを使用している間は、チャートの一部である values.yaml
ファイルを変更しないでください。
4.4.2.2.1. 設定パラメーター
パラメーター | 説明 |
---|---|
| クラスターの名前です。 |
|
Central エンドポイントのアドレス (ポート番号を含む)。gRPC に対応していないロードバランサーを使用している場合は、エンドポイントアドレスの前に |
| ポート番号を含む Sensor エンドポイントのアドレスです。 |
| Sensor コンテナーのイメージプルポリシーです。 |
| Sensor が使用する内部サービス間の TLS 証明書です。 |
| Sensor が使用する内部サービス間 TLS 証明書キーです。 |
| Sensor コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Sensor コンテナーの CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Sensor コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Sensor コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Sensor の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
|
|
| Collector イメージの名前です。 |
| main イメージに使用しているレジストリーのアドレスです。 |
| Collector イメージに使用しているレジストリーのアドレスです。 |
|
|
| Collector イメージのイメージプルポリシーです。 |
|
使用する |
|
使用する |
|
|
| Collector コンテナーのイメージプルポリシーです。 |
| Compliance コンテナーのイメージプルポリシーです。 |
|
|
| Collector コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Collector コンテナーの CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Collector コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Collector コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Compliance コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Compliance の CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Compliance コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Compliance コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Collector が使用する内部サービス間 TLS 証明書です。 |
| Collector が使用する内部サービス間 TLS 証明書キーです。 |
|
この設定は、Kubernetes がワークロード作成イベントの |
|
このパラメーターを |
|
この設定は、クラスターが Kubernetes |
| この設定は、Red Hat Advanced Cluster Security for Kubernetes がポリシーを評価するかどうかを制御します。無効にすると、すべての AdmissionReview リクエストが自動的に受け入れられます。 |
|
この設定は、アドミッションコントロールサービスの動作を制御します。これを機能させるには、 |
|
このオプションを |
|
Admission controller のバイパスを無効にするには、 |
| アドミッションレビューリクエストを評価する間、Red Hat Advanced Cluster Security for Kubernetes が待機する最大時間 (秒単位) です。これを使用して、イメージスキャンを有効にするときにリクエストのタイムアウトを設定します。イメージスキャンが指定された時間より長く実行される場合、Red Hat Advanced Cluster Security for Kubernetes はリクエストを受け入れます。 |
| Admission Control コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Admission Control コンテナーの CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Admission Control コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Admission Control コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、アドミッションコントロールの taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
| Admission Control が使用する内部サービス間 TLS 証明書です。 |
| Admission Control が使用する内部サービス間 TLS 証明書キーです。 |
|
このパラメーターを使用して、デフォルトの |
|
|
|
|
|
|
|
Collector のデプロイに slim Collector イメージを使用する場合は、 |
| Sensor のリソース仕様です。 |
| Admission controller のリソース仕様です。 |
| Collector のリソース仕様です。 |
| Collector の Compliance コンテナーのリソース仕様です。 |
|
このオプションを |
|
このオプションを |
|
このオプションを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。 |
| Collector の Compliance コンテナーのリソース仕様です。 |
| このパラメーターを設定すると、Scanner のログレベルを変更できます。このオプションは、トラブルシューティングの目的でのみ使用してください。 |
|
このオプションを |
| 自動スケーリングのレプリカの最小数です。デフォルトは 2 です。 |
| 自動スケーリングのレプリカの最大数です。デフォルトは 5 です。 |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner の taint toleration キー、値、および effect を指定します。 |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。 |
| Scanner コンテナーのメモリー要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner コンテナーの CPU 要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner コンテナーのメモリー制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner コンテナーの CPU 制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーのメモリー要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーの CPU 要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーのメモリー制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーの CPU 制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
|
このオプションを |
4.4.2.2.1.1. 環境変数
Sensor および Admission controller の環境変数は、次の形式で指定できます。
customize: envVars: ENV_VAR1: "value1" ENV_VAR2: "value2"
customize
設定を使用すると、この Helm チャートによって作成されたすべてのオブジェクトのカスタム Kubernetes メタデータ (ラベルとアノテーション) と、ワークロードの追加の Pod ラベル、Pod アノテーション、コンテナー環境変数を指定できます。
より一般的なスコープ (たとえば、すべてのオブジェクト) で定義されたメタデータを、より狭いスコープ (たとえば、Sensor デプロイメントのみ) で定義されたメタデータでオーバーライドできるという意味で、設定は階層的です。
4.4.2.2.2. secured-cluster-services Helm チャートのインストール
value-public.yaml
ファイルと values-private.yaml
ファイルを設定した後、secure-cluster-services
Helm チャートをインストールして、クラスターごとおよびノードごとのコンポーネント (Sensor、Admission controller、Collector、および Scanner-slim) をデプロイします。
Unified Extensible Firmware Interface (UEFI) があり、Secure Boot が有効になっているシステムに Collector をインストールするには、カーネルモジュールが署名されておらず、UEFI ファームウェアが署名されていないパッケージをロードできないため、eBPF プローブを使用する必要があります。Collector は、開始時に Secure Boot ステータスを識別し、必要に応じて eBPF プローブに切り替えます。
前提条件
- クラスターの RHACS init バンドルを生成しておく必要があります。
-
Red Hat Container Registry へのアクセス権と、認証用のプルシークレットが必要です。
registry.redhat.io
からイメージをダウンロードする方法は、Red Hat コンテナーレジストリーの認証 を参照してください。 - Central サービスを公開するアドレスとポート番号が必要です。
手順
以下のコマンドを実行します。
$ helm install -n stackrox \ --create-namespace stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <name_of_cluster_init_bundle.yaml> \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> \ 1 --set imagePullSecrets.username=<username> \ 2 --set imagePullSecrets.password=<password> 3
継続的インテグレーション (CI) システムを使用して secured-cluster-services
Helm チャートをデプロイするには、init バンドル YAML ファイルを環境変数として helm install
コマンドに渡します。
$ helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET") 1
- 1
- base64 でエンコードされた変数を使用している場合は、代わりに
helm install … -f <(echo "$INIT_BUNDLE_YAML_SECRET" | base64 --decode)
コマンドを使用してください。
4.4.2.3. secured-cluster-services Helm チャートをデプロイした後の設定オプションの変更
secure-cluster-services
Helm チャートをデプロイした後、任意の設定オプションに変更を加えることができます。
手順
-
values-public.yaml
およびvalues-private.yaml
設定ファイルを新しい値で更新します。 helm upgrade
コマンドを実行し、-f
オプションを使用して設定ファイルを指定します。$ helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \ 1 -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
- 1
--reuse-values
パラメーターを指定する必要があります。指定しない場合、Helm upgrade コマンドは以前に設定されたすべての設定をリセットします。
注記--set
または--set-file
パラメーターを使用して設定値を指定することもできます。ただし、これらのオプションは保存されないため、変更を加えるたびにすべてのオプションを手動で再度指定する必要があります。
4.4.3. roxctl CLI を使用したセキュアなクラスターへの RHACS のインストール
CLI を使用してセキュアクラスターに RHACS をインストールするには、次の手順を実行します。
-
roxctl
CLI をインストールします。 - Sensor を取り付けます。
4.4.3.1. roxctl CLI のインストール
最初にバイナリーをダウンロードする必要があります。roxctl
は、Linux、Windows、または macOS にインストールできます。
4.4.3.1.1. Linux への roxctl CLI のインストール
次の手順を使用して、Linux に roxctl
CLI バイナリーをインストールできます。
Linux 用の roxctl
CLI は、amd64
、ppcl64le
、および s390x
アーキテクチャーで使用できます。
手順
ターゲットのオペレーティングシステムの
roxctl
アーキテクチャーを確認します。$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
roxctl
CLI をダウンロードします。$ curl -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Linux/roxctl${arch}"
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
4.4.3.1.2. macOS への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを macOS にインストールできます。
macOS 用の roxctl
CLI は、amd64
アーキテクチャーで利用できます。
手順
roxctl
CLI をダウンロードします。$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Darwin/roxctl
バイナリーからすべての拡張属性を削除します。
$ xattr -c roxctl
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
4.4.3.1.3. Windows への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを Windows にインストールできます。
Windows 用の roxctl
CLI は、amd64
アーキテクチャーで使用できます。
手順
roxctl
CLI をダウンロードします。$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Windows/roxctl.exe
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
4.4.3.2. Sensor のインストール
クラスターをモニターするには、Sensor をデプロイする必要があります。モニターする各クラスターに Sensor をデプロイする必要があります。次の手順では、RHACS ポータルを使用して Sensor を追加する方法について説明します。
前提条件
- Central サービスをすでにインストールしている必要があります。または、Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service) で ACS インスタンス を選択して Central サービスにアクセスできます。
手順
- セキュアなクラスターの RHACS ポータルで、Platform Configuration → Clusters に移動します。
- +NewCluster を選択します。
- クラスターの名前を指定します。
Sensor をデプロイする場所に基づいて、フィールドに適切な値を入力します。
- 同じクラスターに Sensor をデプロイする場合は、すべてのフィールドのデフォルト値を受け入れます。
-
別のクラスターにデプロイする場合は、
central.stackrox.svc:443
を、他のクラスターからアクセス可能なロードバランサー、ノードポート、またはポート番号を含む他のアドレスに置き換えます。 HAProxy、AWS Application Load Balancer (ALB)、AWS Elastic Load Balancing (ELB) などの非 gRPC 対応のロードバランサーを使用している場合は、WebSocket Secure (
wss
) プロトコルを使用してください。wss
を使用するには:-
アドレスの前に
wss://
を付けます。 -
アドレスの後にポート番号を追加します (例
wss://stackrox-central.example.com:443
)。
-
アドレスの前に
- Next をクリックして、Sensor のセットアップを続行します。
Download YAML File and Keys をクリックして、クラスターバンドル (zip アーカイブ) をダウンロードします。
重要クラスターバンドルの zip アーカイブには、クラスターごとに固有の設定とキーが含まれています。同じファイルを別のクラスターで再利用しないでください。
モニター対象クラスターにアクセスできるシステムから、クラスターバンドルから
sensor
スクリプトを解凍して実行します。$ unzip -d sensor sensor-<cluster_name>.zip
$ ./sensor/sensor.sh
Sensor をデプロイするために必要な権限がないという警告が表示された場合は、画面の指示に従うか、クラスター管理者に連絡して支援を求めてください。
Sensor はデプロイされた後、Central に接続し、クラスター情報を提供します。
検証
RHACS ポータルに戻り、デプロイメントが成功したかどうかを確認します。成功した場合、Platform Configuration → Clusters でクラスターのリストを表示すると、クラスターのステータスに緑色のチェックマークと Healthy ステータスが表示されます。緑色のチェックマークが表示されない場合は、次のコマンドを使用して問題を確認してください。
OpenShift Container Platform で、次のコマンドを入力します。
$ oc get pod -n stackrox -w
Kubernetes で、次のコマンドを入力します。
$ kubectl get pod -n stackrox -w
- Finish をクリックしてウィンドウを閉じます。
インストール後、Sensor はセキュリティー情報の RHACS へのレポートを開始し、RHACS ポータルダッシュボードは、Sensor をインストールしたクラスターからのデプロイメント、イメージ、およびポリシー違反を表示し始めます。
4.5. オプション - Operator を使用した RHACS のセキュアクラスター設定オプションの設定
このトピックでは、Operator を使用して行うことができるオプションの設定について説明します。
4.5.1. セキュアなクラスター設定オプション
Central インスタンスを作成すると、Operator は Central
カスタムリソースの次の設定オプションをリスト表示します。
4.5.1.1. 必要な設定
パラメーター | 説明 |
---|---|
|
ポート番号を含む、接続する Central インスタンスのエンドポイント。gRPC に対応していないロードバランサーを使用している場合は、エンドポイントアドレスの前に |
| RHACS ポータルに表示されるこのクラスターの一意の名前。このパラメーターを使用して名前を設定した後は、名前を再度変更することはできません。名前を変更するには、オブジェクトを削除して再作成する必要があります。 |
4.5.1.2. 受付コントローラーの設定
パラメーター | 説明 |
---|---|
|
オブジェクト作成の予防ポリシーの適用を有効にするには、 |
|
|
|
オブジェクトの更新に対する予防ポリシーの適用を有効にするには、 |
| このコンポーネントを特定のノードでのみ実行する場合は、このパラメーターを使用してノードセレクターを設定できます。 |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、アドミッションコントロールの taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
| このパラメーターを使用して、アドミッションコントローラーのデフォルトのリソース制限をオーバーライドします。 |
| このパラメーターを使用して、アドミッションコントローラーのデフォルトのリソースリクエストをオーバーライドします。 |
| 以下のいずれかの値を使用して、Admission controller 適用のバイパスを設定します。
デフォルト値は |
| 次のいずれかの値を使用して、アドミッションコントローラーをイメージ Scanner に接続する必要があるかどうかを指定します。
デフォルト値は |
| このパラメーターを使用して、Red Hat Advanced Cluster Security for Kubernetes がフェールオープンとしてマークする前にアドミッションレビューを待機する必要がある最大秒数を指定します。 |
4.5.1.3. Scanner 設定
Scanner 設定を使用して、OpenShift Container Registry (OCR) のローカルクラスター Scanner を変更します。
パラメーター | 説明 |
---|---|
|
ノードセレクターのラベルを |
| Scanner コンテナーのメモリー要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner コンテナーの CPU 要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner コンテナーのメモリー制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner コンテナーの CPU 制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
|
このオプションを |
|
自動スケーリングのレプリカの最小数です。デフォルト値は |
|
自動スケーリングのレプリカの最大数です。デフォルト値は |
|
レプリカのデフォルト数。デフォルト値は |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner の taint toleration キー、値、および effect を指定します。 |
|
ノードセレクターのラベルを |
| Scanner DB コンテナーのメモリー要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーの CPU 要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーのメモリー制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーの CPU 制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。 |
|
このオプションを |
4.5.1.4. イメージ設定
カスタムレジストリーを使用している場合は、イメージ設定を使用します。
パラメーター | 説明 |
---|---|
| イメージをプルするために考慮される追加のイメージプルシークレット。 |
4.5.1.5. ノードごとの設定
ノードごとの設定は、クラスターをセキュリティー保護するためにクラスター内の各ノードで実行されるコンポーネントの設定を定義します。これらのコンポーネントは、Collector と Compliance です。
パラメーター | 説明 |
---|---|
|
システムレベルのデータ収集の方法。デフォルト値は |
|
Collector に使用するイメージのタイプ。 |
| このパラメーターを使用して、Collector のデフォルトのリソース制限をオーバーライドします。 |
| このパラメーターを使用して、Collector のデフォルトのリソースリクエストをオーバーライドします。 |
| このパラメーターを使用して、Compliance のデフォルトのリソースリクエストをオーバーライドします。 |
| このパラメーターを使用して、Compliance のデフォルトのリソース制限をオーバーライドします。 |
4.5.1.6. Taint Tolerations の設定
パラメーター | 説明 |
---|---|
|
クラスターアクティビティーを包括的にモニタリングするために、Red Hat Advanced Cluster Security for Kubernetes は、デフォルトで taint されたノードを含む、クラスター内のすべてのノードでサービスを実行します。この動作を望まない場合は、このパラメーターに |
4.5.1.7. Sensor 設定
この設定は、クラスター内の 1 つのノードで実行される Sensor コンポーネントの設定を定義します。
パラメーター | 説明 |
---|---|
| Sensor を特定のノードでのみ実行する場合は、ノードセレクターを設定できます。 |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Sensor の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
| このパラメーターを使用して、Sensor のデフォルトのリソース制限をオーバーライドします。 |
| このパラメーターを使用して、Sensor のデフォルトのリソースリクエストをオーバーライドします。 |
4.5.1.8. 一般およびその他の設定
パラメーター | 説明 |
---|---|
| セキュアクラスター用の追加の信頼できる CA 証明書。これらの証明書は、プライベート認証局を使用してサービスと統合するときに使用されます。 |
|
Central の SCC を作成するには、これを |
| Central デプロイメントのカスタムアノテーションを指定できます。 |
| 環境変数を設定するための詳細設定。 |
| Red Hat Advanced Cluster Security for Kubernetes をオンラインモードとオフラインモードのどちらで実行するかを設定します。オフラインモードでは、脆弱性定義とカーネルモジュールの自動更新は無効になります。 |
| 「Operator とオーバーレイを使用したインストールのカスタマイズ」を参照してください。 |
4.5.2. Operator とオーバーレイを使用したインストールのカスタマイズ
Operator とオーバーレイを使用して RHACS のインストールを調整する方法を説明します。
4.5.2.1. オーバーレイ
Central
または SecuredCluster
のカスタムリソースが特定の低レベル設定オプションをパラメーターとして公開していない場合は、.spec.overlays
フィールドを使用して調整できます。このフィールドを使用して、これらのカスタムリソースによって生成された Kubernetes リソースを修正します。
.spec.overlays
フィールドは一連のパッチで構成されます。パッチはフィールド内のリストの順序で適用されます。これらのパッチは、デプロイメントがクラスターに送信される前に、Kubernetes リソース上で Operator によって処理されます。
Central
と SecuredCluster
の両方の .spec.overlays
フィールドを使用すると、ユーザーは任意の方法で低レベルの Kubernetes リソースを変更できます。この機能は、SecuredCluster
または Central
カスタムリソースを通じて必要なカスタマイズが利用できない場合にのみ使用してください。
.spec.overlays
機能のサポートは限定的です。その主な理由は、この機能が Kubernetes リソースに複雑かつ非常に詳細な変更を加える権限を付与することにあります。Kubernetes リソースは、実装ごとに大幅に異なる場合があります。このレベルのカスタマイズを行うと、標準的な使用シナリオの範囲を超える複雑さが生じるため、広範なサポートを提供することが困難になります。場合によっては、固有の変更を行うことになり、製品のさまざまなバージョンや設定に応じて、Kubernetes システムに予期しない影響が発生する可能性があります。このような変動性があるため、このレベルのカスタマイズのトラブルシューティングを実施し、安定性を確保するには、各個人のセットアップに応じた一定レベルの専門知識と理解が必要です。そのため、この機能を使用すると、ニーズに合わせて的確に Kubernetes リソースを調整できる一方で、特に基盤となる製品のアップグレード変更時には、設定の互換性と安定性を確保するために、より大きな責任を担うことが要求されます。
次の例は、オーバーレイの構造を示しています。
overlays: - apiVersion: v1 1 kind: ConfigMap 2 name: my-configmap 3 patches: - path: .data 4 value: | 5 key1: data2 key2: data2
4.5.2.1.1. オーバーレイの追加
カスタマイズのために、Central
または SecuredCluster
カスタムリソースにオーバーレイを追加できます。変更には、OpenShift CLI (oc
) または OpenShift Container Platform Web コンソールを使用します。
オーバーレイが期待どおりに有効にならない場合は、RHACS Operator ログに構文エラーや問題が記録されていないか確認してください。
4.5.2.2. オーバーレイの例
4.5.2.2.1. Central ServiceAccount の EKS Pod ロール ARN の指定
次の例に示すように、Amazon Elastic Kubernetes Service (EKS) Pod ロールの Amazon Resource Name (ARN) アノテーションを central
ServiceAccount に追加します。
apiVersion: platform.stackrox.io kind: Central metadata: name: central spec: # ... overlays: - apiVersion: v1 kind: ServiceAccount name: central patches: - path: metadata.annotations.eks\.amazonaws\.com/role-arn value: "\"arn:aws:iam:1234:role\""
4.5.2.2.2. Central デプロイメントへの環境変数の注入
次の例に示すように、環境変数を central
デプロイメントに注入します。
apiVersion: platform.stackrox.io kind: Central metadata: name: central spec: # ... overlays: - apiVersion: apps/v1 kind: Deployment name: central patches: - path: spec.template.spec.containers[name:central].env[-1] value: | name: MY_ENV_VAR value: value
4.5.2.2.3. Ingress ルールを使用したネットワークポリシーの拡張
次の例に示すように、ポート 999 トラフィック用の Ingress ルールを allow-ext-to-central
ネットワークポリシーに追加します。
apiVersion: platform.stackrox.io kind: Central metadata: name: central spec: # ... overlays: - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy name: allow-ext-to-central patches: - path: spec.ingress[-1] value: | ports: - port: 999 protocol: TCP
4.5.2.2.4. ConfigMap データの変更
次の例に示すように、central-endpoints
ConfigMap のデータを変更します。
apiVersion: platform.stackrox.io kind: Central metadata: name: central spec: # ... overlays: - apiVersion: v1 kind: ConfigMap name: central-endpoints patches: - path: data value: | endpoints.yaml: | disableDefault: false
4.5.2.2.5. Central
デプロイメントへのコンテナーの追加
次の例に示すように、新しいコンテナーを central
デプロイメントに追加します。
apiVersion: platform.stackrox.io kind: Central metadata: name: central spec: # ... overlays: - apiVersion: apps/v1 kind: Deployment name: central patches: - path: spec.template.spec.containers[-1] value: | name: nginx image: nginx ports: - containerPort: 8000 name: http protocol: TCP
4.6. Red Hat OpenShift での RHACS のインストールの確認
RHACS が正しくインストールされていることを確認する手順を示します。
4.6.1. インストールの検証
インストールが完了したら、いくつかの脆弱なアプリケーションを実行し、RHACS ポータルに移動して、セキュリティー評価とポリシー違反の結果を評価します。
次のセクションにリストされているサンプルアプリケーションには重大な脆弱性が含まれており、Red Hat Advanced Cluster Security for Kubernetes のビルドおよびデプロイ時の評価機能を検証するように特別に設計されています。
インストールの検証
公開方法に基づいて RHACS ポータルのアドレスを見つけます。
ルートの場合。
$ oc get route central -n stackrox
ロードバランサーの場合。
$ oc get service central-loadbalancer -n stackrox
port forward の場合:
以下のコマンドを実行します。
$ oc port-forward svc/central 18443:443 -n stackrox
-
https://localhost:18443/
に移動します。
Red Hat OpenShift CLI を使用して、新しいプロジェクトを作成します。
$ oc new-project test
重大な脆弱性を持ついくつかのアプリケーションを開始します。
$ oc run shell --labels=app=shellshock,team=test-team \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2014-6271 -n test $ oc run samba --labels=app=rce \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2017-7494 -n test
Red Hat Advanced Cluster Security for Kubernetes は、これらのデプロイメントがクラスターに送信されるとすぐに、これらのデプロイメントを自動的にスキャンしてセキュリティーリスクとポリシー違反を検出します。RHACS ポータルに移動して、違反を表示します。デフォルトのユーザー名 admin と生成されたパスワードを使用して RHACS ポータルにログインできます。
第5章 他のプラットフォームへの RHACS のインストール
5.1. 他のプラットフォームへの RHACS のインストールの概要
Red Hat Advanced Cluster Security for Kubernetes (RHACS) は、Amazon Elastic Kubernetes Service (Amazon EKS)、Google Kubernetes Engine (Google GKE)、Microsoft Azure Kubernetes Service (Microsoft AKS) などのプラットフォームでセルフマネージド RHACS にセキュリティーサービスを提供します。
インストールする前に:
- 各プラットフォームのインストール方法 を理解する。
- Red Hat Advanced Cluster Security for Kubernetes アーキテクチャー を理解する。
- デフォルトのリソース要件ページ を確認する。
次のリストは、インストール手順の概要を示しています。
-
Helm チャートまたは
roxctl
CLI を使用して、クラスターに Central サービス をインストールします。 - init バンドル を生成して適用します。
- セキュアクラスターのリソース を各セキュアクラスターにインストールします。
5.2. 他のプラットフォームに RHACS の Central サービスをインストールする
Central は、RHACS アプリケーション管理インターフェイスとサービスを含むリソースです。データの永続性、API インタラクション、および RHACS ポータルアクセスを処理します。同じ Central インスタンスを使用して、複数の OpenShift Container Platform または Kubernetes クラスターを保護できます。
次のいずれかの方法を使用して、Central をインストールできます。
- Helm チャートを使用してインストールする
-
roxctl
CLI を使用してインストールします (この方法を使用する必要がある特定のインストールが必要でない限り、この方法は使用しないでください)。
5.2.1. Helm チャートを使用して Central をインストールする
カスタマイズせずに Helm チャートを使用するか、デフォルト値を使用するか、設定パラメーターをさらにカスタマイズして Helm チャートを使用することにより、Central をインストールできます。
5.2.1.1. カスタマイズせずに Helm チャートを使用して Central をインストールする
RHACS は、カスタマイズなしで Red Hat OpenShift クラスターにインストールできます。Helm チャートリポジトリーを追加し、Central-Services
Helm チャートをインストールして、Central と Scanner の一元化されたコンポーネントをインストールする必要があります。
5.2.1.1.1. Helm チャートリポジトリーの追加
手順
RHACS チャートリポジトリーを追加します。
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
Red Hat Advanced Cluster Security for Kubernetes の Helm リポジトリーには、異なるコンポーネントをインストールするための Helm チャートが含まれています。
集中型コンポーネント (Central および Scanner) をインストールするための Central サービス Helm チャート (
central-services
)。注記集中型コンポーネントは 1 回だけデプロイします。同じインストールを使用して複数の別のクラスターを監視できます。
クラスターおよびノードごとのコンポーネント (Sensor、Admission Controller、Collector、および Scanner-slim) をインストールするためのセキュアクラスターサービスの Helm チャート (
secured-cluster-services
)。注記モニターする各クラスターにクラスターごとのコンポーネントをデプロイし、モニターするすべてのノードにノードごとのコンポーネントをデプロイします。
検証
次のコマンドを実行して、追加されたチャートリポジトリーを確認します。
$ helm search repo -l rhacs/
5.2.1.1.2. カスタマイズせずに central-services Helm チャートをインストールする
次の手順を使用して、central-services
Helm チャートをインストールし、集中型コンポーネント (Central および Scanner) をデプロイします。
前提条件
-
Red Hat Container Registry へのアクセスがあること。
registry.redhat.io
からイメージをダウンロードする方法は、Red Hat コンテナーレジストリーの認証 を参照してください。
手順
次のコマンドを実行して Central services をインストールし、ルートを使用して Central を公開します。
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ 1 --set imagePullSecrets.password=<password> \ 2 --set central.exposure.route.enabled=true
または、次のコマンドを実行して Central services をインストールし、ロードバランサーを使用して Central を公開します。
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ 1 --set imagePullSecrets.password=<password> \ 2 --set central.exposure.loadBalancer.enabled=true
または、次のコマンドを実行して Central services をインストールし、port forward を使用して Central を公開します。
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ 1 --set imagePullSecrets.password=<password> 2
外部サービスに接続するためにプロキシーが必要なクラスターに Red Hat Cluster Security for Kubernetes をインストールする場合は、
proxyConfig
パラメーターを使用してプロキシー設定を指定する必要があります。以下に例を示します。env: proxyConfig: | url: http://proxy.name:port username: username password: password excludes: - some.domain
-
インストール先の namespace に 1 つ以上のイメージプルシークレットをすでに作成している場合は、ユーザー名とパスワードを使用する代わりに、
--set imagePullSecrets.useExisting="<pull-secret-1;pull-secret-2>"
を使用できます。 イメージプルシークレットは使用しないでください。
-
quay.io/stackrox-io
または認証を必要としないプライベートネットワークのレジストリーからイメージを取得する場合。ユーザー名とパスワードを指定する代わりに、--set imagePullSecrets.allowNone=true
を使用します。 -
インストールする namespace のデフォルトサービスアカウントでイメージプルシークレットをすでに設定している場合。ユーザー名とパスワードを指定する代わりに、
--set imagePullSecrets.useFromDefaultServiceAccount=true
を使用します。
-
インストールコマンドの出力は次のとおりです。
- 自動的に生成された管理者パスワード。
- すべての設定値を保存するための手順。
- Helm が生成する警告。
5.2.1.2. カスタマイズされた Helm チャートを使用して Central をインストールする
helm install
および helm upgrade
コマンドで Helm チャート設定パラメーターを使用することにより、Red Hat OpenShift クラスターに RHACS をカスタマイズしてインストールできます。これらのパラメーターは、--set
オプションを使用するか、YAML 設定ファイルを作成することで指定できます。
以下のファイルを作成して、Red Hat Advanced Cluster Security for Kubernetes をインストールするための Helm チャートを設定します。
-
パブリック設定ファイル
values-public.yaml
: このファイルを使用して、機密性の低いすべての設定オプションを保存します。 -
プライベート設定ファイル
values-private.yaml
: このファイルを使用して、機密性の高いすべての設定オプションを保存します。このファイルは安全に保管してください。 -
設定ファイル
declarative-config-values.yaml
: 宣言設定を使用して宣言設定マウントを Central に追加する場合は、このファイルを作成します。
5.2.1.2.1. プライベート設定ファイル
このセクションでは、values-private.yaml
ファイルの設定可能なパラメーターをリストします。これらのパラメーターのデフォルト値はありません。
5.2.1.2.1.1. イメージプルのシークレット
レジストリーからイメージをプルするために必要な認証情報は、以下の要素によって異なります。
カスタムレジストリーを使用している場合、以下のパラメーターを指定する必要があります。
-
imagePullSecrets.username
-
imagePullSecrets.password
-
image.registry
-
カスタムレジストリーへのログインにユーザー名とパスワードを使用しない場合は、以下のいずれかのパラメーターを指定する必要があります。
-
imagePullSecrets.allowNone
-
imagePullSecrets.useExisting
-
imagePullSecrets.useFromDefaultServiceAccount
-
パラメーター | 説明 |
---|---|
| レジストリーへのログインに使用されるアカウントのユーザー名。 |
| レジストリーへのログインに使用されるアカウントのパスワード |
|
カスタムレジストリーを使用していて、クレデンシャルなしでイメージをプルできる場合は、 |
|
値としてのシークレットのコンマ区切りリスト。たとえば、 |
|
十分なスコープのイメージプルシークレットを使用してターゲット namespace にデフォルトのサービスアカウントをすでに設定している場合は、 |
5.2.1.2.1.2. プロキシー設定
外部サービスに接続するためにプロキシーが必要なクラスターに Red Hat Cluster Security for Kubernetes をインストールする場合は、proxyConfig
パラメーターを使用してプロキシー設定を指定する必要があります。以下に例を示します。
env: proxyConfig: | url: http://proxy.name:port username: username password: password excludes: - some.domain
パラメーター | 説明 |
---|---|
| プロキシー設定。 |
5.2.1.2.1.3. Central
Central の設定可能なパラメーター。
新規インストールの場合、次のパラメーターをスキップできます。
-
central.jwtSigner.key
-
central.serviceTLS.cert
-
central.serviceTLS.key
-
central.adminPassword.value
-
central.adminPassword.htpasswd
-
central.db.serviceTLS.cert
-
central.db.serviceTLS.key
-
central.db.password.value
- これらのパラメーターの値を指定しない場合、Helm チャートはそれらの値を自動生成します。
-
これらの値を変更する場合は、
helm upgrade
コマンドを使用し、--set
オプションを使用して値を指定できます。
管理者パスワードの設定には、central.adminPassword.value
または central.adminPassword.htpasswd
のいずれかのみを使用できますが、両方を使用することはできません。
パラメーター | 説明 |
---|---|
| Red Hat Advanced Cluster Security for Kubernetes が認証用の JSON Web トークン (JWT) に署名するために使用する必要がある秘密鍵。 |
| Central サービスが Central をデプロイするために使用する必要がある内部証明書。 |
| Central サービスが使用する必要がある内部証明書の秘密鍵。 |
| Central が使用する必要のあるユーザー向けの証明書。Red Hat Advanced Cluster Security for Kubernetes は、RHACS ポータルにこの証明書を使用します。
|
| Central が使用する必要のあるユーザー向け証明書の秘密鍵。
|
| Central DB の接続パスワード。 |
| Red Hat Advanced Cluster Security for Kubernetes にログインするための管理者パスワード。 |
| Red Hat Advanced Cluster Security for Kubernetes にログインするための管理者パスワード。このパスワードは、bcrypt を使用してハッシュ形式で保存されます。 |
| Central DB サービスが Central DB をデプロイするために使用する内部証明書。 |
| Central DB サービスが使用する内部証明書の秘密キー。 |
| Central DB への接続に使用されるパスワード。 |
Central.adminPassword.htpasswd
パラメーターを使用している場合は、bcrypt でエンコードされたパスワードハッシュを使用する必要があります。コマンド htpasswd -nB admin
を実行して、パスワードハッシュを生成できます。以下に例を示します。
htpasswd: | admin:<bcrypt-hash>
5.2.1.2.1.4. Scanner
Scanner の設定可能なパラメーター。
新規インストールの場合、次のパラメーターをスキップでき、Helm チャートがそれらの値を自動生成します。それ以外の場合、新しいバージョンにアップグレードする場合は、以下のパラメーターの値を指定してください。
-
scanner.dbPassword.value
-
scanner.serviceTLS.cert
-
scanner.serviceTLS.key
-
scanner.dbServiceTLS.cert
-
scanner.dbServiceTLS.key
パラメーター | 説明 |
---|---|
| Scanner データベースでの認証に使用するパスワード。Red Hat Advanced Cluster Security for Kubernetes はその値を内部で自動的に作成して使用するため、このパラメーターは変更しないでください。 |
| Scanner サービスが Scanner のデプロイに使用する必要がある内部証明書。 |
| Scanner サービスが使用する必要がある内部証明書の秘密鍵。 |
| Scanner-db サービスが Scanner データベースをデプロイするために使用する必要がある内部証明書。 |
| Scanner-db サービスが使用する必要がある内部証明書の秘密鍵。 |
5.2.1.2.2. パブリック設定ファイル
このセクションでは、values-public.yaml
ファイルの設定可能なパラメーターをリストします。
5.2.1.2.2.1. イメージプルのシークレット
イメージプルシークレットは、レジストリーからイメージをプルするために必要なクレデンシャルです。
パラメーター | 説明 |
---|---|
|
カスタムレジストリーを使用していて、クレデンシャルなしでイメージをプルできる場合は、 |
|
値としてのシークレットのコンマ区切りリスト。たとえば、 |
|
十分なスコープのイメージプルシークレットを使用してターゲット namespace にデフォルトのサービスアカウントをすでに設定している場合は、 |
5.2.1.2.2.2. Image
Image は、Helm チャートが central.image
、scanner.image
、および scanner.dbImage
パラメーターのイメージを解決するために使用するメインレジストリーをセットアップするための設定を宣言します。
パラメーター | 説明 |
---|---|
|
イメージレジストリーのアドレス。 |
5.2.1.2.2.3. 環境変数
Red Hat Advanced Cluster Security for Kubernetes は、クラスター環境を自動的に検出し、env.openshift
、env.istio
、および env.platform
の値を設定します。クラスター環境の自動検出をオーバーライドするには、これらの値のみを設定してください。
パラメーター | 説明 |
---|---|
|
OpenShift Container Platform クラスターにインストールし、クラスター環境の自動検出をオーバーライドする場合は、 |
|
|
|
Red Hat Advanced Cluster Security for Kubernetes をインストールするプラットフォーム。その値を |
|
オフラインモードで Red Hat Advanced Cluster Security for Kubernetes を使用するには、 |
5.2.1.2.2.4. 追加の信頼された認証局
Red Hat Advanced Cluster Security for Kubernetes は、信頼するシステムルート証明書を自動的に参照します。Central または Scanner が、組織内の機関またはグローバルに信頼されているパートナー組織によって発行された証明書を使用するサービスに到達する必要がある場合、次のパラメーターを使用して信頼するルート認証局を指定することにより、これらのサービスの信頼を追加できます。
パラメーター | 説明 |
---|---|
| 信頼するルート認証局の PEM エンコード証明書を指定します。 |
5.2.1.2.2.5. Central
Central の設定可能なパラメーター。
-
hostPath
またはPersistentVolumeClaim
のいずれかとして永続ストレージオプションを指定する必要があります。 -
外部アクセス用の Central のデプロイメントを公開するため。1 つのパラメーター、
central.exposure.loadBalancer
、central.exposure.nodePort
、またはcentral.exposure.route
のいずれかを指定する必要があります。これらのパラメーターに値を指定しない場合は、手動で Central を公開するか、ポート転送を使用して Central にアクセスする必要があります。
次の表には、外部 PostgreSQL データベース (テクノロジープレビュー) の設定が含まれています。
外部 PostgreSQL サポートはテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
パラメーター | 説明 |
---|---|
| 宣言的設定に使用される config map をマウントします。 |
| 宣言型設定に使用されるシークレットをマウントします。 |
| Central のエンドポイント設定オプションです。 |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Central の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Central の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
|
ポート番号 |
|
Central イメージのグローバル |
|
デフォルトの Central イメージ名 ( |
|
Central イメージのデフォルトタグをオーバーライドするカスタムイメージタグです。新規インストール時に独自のイメージタグを指定した場合は、 |
|
Central イメージのレジストリーアドレス、イメージ名、およびイメージタグを含む完全なリファレンスです。このパラメーターの値を設定すると、 |
| Central がデフォルト値をオーバーライドするためのメモリーリクエストです。 |
| Central がデフォルト値をオーバーライドするための CPU リクエストです。 |
| Central がデフォルト値をオーバーライドためのメモリー制限です。 |
| Central がデフォルト値をオーバーライドための CPU 制限です。 |
| RHACS がデータベースボリュームを作成するノード上のパス。Red Hat はこのオプションの使用を推奨していません。 |
| 使用している永続ボリューム要求 (PVC) の名前です。 |
|
新しい PVC を作成するには |
| 指定された要求によるマネージドの永続ボリュームのサイズ (GiB 単位) です。 |
|
ロードバランサーを使用して Central を公開するには、 |
| Central を公開するポート番号です。デフォルトのポート番号は 443 です。 |
|
|
| Central を公開するポート番号です。このパラメーターをスキップすると、OpenShift Container Platform は自動的にポート番号を割り当てます。Red Hat では、ノードポートを使用して Red Hat Advanced Cluster Security for Kubernetes を公開する場合、ポート番号を指定しないことを推奨しています。 |
|
ルートを使用して Central を公開するには、 |
|
(テクノロジープレビュー) Central DB をデプロイメントせず、外部データベースを使用することを指定するには、 |
|
(テクノロジープレビュー) Central がデータベースへの接続に使用する接続文字列。これは、
|
| 確立されるデータベースへの接続の最小数。 |
| 確立されるデータベースへの接続の最大数。 |
| 単一のクエリーまたはトランザクションがデータベースに対してアクティブにできるミリ秒数。 |
| PostgreSQL ドキュメントの「追加リソース」で説明されているように、Central DB に使用される postgresql.conf。 |
| PostgreSQL ドキュメントの「追加リソース」で説明されているように、Central DB に使用される pg_hba.conf。 |
|
ノードセレクターのラベルを |
|
Central DB イメージのグローバル |
|
デフォルトの Central DB イメージ名 ( |
|
Central DB イメージのデフォルトのタグをオーバーライドするカスタムイメージタグ。新規インストール時に独自のイメージタグを指定した場合は、 |
|
Central DB イメージのレジストリーアドレス、イメージ名、イメージタグを含む完全なリファレンス。このパラメーターの値を設定すると、 |
| Central DB がデフォルト値をオーバーライドするためのメモリー要求。 |
| Central DB がデフォルト値をオーバーライドするための CPU 要求。 |
| Central DB がデフォルト値をオーバーライドするためのメモリー制限。 |
| Central DB がデフォルト値をオーバーライドするための CPU 制限。 |
| RHACS がデータベースボリュームを作成するノード上のパス。Red Hat はこのオプションの使用を推奨していません。 |
| 使用している永続ボリューム要求 (PVC) の名前です。 |
|
|
| 指定された要求によるマネージドの永続ボリュームのサイズ (GiB 単位) です。 |
5.2.1.2.2.6. Scanner
Scanner の設定可能なパラメーター。
パラメーター | 説明 |
---|---|
|
Scanner を使用せずに Red Hat Advanced Cluster Security for Kubernetes をインストールする場合は |
|
|
|
Scanner のデプロイメント用に作成するレプリカの数です。 |
|
Scanner のログレベルを設定します。Red Hat では、ログレベルのデフォルト値 ( |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
|
|
| 自動スケーリングのレプリカの最小数です。 |
| 自動スケーリングのレプリカの最大数です。 |
| Scanner がデフォルト値をオーバーライドするためのメモリーリクエストです。 |
| Scanner がデフォルト値をオーバーライドするための CPU リクエストです。 |
| Scanner がデフォルト値をオーバーライドするためのメモリー制限です。 |
| Scanner がデフォルト値をオーバーライドするための CPU 制限です。 |
| Scanner データベースのデプロイメントがデフォルト値をオーバーライドするためのメモリーリクエストです。 |
| Scanner データベースのデプロイメントがデフォルト値をオーバーライドするための CPU リクエストです。 |
| Scanner データベースのデプロイメントがデフォルト値をオーバーライドするためのメモリー制限です。 |
| Scanner データベースのデプロイメントがデフォルト値をオーバーライドするための CPU 制限です。 |
| Scanner イメージのカスタムレジストリーです。 |
|
デフォルトの Scanner イメージ名 ( |
| Scanner DB イメージのカスタムレジストリーです。 |
|
デフォルトの Scanner DB イメージ名 ( |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
5.2.1.2.2.7. カスタマイズ
これらのパラメーターを使用して、Red Hat Advanced Cluster Security for Kubernetes が作成するすべてのオブジェクトの追加の属性を指定します。
パラメーター | 説明 |
---|---|
| すべてのオブジェクトにアタッチするカスタムラベルです。 |
| すべてのオブジェクトにアタッチするカスタムアノテーションです。 |
| すべてのデプロイメントにアタッチするカスタムラベルです。 |
| すべてのデプロイメントにアタッチするカスタムアノテーションです。 |
| すべてのオブジェクトのすべてのコンテナーのカスタム環境変数。 |
| Central が作成するすべてのオブジェクトに割り当てるカスタムラベル。 |
| Central が作成するすべてのオブジェクトに割り当てるカスタムアノテーション。 |
| すべての Central のデプロイメントにアタッチするカスタムラベルです。 |
| すべての Central のデプロイメントにアタッチするカスタムアノテーションです。 |
| すべての Central コンテナーのカスタム環境変数。 |
| Scanner が作成するすべてのオブジェクトに割り当てるカスタムラベル。 |
| Scanner が作成するすべてのオブジェクトに割り当てるカスタムアノテーション。 |
| すべての Scanner のデプロイメントにアタッチするカスタムラベルです。 |
| すべての Scanner のデプロイメントにアタッチするカスタムアノテーションです。 |
| すべての Scanner コンテナーのカスタム環境変数。 |
| Scanner DB が作成するすべてのオブジェクトに割り当てるカスタムラベル。 |
| Scanner DB が作成するすべてのオブジェクトに割り当てるカスタムアノテーション。 |
| すべての Scanner DB のデプロイメントにアタッチするカスタムラベルです。 |
| すべての Scanner DB のデプロイメントにアタッチするカスタムアノテーションです。 |
| すべての Scanner DB コンテナーのカスタム環境変数です。 |
以下のように使用することもできます。
-
すべてのオブジェクトのラベルとアノテーションを指定するための
customize.other.service/*.labels
およびcustomize.other.service/*.annotations
パラメーターです。 -
または、特定のサービス名を指定します。たとえば、
customize.other.service/central-loadbalancer.labels
とcustomize.other.service/central-loadbalancer.annotations
をパラメーターとして指定し、それらの値を設定します。
5.2.1.2.2.8. 高度なカスタマイズ
このセクションで指定されているパラメーターは、情報提供のみを目的としています。Red Hat は、namespace とリリース名が変更された Red Hat Advanced Cluster Security for Kubernetes インスタンスをサポートしていません。
パラメーター | 説明 |
---|---|
|
|
|
|
5.2.1.2.3. 宣言的な設定値
宣言型設定を使用するには、宣言型設定マウントを Central に追加する YAML ファイル (この例では declarative-config-values.yaml という名前) を作成する必要があります。このファイルは Helm インストールで使用されます。
手順
次の例をガイドラインとして使用して、YAML ファイル (この例では
declarative-config-values.yaml
という名前) を作成します。central: declarativeConfiguration: mounts: configMaps: - declarative-configs secrets: - sensitive-declarative-configs
-
「central-services Helm チャートのインストール」の説明に従って、
declarative-config-values.yaml
ファイルを参照して、Central サービス Helm チャートをインストールします。
5.2.1.2.4. central-services Helm チャートのインストール
values-public.yaml
ファイルと values-private.yaml
ファイルを設定した後、central-services
Helm チャートをインストールして、集中型コンポーネント (Central と Scanner) をデプロイします。
手順
以下のコマンドを実行します。
$ helm install -n stackrox --create-namespace \ stackrox-central-services rhacs/central-services \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> 1
- 1
-f
オプションを使用して、YAML 設定ファイルのパスを指定します。
オプション: 宣言型設定を使用する場合は、このコマンドに -f <path_to_declarative-config-values.yaml
を追加して、宣言型設定ファイルを Central にマウントします。
5.2.1.3. central-services Helm チャートをデプロイした後の設定オプションの変更
central-services
Helm チャートをデプロイした後、任意の設定オプションに変更を加えることができます。
手順
-
values-public.yaml
およびvalues-private.yaml
設定ファイルを新しい値で更新します。 helm upgrade
コマンドを実行し、-f
オプションを使用して設定ファイルを指定します。$ helm upgrade -n stackrox \ stackrox-central-services rhacs/central-services \ -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
注記--set
または--set-file
パラメーターを使用して設定値を指定することもできます。ただし、これらのオプションは保存されないため、変更を加えるたびにすべてのオプションを手動で再度指定する必要があります。
5.2.2. roxctl CLI を使用して Central をインストールする
実稼働環境では、Red Hat は Operator または Helm チャートを使用して RHACS をインストールすることを推奨しています。この方法を使用する必要がある特定のインストールがない限り、roxctl
のインストール手法を使用しないでください。
5.2.2.1. roxctl CLI のインストール
Red Hat Advanced Cluster Security for Kubernetes をインストールするには、バイナリーをダウンロードして roxctl
CLI をインストールする必要があります。roxctl
は、Linux、Windows、または macOS にインストールできます。
5.2.2.1.1. Linux への roxctl CLI のインストール
次の手順を使用して、Linux に roxctl
CLI バイナリーをインストールできます。
Linux 用の roxctl
CLI は、amd64
、ppcl64le
、および s390x
アーキテクチャーで使用できます。
手順
ターゲットのオペレーティングシステムの
roxctl
アーキテクチャーを確認します。$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
roxctl
CLI をダウンロードします。$ curl -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Linux/roxctl${arch}"
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
5.2.2.1.2. macOS への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを macOS にインストールできます。
macOS 用の roxctl
CLI は、amd64
アーキテクチャーで利用できます。
手順
roxctl
CLI をダウンロードします。$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Darwin/roxctl
バイナリーからすべての拡張属性を削除します。
$ xattr -c roxctl
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
5.2.2.1.3. Windows への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを Windows にインストールできます。
Windows 用の roxctl
CLI は、amd64
アーキテクチャーで使用できます。
手順
roxctl
CLI をダウンロードします。$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Windows/roxctl.exe
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
5.2.2.2. 対話型インストーラーの使用
対話型インストーラーを使用して、お使いの環境に必要なシークレット、デプロイメント設定、およびデプロイメントスクリプトを生成します。
手順
対話型インストールコマンドを実行します。
$ roxctl central generate interactive
重要roxctl
CLI を使用して RHACS をインストールすると、下位互換性のためにデフォルトで PodSecurityPolicy (PSP) オブジェクトが作成されます。RHACS を Kubernetes バージョン 1.25 以降または OpenShift Container Platform バージョン 4.12 以降にインストールする場合、PSP オブジェクトの作成を無効にする必要があります。これを行うには、roxctl central generate
コマンドとroxctl sensor generate
コマンドで--enable-pod-security-policies
オプションをfalse
に指定します。Enter を押してプロンプトのデフォルト値を受け入れるか、必要に応じてカスタム値を入力します。次の例は、対話型インストーラーのプロンプトを示しています。
Enter path to the backup bundle from which to restore keys and certificates (optional): Enter read templates from local filesystem (default: "false"): Enter path to helm templates on your local filesystem (default: "/path"): Enter PEM cert bundle file (optional): 1 Enter Create PodSecurityPolicy resources (for pre-v1.25 Kubernetes) (default: "true"): 2 Enter administrator password (default: autogenerated): Enter orchestrator (k8s, openshift): Enter default container images settings (development_build, stackrox.io, rhacs, opensource); it controls repositories from where to download the images, image names and tags format (default: "development_build"): Enter the directory to output the deployment bundle to (default: "central-bundle"): Enter the OpenShift major version (3 or 4) to deploy on (default: "0"): Enter whether to enable telemetry (default: "false"): Enter central-db image to use (if unset, a default will be used according to --image-defaults): Enter Istio version when deploying into an Istio-enabled cluster (leave empty when not running Istio) (optional): Enter the method of exposing Central (route, lb, np, none) (default: "none"): 3 Enter main image to use (if unset, a default will be used according to --image-defaults): Enter whether to run StackRox in offline mode, which avoids reaching out to the Internet (default: "false"): Enter list of secrets to add as declarative configuration mounts in central (default: "[]"): 4 Enter list of config maps to add as declarative configuration mounts in central (default: "[]"): 5 Enter the deployment tool to use (kubectl, helm, helm-values) (default: "kubectl"): Enter scanner-db image to use (if unset, a default will be used according to --image-defaults): Enter scanner image to use (if unset, a default will be used according to --image-defaults): Enter Central volume type (hostpath, pvc): 6 Enter external volume name for Central (default: "stackrox-db"): Enter external volume size in Gi for Central (default: "100"): Enter storage class name for Central (optional if you have a default StorageClass configured): Enter external volume name for Central DB (default: "central-db"): Enter external volume size in Gi for Central DB (default: "100"): Enter storage class name for Central DB (optional if you have a default StorageClass configured):
- 1
- カスタム TLS 証明書を追加する場合は、PEM でエンコードされた証明書のファイルパスを指定します。カスタム証明書を指定すると、対話型インストーラーは、使用しているカスタム証明書の PEM 秘密鍵を提供するように要求します。
- 2
- Kubernetes バージョン 1.25 以降を実行している場合は、この値を
false
に設定します。 - 3
- RHACS ポータルを使用するには、ルート、ロードバランサー、またはノードポートを使用して Central を公開する必要があります。
- 4
- 認証と認可に宣言型設定を使用する方法の詳細は、Red Hat Advanced Cluster Security for Kubernetes での RBAC の管理の認証および認可リソースの宣言型設定を参照してください。
- 5
- 認証と認可に宣言型設定を使用する方法の詳細は、Red Hat Advanced Cluster Security for Kubernetes での RBAC の管理の認証および認可リソースの宣言型設定を参照してください。
- 6
- hostPath ボリュームを使用して OpenShift Container Platform に Red Hat Cluster Security for Kubernetes をインストールする場合は、SELinux ポリシーを変更する必要があります。
警告OpenShift Container Platform で、hostPath ボリュームを使用するには、SELinux ポリシーを変更して、ホストとコンテナーが共有するディレクトリーへのアクセスを許可する必要があります。これは、SELinux がデフォルトでディレクトリー共有をブロックしているためです。SELinux ポリシーを変更するには、次のコマンドを実行します。
$ sudo chcon -Rt svirt_sandbox_file_t <full_volume_path>
ただし、Red Hat は SELinux ポリシーの変更を推奨していません。代わりに、OpenShift Container Platform にインストールするときに PVC を使用してください。
完了すると、インストーラーは central-bundle という名前のフォルダーを作成します。このフォルダーには、Central をデプロイするために必要な YAML マニフェストとスクリプトが含まれています。さらに、信頼できる認証局である Central と Scanner をデプロイするために実行する必要があるスクリプトの画面上の説明と、RHACS ポータルにログインするための認証手順、プロンプトに答える際にパスワードを入力しなかった場合は自動生成されたパスワードも表示されます。
5.2.2.3. Central インストールスクリプトの実行
対話型インストーラーを実行したら、setup.sh
スクリプトを実行して Central をインストールできます。
手順
setup.sh
スクリプトを実行して、イメージレジストリーアクセスを設定します。$ ./central-bundle/central/scripts/setup.sh
必要なリソースを作成します。
$ oc create -R -f central-bundle/central
デプロイメントの進行状況を確認します。
$ oc get pod -n stackrox -w
Central の実行後、RHACS ポータルの IP アドレスを見つけて、ブラウザーで開きます。プロンプトに応答するときに選択した公開方法に応じて、次のいずれかの方法を使用して IP アドレスを取得します。
公開方法 コマンド アドレス 例 ルート
oc -n stackrox get route central
出力の
HOST/PORT
列の下のアドレスhttps://central-stackrox.example.route
ノードポート
oc get node -owide && oc -n stackrox get svc central-loadbalancer
サービス用に表示されたポート上の任意のノードの IP またはホスト名
https://198.51.100.0:31489
ロードバランサー
oc -n stackrox get svc central-loadbalancer
EXTERNAL-IP、またはポート 443 でサービスに表示されるホスト名
https://192.0.2.0
なし
central-bundle/central/scripts/port-forward.sh 8443
https://localhost:8443
https://localhost:8443
対話型インストール中に自動生成されたパスワードを選択した場合は、次のコマンドを実行して、Central にログインするためのパスワードを確認できます。
$ cat central-bundle/password
5.3. 他のプラットフォームでの RHACS の init バンドルの生成と適用
SecuredCluster
リソースをクラスターにインストールする前に、init バンドルを作成する必要があります。SecuredCluster
がインストールおよび設定されているクラスターは、このバンドルを使用して Central で認証します。RHACS ポータルまたは roxctl
CLI を使用して、init バンドルを作成できます。次に、それを使用してリソースを作成することにより、init バンドルを適用します。
init バンドルを作成するには、Admin
ユーザーロールが必要です。
5.3.1. init バンドルの生成
5.3.1.1. RHACS ポータルを使用した init バンドルの生成
RHACS ポータルを使用して、シークレットを含む init バンドルを作成できます。
init バンドルを作成するには、Admin
ユーザーロールが必要です。
手順
公開方法に基づいて RHACS ポータルのアドレスを見つけます。
ルートの場合。
$ oc get route central -n stackrox
ロードバランサーの場合。
$ oc get service central-loadbalancer -n stackrox
port forward の場合:
以下のコマンドを実行します。
$ oc port-forward svc/central 18443:443 -n stackrox
-
https://localhost:18443/
に移動します。
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Authentication Tokens セクションに移動し、Cluster Init Bundle をクリックする。
- Generate bundle をクリックする。
クラスター初期化バンドルの名前を入力し、Generate をクリックする。
- Helm チャートを使用してインストールする場合は、Download Helm Values File をクリックして、生成されたバンドルをダウンロードします。
- Operator を使用してインストールする場合は、Download Kubernetes Secret File をクリックして、生成されたバンドルをダウンロードします。
このバンドルにはシークレットが含まれているため、セキュアに保管してください。同じバンドルを使用して、複数のセキュアなクラスターを作成できます。
次のステップ
- セキュアなクラスターでリソースを作成して、init バンドルを適用します。
- 各クラスターにセキュアなクラスターサービスをインストールします。
5.3.1.2. roxctl CLI を使用した init バンドルの生成
roxctl
CLI を使用して、シークレットを含む init バンドルを作成できます。
init バンドルを作成するには、Admin
ユーザーロールが必要です。
前提条件
ROX_API_TOKEN
およびROX_CENTRAL_ADDRESS
環境変数が設定されている。次のコマンドを実行して
ROX_API_TOKEN
を設定します。$ export ROX_API_TOKEN=<api_token>
次のコマンドを実行して、
ROX_CENTRAL_ADDRESS
環境変数を設定します。$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>
手順
Helm インストールのシークレットを含むクラスター初期化バンドルを生成するには、次のコマンドを実行します。
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> \ --output cluster_init_bundle.yaml
Operator インストール用のシークレットを含むクラスター初期化バンドルを生成するには、次のコマンドを実行します。
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> \ --output-secrets cluster_init_bundle.yaml
重要このバンドルにはシークレットが含まれているため、安全に保管してください。同じバンドルを使用して、複数のセキュアクラスターを設定できます。
5.3.1.3. init バンドルを使用したリソースの作成
セキュアなクラスターをインストールする前に、init バンドルを使用して、セキュアなクラスター上のサービスが Central と通信できるようにする必要なリソースをクラスター上に作成する必要があります。
Helm チャートを使用してインストールする場合は、この手順を実行しないでください。Helm を使用してインストールを完了してください。「関連情報」セクションの 「Helm チャートを使用したセキュアクラスターへの RHACS のインストール」を参照してください。
前提条件
- シークレットを含む init バンドルを生成している必要があります。
手順
リソースを作成するには、次のいずれかの手順を実行します。
- OpenShift Container Platform Web コンソールのトップメニューで + をクリックし、Import YAML ページを開きます。init バンドルファイルをドラッグするか、その内容をコピーしてエディターに貼り付け、Create をクリックします。
Red Hat OpenShift CLI を使用して、次のコマンドを実行してリソースを作成します。
$ oc create -f <init_bundle>.yaml \ 1 -n <stackrox> 2
kubectl
CLI を使用して、次のコマンドを実行してリソースを作成します。$ kubectl create namespace stackrox 1 $ kubectl create -f <init_bundle>.yaml \ 2 -n <stackrox> 3
5.3.2. 次のステップ
- 監視するすべてのクラスターに RHACS のセキュアクラスターサービスをインストールします。
5.4. 他のプラットフォームでの RHACS 用のセキュアなクラスターサービスのインストール
RHACS は、Amazon Elastic Kubernetes Service (Amazon EKS)、Google Kubernetes Engine (Google GKE)、Microsoft Azure Kubernetes Service (Microsoft AKS) などのプラットフォームの安全なクラスターにインストールできます。
5.4.1. Helm チャートを使用したセキュアクラスターへの RHACS のインストール
Helm チャートをカスタマイズせずに使用するか、デフォルト値を使用するか、設定パラメーターをカスタマイズして、セキュアクラスターに RHACS をインストールできます。
5.4.1.1. カスタマイズせずに Helm チャートを使用してセキュアクラスターに RHACS をインストールする
5.4.1.1.1. Helm チャートリポジトリーの追加
手順
RHACS チャートリポジトリーを追加します。
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
Red Hat Advanced Cluster Security for Kubernetes の Helm リポジトリーには、異なるコンポーネントをインストールするための Helm チャートが含まれています。
集中型コンポーネント (Central および Scanner) をインストールするための Central サービス Helm チャート (
central-services
)。注記集中型コンポーネントは 1 回だけデプロイします。同じインストールを使用して複数の別のクラスターを監視できます。
クラスターおよびノードごとのコンポーネント (Sensor、Admission Controller、Collector、および Scanner-slim) をインストールするためのセキュアクラスターサービスの Helm チャート (
secured-cluster-services
)。注記モニターする各クラスターにクラスターごとのコンポーネントをデプロイし、モニターするすべてのノードにノードごとのコンポーネントをデプロイします。
検証
次のコマンドを実行して、追加されたチャートリポジトリーを確認します。
$ helm search repo -l rhacs/
5.4.1.1.2. カスタマイズせずに secured-cluster-services Helm チャートをインストールする
次の手順に従って、secure-cluster-services
Helm チャートをインストールし、クラスターおよびノードごとのコンポーネント (Sensor、Admission controller、Collector、および Scanner-slim) をデプロイします。
Unified Extensible Firmware Interface (UEFI) があり、Secure Boot が有効になっているシステムに Collector をインストールするには、カーネルモジュールが署名されておらず、UEFI ファームウェアが署名されていないパッケージをロードできないため、eBPF プローブを使用する必要があります。Collector は、開始時に Secure Boot ステータスを識別し、必要に応じて eBPF プローブに切り替えます。
前提条件
- クラスターの RHACS init バンドルを生成しておく必要があります。
-
Red Hat Container Registry へのアクセス権と、認証用のプルシークレットが必要です。
registry.redhat.io
からイメージをダウンロードする方法は、Red Hat コンテナーレジストリーの認証 を参照してください。 - Central サービスを公開するアドレスとポート番号が必要です。
5.4.1.2. カスタマイズした secured-cluster-services Helm チャートの設定
このセクションでは、helm install
および helm upgrade
コマンドで使用できる Helm チャート設定パラメーターについて説明します。これらのパラメーターは、--set
オプションを使用するか、YAML 設定ファイルを作成することで指定できます。
以下のファイルを作成して、Red Hat Advanced Cluster Security for Kubernetes をインストールするための Helm チャートを設定します。
-
パブリック設定ファイル
values-public.yaml
: このファイルを使用して、機密性の低いすべての設定オプションを保存します。 -
プライベート設定ファイル
values-private.yaml
: このファイルを使用して、機密性の高いすべての設定オプションを保存します。このファイルはセキュアに保管してください。
Download Helm Values File
Helm チャートを使用している間は、チャートの一部である values.yaml
ファイルを変更しないでください。
5.4.1.2.1. 設定パラメーター
パラメーター | 説明 |
---|---|
| クラスターの名前です。 |
|
Central エンドポイントのアドレス (ポート番号を含む)。gRPC に対応していないロードバランサーを使用している場合は、エンドポイントアドレスの前に |
| ポート番号を含む Sensor エンドポイントのアドレスです。 |
| Sensor コンテナーのイメージプルポリシーです。 |
| Sensor が使用する内部サービス間の TLS 証明書です。 |
| Sensor が使用する内部サービス間 TLS 証明書キーです。 |
| Sensor コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Sensor コンテナーの CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Sensor コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Sensor コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Sensor の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
|
|
| Collector イメージの名前です。 |
| main イメージに使用しているレジストリーのアドレスです。 |
| Collector イメージに使用しているレジストリーのアドレスです。 |
|
|
| Collector イメージのイメージプルポリシーです。 |
|
使用する |
|
使用する |
|
|
| Collector コンテナーのイメージプルポリシーです。 |
| Compliance コンテナーのイメージプルポリシーです。 |
|
|
| Collector コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Collector コンテナーの CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Collector コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Collector コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Compliance コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Compliance の CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Compliance コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Compliance コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Collector が使用する内部サービス間 TLS 証明書です。 |
| Collector が使用する内部サービス間 TLS 証明書キーです。 |
|
この設定は、Kubernetes がワークロード作成イベントの |
|
このパラメーターを |
|
この設定は、クラスターが Kubernetes |
| この設定は、Red Hat Advanced Cluster Security for Kubernetes がポリシーを評価するかどうかを制御します。無効にすると、すべての AdmissionReview リクエストが自動的に受け入れられます。 |
|
この設定は、アドミッションコントロールサービスの動作を制御します。これを機能させるには、 |
|
このオプションを |
|
Admission controller のバイパスを無効にするには、 |
| アドミッションレビューリクエストを評価する間、Red Hat Advanced Cluster Security for Kubernetes が待機する最大時間 (秒単位) です。これを使用して、イメージスキャンを有効にするときにリクエストのタイムアウトを設定します。イメージスキャンが指定された時間より長く実行される場合、Red Hat Advanced Cluster Security for Kubernetes はリクエストを受け入れます。 |
| Admission Control コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Admission Control コンテナーの CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Admission Control コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Admission Control コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、アドミッションコントロールの taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。 |
| Admission Control が使用する内部サービス間 TLS 証明書です。 |
| Admission Control が使用する内部サービス間 TLS 証明書キーです。 |
|
このパラメーターを使用して、デフォルトの |
|
|
|
|
|
|
|
Collector のデプロイに slim Collector イメージを使用する場合は、 |
| Sensor のリソース仕様です。 |
| Admission controller のリソース仕様です。 |
| Collector のリソース仕様です。 |
| Collector の Compliance コンテナーのリソース仕様です。 |
|
このオプションを |
|
このオプションを |
|
このオプションを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。 |
| Collector の Compliance コンテナーのリソース仕様です。 |
| このパラメーターを設定すると、Scanner のログレベルを変更できます。このオプションは、トラブルシューティングの目的でのみ使用してください。 |
|
このオプションを |
| 自動スケーリングのレプリカの最小数です。デフォルトは 2 です。 |
| 自動スケーリングのレプリカの最大数です。デフォルトは 5 です。 |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner の taint toleration キー、値、および effect を指定します。 |
|
ノードセレクターのラベルを |
| ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。 |
| Scanner コンテナーのメモリー要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner コンテナーの CPU 要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner コンテナーのメモリー制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner コンテナーの CPU 制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーのメモリー要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーの CPU 要求。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーのメモリー制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
| Scanner DB コンテナーの CPU 制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
|
このオプションを |
5.4.1.2.1.1. 環境変数
Sensor および Admission controller の環境変数は、次の形式で指定できます。
customize: envVars: ENV_VAR1: "value1" ENV_VAR2: "value2"
customize
設定を使用すると、この Helm チャートによって作成されたすべてのオブジェクトのカスタム Kubernetes メタデータ (ラベルとアノテーション) と、ワークロードの追加の Pod ラベル、Pod アノテーション、コンテナー環境変数を指定できます。
より一般的なスコープ (たとえば、すべてのオブジェクト) で定義されたメタデータを、より狭いスコープ (たとえば、Sensor デプロイメントのみ) で定義されたメタデータでオーバーライドできるという意味で、設定は階層的です。
5.4.1.2.2. secured-cluster-services Helm チャートのインストール
value-public.yaml
ファイルと values-private.yaml
ファイルを設定した後、secure-cluster-services
Helm チャートをインストールして、クラスターごとおよびノードごとのコンポーネント (Sensor、Admission controller、Collector、および Scanner-slim) をデプロイします。
Unified Extensible Firmware Interface (UEFI) があり、Secure Boot が有効になっているシステムに Collector をインストールするには、カーネルモジュールが署名されておらず、UEFI ファームウェアが署名されていないパッケージをロードできないため、eBPF プローブを使用する必要があります。Collector は、開始時に Secure Boot ステータスを識別し、必要に応じて eBPF プローブに切り替えます。
前提条件
- クラスターの RHACS init バンドルを生成しておく必要があります。
-
Red Hat Container Registry へのアクセス権と、認証用のプルシークレットが必要です。
registry.redhat.io
からイメージをダウンロードする方法は、Red Hat コンテナーレジストリーの認証 を参照してください。 - Central サービスを公開するアドレスとポート番号が必要です。
手順
以下のコマンドを実行します。
$ helm install -n stackrox \ --create-namespace stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <name_of_cluster_init_bundle.yaml> \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> \ 1 --set imagePullSecrets.username=<username> \ 2 --set imagePullSecrets.password=<password> 3
継続的インテグレーション (CI) システムを使用して secured-cluster-services
Helm チャートをデプロイするには、init バンドル YAML ファイルを環境変数として helm install
コマンドに渡します。
$ helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET") 1
- 1
- base64 でエンコードされた変数を使用している場合は、代わりに
helm install … -f <(echo "$INIT_BUNDLE_YAML_SECRET" | base64 --decode)
コマンドを使用してください。
5.4.1.3. secured-cluster-services Helm チャートをデプロイした後の設定オプションの変更
secure-cluster-services
Helm チャートをデプロイした後、任意の設定オプションに変更を加えることができます。
手順
-
values-public.yaml
およびvalues-private.yaml
設定ファイルを新しい値で更新します。 helm upgrade
コマンドを実行し、-f
オプションを使用して設定ファイルを指定します。$ helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \ 1 -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
- 1
--reuse-values
パラメーターを指定する必要があります。指定しない場合、Helm upgrade コマンドは以前に設定されたすべての設定をリセットします。
注記--set
または--set-file
パラメーターを使用して設定値を指定することもできます。ただし、これらのオプションは保存されないため、変更を加えるたびにすべてのオプションを手動で再度指定する必要があります。
5.4.2. roxctl CLI を使用したセキュアなクラスターへの RHACS のインストール
CLI を使用してセキュアクラスターに RHACS をインストールするには、次の手順を実行します。
-
roxctl
CLI をインストールします。 - Sensor を取り付けます。
5.4.2.1. roxctl CLI のインストール
最初にバイナリーをダウンロードする必要があります。roxctl
は、Linux、Windows、または macOS にインストールできます。
5.4.2.1.1. Linux への roxctl CLI のインストール
次の手順を使用して、Linux に roxctl
CLI バイナリーをインストールできます。
Linux 用の roxctl
CLI は、amd64
、ppcl64le
、および s390x
アーキテクチャーで使用できます。
手順
ターゲットのオペレーティングシステムの
roxctl
アーキテクチャーを確認します。$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
roxctl
CLI をダウンロードします。$ curl -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Linux/roxctl${arch}"
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
5.4.2.1.2. macOS への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを macOS にインストールできます。
macOS 用の roxctl
CLI は、amd64
アーキテクチャーで利用できます。
手順
roxctl
CLI をダウンロードします。$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Darwin/roxctl
バイナリーからすべての拡張属性を削除します。
$ xattr -c roxctl
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
5.4.2.1.3. Windows への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを Windows にインストールできます。
Windows 用の roxctl
CLI は、amd64
アーキテクチャーで使用できます。
手順
roxctl
CLI をダウンロードします。$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Windows/roxctl.exe
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
5.4.2.2. Sensor のインストール
クラスターをモニターするには、Sensor をデプロイする必要があります。モニターする各クラスターに Sensor をデプロイする必要があります。次の手順では、RHACS ポータルを使用して Sensor を追加する方法について説明します。
前提条件
- Central サービスをすでにインストールしている必要があります。または、Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service) で ACS インスタンス を選択して Central サービスにアクセスできます。
手順
- セキュアなクラスターの RHACS ポータルで、Platform Configuration → Clusters に移動します。
- +NewCluster を選択します。
- クラスターの名前を指定します。
Sensor をデプロイする場所に基づいて、フィールドに適切な値を入力します。
- 同じクラスターに Sensor をデプロイする場合は、すべてのフィールドのデフォルト値を受け入れます。
-
別のクラスターにデプロイする場合は、
central.stackrox.svc:443
を、他のクラスターからアクセス可能なロードバランサー、ノードポート、またはポート番号を含む他のアドレスに置き換えます。 HAProxy、AWS Application Load Balancer (ALB)、AWS Elastic Load Balancing (ELB) などの非 gRPC 対応のロードバランサーを使用している場合は、WebSocket Secure (
wss
) プロトコルを使用してください。wss
を使用するには:-
アドレスの前に
wss://
を付けます。 -
アドレスの後にポート番号を追加します (例
wss://stackrox-central.example.com:443
)。
-
アドレスの前に
- Next をクリックして、Sensor のセットアップを続行します。
Download YAML File and Keys をクリックして、クラスターバンドル (zip アーカイブ) をダウンロードします。
重要クラスターバンドルの zip アーカイブには、クラスターごとに固有の設定とキーが含まれています。同じファイルを別のクラスターで再利用しないでください。
モニター対象クラスターにアクセスできるシステムから、クラスターバンドルから
sensor
スクリプトを解凍して実行します。$ unzip -d sensor sensor-<cluster_name>.zip
$ ./sensor/sensor.sh
Sensor をデプロイするために必要な権限がないという警告が表示された場合は、画面の指示に従うか、クラスター管理者に連絡して支援を求めてください。
Sensor はデプロイされた後、Central に接続し、クラスター情報を提供します。
検証
RHACS ポータルに戻り、デプロイメントが成功したかどうかを確認します。成功した場合、Platform Configuration → Clusters でクラスターのリストを表示すると、クラスターのステータスに緑色のチェックマークと Healthy ステータスが表示されます。緑色のチェックマークが表示されない場合は、次のコマンドを使用して問題を確認してください。
OpenShift Container Platform で、次のコマンドを入力します。
$ oc get pod -n stackrox -w
Kubernetes で、次のコマンドを入力します。
$ kubectl get pod -n stackrox -w
- Finish をクリックしてウィンドウを閉じます。
インストール後、Sensor はセキュリティー情報の RHACS へのレポートを開始し、RHACS ポータルダッシュボードは、Sensor をインストールしたクラスターからのデプロイメント、イメージ、およびポリシー違反を表示し始めます。
5.5. 他のプラットフォームでの RHACS のインストールの確認
RHACS が正しくインストールされていることを確認する手順を示します。
5.5.1. インストールの検証
インストールが完了したら、いくつかの脆弱なアプリケーションを実行し、RHACS ポータルに移動して、セキュリティー評価とポリシー違反の結果を評価します。
次のセクションにリストされているサンプルアプリケーションには重大な脆弱性が含まれており、Red Hat Advanced Cluster Security for Kubernetes のビルドおよびデプロイ時の評価機能を検証するように特別に設計されています。
インストールの検証
公開方法に基づいて RHACS ポータルのアドレスを見つけます。
ロードバランサーの場合。
$ kubectl get service central-loadbalancer -n stackrox
port forward の場合:
以下のコマンドを実行します。
$ kubectl port-forward svc/central 18443:443 -n stackrox
-
https://localhost:18443/
に移動します。
新規の namespace を作成します。
$ kubectl create namespace test
重大な脆弱性を持ついくつかのアプリケーションを開始します。
$ kubectl run shell --labels=app=shellshock,team=test-team \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2014-6271 -n test $ kubectl run samba --labels=app=rce \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2017-7494 -n test
Red Hat Advanced Cluster Security for Kubernetes は、これらのデプロイメントがクラスターに送信されるとすぐに、これらのデプロイメントを自動的にスキャンしてセキュリティーリスクとポリシー違反を検出します。RHACS ポータルに移動して、違反を表示します。デフォルトのユーザー名 admin と生成されたパスワードを使用して RHACS ポータルにログインできます。
第6章 Red Hat Advanced Cluster Security for Kubernetes のアンインストール
Red Hat Advanced Cluster Security for Kubernetes をインストールすると、以下が作成されます。
-
Operator のインストール方法を選択した場合は、Operator がインストールされる
rhacs-operator
という namespace -
stackrox
と呼ばれる namespace 、または Central および SecuredCluster カスタムリソースを作成した別の namespace -
すべてのコンポーネントの
PodSecurityPolicy
および Kubernetes ロールベースアクセス制御 (RBAC) オブジェクト - 生成されたネットワークポリシーで使用するための namespace の追加ラベル
- アプリケーションカスタムリソース定義 (CRD) (存在しない場合)
Red Hat Advanced Cluster Security for Kubernetes をアンインストールするには、これらのアイテムをすべて削除する必要があります。
6.1. namespace の削除
OpenShift Container Platform または Kubernetes コマンドラインインターフェイスを使用して、Red Hat Advanced Cluster Security for Kubernetes が作成する namespace を削除できます。
手順
stackrox
namespace を削除します。OpenShift Container Platform
$ oc delete namespace stackrox
Kubernetes の場合:
$ kubectl delete namespace stackrox
別の namespace に RHACS をインストールした場合は、delete
コマンドでその namespace の名前を使用してください。
6.2. グローバルリソースの削除
OpenShift Container Platform または Kubernetes コマンドラインインターフェイスを使用して、Red Hat Advanced Cluster Security for Kubernetes が作成するグローバルリソースを削除できます。
手順
グローバルリソースを削除します。
OpenShift Container Platform
$ oc get clusterrole,clusterrolebinding,role,rolebinding,psp -o name | grep stackrox | xargs oc delete --wait
$ oc delete scc -l "app.kubernetes.io/name=stackrox"
$ oc delete ValidatingWebhookConfiguration stackrox
Kubernetes の場合:
$ kubectl get clusterrole,clusterrolebinding,role,rolebinding,psp -o name | grep stackrox | xargs kubectl delete --wait
$ kubectl delete ValidatingWebhookConfiguration stackrox
6.3. ラベルとアノテーションの削除
OpenShift Container Platform または Kubernetes コマンドラインインターフェイスを使用して、Red Hat Advanced Cluster Security for Kubernetes が作成するラベルとアノテーションを削除できます。
手順
ラベルとアノテーションを削除します。
OpenShift Container Platform
$ for namespace in $(oc get ns | tail -n +2 | awk '{print $1}'); do oc label namespace $namespace namespace.metadata.stackrox.io/id-; oc label namespace $namespace namespace.metadata.stackrox.io/name-; oc annotate namespace $namespace modified-by.stackrox.io/namespace-label-patcher-; done
Kubernetes の場合:
$ for namespace in $(kubectl get ns | tail -n +2 | awk '{print $1}'); do kubectl label namespace $namespace namespace.metadata.stackrox.io/id-; kubectl label namespace $namespace namespace.metadata.stackrox.io/name-; kubectl annotate namespace $namespace modified-by.stackrox.io/namespace-label-patcher-; done