5.4. Red Hat OpenShift での RHACS 用のセキュアなクラスターサービスのインストール
このセクションでは、セキュアなクラスターに Red Hat Advanced Cluster Security for Kubernetes をインストールするためのインストール手順について説明します。
次のいずれかの方法を使用して、セキュアなクラスターに RHACS をインストールできます。
- Operator を使用してインストールする
- Helm チャートを使用してインストールする
-
roxctl
CLI を使用してインストールします (この方法を使用する必要がある特定のインストールが必要でない限り、この方法は使用しないでください)。
5.4.1. Operator を使用したセキュアなクラスターへの RHACS のインストール
5.4.1.1. セキュアクラスターサービスのインストール
SecuredCluster
カスタムリソースを使用して、セキュアなクラスターサービスをクラスターにインストールできます。モニターする環境内のすべてのクラスターに、セキュリティーでセキュアなクラスターサービスをインストールする必要があります。
セキュアクラスターサービスをインストールすると、コレクターもインストールされます。Unified Extensible Firmware Interface (UEFI) があり、Secure Boot が有効になっているシステムに Collector をインストールするには、カーネルモジュールが署名されておらず、UEFI ファームウェアが署名されていないパッケージをロードできないため、eBPF プローブを使用する必要があります。Collector は、開始時に Secure Boot ステータスを識別し、必要に応じて eBPF プローブに切り替えます。
前提条件
- OpenShift Container Platform を使用している場合は、バージョン 4.10 以降をインストールする必要があります。
- 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 をクリックします。
次のステップ
- オプション: 追加のセキュアなクラスター設定を設定します。
- インストールの検証
5.4.2. Helm チャートを使用したセキュアクラスターへの RHACS のインストール
Helm チャートをカスタマイズせずに使用するか、デフォルト値を使用するか、設定パラメーターをカスタマイズして、セキュアクラスターに RHACS をインストールできます。
5.4.2.1. カスタマイズせずに Helm チャートを使用してセキュアクラスターに RHACS をインストールする
5.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/
5.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 が含まれています。
5.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
ファイルを変更しないでください。
5.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 制限。このパラメーターを使用して、デフォルト値をオーバーライドします。 |
CORE_BPF
コレクション方法は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
5.4.2.2.1.1. 環境変数
Sensor および Admission controller の環境変数は、次の形式で指定できます。
customize: envVars: ENV_VAR1: "value1" ENV_VAR2: "value2"
customize
設定を使用すると、この Helm チャートによって作成されたすべてのオブジェクトのカスタム Kubernetes メタデータ (ラベルとアノテーション) と、ワークロードの追加の Pod ラベル、Pod アノテーション、コンテナー環境変数を指定できます。
より一般的なスコープ (たとえば、すべてのオブジェクト) で定義されたメタデータを、より狭いスコープ (たとえば、Sensor デプロイメントのみ) で定義されたメタデータでオーバーライドできるという意味で、設定は階層的です。
5.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)
コマンドを使用してください。
5.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
パラメーターを使用して設定値を指定することもできます。ただし、これらのオプションは保存されないため、変更を加えるたびにすべてのオプションを手動で再度指定する必要があります。
5.4.3. roxctl CLI を使用したセキュアなクラスターへの RHACS のインストール
CLI を使用してセキュアクラスターに RHACS をインストールするには、次の手順を実行します。
-
roxctl
CLI をインストールします。 - Sensor を取り付けます。
5.4.3.1. roxctl CLI のインストール
最初にバイナリーをダウンロードする必要があります。roxctl
は、Linux、Windows、または macOS にインストールできます。
5.4.3.1.1. Linux への roxctl CLI のインストール
次の手順を使用して、Linux に roxctl
CLI バイナリーをインストールできます。
手順
roxctl
CLI の最新バージョンをダウンロードします。$ curl -O https://mirror.openshift.com/pub/rhacs/assets/4.1.5/bin/Linux/roxctl
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
5.4.3.1.2. macOS への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを macOS にインストールできます。
手順
roxctl
CLI の最新バージョンをダウンロードします。$ curl -O https://mirror.openshift.com/pub/rhacs/assets/4.1.5/bin/Darwin/roxctl
バイナリーからすべての拡張属性を削除します。
$ xattr -c roxctl
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
5.4.3.1.3. Windows への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを Windows にインストールできます。
手順
roxctl
CLI の最新バージョンをダウンロードします。$ curl -O https://mirror.openshift.com/pub/rhacs/assets/4.1.5/bin/Windows/roxctl.exe
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
5.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 をインストールしたクラスターからのデプロイメント、イメージ、およびポリシー違反を表示し始めます。