2.3. roxctl CLI を使用した認証
認証には、API トークン、管理者パスワード、または roxctl central login コマンドを使用できます。
API トークンを効果的に使用するには、次のガイドラインに従ってください。
- 継続的インテグレーション (CI) を備えた運用環境で API トークンを使用します。各トークンには特定のアクセス許可が割り当てられ、実行できるアクションを制御できます。さらに、API トークンはブラウザーベースのログインなどの対話型プロセスを必要としないため、自動プロセスに最適です。これらのトークンの有効期間 (TTL) の値は 1 年で、有効期間が長くなり、シームレスな統合と運用効率が向上します。
- 管理者パスワードはテスト目的にのみ使用してください。これを実稼働環境で使用しないでください。
-
roxctl central loginコマンドは、対話型かつローカルでのみ使用してください。
-
権限の昇格を防ぐために、新しいトークンの作成時に、ロールの権限によりトークンに割り当てることができる権限が制限されます。たとえば、統合リソースに対する
read権限しか持っていない場合、write権限を持つトークンを作成できません。 - 他のユーザーが使用できるトークンをカスタムロールで作成する場合は、そのカスタムロールに必要な権限を割り当てる必要があります。
-
CI/CD パイプライン、スクリプト、およびその他の自動化などのマシン間通信には有効期限の短いトークンを使用します。また、
roxctlCLI や API アクセスなどの人間とマシンの間の通信には、roxctl central loginコマンドを使用します。 - Microsoft Entra ID、Google Cloud Identity Platform、AWS Cognito など、ほとんどのクラウドサービスプロバイダーは OIDC アイデンティティートークンをサポートしています。これらのサービスが発行した OIDC アイデンティティートークンは、RHACS の短期アクセスに使用できます。
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ディレクトリーに保存されます。
-