roxctl CLI


Red Hat Advanced Cluster Security for Kubernetes 4.3

roxctl CLI

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、roxctl の構文と操作を含め、roxctl コマンドラインインターフェイスをインストールして使用する方法を説明します。一般的なコマンドの例をいくつか示します。

第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 は、amd64ppcl64le、および s390x アーキテクチャーで使用できます。

手順

  1. ターゲットのオペレーティングシステムの roxctl アーキテクチャーを確認します。

    $ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
  2. roxctl CLI をダウンロードします。

    $ curl -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Linux/roxctl${arch}"
  3. roxctl バイナリーを実行可能にします。

    $ chmod +x roxctl
  4. PATH 上にあるディレクトリーに roxctl バイナリーを配置します。

    PATH を確認するには、以下のコマンドを実行します。

    $ echo $PATH

検証

  • インストールした roxctl のバージョンを確認します。

    $ roxctl version

1.1.2. macOS への roxctl CLI のインストール

次の手順を使用して、roxctl CLI バイナリーを macOS にインストールできます。

注記

macOS 用の roxctl CLI は、amd64 アーキテクチャーで利用できます。

手順

  1. roxctl CLI をダウンロードします。

    $ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Darwin/roxctl
  2. バイナリーからすべての拡張属性を削除します。

    $ xattr -c roxctl
  3. roxctl バイナリーを実行可能にします。

    $ chmod +x roxctl
  4. PATH 上にあるディレクトリーに roxctl バイナリーを配置します。

    PATH を確認するには、以下のコマンドを実行します。

    $ echo $PATH

検証

  • インストールした roxctl のバージョンを確認します。

    $ roxctl version

1.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

1.2. コンテナーから roxctl CLI の実行

roxctl クライアントは、RHACS roxctl イメージのデフォルトエントリーポイントです。コンテナーイメージで roxctl クライアントを実行するには、以下を行います。

前提条件

  • はじめに、RHACS ポータルから認証トークンを生成している。

手順

  1. registry.redhat.io レジストリーにログインします。

    $ docker login registry.redhat.io
  2. roxctl CLI の最新のコンテナーイメージをプルします。

    $ 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 トークンの作成

手順

  1. RHACS ポータルで、Platform ConfigurationIntegrations に移動します。
  2. Authentication Tokens カテゴリーまでスクロールし、API Token をクリックします。
  3. Generate Token をクリックします。
  4. トークンの名前を入力し、必要なレベルのアクセスを提供するロールを選択します (たとえば、Continuous Integration または Sensor Creator)。
  5. Generate をクリックします。

    重要

    生成されたトークンをコピーして安全に保存します。再度表示することはできません。

2.3.2. API トークンのエクスポートと保存

手順

  1. 認証トークンを生成したら、次のコマンドを入力して、ROX_API_TOKEN 変数としてエクスポートします。

    $ export ROX_API_TOKEN=<api_token>
  2. (オプション): 次のコマンドを入力して、トークンをファイルに保存し、--token-file オプションとともに使用することもできます。

    $ roxctl central debug dump --token-file <token_file>

次のガイドラインに注意してください。

  • -password (-p) オプションと --token-file オプションの両方を同時に使用することはできません。
  • すでに ROX_API_TOKEN 変数を設定しており、--token-file オプションを指定していると、roxctl CLI は指定されたトークンファイルを認証に使用します。
  • すでに ROX_API_TOKEN 変数を設定しており、--password オプションを指定していると、roxctl CLI は指定されたパスワードを認証に使用します。

2.3.3. 認証プロバイダーを使用した roxctl での認証

Central で認証プロバイダーを設定し、roxctl CLI を使用してログインプロセスを開始できます。次の手順で説明するように、ROX_ENDPOINT 変数を設定し、roxctl central login コマンドでログインプロセスを開始し、ブラウザーウィンドウで認証プロバイダーを選択して、roxctl CLI からトークン情報を取得します。

前提条件

  • フラグメントモードまたはクエリーモードの OpenID Connect (OIDC) など、任意の認証プロバイダーを選択しました。

手順

  1. 次のコマンドを実行して、ROX_ENDPOINT 変数を Central のホスト名とポートに設定します。

    export ROX_ENDPOINT=<central_hostname:port>
  2. 次のコマンドを実行して、Central へのログインプロセスを開始します。

    $ roxctl central login
  3. roxctl CLI 内では、URL が出力として出力され、ブラウザーウィンドウにリダイレクトされ、使用する認証プロバイダーを選択できます。
  4. 認証プロバイダーを使用してログインします。

    ログインに成功すると、認証が成功したことがブラウザーウィンドウに表示されるので、ブラウザーウィンドウを閉じることができます。

  5. roxctl CLI は、アクセストークン、アクセストークンの有効期限、更新トークンが発行されている場合はそのトークン、これらの値がローカルに保存されているという通知などの詳細を含むトークン情報を表示します。

    出力例

    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 UTC 
    2
    
    INFO:	Refresh token: <redacted> 
    3
    
    INFO:	Storing these values under $HOME/.roxctl/login… 
    4

    1
    アクセストークン。
    2
    アクセストークンの有効期限。
    3
    更新トークン。
    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.sh

    Sensor のインストールに必要な権限がないという警告が表示された場合は、画面の指示に従うか、クラスター管理者に連絡してください。

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 オプションを使用し、形式を jsontablecsv または 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 形式の出力を使用します。

出力を設定するためにさまざまなオプションを使用できます。次の表に、オプションとそれらが使用可能な形式を示します。

Expand
オプション説明フォーマット

--compact-output

このオプションを使用して、JSON 出力をコンパクトな形式で表示します。

json

--headers

このオプションを使用して、カスタムヘッダーを指定します。

table および csv

--no-header

このオプションを使用して、出力からヘッダー行を省略します。

table および csv

--row-jsonpath-expressions

このオプションを使用して GJSON パス を指定し、出力から特定のアイテムを選択します。たとえば、デプロイメントチェックの ポリシー名 および 重大度 を取得するには、次のコマンドを使用します。

$ roxctl deployment check --file=<yaml_filename> \
  -o table --headers POLICY-NAME,SEVERITY \
  --row-jsonpath-expressions="{results..violatedPolicies..name,results..violatedPolicies..severity}"

table および csv

--merge-output

このオプションを使用して、同じ値を持つテーブルセルを結合します。

table

headers-as-comment

このオプションを使用して、ヘッダー行をコメントとして出力に含めます。

csv

--junit-suite-name

このオプションを使用して、JUnit テストスイートの名前を指定します。

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]

Expand
表4.1 利用可能なコマンド
コマンド説明

check

イメージにビルド時間のポリシー違反がないか確認し、報告します。

scan

指定されたイメージをスキャンし、スキャン結果を返します。

Expand
表4.2 オプション
オプション説明

-t, --timeout duration

リクエストの最大期間を表す API リクエストのタイムアウトを設定します。デフォルト値は 10m0s です。

4.6.1. 親コマンドから継承された roxctl image コマンドオプション

roxctl image コマンドは、roxctl の親コマンドから継承された次のオプションをサポートします。

Expand
オプション説明

--ca string

安全な接続のためのカスタム CA 証明書ファイルパスを指定します。あるいは、ROX_CA_CERT_FILE 環境変数を使用して、ファイルパスを指定することもできます。

--direct-grpc

接続パフォーマンスを向上させるには、--direct-grpc を設定します。あるいは、ROX_DIRECT_GRPC_CLIENT 環境変数を true に設定することで、直接 gRPC を有効にできます。デフォルト値は false です。

-e, --endpoint string

サービスが接続するエンドポイントを設定します。あるいは、ROX_ENDPOINT 環境変数を使用して、エンドポイントを設定することもできます。デフォルト値は localhost:8443 です。

--force-http1

すべての接続で HTTP/1 を強制的に使用します。あるいは、ROX_CLIENT_FORCE_HTTP1 環境変数を true に設定することで、HTTP/1 の使用を強制できます。デフォルト値は false です。

--insecure

安全でない接続オプションを有効にします。あるいは、ROX_INSECURE_CLIENT 環境変数を true に設定することで、安全でない接続オプションを有効にすることができます。デフォルト値は false です。

--insecure-skip-tls-verify

TLS 証明書の検証をスキップします。あるいは、ROX_INSECURE_CLIENT_SKIP_TLS_VERIFY 環境変数を true に設定することで、TLS 証明書の検証をスキップできます。デフォルト値は false です。

--no-color

カラー出力を無効にします。あるいは、ROX_NO_COLOR 環境変数を true に設定することで、カラー出力を無効にすることができます。デフォルト値は false です。

-p, --password string

Basic 認証のパスワードを指定します。あるいは、ROX_ADMIN_PASSWORD 環境変数を使用して、パスワードを設定することもできます。

--plaintext

暗号化されていない接続を使用します。あるいは、ROX_PLAINTEXT 環境変数を true に設定することで、暗号化されていない接続を有効にすることができます。デフォルト値は false です。

-s, --server-name string

SNI に使用する TLS サーバー名を設定します。あるいは、ROX_SERVER_NAME 環境変数を使用して、サーバー名を設定することもできます。

--token-file string

指定されたファイルで提供される API トークンを認証に使用します。あるいは、ROX_API_TOKEN 環境変数を使用して、トークンを設定することもできます。

注記

これらのオプションは、roxctl image コマンドのすべてのサブコマンドに適用されます。

4.6.2. roxctl image scan

指定されたイメージをスキャンし、スキャン結果を返します。

使用方法

$ roxctl image scan [flags]

Expand
表4.3 オプション
オプション説明

--cluster string

イメージスキャンを委任するクラスター名または ID を指定します。

--compact-output

JSON 出力をコンパクトな形式で出力します。デフォルト値は false です。

-f, --force

Central のキャッシュを無視し、Scanner から新たにもう一度強制的にプルします。デフォルト値は false です。

--headers strings

表形式を出力するヘッダーを指定します。デフォルト値には、COMPONENTVERSIONCVESEVERITY、および LINK が含まれます。

--headers-as-comments

CSV 表形式出力にヘッダーをコメントとして出力します。デフォルト値は false です。

-i, --image string

スキャンするイメージ名と参照を指定します。たとえば、nginx:latest または nginx@sha256:… などです。

-a, --include-snoozed

スヌーズされた CVE とスヌーズされていない CVE をスキャン結果に含めます。デフォルト値は false です。

--merge-output

表形式の出力で重複したセルを結合します。デフォルト値は true です。

--no-header

表形式の出力では、ヘッダーを出力しないでください。デフォルト値は false です。

-o, --output string

出力形式を指定します。出力形式には、tablecsvjson、および sarif が含まれます。

-r, --retries int

エラーとして終了するまでの再試行回数を指定します。デフォルト値は 3 です。

-d, --retry-delay int

再試行間の待機時間を秒単位で設定します。デフォルト値は 3 です。

--row-jsonpath-expressions string

JSON オブジェクトから行を作成するには、JSON パス式を指定します。詳細は、roxctl image scan --help コマンドを実行してください。

4.6.3. roxctl image check

イメージにビルド時間のポリシー違反がないか確認し、報告します。

使用方法

$ roxctl image check [flags]

Expand
表4.4 オプション
オプション説明

-c, --categories strings

実行するポリシーカテゴリーのリスト。デフォルトでは、すべてのポリシーカテゴリーが使用されます。

--cluster string

評価のコンテキストとして使用するクラスター名または ID を定義します。

--compact-output

JSON 出力をコンパクトな形式で出力します。デフォルト値は false です。

-f, --force

イメージの Central キャッシュをバイパスし、強制的に Scanner から新たにプルします。デフォルト値は false です。

--headers strings

表形式に出力するヘッダーを定義します。デフォルト値には、POLICYSEVERITYBREAKS BUILDDESCRIPTIONVIOLATION、および REMEDIATION が含まれます。

--headers-as-comments

CSV 表形式出力にヘッダーをコメントとして出力します。デフォルト値は false です。

-i, --image string

イメージ名と参照を指定します。たとえば、nginx:latest または nginx@sha256:…)

--junit-suite-name string

JUnit テストスイートの名前を設定します。デフォルト値は image-check です。

--merge-output

表形式の出力で重複したセルを結合します。デフォルト値は false です。

--no-header

表形式の出力では、ヘッダーを出力しないでください。デフォルト値は false です。

-o, --output string

出力形式を選択します。出力形式には、junitsariftablecsv、および json が含まれます。デフォルト値は table です。

-r, --retries int

エラーとして終了するまでの再試行回数を設定します。デフォルト値は 3 です。

-d, --retry-delay int

再試行間の待機時間を秒単位で設定します。デフォルト値は 3 です。

--row-jsonpath-expressions string

JSON パス式を使用して、JSON オブジェクトから行を作成します。詳細は、roxctl image check --help コマンドを実行してください。

--send-notifications

違反が発生した場合に通知を送信するかどうかを定義します。デフォルト値は false です。

第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> の許容値は、PanicFatalErrorWarnInfo、および 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 の親コマンドから継承された次のオプションをサポートします。

Expand
オプション説明

--ca string

安全な接続のためのカスタム CA 証明書ファイルパスを指定します。あるいは、ROX_CA_CERT_FILE 環境変数を使用して、ファイルパスを指定することもできます。

--direct-grpc

接続パフォーマンスを向上させるには、--direct-grpc を設定します。あるいは、ROX_DIRECT_GRPC_CLIENT 環境変数を true に設定することで、直接 gRPC を有効にできます。デフォルト値は false です。

-e, --endpoint string

サービスが接続するエンドポイントを設定します。あるいは、ROX_ENDPOINT 環境変数を使用して、エンドポイントを設定することもできます。デフォルト値は localhost:8443 です。

--force-http1

すべての接続で HTTP/1 を強制的に使用します。あるいは、ROX_CLIENT_FORCE_HTTP1 環境変数を true に設定することで、HTTP/1 の使用を強制できます。デフォルト値は false です。

--insecure

安全でない接続オプションを有効にします。あるいは、ROX_INSECURE_CLIENT 環境変数を true に設定することで、安全でない接続オプションを有効にすることができます。デフォルト値は false です。

--insecure-skip-tls-verify

TLS 証明書の検証をスキップします。あるいは、ROX_INSECURE_CLIENT_SKIP_TLS_VERIFY 環境変数を true に設定することで、TLS 証明書の検証をスキップできます。デフォルト値は false です。

--no-color

カラー出力を無効にします。あるいは、ROX_NO_COLOR 環境変数を true に設定することで、カラー出力を無効にすることができます。デフォルト値は false です。

-p, --password string

Basic 認証のパスワードを指定します。あるいは、ROX_ADMIN_PASSWORD 環境変数を使用して、パスワードを設定することもできます。

--plaintext

暗号化されていない接続を使用します。あるいは、ROX_PLAINTEXT 環境変数を true に設定することで、暗号化されていない接続を有効にすることができます。デフォルト値は false です。

-s, --server-name string

SNI に使用する TLS サーバー名を設定します。あるいは、ROX_SERVER_NAME 環境変数を使用して、サーバー名を設定することもできます。

--token-file string

指定されたファイルで提供される API トークンを認証に使用します。あるいは、ROX_API_TOKEN 環境変数を使用して、トークンを設定することもできます。

注記

これらのオプションは、roxctl central コマンドのすべてのサブコマンドに適用されます。

5.6.2. roxctl central debug db

データベースのデバッグを制御します。

使用方法

$ roxctl central debug db [flags]

Expand
表5.1 オプション
オプション説明

-t, --timeout duration

リクエストの最大期間を表す API リクエストのタイムアウトを指定します。デフォルト値は 1m0s です。

5.6.3. roxctl central debug log

現在のログレベルを取得します。

使用方法

$ roxctl central debug log [flags]

Expand
表5.2 オプション
オプション説明

-l, --level string

モジュールを設定するログレベルを指定します。有効な値には、DebugInfoWarnErrorPanic、および Fatal が含まれます。

-m, --modules strings

コマンドを適用するモジュールを指定します。

--retry-timeout duration

API リクエストが再試行されるまでのタイムアウトを指定します。値が 0 の場合、再試行せずにリクエスト期間全体を待機することを意味します。デフォルト値は 20s です。

-t, --timeout duration

API リクエストのタイムアウトを指定します。これは、リクエストの最大期間です。デフォルト値は 1m0s です。

5.6.4. roxctl central debug dump

Central のデバッグ情報を含むバンドルをダウンロードします。

使用方法

$ roxctl central debug dump [flags]

Expand
表5.3 オプション
オプション説明

--logs

true に設定すると、ログは Central ダンプに含まれます。デフォルト値は false です。

--output-dir string

バンドルコンテンツの出力ディレクトリーを指定します。デフォルト値は、現在のディレクトリー内で自動的に生成されたディレクトリー名です。

-t, --timeout duration

API リクエストのタイムアウトを指定します。これは、リクエストの最大期間です。デフォルト値は 5m0s です。

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]

Expand
表5.4 オプション
オプション説明

-t, --timeout duration

リクエストの最大期間を表す API リクエストのタイムアウトを指定します。デフォルト値は 20m0s です。

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]

Expand
表5.5 オプション
オプション説明

--clusters strings

ログを収集する Sensor クラスターのコンマ区切りのリストを指定します。

--output-dir string

診断バンドルを保存する出力ディレクトリーを指定します。

--since string

Sensor クラスターからログを収集するタイムスタンプを指定します。

-t, --timeout duration

API リクエストのタイムアウトを指定します。これにより、リクエストの最大期間が指定されます。デフォルト値は 5m0s です。

第6章 ビルド時のネットワークポリシーの生成

ビルド時のネットワークポリシージェネレーターは、roxctl CLI に含まれています。ビルド時のネットワークポリシー生成機能の場合、roxctl CLI は RHACS Central と通信する必要がないため、任意の開発環境で使用できます。

6.1. ビルド時のネットワークポリシージェネレーターの使用

重要

ビルド時のネットワークポリシー生成は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

前提条件

  1. ビルド時のネットワークポリシージェネレーターは、コマンドの実行時に指定したディレクトリーを再帰的にスキャンします。したがって、コマンドを実行する前に、サービスマニフェスト、config map、ワークロードマニフェスト (PodDeploymentReplicaSetJobDaemonSetStatefulSet など) が、指定されたディレクトリーに YAML ファイルとしてすでに存在している必要があります。
  2. kubectl apply -f コマンドを使用して、これらの YAML ファイルをそのまま適用できることを確認します。ビルド時のネットワークポリシージェネレーターは、Helm スタイルのテンプレートを使用するファイルでは機能しません。
  3. サービスネットワークアドレスがハードコーディングされていないことを確認します。サービスに接続する必要があるすべてのワークロードは、サービスネットワークアドレスを変数として指定する必要があります。この変数は、ワークロードのリソース環境変数を使用するか、config map で指定できます。

  4. サービスネットワークアドレスは、次の公式の正規表現パターンに一致する必要があります。

    (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.

手順

  1. help コマンドを実行して、ビルド時のネットワークポリシー生成機能が使用可能であることを確認します。

    $ roxctl netpol generate -h
  2. netpol generate コマンドを使用してポリシーを生成します。

    $ roxctl netpol generate <folder-path> 
    1
    1
    Kubernetes マニフェストがあるフォルダーのパスを指定します。

roxctl netpol generate コマンドは、次のオプションをサポートしています。

Expand

オプション

説明

-h、--help

netpol コマンドのヘルプテキストを表示します。

-d, --output-dir <dir>

生成されたポリシーをターゲットフォルダーに保存します。ポリシーごとに 1 つのファイルです。

-f, --output-file <filename>

生成されたポリシーを保存して単一の YAML ファイルにマージします。

--fail

最初に発生したエラーで失敗します。デフォルト値は false です。

--remove

出力パスがすでに存在する場合は削除します。

--strict

警告をエラーとして扱います。デフォルト値は false です。

第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
    
      },
    [...]

    1
    イメージのフィンガープリントとして機能するイメージの一意の識別子これは、イメージの完全性と信頼性を確保するのに役立ちます。
    2
    イメージに関する詳細情報が含まれます。
    3
    イメージが保存されるイメージレジストリーの場所。
    4
    イメージへのリモートパス。
    5
    このイメージに関連付けられたバージョンまたはタグ。
    6
    レジストリー、リモートパス、およびタグを組み合わせたイメージの完全な名前。

7.2. roxctl image scan コマンドのオプション

roxctl image scan コマンドは、次のオプションをサポートしています。

Expand
オプション説明

--cluster string

イメージスキャンを特定のクラスターに委任します。

--compact-output

JSON 出力をコンパクトな形式で出力します。デフォルト値は false です。

-f, --force

Central のスキャンのキャッシュを無視し、Scanner から新たにもう一度強制的にプルします。デフォルト値は false です。

--headers strings

ヘッダーを表形式で出力します。デフォルト値には、COMPONENTVERSIONCVESEVERITY、および LINK が含まれます。

--headers-as-comments

CSV 表形式出力にヘッダーをコメントとして出力します。デフォルト値は false です。

-h--help

roxctl image scan コマンドのヘルプテキストを表示します。

-i, --image string

スキャンするイメージ名と参照を指定します。

-a, --include-snoozed

延期されたものと延期されていないものの両方の一般的な脆弱性とエクスポージャー (CVE) を返します。デフォルト値は false です。

--merge-output

表形式の出力で重複したセルを結合します。デフォルト値は true です。

--no-header

表形式のヘッダーを出力しません。デフォルト値は false です。

-o, --output string

出力形式を指定します。形式を選択して結果の表示をカスタマイズできます。形式には、テーブルCSVJSON、および SARIF が含まれます。

-r, --retries int

操作がエラーで中止されるまでの再試行回数を設定します。デフォルト値は 3 です。

-d, --retry-delay int

次の再試行までの待機時間を秒単位で設定します。デフォルト値は 3 です。

--row-jsonpath-expressions string

JSON パス式を使用して、JSON オブジェクトから行を作成します。詳細は、roxctl image scan --help コマンドを実行してください。

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る