This documentation is for a release that is no longer maintained.
You can select a different version or view all RHACS documentation.roxctl CLI
roxctl CLI
概要
第1章 roxctl CLI の使用を開始する リンクのコピーリンクがクリップボードにコピーされました!
roxctl は、Red Hat Advanced Cluster Security for Kubernetes でコマンドを実行するためのコマンドラインインターフェイス (CLI) です。このトピックでは、roxctl 構文および操作について説明し、いくつかの一般的な例を示します。
1.1. roxctl CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
バイナリーをダウンロードすることにより、roxctl CLI をインストールできます。または、コンテナーイメージから roxctl CLI を実行できます。
1.1.1. バイナリーをダウンロードして roxctl CLI をインストール リンクのコピーリンクがクリップボードにコピーされました!
roxctl CLI をインストールして、コマンドラインインターフェイスから Red Hat Advanced Cluster Security for Kubernetes と対話できます。roxctl は、Linux、Windows、または macOS にインストールできます。
1.1.1.1. Linux への roxctl CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、Linux に roxctl CLI バイナリーをインストールできます。
手順
roxctlCLI の最新バージョンをダウンロードします。curl -O https://mirror.openshift.com/pub/rhacs/assets/3.70.2/bin/Linux/roxctl
$ curl -O https://mirror.openshift.com/pub/rhacs/assets/3.70.2/bin/Linux/roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow roxctlバイナリーを実行可能にします。chmod +x roxctl
$ chmod +x roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow PATH上にあるディレクトリーにroxctlバイナリーを配置します。PATHを確認するには、以下のコマンドを実行します。echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
インストールした
roxctlのバージョンを確認します。roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.1.2. macOS への roxctl CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、roxctl CLI バイナリーを macOS にインストールできます。
手順
roxctlCLI の最新バージョンをダウンロードします。curl -O https://mirror.openshift.com/pub/rhacs/assets/3.70.2/bin/Darwin/roxctl
$ curl -O https://mirror.openshift.com/pub/rhacs/assets/3.70.2/bin/Darwin/roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow バイナリーからすべての拡張属性を削除します。
xattr -c roxctl
$ xattr -c roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow roxctlバイナリーを実行可能にします。chmod +x roxctl
$ chmod +x roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow PATH上にあるディレクトリーにroxctlバイナリーを配置します。PATHを確認するには、以下のコマンドを実行します。echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
インストールした
roxctlのバージョンを確認します。roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.1.3. Windows への roxctl CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、roxctl CLI バイナリーを Windows にインストールできます。
手順
roxctlCLI の最新バージョンをダウンロードします。curl -O https://mirror.openshift.com/pub/rhacs/assets/3.70.2/bin/Windows/roxctl.exe
$ curl -O https://mirror.openshift.com/pub/rhacs/assets/3.70.2/bin/Windows/roxctl.exeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
インストールした
roxctlのバージョンを確認します。roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.2. コンテナーから roxctl CLI の実行 リンクのコピーリンクがクリップボードにコピーされました!
roxctl クライアントは、Red Hat Advanced Cluster Security for Kubernetes roxctl イメージのデフォルトのエントリーポイントです。コンテナーイメージで roxctl クライアントを実行するには、以下を行います。
手順
registry.redhat.ioレジストリーにログインします。docker login registry.redhat.io
$ docker login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow roxctlCLI の最新のコンテナーイメージをプルします。docker pull registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:3.70.2
$ docker pull registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:3.70.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow
CLI をインストールした後、次のコマンドを使用して CLI を実行できます。
docker run -e ROX_API_TOKEN=$ROX_API_TOKEN \ -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:3.70.2 \ -e $ROX_CENTRAL_ADDRESS <command>
$ docker run -e ROX_API_TOKEN=$ROX_API_TOKEN \
-it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:3.70.2 \
-e $ROX_CENTRAL_ADDRESS <command>
検証
インストールした
roxctlのバージョンを確認します。docker run -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:3.70.2 version
$ docker run -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:3.70.2 versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. roxctl CLI を使用した認証 リンクのコピーリンクがクリップボードにコピーされました!
認証には、認証トークンまたは管理者パスワードを使用できます。Red Hat は、各トークンに特定のアクセス制御権限が割り当てられているため、実稼働環境で認証トークンを使用することが推奨されます。
次の手順を使用して、認証トークンを生成します。
手順
- RHACS ポータルに移動します。
- Platform Configuration → Integrations に移動します。
- Authentication Tokens カテゴリーまで下にスクロールし、API Token をクリックします。
- Generate Token をクリックします。
- トークンの名前を入力し、必要なレベルのアクセスを提供するロールを選択します (たとえば、Continuous Integration または Sensor Creator)。
Generate をクリックします。
重要生成されたトークンをコピーして安全に保存します。再度表示することはできません。
認証トークンを生成したら、それを ROX_API_TOKEN 変数としてエクスポートします。
export ROX_API_TOKEN=<api_token>
$ export ROX_API_TOKEN=<api_token>
トークンをファイルに保存して、-token-file オプションとともに使用することもできます。以下に例を示します。
roxctl central debug dump --token-file <token_file>
$ roxctl central debug dump --token-file <token_file>
-
-password(-p) オプションと--token-fileオプションの両方を同時に使用することはできません。 -
すでに
ROX_API_TOKEN変数を設定し、--token-fileオプションを指定している場合、roxctlCLI は指定されたトークンファイルを認証に使用します。 -
すでに
ROX_API_TOKEN変数を設定し、--passwordオプションを指定している場合、roxctlCLI は指定されたパスワードを認証に使用します。
1.3. roxctl CLI の使用 リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションで、CLI を使用して一般的なタスクを実行する方法を確認します。
これらのコマンドを使用する前に、次の変数をエクスポートします。
export ROX_API_TOKEN=<api_token>
$ export ROX_API_TOKEN=<api_token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow export ROX_CENTRAL_ADDRESS=<address>:<port_number>
$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
--helpオプションを使用して、コマンドに関する詳細情報を取得できます。
1.3.1. Central のデータベースの管理 リンクのコピーリンクがクリップボードにコピーされました!
Central は、以下に関する情報を保存します。
- クラスターで観察されたアクティビティー
- 統合されたイメージレジストリーまたはスキャナーから取得された情報
- Red Hat Advanced Cluster Security for Kubernetes 設定
roxctl CLI を使用して、Central のデータベースをバックアップおよび復元できます。
Central データベースのバックアップ
次のコマンドを実行して、Central のデータベースをバックアップします。
roxctl -e "$ROX_CENTRAL_ADDRESS" central backup
$ roxctl -e "$ROX_CENTRAL_ADDRESS" central backup
Central データベースの復元
次のコマンドを実行して、Central のデータベースを復元します。
roxctl -e "$ROX_CENTRAL_ADDRESS" central db restore <backup_filename>
$ roxctl -e "$ROX_CENTRAL_ADDRESS" central db restore <backup_filename>
1.3.2. 保護されたクラスターの管理 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes または OpenShift Container Platform クラスターを保護するには、Red Hat Advanced Cluster Security for Kubernetes サービスをクラスターにデプロイする必要があります。Platform Configuration → Clusters ビューに移動して RHACS ポータルでデプロイメントファイルを生成するか、roxctl CLI を使用できます。
Sensor デプロイメント YAML ファイルの生成
Kubernetes
roxctl -e "$ROX_CENTRAL_ADDRESS" sensor generate k8s --name <cluster_name> --central "$ROX_CENTRAL_ADDRESS"
$ roxctl -e "$ROX_CENTRAL_ADDRESS" sensor generate k8s --name <cluster_name> --central "$ROX_CENTRAL_ADDRESS"
OpenShift Container Platform
roxctl -e "$ROX_CENTRAL_ADDRESS" sensor generate openshift --name <cluster_name> --central "$ROX_CENTRAL_ADDRESS"
$ roxctl -e "$ROX_CENTRAL_ADDRESS" sensor generate openshift --name <cluster_name> --central "$ROX_CENTRAL_ADDRESS"
--help の出力を読んで、システムアーキテクチャーに応じて使用する必要のある他のオプションを確認してください。
--central に提供するエンドポイントに、Red Hat Advanced Cluster Security for Kubernetes サービスをデプロイしているクラスターから到達できることを確認してください。
HAProxy、AWS Application Load Balancer (ALB)、AWS Elastic Load Balancing (ELB) などの gRPC 非対応のロードバランサーを使用している場合は、以下を行います。
-
WebSocket Secure (
wss) プロトコルを使用します。wssを使用するには、アドレスの前にwss://を付けます。 アドレスの後にポート番号を追加します。次に例を示します。
roxctl sensor generate k8s --central wss://stackrox-central.example.com:443
$ roxctl sensor generate k8s --central wss://stackrox-central.example.com:443Copy to Clipboard Copied! Toggle word wrap Toggle overflow
既存のクラスターのセンサーバーンドルをダウンロード
次のコマンドを使用して、クラスター名または ID を指定して、既存のクラスターの Sensor バンドルをダウンロードします。
roxctl sensor get-bundle <cluster_name_or_id>
$ roxctl sensor get-bundle <cluster_name_or_id>
クラスター統合の削除
roxctl -e "$ROX_CENTRAL_ADDRESS" cluster delete --name=<cluster_name>
$ roxctl -e "$ROX_CENTRAL_ADDRESS" cluster delete --name=<cluster_name>
クラスター統合を削除しても、クラスターで実行されている Red Hat Advanced Cluster Security for Kubernetes サービスは削除されません。これらは、Sensor インストールバンドルから delete-sensor.sh スクリプトを実行することで削除できます。
1.3.3. ポリシーコンプライアンスの確認 リンクのコピーリンクがクリップボードにコピーされました!
roxctl CLI を使用して、ポリシーに準拠しているかどうかデプロイメント YAML ファイルおよびイメージを確認できます。
出力形式の設定
deployment check、image check、または image scan コマンドを使用してポリシーコンプライアンスをチェックする場合は、-o オプションを使用して出力形式を指定できます。このオプションは、コマンドの出力が端末にどのように表示されるかを決定します。
コマンドに -o オプションを追加し、形式を json、table、csv、または junit として指定することにより、出力形式を変更できます。
たとえば、次のコマンドはデプロイメントをチェックしてから、結果を csv 形式で表示します。
roxctl -e "$ROX_CENTRAL_ADDRESS" \ deployment check --file =<yaml_filename> \ -o csv
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \
deployment check --file =<yaml_filename> \
-o csv
出力形式に -o オプションを指定しない場合は、次のデフォルトの動作が使用されます。
-
deployment checkおよびimage checkコマンドの形式はtableです。 -
imagescanコマンドのデフォルトの出力形式はjsonです。これは、古いバージョンの CLI との互換性のための古い JSON 形式の出力です。新しい JSON 形式で出力を取得するには、-o jsonなどのフォーマットでオプションを指定します。
出力を設定するためにさまざまなオプションを使用できます。次の表に、オプションとそれらが使用可能な形式を示します。
| オプション | 説明 | フォーマット |
|---|---|---|
|
| このオプションを使用して、JSON 出力をコンパクトな形式で表示します。 |
|
|
| このオプションを使用して、カスタムヘッダーを指定します。 |
|
|
| このオプションを使用して、出力からヘッダー行を省略します。 |
|
|
| このオプションを使用して GJSON パス を指定し、出力から特定のアイテムを選択します。たとえば、デプロイメントチェックの ポリシー名 および 重大度 を取得するには、次のコマンドを使用します。 roxctl -e "$ROX_CENTRAL_ADDRESS" \
deployment check --file=<yaml_filename> \
-o table --headers POLICY-NAME,SEVERITY \
--row-jsonpath-expressions="{results.#.violatedPolicies.#.name,results.#.violatedPolicies.#.severity}"
|
|
|
| このオプションを使用して、同じ値を持つテーブルセルを結合します。 |
|
|
| このオプションを使用して、ヘッダー行をコメントとして出力に含めます。 |
|
|
| このオプションを使用して、JUnit テストスイートの名前を指定します。 |
|
デプロイ YAML ファイルを確認する
次のコマンドは、YAML デプロイメントファイル内のセキュリティーポリシーのビルド時およびデプロイ時の違反をチェックします。次のコマンドを使用して、以下を検証します。
- リソース制限や特権オプションなど、YAML ファイルの設定オプション
- コンポーネントや脆弱性など、YAML ファイルで使用されるイメージの側面
roxctl -e "$ROX_CENTRAL_ADDRESS" deployment check --file=<yaml_filename>
$ roxctl -e "$ROX_CENTRAL_ADDRESS" deployment check --file=<yaml_filename>
イメージを確認する
次のコマンドは、イメージ内のセキュリティーポリシーのビルド時違反をチェックします。
roxctl -e "$ROX_CENTRAL_ADDRESS" image check --image=<image_name>
$ roxctl -e "$ROX_CENTRAL_ADDRESS" image check --image=<image_name>
イメージスキャン結果の確認
特定のイメージのスキャン結果を確認することもできます。
次のコマンドは、イメージで見つかったコンポーネントおよび脆弱性を JSON 形式で返します。形式は API リファレンスで定義されています。
roxctl -e "$ROX_CENTRAL_ADDRESS" image scan --image <image_name>
$ roxctl -e "$ROX_CENTRAL_ADDRESS" image scan --image <image_name>
Red Hat Advanced Cluster Security for Kubernetes で、関連付けられたレジストリーとスキャナーからイメージメタデータおよびイメージスキャン結果を再プルするには、-force オプションを追加します。
特定のイメージスキャン結果を確認するには、Image リソースの read および write の両方の権限を持つトークンが必要です。デフォルトの 継続的インテグレーション システムのロールには、すでに必要な権限があります。
1.3.4. デバッグの問題 リンクのコピーリンクがクリップボードにコピーされました!
中央ログレベルの管理
Central は、情報をコンテナーログに保存します。
ログの表示
次を実行すると、Central のコンテナーログを確認できます。
Kubernetes
kubectl logs -n stackrox <central_pod>
$ kubectl logs -n stackrox <central_pod>
OpenShift Container Platform
oc logs -n stackrox <central_pod>
$ oc logs -n stackrox <central_pod>
現在のログレベルの表示
ログレベルを変更して、Central ログの情報を増減できます。次のコマンドを実行して、現在のログレベルを表示します。
roxctl -e "$ROX_CENTRAL_ADDRESS" central debug log
$ roxctl -e "$ROX_CENTRAL_ADDRESS" central debug log
ログレベルの変更
次のコマンドを実行して、ログレベルを変更します。
roxctl -e "$ROX_CENTRAL_ADDRESS" central debug log --level=<log_level>
$ roxctl -e "$ROX_CENTRAL_ADDRESS" central debug log --level=<log_level>
- 1
<log_level>の許容値は、Panic、Fatal、Error、Warn、Info、およびDebugです。
デバッグ情報の取得
問題を調査するためのデバッグ情報を収集するには、次のコマンドを実行します。
roxctl -e "$ROX_CENTRAL_ADDRESS" central debug dump
$ roxctl -e "$ROX_CENTRAL_ADDRESS" central debug dump