Confluent CLI を使用すると、コマンドラインから ApsaraMQ for Confluent クラスター、ロールベースアクセス制御 (RBAC) のロールバインディング、およびアクセス制御リスト (ACL) を管理できます。これを使用して、Metadata Service (MDS) への認証、クラスター ID の取得、ユーザーとリソースに対する詳細な権限の設定が可能です。
事前準備
以下が準備できていることを確認してください。
ApsaraMQ for Confluent インスタンス
必要な権限を持つ Lightweight Directory Access Protocol (LDAP) ユーザー。ユーザーの作成または管理については、「ユーザーの管理と権限付与」をご参照ください。
ご利用のインスタンスの MDS エンドポイントと TLS 証明書 (ApsaraMQ for Confluent コンソールから入手可能)
Confluent CLI のインストール
ステップ 1:バイナリのダウンロード
Confluent CLI インストールページからご利用のオペレーティングシステム用の Confluent CLI バイナリをダウンロードするか、以下の表の直接リンクを使用してください。
| オペレーティングシステム | アーキテクチャ | ダウンロード |
|---|---|---|
| macOS (Darwin) | AMD64 | confluent_darwin_amd64.tar.gz |
| macOS (Darwin) | ARM64 | confluent_darwin_arm64.tar.gz |
| Windows | AMD64 | confluent_windows_amd64.zip |
| Linux | AMD64 | confluent_linux_amd64.tar.gz |
| Linux | ARM64 | confluent_linux_arm64.tar.gz |
| Alpine Linux | AMD64 | confluent_alpine_amd64.tar.gz |
| Alpine Linux | ARM64 | confluent_alpine_arm64.tar.gz |
ファイルの整合性を確認するには、チェックサムファイルをダウンロードしてください。
ステップ 2:CLI を PATH に追加
PATH 環境変数を設定して、展開したバイナリを含むディレクトリを追加します。
export PATH=<path-to-cli>:$PATH<path-to-cli> を Confluent CLI バイナリを展開したディレクトリの絶対パスに置き換えてください。
ステップ 3 (任意):データディレクトリの変更
デフォルトでは、Confluent CLI はログとデータをローカルディレクトリに保存します。このディレクトリに十分なストレージ容量がない場合は、CONFLUENT_CURRENT 環境変数を別の場所に設定してください。
confluentステップ 4:インストールの確認
次のコマンドを実行します。
confluentインストールが成功すると、以下のような情報が返されます。
confluent login \
--url <mds-endpoint> \
--certificate-authority-path <path-to-certificate.pem>MDS へのログイン
クラスターまたは権限管理コマンドを実行する前に、Confluent Platform Metadata Service (MDS) に認証します。MDS は暗号化された通信のために HTTPS を使用します。
ApsaraMQ for Confluent コンソールから以下の情報を収集します。
| 情報 | 場所 |
|---|---|
| LDAP ユーザー名とパスワード | [ユーザー] ページ |
| MDS エンドポイント | [アクセスリンクとポート] ページ |
| TLS 証明書 | [インスタンス詳細] ページの [証明書] セクション |
次のコマンドを実行してログインします。
confluent login \
--url <mds-endpoint> \
--certificate-authority-path <path-to-certificate.pem>プロンプトが表示されたら、LDAP のユーザー名とパスワードを入力します。
Enter your Confluent credentials:
Username: <your-username>
Password: <your-password>| プレースホルダー | 説明 | 例 |
|---|---|---|
<mds-endpoint> | パブリックまたはプライベート MDS エンドポイント | https://pub-kafka-xxxxxxxxx.csp.aliyuncs.com:443 |
<path-to-certificate.pem> | ダウンロードした TLS 証明書へのパス | /etc/confluent/certs/ca.pem |
ログインが成功すると、エラーメッセージなしでコマンドプロンプトに戻ります。
クラスター ID の取得
多くの Confluent CLI コマンドにはクラスター ID が必要です。サービスエンドポイントを指定して confluent cluster describe を使用して取得します。
ApsaraMQ for Confluent コンソールの [アクセスリンクとポート] ページからサービスエンドポイントを取得します。例えば、ksqlDB のパブリックエンドポイントは https://pub-ksqldb-xxxxxxxxxxx.csp.aliyuncs.com:443 の形式を使用します。
# Kafka クラスター
confluent cluster describe --url <mds-url>
# Schema Registry クラスター
confluent cluster describe --url <schema-registry-url>
# ksqlDB クラスター
confluent cluster describe --url <ksqldb-url>RBAC 権限の管理
ApsaraMQ for Confluent は、事前定義された RBAC ロールを使用して権限を管理します。RBAC は、クラスターまたはリソースレベルでユーザーに広範なロールベースの権限を割り当てます。利用可能なロールの完全なリストについては、「Use Predefined RBAC Roles in Confluent Platform」をご参照ください。
その他の例については、「Confluent CLI を使用した RBAC 認可の例」をご参照ください。
RBAC コマンドを実行する前に、MDS にログインしてください。このドキュメントのすべてのコマンドは、次のグローバルフラグをサポートしています:-h, --help (ヘルプの表示)、--unsafe-trace (-vvvv と同等で、HTTP リクエストとレスポンスもログに記録)、および -v, --verbose count (詳細度の増加)。
Identity and Access Management (IAM) ロールのリスト表示
利用可能なすべての IAM ロールをリスト表示します。IAM ロールは、RBAC に基づいてユーザーとサービスのリソースへのアクセス権限を定義します。
confluent iam rbac role listIAM ロールの詳細表示
特定の IAM ロールの詳細を表示します。
confluent iam rbac role describe <role-name>フラグ
| フラグ | 説明 |
|---|---|
--client-cert-path | mTLS 認証用のクライアント証明書へのパス |
--client-key-path | mTLS 認証用のクライアント秘密鍵へのパス |
--context | CLI コンテキスト名 |
-o, --output | 出力フォーマット:human、json、または yaml (デフォルト:human) |
ロールバインディングの作成
IAM ロールをユーザーまたはサービスプリンシパルにバインドします。
confluent iam rbac role-binding create [flags]必須フラグ
| フラグ | 説明 |
|---|---|
--role | 割り当てるロール名 |
--principal | User:<username> 形式のプリンシパル |
スコープフラグ
| フラグ | 説明 |
|---|---|
--kafka-cluster | Kafka クラスター ID |
--schema-registry-cluster | Schema Registry クラスター ID |
--ksql-cluster | ksqlDB クラスター ID |
--connect-cluster | Kafka Connect クラスター ID |
--cmf | Confluent Managed Flink (CMF) ID |
--flink-environment | Flink 環境 ID |
その他のフラグ
| フラグ | 説明 |
|---|---|
--resource | Prefix:ID 形式のリソース |
--prefix | リソース名をプレフィックスパターンとして扱う |
--cluster-name | ロールバインディングのリスト表示用のクラスター名 |
--context | CLI コンテキスト名 |
--client-cert-path | mTLS 認証用のクライアント証明書へのパス |
--client-key-path | mTLS 認証用のクライアント秘密鍵へのパス |
-o, --output | 出力フォーマット:human、json、または yaml (デフォルト:human) |
例
ユーザー sr-read に、すべての Schema Registry のサブジェクトに対する DeveloperRead 権限を付与します。
confluent iam rbac role-binding create \
--principal User:sr-read \
--role DeveloperRead \
--resource Subject:* \
--kafka-cluster <kafka-cluster-id> \
--schema-registry-cluster <schema-registry-cluster-id>ユーザー sr-admin に、Schema Registry クラスターに対する SystemAdmin 権限を付与します。
confluent iam rbac role-binding create \
--principal User:sr-admin \
--role SystemAdmin \
--kafka-cluster <kafka-cluster-id> \
--schema-registry-cluster <schema-registry-cluster-id>ロールバインディングのリスト表示
既存のロールバインディングを表示します。
confluent iam rbac role-binding list [flags]主要なフラグ
| フラグ | 説明 |
|---|---|
--principal | プリンシパル ID でフィルタリングします。省略した場合、すべてのプリンシパルをリスト表示します。 |
--current-user | 現在のユーザーのロールバインディングをリスト表示します |
--role | ロール名でフィルタリングします。--principal が省略された場合、このロールを持つすべてのプリンシパルをリスト表示します。 |
--kafka-cluster | Kafka クラスター ID スコープ |
--schema-registry-cluster | Schema Registry クラスター ID スコープ |
--ksql-cluster | ksqlDB クラスター ID スコープ |
--connect-cluster | Kafka Connect クラスター ID スコープ |
--cmf | Confluent Managed Flink (CMF) ID スコープ |
--flink-environment | Flink 環境 ID スコープ |
--resource | Prefix:ID 形式のリソース |
--inclusive | ネストされたスコープのロールバインディングを含めます |
--client-cert-path | mTLS 認証用のクライアント証明書へのパス |
--client-key-path | mTLS 認証用のクライアント秘密鍵へのパス |
--cluster-name | クラスター名。クラスタースコープを指定します。 |
-o, --output | 出力フォーマット:human、json、または yaml (デフォルト:human) |
例
Schema Registry クラスターで DeveloperRead 権限を持つすべてのユーザーをリスト表示します。
confluent iam rbac role-binding list \
--role DeveloperRead \
--kafka-cluster <kafka-cluster-id> \
--schema-registry-cluster <schema-registry-cluster-id>Schema Registry クラスターで SystemAdmin 権限を持つすべてのユーザーをリスト表示します。
confluent iam rbac role-binding list \
--role SystemAdmin \
--kafka-cluster <kafka-cluster-id> \
--schema-registry-cluster <schema-registry-cluster-id>ロールバインディングの削除
ユーザーから IAM ロールを削除します。
confluent iam rbac role-binding delete [flags]このコマンドは role-binding create と同じフラグを使用し、さらに以下を追加します。
| フラグ | 説明 |
|---|---|
--force | 削除確認プロンプトをスキップします |
例
Schema Registry クラスターで、ユーザー sr-read から DeveloperRead 権限を削除します。
confluent iam rbac role-binding delete \
--principal User:sr-read \
--role DeveloperRead \
--resource Subject:* \
--kafka-cluster <kafka-cluster-id> \
--schema-registry-cluster <schema-registry-cluster-id>Schema Registry クラスターで、ユーザー sr-admin から SystemAdmin 権限を削除します。
confluent iam rbac role-binding delete \
--principal User:sr-admin \
--role SystemAdmin \
--kafka-cluster <kafka-cluster-id> \
--schema-registry-cluster <schema-registry-cluster-id>ACL の管理
ACL は、Kafka クラスターに対して詳細なリソースレベルの権限を提供します。RBAC がユーザーに事前定義されたロールを割り当てるのに対し、ACL では特定のユーザーやグループがトピックやコンシューマーグループなどの個々のリソースに対して実行できる操作を正確に制御できます。
ACL ルールは 5 つのコンポーネントで構成されます。
| コンポーネント | 説明 | 例 |
|---|---|---|
| プリンシパル | ユーザーまたはグループ | User:Bob、User:* (すべてのユーザー) |
| ホスト | プリンシパルが接続する IP アドレス | 198.51.xx.xx、* (任意のホスト) |
| リソース | Kafka リソース | --topic test-topic、--consumer-group my-group |
| 操作 | 許可されるアクション | READ、WRITE、CREATE、DELETE |
| 権限 | 許可または拒否 | --allow、--deny |
各クラスターは最大 1,000 個の ACL をサポートします。
ApsaraMQ for Confluent の IAM ロール用に作成された ACL は、IPv6 アドレス上のルールをサポートしますが、CIDR ブロックやサブネット上のルールはサポートしません。
デフォルトでは、ACL でカバーされていないアドレスからのアクセスは拒否されます。
--denyフラグは--allowフラグよりも優先されます。ワイルドカード文字
*を--principalと共に使用して、すべてのユーザーにルールを適用します。--prefixフラグを使用して、名前のプレフィックスでリソースを照合します。例えば、--topic abc- --prefixは、名前がabc-で始まるすべてのトピックにルールを適用します。
完全なコマンドリファレンスについては、「confluent iam acl」をご参照ください。
ACL の作成
confluent iam acl create [flags]必須フラグ
| フラグ | 説明 |
|---|---|
--kafka-cluster | Kafka クラスター ID |
--principal | User:<name> または Group:<name> 形式のプリンシパル |
--operation | 操作:all、alter、alter-configs、cluster-action、create、delete、describe、describe-configs、idempotent-write、read、write |
任意フラグ
| フラグ | 説明 |
|---|---|
--allow | アクセスを許可 |
--deny | アクセスを拒否 |
--host | アクセスを制限する IP アドレス (デフォルト:*) |
--topic | トピックリソース。--prefix と組み合わせると、プレフィックスに一致するすべてのトピックに適用されます。 |
--consumer-group | コンシューマーグループリソース |
--transactional-id | トランザクション ID リソース |
--cluster-scope | ACL を Kafka クラスター自体に適用します |
--prefix | リソース名をプレフィックスパターンとして扱います |
--client-cert-path | mTLS 認証用のクライアント証明書へのパス |
--client-key-path | mTLS 認証用のクライアント秘密鍵へのパス |
--context | CLI コンテキスト名 |
例
IP アドレス 198.51.xx.xx のユーザー Bob に test-topic からの読み取りを許可します。
confluent iam acl create \
--allow \
--principal User:Bob \
--operation READ \
--host 198.51.xx.xx \
--topic test-topic \
--kafka-cluster <kafka-cluster-id>すべてのユーザーに test-topic からの読み取りを許可しますが、ユーザー BadBob は拒否します。
# すべてのユーザーを許可
confluent iam acl create \
--allow \
--principal User:'*' \
--operation READ \
--topic test-topic \
--kafka-cluster <kafka-cluster-id>
# BadBob を拒否 (--deny は --allow より優先されます)
confluent iam acl create \
--deny \
--principal User:BadBob \
--operation READ \
--topic test-topic \
--kafka-cluster <kafka-cluster-id>ACL のリスト表示
confluent iam acl list [flags]list コマンドは、create と同じフィルタリングフラグ (--principal、--operation、--topic など) に加えて、以下を受け入れます。
| フラグ | 説明 |
|---|---|
-o, --output | 出力フォーマット:human、json、または yaml (デフォルト:human) |
例
Kafka クラスターのすべての ACL をリスト表示します。
confluent iam acl list --kafka-cluster <kafka-cluster-id>ACL の削除
confluent iam acl delete [flags]必須フラグ
| フラグ | 説明 |
|---|---|
--kafka-cluster | Kafka クラスター ID |
--principal | User:<name> または Group:<name> 形式のプリンシパル |
--operation | 操作:all、alter、alter-configs、cluster-action、create、delete、describe、describe-configs、idempotent-write、read、write |
--host | IP アドレス (デフォルト:*) |
delete コマンドは、create と同じ任意フラグ (--topic、--consumer-group、--prefix など) に加えて、以下を受け入れます。
| フラグ | 説明 |
|---|---|
--force | 削除確認プロンプトをスキップします |
例
ユーザー Bob が test-topic から読み取ることを許可する ACL を削除します。
confluent iam acl delete \
--allow \
--principal User:Bob \
--operation READ \
--host 198.51.xx.xx \
--topic test-topic \
--kafka-cluster <kafka-cluster-id>参照情報
Confluent CLI の完全なコマンドリファレンスについては、「Confluent CLI Command Reference」をご参照ください。