58.3. API ユーザー
必要な権限を使用して、保護された Cruise Control REST API に安全に直接アクセスするための REST API ユーザーを作成します。
これにより、ロールと権限を定義して、上級ユーザーやサードパーティーのアプリケーションが、基本的な HTTP 認証を無効にすることなく、Cruise Control REST API にアクセスできるようになります。
次のユースケースでは、API セキュリティーを無効にせずに Cruise Control API にアクセスするとメリットが得られます。
- Cruise Control ユーザーインターフェイスを使用して、Streams for Apache Kafka で管理される Kafka クラスターを監視する。
- クラスターとパーティションの負荷やユーザータスクに関する詳細情報など、Streams for Apache Kafka または Cruise Control のセンサーメトリクスでは入手できない Cruise Control 固有の統計情報を収集する。
- 保護された環境で Cruise Control をデバッグする。
Cruise Control は、Jetty の HashLoginService
ファイル形式で API ユーザーの認証情報を読み取ります。
標準の Cruise Control USER
および VIEWER
ロールがサポートされています。* USER
は、ブートストラップとトレインを除くすべての GET
エンドポイントにアクセスできます。* VIEWER
は、kafka_cluster_state
、user_tasks
、および review_board
エンドポイントにアクセスできます。この例では、cruise-control-auth.txt
というテキストファイルに、2 つのカスタム API ユーザーをサポートされている形式で定義します。
userOne: passwordOne, USER userTwo: passwordTwo, VIEWER
userOne: passwordOne, USER
userTwo: passwordTwo, VIEWER
次に、このファイルを使用して、次のコマンドでシークレットを作成します。
oc create secret generic cruise-control-api-users-secret --from-file=cruise-control-auth.txt=cruise-control-auth.txt
oc create secret generic cruise-control-api-users-secret --from-file=cruise-control-auth.txt=cruise-control-auth.txt
次に、Kafka リソースの spec.cruiseControl.apiUsers
セクションでシークレットを参照します。
Cruise Control apiUsers 設定の例
その後、Streams for Apache Kafka はこのシークレットの内容をデコードして使用し、Cruise Control の API 認証情報ファイルに入力します。