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
次に、このファイルを使用して、次のコマンドでシークレットを作成します。
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 設定の例
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
# ...
cruiseControl:
# ...
apiUsers:
type: hashloginservice
valueFrom:
secretKeyRef:
name: cruise-control-api-users-secret
key: cruise-control-auth.txt
...
その後、Streams for Apache Kafka はこのシークレットの内容をデコードして使用し、Cruise Control の API 認証情報ファイルに入力します。