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 チャートリポジトリーを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
$ 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
)。注記モニターする各クラスターにクラスターごとのコンポーネントをデプロイし、モニターするすべてのノードにノードごとのコンポーネントをデプロイします。
検証
次のコマンドを実行して、追加されたチャートリポジトリーを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm search repo -l rhacs/
$ 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:
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 サービスを公開するアドレスとポート番号が必要です。
手順
以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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> \ --set imagePullSecrets.username=<username> \ --set imagePullSecrets.password=<password>
$ 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")
$ helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET")
- 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
オプションを使用して設定ファイルを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \ -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
$ 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
アーキテクチャーを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
roxctl
CLI をダウンロードします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Linux/roxctl${arch}"
$ curl -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Linux/roxctl${arch}"
roxctl
バイナリーを実行可能にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod +x roxctl
$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $PATH
$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
5.4.2.1.2. macOS への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを macOS にインストールできます。
macOS 用の roxctl
CLI は、amd64
アーキテクチャーで利用できます。
手順
roxctl
CLI をダウンロードします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Darwin/roxctl
$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Darwin/roxctl
バイナリーからすべての拡張属性を削除します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow xattr -c roxctl
$ xattr -c roxctl
roxctl
バイナリーを実行可能にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod +x roxctl
$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $PATH
$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ roxctl version
5.4.2.1.3. Windows への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを Windows にインストールできます。
Windows 用の roxctl
CLI は、amd64
アーキテクチャーで使用できます。
手順
roxctl
CLI をダウンロードします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Windows/roxctl.exe
$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Windows/roxctl.exe
検証
インストールした
roxctl
のバージョンを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow roxctl version
$ 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
スクリプトを解凍して実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zip
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./sensor/sensor.sh
$ ./sensor/sensor.sh
Sensor をデプロイするために必要な権限がないという警告が表示された場合は、画面の指示に従うか、クラスター管理者に連絡して支援を求めてください。
Sensor はデプロイされた後、Central に接続し、クラスター情報を提供します。
検証
RHACS ポータルに戻り、デプロイメントが成功したかどうかを確認します。成功した場合、Platform Configuration
Clusters でクラスターのリストを表示すると、クラスターのステータスに緑色のチェックマークと Healthy ステータスが表示されます。緑色のチェックマークが表示されない場合は、次のコマンドを使用して問題を確認してください。 OpenShift Container Platform で、次のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod -n stackrox -w
$ oc get pod -n stackrox -w
Kubernetes で、次のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubectl get pod -n stackrox -w
$ kubectl get pod -n stackrox -w
- Finish をクリックしてウィンドウを閉じます。
インストール後、Sensor はセキュリティー情報の RHACS へのレポートを開始し、RHACS ポータルダッシュボードは、Sensor をインストールしたクラスターからのデプロイメント、イメージ、およびポリシー違反を表示し始めます。