roxctl CLI
roxctl CLI
概要
第1章 roxctl CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
roxctl は、Red Hat Advanced Cluster Security for Kubernetes (RHACS) でコマンドを実行するためのコマンドラインインターフェイス (CLI) です。バイナリーをダウンロードして roxctl CLI をインストールするか、コンテナーイメージから roxctl CLI を実行できます。
1.1. バイナリーをダウンロードして roxctl CLI をインストール リンクのコピーリンクがクリップボードにコピーされました!
roxctl CLI をインストールすると、コマンドラインインターフェイスから RHACS を操作できます。roxctl は、Linux、Windows、または macOS にインストールできます。
1.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}"roxctlCLI をダウンロードします。$ curl -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Linux/roxctl${arch}"roxctlバイナリーを実行可能にします。$ chmod +x roxctlPATH上にあるディレクトリーにroxctlバイナリーを配置します。PATHを確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctlのバージョンを確認します。$ roxctl version
1.1.2. macOS への roxctl CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、roxctl CLI バイナリーを macOS にインストールできます。
macOS 用の roxctl CLI は、amd64 アーキテクチャーで利用できます。
手順
roxctlCLI をダウンロードします。$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Darwin/roxctlバイナリーからすべての拡張属性を削除します。
$ xattr -c roxctlroxctlバイナリーを実行可能にします。$ chmod +x roxctlPATH上にあるディレクトリーにroxctlバイナリーを配置します。PATHを確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctlのバージョンを確認します。$ roxctl version
1.1.3. Windows への roxctl CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、roxctl CLI バイナリーを Windows にインストールできます。
Windows 用の roxctl CLI は、amd64 アーキテクチャーで使用できます。
手順
roxctlCLI をダウンロードします。$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Windows/roxctl.exe
検証
インストールした
roxctlのバージョンを確認します。$ roxctl version
1.2. コンテナーから roxctl CLI の実行 リンクのコピーリンクがクリップボードにコピーされました!
roxctl クライアントは、RHACS roxctl イメージのデフォルトエントリーポイントです。コンテナーイメージで roxctl クライアントを実行するには、以下を行います。
前提条件
- はじめに、RHACS ポータルから認証トークンを生成している。
手順
registry.redhat.ioレジストリーにログインします。$ docker login registry.redhat.ioroxctlCLI の最新のコンテナーイメージをプルします。$ docker pull registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.3.8
CLI をインストールしたら、次のコマンドを使用して CLI を実行できます。
$ docker run -e ROX_API_TOKEN=$ROX_API_TOKEN \
-it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.3.8 \
-e $ROX_CENTRAL_ADDRESS <command>
Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service) で、Central アドレスを必要とする roxctl コマンドを使用する場合は、Red Hat Hybrid Cloud Console の Instance Details セクションに表示される Central インスタンスアドレス を使用します。たとえば、acs-data-ABCD12345.acs.rhcloud.com の代わりに acs-ABCD12345.acs.rhcloud.com を使用します。
検証
インストールした
roxctlのバージョンを確認します。$ docker run -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.3.8 version
第2章 roxctl CLI の使用 リンクのコピーリンクがクリップボードにコピーされました!
2.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して
ROX_ENDPOINT環境変数を設定している。$ export ROX_ENDPOINT=<host:port>1 - 1
ROX_ENDPOINT環境変数に保存するホストおよびポートの情報。
2.2. 認証情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、roxctl Central whoami コマンドを使用して、Central で認証ステータスとユーザープロファイルに関する情報を取得する方法について説明します。出力例は、ユーザーのロール、アクセス許可、さまざまな管理機能など、表示されることが予想されるデータを示しています。この手順では、Central 内でのアクセス権とロールを確認できます。
手順
次のコマンドを実行して、Central の現在の認証ステータスとユーザー情報に関する情報を取得します。
$ roxctl central whoami出力例
UserID: <redacted> User name: <redacted> Roles: APIToken creator, Admin, Analyst, Continuous Integration, Network Graph Viewer, None, Sensor Creator, Vulnerability Management Approver, Vulnerability Management Requester, Vulnerability Manager, Vulnerability Report Creator Access: rw Access rw Administration rw Alert rw CVE rw Cluster rw Compliance rw Deployment rw DeploymentExtension rw Detection rw Image rw Integration rw K8sRole rw K8sRoleBinding rw K8sSubject rw Namespace rw NetworkGraph rw NetworkPolicy rw Node rw Secret rw ServiceAccount rw VulnerabilityManagementApprovals rw VulnerabilityManagementRequests rw WatchedImage rw WorkflowAdministration出力を確認して、認証とユーザーの詳細が想定どおりであることを確認します。
2.3. roxctl CLI を使用した認証 リンクのコピーリンクがクリップボードにコピーされました!
認証には、API トークン、管理者パスワード、または roxctl central login コマンドを使用できます。
API トークンを効果的に使用するには、次のガイドラインに従ってください。
- 継続的インテグレーション (CI) を備えた運用環境で API トークンを使用します。各トークンには特定のアクセス許可が割り当てられ、実行できるアクションを制御できます。さらに、API トークンはブラウザーベースのログインなどの対話型プロセスを必要としないため、自動プロセスに最適です。これらのトークンの有効期間 (TTL) の値は 1 年で、有効期間が長くなり、シームレスな統合と運用効率が向上します。
- 管理者パスワードはテスト目的にのみ使用してください。これを実稼働環境で使用しないでください。
-
roxctl Central loginコマンドは、対話型かつローカルでのみ使用してください。
2.3.1. API トークンの作成 リンクのコピーリンクがクリップボードにコピーされました!
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Authentication Tokens カテゴリーまでスクロールし、API Token をクリックします。
- Generate Token をクリックします。
- トークンの名前を入力し、必要なレベルのアクセスを提供するロールを選択します (たとえば、Continuous Integration または Sensor Creator)。
Generate をクリックします。
重要生成されたトークンをコピーして安全に保存します。再度表示することはできません。
2.3.2. API トークンのエクスポートと保存 リンクのコピーリンクがクリップボードにコピーされました!
手順
認証トークンを生成したら、次のコマンドを入力して、
ROX_API_TOKEN変数としてエクスポートします。$ export ROX_API_TOKEN=<api_token>(オプション): 次のコマンドを入力して、トークンをファイルに保存し、
--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 は指定されたパスワードを認証に使用します。
2.3.3. 認証プロバイダーを使用した roxctl での認証 リンクのコピーリンクがクリップボードにコピーされました!
Central で認証プロバイダーを設定し、roxctl CLI を使用してログインプロセスを開始できます。次の手順で説明するように、ROX_ENDPOINT 変数を設定し、roxctl central login コマンドでログインプロセスを開始し、ブラウザーウィンドウで認証プロバイダーを選択して、roxctl CLI からトークン情報を取得します。
前提条件
- フラグメントモードまたはクエリーモードの OpenID Connect (OIDC) など、任意の認証プロバイダーを選択しました。
手順
次のコマンドを実行して、
ROX_ENDPOINT変数を Central のホスト名とポートに設定します。export ROX_ENDPOINT=<central_hostname:port>次のコマンドを実行して、Central へのログインプロセスを開始します。
$ roxctl central login-
roxctlCLI 内では、URL が出力として出力され、ブラウザーウィンドウにリダイレクトされ、使用する認証プロバイダーを選択できます。 認証プロバイダーを使用してログインします。
ログインに成功すると、認証が成功したことがブラウザーウィンドウに表示されるので、ブラウザーウィンドウを閉じることができます。
roxctlCLI は、アクセストークン、アクセストークンの有効期限、更新トークンが発行されている場合はそのトークン、これらの値がローカルに保存されているという通知などの詳細を含むトークン情報を表示します。出力例
Please complete the authorization flow in the browser with an auth provider of your choice. If no browser window opens, please click on the following URL: http://127.0.0.1:xxxxx/login INFO: Received the following after the authorization flow from Central: INFO: Access token: <redacted>1 INFO: Access token expiration: 2023-04-19 13:58:43 +0000 UTC2 INFO: Refresh token: <redacted>3 INFO: Storing these values under $HOME/.roxctl/login…4 重要設定が保存されるディレクトリーを決定するように環境を設定してください。デフォルトでは、設定は
$HOME/.roxctl/roxctl-configディレクトリーに保存されます。-
$ROX_CONFIG_DIR環境変数を設定すると、設定は$ROX_CONFIG_DIR/roxctl-configディレクトリーに保存されます。このオプションは、優先度が最も高くなります。 -
$XDG_RUNTIME_DIR環境変数を設定し、$ROX_CONFIG_DIR変数が設定されていないと、設定は$XDG_RUNTIME_DIR/roxctl-configディレクトリーに保存されます。 -
$ROX_CONFIG_DIRまたは$XDG_RUNTIME_DIR環境変数を設定しないと、設定は$HOME/.roxctl/roxctl-configディレクトリーに保存されます。
-
2.4. RHACS Cloud Service での roxctl CLI の設定と使用 リンクのコピーリンクがクリップボードにコピーされました!
手順
次のコマンドを実行して
ROX_API_TOKENをエクスポートします。$ export ROX_API_TOKEN=<api_token>次のコマンドを実行して
ROX_ENDPOINTをエクスポートします。$ export ROX_ENDPOINT=<address>:<port_number>-
--helpオプションを使用して、コマンドに関する詳細情報を取得できます。 -
Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service) で、Central アドレスを必要とする
roxctlコマンドを使用する場合は、Red Hat Hybrid Cloud Console の Instance Details セクションに表示される Central インスタンスアドレス を使用します。たとえば、acs-data-ABCD12345.acs.rhcloud.comの代わりにacs-ABCD12345.acs.rhcloud.comを使用します。
第3章 セキュアクラスターの管理 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes または OpenShift Container Platform クラスターを保護するには、Red Hat Advanced Cluster Security for Kubernetes (RHACS) サービスをクラスターにデプロイする必要があります。Platform Configuration → Clusters ビューに移動して RHACS ポータルでデプロイメントファイルを生成するか、roxctl CLI を使用できます。
3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して
ROX_ENDPOINT環境変数を設定している。$ export ROX_ENDPOINT=<host:port>1 - 1
ROX_ENDPOINT環境変数に保存するホストおよびポートの情報。
3.2. Sensor デプロイメントファイルの生成 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes システムのファイルの生成
手順
次のコマンドを実行して、Kubernetes クラスターに必要な Sensor 設定を生成し、Central インスタンスに関連付けます。
$ roxctl sensor generate k8s --name <cluster_name> --central "$ROX_ENDPOINT"
OpenShift Container Platform システムのファイルの生成
手順
以下のコマンドを実行して、OpenShift Container Platform クラスターに必要な Sensor 設定を生成し、Central インスタンスに関連付けます。
$ roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT"1 - 1
--openshift-versionオプションでは、クラスターの主要な OpenShift Container Platform バージョン番号を指定します。たとえば、OpenShift Container Platform バージョン3.xの場合は3を指定し、OpenShift Container Platform バージョン4.xの場合は4を指定します。
--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
3.3. sensor.sh スクリプトを使用した Sensor のインストール リンクのコピーリンクがクリップボードにコピーされました!
Sensor デプロイメントファイルを生成すると、roxctl は作業ディレクトリーに sensor-<cluster_name> というディレクトリーを作成します。Sensor をインストールするスクリプトは、このディレクトリーにあります。
手順
Sensor インストールスクリプトを実行して、Sensor をインストールします。
$ ./sensor-<cluster_name>/sensor.shSensor のインストールに必要な権限がないという警告が表示された場合は、画面の指示に従うか、クラスター管理者に連絡してください。
3.4. 既存のクラスターの Sensor バンドルのダウンロード リンクのコピーリンクがクリップボードにコピーされました!
手順
次のコマンドを実行して、
クラスター名またはIDを指定して既存のクラスターの Sensor バンドルをダウンロードします。$ roxctl sensor get-bundle <cluster_name_or_id>
3.5. クラスター統合の削除 リンクのコピーリンクがクリップボードにコピーされました!
手順
クラスターを削除する前に、Central から削除するクラスター名が正しいことを確認してください。
$ roxctl cluster delete --name=<cluster_name>重要インストール方法によっては、クラスター統合を削除しても、クラスター内で実行されている RHACS サービスは削除されません。サービスは、Sensor インストールバンドルから
delete-sensor.shスクリプトを実行することで削除できます。
第4章 ポリシーコンプライアンスの確認 リンクのコピーリンクがクリップボードにコピーされました!
roxctl CLI を使用して、ポリシーに準拠しているかどうかデプロイメント YAML ファイルおよびイメージを確認できます。
4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して
ROX_ENDPOINT環境変数を設定している。$ export ROX_ENDPOINT=<host:port>1 - 1
ROX_ENDPOINT環境変数に保存するホストおよびポートの情報。
4.2. 出力形式の設定 リンクのコピーリンクがクリップボードにコピーされました!
roxctl deployment check または roxctl image check コマンドを使用してポリシーへの準拠をチェックする場合、コマンドに -o オプションを使用し、形式を json、table、csv または junit として指定することにより、出力形式を指定できます。このオプションは、コマンドの出力が端末にどのように表示されるかを決定します。
たとえば、次のコマンドはデプロイメントをチェックしてから、結果を csv 形式で表示します。
$ roxctl deployment check --file =<yaml_filename> -o csv
出力形式に -o オプションを指定しない場合は、次のデフォルトの動作が使用されます。
-
deployment checkおよびimage checkコマンドの形式はtableです。 -
image scanコマンドのデフォルトの出力形式はjsonです。これは、古いバージョンの CLI との互換性を目的とした古い JSON 形式の出力です。新しい JSON 形式で出力を取得するには、-o jsonなどのフォーマットでオプションを指定します。トラブルシューティングの目的でデータを収集する場合は、古い JSON 形式の出力を使用します。
出力を設定するためにさまざまなオプションを使用できます。次の表に、オプションとそれらが使用可能な形式を示します。
| オプション | 説明 | フォーマット |
|---|---|---|
|
| このオプションを使用して、JSON 出力をコンパクトな形式で表示します。 |
|
|
| このオプションを使用して、カスタムヘッダーを指定します。 |
|
|
| このオプションを使用して、出力からヘッダー行を省略します。 |
|
|
| このオプションを使用して GJSON パス を指定し、出力から特定のアイテムを選択します。たとえば、デプロイメントチェックの ポリシー名 および 重大度 を取得するには、次のコマンドを使用します。
|
|
|
| このオプションを使用して、同じ値を持つテーブルセルを結合します。 |
|
|
| このオプションを使用して、ヘッダー行をコメントとして出力に含めます。 |
|
|
| このオプションを使用して、JUnit テストスイートの名前を指定します。 |
|
4.3. デプロイ YAML ファイルの確認 リンクのコピーリンクがクリップボードにコピーされました!
手順
次のコマンドを実行して、YAML デプロイメントファイル内のセキュリティーポリシーのビルド時およびデプロイ時の違反を確認します。
$ roxctl deployment check --file=<yaml_filename>形式は API リファレンスで定義されています。Red Hat Advanced Cluster Security for Kubernetes (RHACS) で、関連付けられたレジストリーとスキャナーからイメージメタデータおよびイメージスキャン結果を再プルするには、
-forceオプションを追加します。注記特定のイメージスキャン結果を確認するには、
Imageリソースのreadおよびwriteの両方の権限を持つトークンが必要です。デフォルトの 継続的インテグレーション システムのロールには、すでに必要な権限があります。このコマンドは、以下の項目を検証します。
- リソース制限や特権オプションなど、YAML ファイルの設定オプション
- コンポーネントや脆弱性など、YAML ファイルで使用されるイメージの側面
4.4. イメージの確認 リンクのコピーリンクがクリップボードにコピーされました!
手順
次のコマンドを実行して、イメージ内のセキュリティーポリシーのビルド時の違反を確認します。
$ roxctl image check --image=<image_name>形式は API リファレンスで定義されています。Red Hat Advanced Cluster Security for Kubernetes (RHACS) で、関連付けられたレジストリーとスキャナーからイメージメタデータおよびイメージスキャン結果を再プルするには、
-forceオプションを追加します。注記特定のイメージスキャン結果を確認するには、
Imageリソースのreadおよびwriteの両方の権限を持つトークンが必要です。デフォルトの 継続的インテグレーション システムのロールには、すでに必要な権限があります。
4.5. イメージスキャン結果の確認 リンクのコピーリンクがクリップボードにコピーされました!
特定のイメージのスキャン結果を確認することもできます。
手順
以下のコマンドを実行して、イメージで見つかったコンポーネントおよび脆弱性を JSON 形式で返します。
$ roxctl image scan --image <image_name>形式は API リファレンスで定義されています。Red Hat Advanced Cluster Security for Kubernetes (RHACS) で、関連付けられたレジストリーとスキャナーからイメージメタデータおよびイメージスキャン結果を再プルするには、
-forceオプションを追加します。注記特定のイメージスキャン結果を確認するには、
Imageリソースのreadおよびwriteの両方の権限を持つトークンが必要です。デフォルトの 継続的インテグレーション システムのロールには、すでに必要な権限があります。
4.6. roxctl image command overview リンクのコピーリンクがクリップボードにコピーされました!
特定のイメージに対して実行できるコマンド。
使用方法
$ roxctl image [command] [flags]
| コマンド | 説明 |
|---|---|
|
| イメージにビルド時間のポリシー違反がないか確認し、報告します。 |
|
| 指定されたイメージをスキャンし、スキャン結果を返します。 |
| オプション | 説明 |
|---|---|
|
|
リクエストの最大期間を表す API リクエストのタイムアウトを設定します。デフォルト値は |
4.6.1. 親コマンドから継承された roxctl image コマンドオプション リンクのコピーリンクがクリップボードにコピーされました!
roxctl image コマンドは、roxctl の親コマンドから継承された次のオプションをサポートします。
| オプション | 説明 |
|---|---|
|
|
安全な接続のためのカスタム CA 証明書ファイルパスを指定します。あるいは、 |
|
|
接続パフォーマンスを向上させるには、 |
|
|
サービスが接続するエンドポイントを設定します。あるいは、 |
|
|
すべての接続で HTTP/1 を強制的に使用します。あるいは、 |
|
|
安全でない接続オプションを有効にします。あるいは、 |
|
|
TLS 証明書の検証をスキップします。あるいは、 |
|
|
カラー出力を無効にします。あるいは、 |
|
|
Basic 認証のパスワードを指定します。あるいは、 |
|
|
暗号化されていない接続を使用します。あるいは、 |
|
|
SNI に使用する TLS サーバー名を設定します。あるいは、 |
|
|
指定されたファイルで提供される API トークンを認証に使用します。あるいは、 |
これらのオプションは、roxctl image コマンドのすべてのサブコマンドに適用されます。
4.6.2. roxctl image scan リンクのコピーリンクがクリップボードにコピーされました!
指定されたイメージをスキャンし、スキャン結果を返します。
使用方法
$ roxctl image scan [flags]
| オプション | 説明 |
|---|---|
|
| イメージスキャンを委任するクラスター名または ID を指定します。 |
|
|
JSON 出力をコンパクトな形式で出力します。デフォルト値は |
|
|
Central のキャッシュを無視し、Scanner から新たにもう一度強制的にプルします。デフォルト値は |
|
|
表形式を出力するヘッダーを指定します。デフォルト値には、 |
|
|
CSV 表形式出力にヘッダーをコメントとして出力します。デフォルト値は |
|
|
スキャンするイメージ名と参照を指定します。たとえば、 |
|
|
スヌーズされた CVE とスヌーズされていない CVE をスキャン結果に含めます。デフォルト値は |
|
|
表形式の出力で重複したセルを結合します。デフォルト値は |
|
|
表形式の出力では、ヘッダーを出力しないでください。デフォルト値は |
|
|
出力形式を指定します。出力形式には、 |
|
|
エラーとして終了するまでの再試行回数を指定します。デフォルト値は |
|
|
再試行間の待機時間を秒単位で設定します。デフォルト値は |
|
|
JSON オブジェクトから行を作成するには、JSON パス式を指定します。詳細は、 |
4.6.3. roxctl image check リンクのコピーリンクがクリップボードにコピーされました!
イメージにビルド時間のポリシー違反がないか確認し、報告します。
使用方法
$ roxctl image check [flags]
| オプション | 説明 |
|---|---|
|
| 実行するポリシーカテゴリーのリスト。デフォルトでは、すべてのポリシーカテゴリーが使用されます。 |
|
| 評価のコンテキストとして使用するクラスター名または ID を定義します。 |
|
|
JSON 出力をコンパクトな形式で出力します。デフォルト値は |
|
|
イメージの Central キャッシュをバイパスし、強制的に Scanner から新たにプルします。デフォルト値は |
|
|
表形式に出力するヘッダーを定義します。デフォルト値には、 |
|
|
CSV 表形式出力にヘッダーをコメントとして出力します。デフォルト値は |
|
|
イメージ名と参照を指定します。たとえば、 |
|
|
JUnit テストスイートの名前を設定します。デフォルト値は |
|
|
表形式の出力で重複したセルを結合します。デフォルト値は |
|
|
表形式の出力では、ヘッダーを出力しないでください。デフォルト値は |
|
|
出力形式を選択します。出力形式には、 |
|
|
エラーとして終了するまでの再試行回数を設定します。デフォルト値は |
|
|
再試行間の待機時間を秒単位で設定します。デフォルト値は |
|
|
JSON パス式を使用して、JSON オブジェクトから行を作成します。詳細は、 |
|
|
違反が発生した場合に通知を送信するかどうかを定義します。デフォルト値は |
第5章 デバッグの問題 リンクのコピーリンクがクリップボードにコピーされました!
Central は、情報をコンテナーログに保存します。
5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して
ROX_ENDPOINT環境変数を設定している。$ export ROX_ENDPOINT=<host:port>1 - 1
ROX_ENDPOINT環境変数に保存するホストおよびポートの情報。
5.2. ログの表示 リンクのコピーリンクがクリップボードにコピーされました!
oc または kubectl コマンドを使用して、Central Pod のログを表示できます。
手順
kubectlを使用して Central Pod のログを表示するには、次のコマンドを実行します。$ kubectl logs -n stackrox <central_pod>ocを使用して Central Pod のログを表示するには、次のコマンドを実行します。$ oc logs -n stackrox <central_pod>
5.3. 現在のログレベルの表示 リンクのコピーリンクがクリップボードにコピーされました!
ログレベルを変更して、Central ログの情報を増減できます。
手順
次のコマンドを実行して、現在のログレベルを表示します。
$ roxctl central debug log
5.4. ログレベルの変更 リンクのコピーリンクがクリップボードにコピーされました!
手順
次のコマンドを実行して、ログレベルを変更します。
$ roxctl central debug log --level=<log_level>1 - 1
<log_level>の許容値は、Panic、Fatal、Error、Warn、Info、およびDebugです。
5.5. デバッグ情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
手順
次のコマンドを実行して、問題を調査するためのデバッグ情報を収集します。
$ roxctl central debug dump- RHACS 管理者パスワードまたは API トークンと中央アドレスを使用して診断バンドルを生成するには、roxctl CLI を使用した診断バンドルの生成 の手順に従います。
5.6. roxctl central debug コマンドの概要 リンクのコピーリンクがクリップボードにコピーされました!
Central サービスをデバッグします。
使用方法
$ roxctl central debug [flags]
5.6.1. 親コマンドから継承された roxctl central コマンドオプション リンクのコピーリンクがクリップボードにコピーされました!
roxctl central コマンドは、roxctl の親コマンドから継承された次のオプションをサポートします。
| オプション | 説明 |
|---|---|
|
|
安全な接続のためのカスタム CA 証明書ファイルパスを指定します。あるいは、 |
|
|
接続パフォーマンスを向上させるには、 |
|
|
サービスが接続するエンドポイントを設定します。あるいは、 |
|
|
すべての接続で HTTP/1 を強制的に使用します。あるいは、 |
|
|
安全でない接続オプションを有効にします。あるいは、 |
|
|
TLS 証明書の検証をスキップします。あるいは、 |
|
|
カラー出力を無効にします。あるいは、 |
|
|
Basic 認証のパスワードを指定します。あるいは、 |
|
|
暗号化されていない接続を使用します。あるいは、 |
|
|
SNI に使用する TLS サーバー名を設定します。あるいは、 |
|
|
指定されたファイルで提供される API トークンを認証に使用します。あるいは、 |
これらのオプションは、roxctl central コマンドのすべてのサブコマンドに適用されます。
5.6.2. roxctl central debug db リンクのコピーリンクがクリップボードにコピーされました!
データベースのデバッグを制御します。
使用方法
$ roxctl central debug db [flags]
| オプション | 説明 |
|---|---|
|
|
リクエストの最大期間を表す API リクエストのタイムアウトを指定します。デフォルト値は |
5.6.3. roxctl central debug log リンクのコピーリンクがクリップボードにコピーされました!
現在のログレベルを取得します。
使用方法
$ roxctl central debug log [flags]
| オプション | 説明 |
|---|---|
|
|
モジュールを設定するログレベルを指定します。有効な値には、 |
|
| コマンドを適用するモジュールを指定します。 |
|
|
API リクエストが再試行されるまでのタイムアウトを指定します。値が 0 の場合、再試行せずにリクエスト期間全体を待機することを意味します。デフォルト値は |
|
|
API リクエストのタイムアウトを指定します。これは、リクエストの最大期間です。デフォルト値は |
5.6.4. roxctl central debug dump リンクのコピーリンクがクリップボードにコピーされました!
Central のデバッグ情報を含むバンドルをダウンロードします。
使用方法
$ roxctl central debug dump [flags]
| オプション | 説明 |
|---|---|
|
|
|
|
| バンドルコンテンツの出力ディレクトリーを指定します。デフォルト値は、現在のディレクトリー内で自動的に生成されたディレクトリー名です。 |
|
|
API リクエストのタイムアウトを指定します。これは、リクエストの最大期間です。デフォルト値は |
5.6.5. roxctl central debug db stats リンクのコピーリンクがクリップボードにコピーされました!
Central データベースの統計を制御します。
使用方法
$ roxctl central debug db stats [flags]
5.6.6. roxctl central debug authz-trace リンクのコピーリンクがクリップボードにコピーされました!
デバッグの目的で、Central での承認トレースを有効または無効にします。
使用方法
$ roxctl central debug authz-trace [flags]
| オプション | 説明 |
|---|---|
|
|
リクエストの最大期間を表す API リクエストのタイムアウトを指定します。デフォルト値は |
5.6.7. roxctl central debug db stats reset リンクのコピーリンクがクリップボードにコピーされました!
Central データベースの統計をリセットします。
使用方法
$ roxctl central debug db stats reset [flags]
5.6.8. roxctl central debug download-diagnostics リンクのコピーリンクがクリップボードにコピーされました!
プラットフォームに関する診断情報のスナップショットを含むバンドルをダウンロードします。
使用方法
$ roxctl central debug download-diagnostics [flags]
| オプション | 説明 |
|---|---|
|
| ログを収集する Sensor クラスターのコンマ区切りのリストを指定します。 |
|
| 診断バンドルを保存する出力ディレクトリーを指定します。 |
|
| Sensor クラスターからログを収集するタイムスタンプを指定します。 |
|
|
API リクエストのタイムアウトを指定します。これにより、リクエストの最大期間が指定されます。デフォルト値は |
第6章 ビルド時のネットワークポリシーの生成 リンクのコピーリンクがクリップボードにコピーされました!
ビルド時のネットワークポリシージェネレーターは、roxctl CLI に含まれています。ビルド時のネットワークポリシー生成機能の場合、roxctl CLI は RHACS Central と通信する必要がないため、任意の開発環境で使用できます。
6.1. ビルド時のネットワークポリシージェネレーターの使用 リンクのコピーリンクがクリップボードにコピーされました!
ビルド時のネットワークポリシー生成は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
-
ビルド時のネットワークポリシージェネレーターは、コマンドの実行時に指定したディレクトリーを再帰的にスキャンします。したがって、コマンドを実行する前に、サービスマニフェスト、config map、ワークロードマニフェスト (
Pod、Deployment、ReplicaSet、Job、DaemonSet、StatefulSetなど) が、指定されたディレクトリーに YAML ファイルとしてすでに存在している必要があります。 -
kubectl apply -fコマンドを使用して、これらの YAML ファイルをそのまま適用できることを確認します。ビルド時のネットワークポリシージェネレーターは、Helm スタイルのテンプレートを使用するファイルでは機能しません。 サービスネットワークアドレスがハードコーディングされていないことを確認します。サービスに接続する必要があるすべてのワークロードは、サービスネットワークアドレスを変数として指定する必要があります。この変数は、ワークロードのリソース環境変数を使用するか、config map で指定できます。
サービスネットワークアドレスは、次の公式の正規表現パターンに一致する必要があります。
(http(s)?://)?<svc>(.<ns>(.svc.cluster.local)?)?(:<portNum>)?1 - 1
- このパターンでは、
- <svc> はサービス名
- <ns> はサービスを定義した namespace
- <portNum> は公開されたサービスのポート番号
以下は、パターンに一致するいくつかの例です。
-
wordpress-mysql:3306 -
redis-follower.redis.svc.cluster.local:6379 -
redis-leader.redis -
http://rating-service.
手順
help コマンドを実行して、ビルド時のネットワークポリシー生成機能が使用可能であることを確認します。
$ roxctl netpol generate -hnetpol generateコマンドを使用してポリシーを生成します。$ roxctl netpol generate <folder-path>1 - 1
- Kubernetes マニフェストがあるフォルダーのパスを指定します。
roxctl netpol generate コマンドは、次のオプションをサポートしています。
|
| 説明 |
|
|
|
|
| 生成されたポリシーをターゲットフォルダーに保存します。ポリシーごとに 1 つのファイルです。 |
|
| 生成されたポリシーを保存して単一の YAML ファイルにマージします。 |
|
|
最初に発生したエラーで失敗します。デフォルト値は |
|
| 出力パスがすでに存在する場合は削除します。 |
|
|
警告をエラーとして扱います。デフォルト値は |
第7章 roxctl CLI を使用したイメージスキャン リンクのコピーリンクがクリップボードにコピーされました!
roxctl CLI を使用して、OpenShift Container Platform 統合イメージレジストリーなどのクラスターのローカルレジストリーなど、イメージレジストリーに保存されているイメージをスキャンできます。
7.1. リモートクラスターを使用したイメージのスキャン リンクのコピーリンクがクリップボードにコピーされました!
委任スキャン設定で適切なクラスターを指定するか、次の手順で説明するクラスターパラメーターを使用して、リモートクラスターでクラスターのローカルレジストリーからイメージをスキャンできます。
委任されたイメージスキャンの設定方法の詳細は、委任されたイメージスキャンの設定 を参照してください。
手順
次のコマンドを実行して、リモートクラスターで指定されたイメージをスキャンします。
$ roxctl image scan \ --image=<image_registry>/<image_name> \1 --cluster=<cluster_detail> \2 [flags]3 - 1
<image_registry>には、イメージが配置されているレジストリーを指定します (例:image-registry.openshift-image-registry.svc:5000/)。<image_name>には、スキャンするイメージの名前を指定します (例:default/image-stream:latest)。- 2
<cluster_detail>には、リモートクラスターの名前または ID を指定します。たとえば、remoteという名前を指定します。- 3
- オプション:
[flags]には、コマンドの動作を変更するパラメーターを指定できます。オプションのパラメーターの詳細は、roxctl image scan command options を参照してください。
出力例
{ "Id": "sha256:3f439d7d71adb0a0c8e05257c091236ab00c6343bc44388d091450ff58664bf9",1 "name": {2 "registry": "image-registry.openshift-image-registry.svc:5000",3 "remote": "default/image-stream",4 "tag": "latest",5 "fullName": "image-registry.openshift-image-registry.svc:5000/default/image-stream:latest"6 }, [...]
7.2. roxctl image scan コマンドのオプション リンクのコピーリンクがクリップボードにコピーされました!
roxctl image scan コマンドは、次のオプションをサポートしています。
| オプション | 説明 |
|---|---|
|
| イメージスキャンを特定のクラスターに委任します。 |
|
|
JSON 出力をコンパクトな形式で出力します。デフォルト値は |
|
|
Central のスキャンのキャッシュを無視し、Scanner から新たにもう一度強制的にプルします。デフォルト値は |
|
|
ヘッダーを表形式で出力します。デフォルト値には、 |
|
|
CSV 表形式出力にヘッダーをコメントとして出力します。デフォルト値は |
|
|
|
|
| スキャンするイメージ名と参照を指定します。 |
|
|
延期されたものと延期されていないものの両方の一般的な脆弱性とエクスポージャー (CVE) を返します。デフォルト値は |
|
|
表形式の出力で重複したセルを結合します。デフォルト値は |
|
|
表形式のヘッダーを出力しません。デフォルト値は |
|
|
出力形式を指定します。形式を選択して結果の表示をカスタマイズできます。形式には、 |
|
|
操作がエラーで中止されるまでの再試行回数を設定します。デフォルト値は |
|
|
次の再試行までの待機時間を秒単位で設定します。デフォルト値は |
|
|
JSON パス式を使用して、JSON オブジェクトから行を作成します。詳細は、 |