このトピックでは、Confluent CLI をインストールして使用する方法について説明します。
Confluent CLI のインストール
Confluent CLI をダウンロードし、お使いのオペレーティングシステムに基づいて最新のバイナリファイルをインストールします。
PATH 環境変数を、ダウンロードしたバイナリファイルが保存されているディレクトリに設定します。
export PATH=<path-to-cli>:$PATH(オプション) CLI ログとデータのデフォルトディレクトリに十分なストレージ容量がない場合は、CONFLUENT_CURRENT 環境変数を、使用する別のディレクトリに設定できます。
export CONFLUENT_CURRENT=<path-to-confluent-local-data>Confluent CLI で、次のコマンドを実行します。
confluent以下のような情報が返されるかどうかを確認します。
Manage your Confluent Platform. Usage: confluent [command] Available Commands: audit-log Manage audit log configuration. cloud-signup Sign up for Confluent Cloud. cluster Retrieve metadata about Confluent Platform clusters. completion Print shell completion code. configuration Configure the Confluent CLI. connect Manage Kafka Connect. context Manage CLI configuration contexts. flink Manage Apache Flink. help Help about any command iam Manage RBAC, ACL and IAM permissions. kafka Manage Apache Kafka. ksql Manage ksqlDB. local Manage a local Confluent Platform development environment. login Log in to Confluent Cloud or Confluent Platform. logout Log out of Confluent Platform. plugin Manage Confluent plugins. prompt Add Confluent CLI context to your terminal prompt. schema-registry Manage Schema Registry. secret Manage secrets for Confluent Platform. shell Start an interactive shell. update Update the Confluent CLI. version Show version of the Confluent CLI. Flags: --version Show version of the Confluent CLI. -h, --help Show help for this command. --unsafe-trace Equivalent to -vvvv, but also log HTTP requests and responses which might contain plaintext secrets. -v, --verbose count Increase verbosity (-v for warn, -vv for info, -vvv for debug, -vvvv for trace). Use "confluent [command] --help" for more information about a command.
Confluent CLI へのログオン
Lightweight Directory Access Protocol (LDAP) ユーザーのユーザー名とパスワードを使用して、Confluent Platform Metadata Service (MDS) にログインします。MDS は、暗号化伝送に HTTPS を使用します。
ユーザー名とパスワード: ApsaraMQ for Confluent コンソールの [ユーザー] ページで、LDAP ユーザーのユーザー名とパスワードを取得および管理できます。新しいユーザーを使用する場合は、最初に必要な権限を付与してください。詳細については、「ユーザーを管理し、権限を付与する」をご参照ください。
MDS へのアクセスに使用するエンドポイント: ApsaraMQ for Confluent コンソールの [アクセスリンクとポート] ページで、MDS へのアクセスに使用するエンドポイントを取得できます。次の例では、パブリックエンドポイントが使用されています。
証明書: ApsaraMQ for Confluent コンソールの [インスタンスの詳細] ページの [証明書] セクションで証明書をダウンロードできます。
Confluent CLI で、次のコマンドを実行して MDS にログインします。
confluent login --url https://pub-kafka-xxxxxxxxx.csp.aliyuncs.com:443 --certificate-authority-path xxxxx.pem Enter your Confluent credentials: Username: your-username Password: your-password以下のような情報が表示された場合は、MDS にログインしています。
[root@iZbp13z******** cli]# confluent login --url https://pub-kafka-xxxxxxxxx.csp.aliyuncs.com:443 --certificate-authority-path xxxxx.pem Enter your Confluent credentials: Username: root Password: ******** [root@iZbp13z******** cli]#
Confluent CLI を使用してクラスタ情報を表示する
Confluent CLI でコマンドを実行する場合、クラスタ ID が必要です。次のサンプルコードは、クラスタ ID をクエリする方法の例を示しています。url パラメータは、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>Confluent CLI を使用して RBAC 権限を管理する
ApsaraMQ for Confluent は、事前定義されたロールベースアクセス制御 (RBAC) ロールを提供します。それらに基づいて権限を管理できます。詳細については、「Confluent Platform で事前定義された RBAC ロールを使用する」を参照してください。Confluent CLI を使用して権限を管理する前に、MDS にログインする必要があります。
このセクションでは、Confluent CLI で RBAC 権限を管理するための一般的なコマンドについて説明します。詳細については、「Confluent CLI を使用した RBAC 権限付与の例」をご参照ください。
IAM ロールのリストを表示する
ApsaraMQ for Confluent では、Identity and Access Management (IAM) ロールを使用して、さまざまなユーザーとサービスのリソースへのアクセス権限を定義します。ほとんどの場合、権限は RBAC に基づいて実装されます。ユーザーまたはサービスは、割り当てられたロールを引き受けることによって、特定の権限セットを取得します。
IAM ロールのリストを表示するには、次のコマンドを実行します。
confluent iam rbac role listIAM ロールの詳細を表示する
IAM ロールの詳細を表示するには、次のコマンドを実行します。
confluent iam rbac role describe <name> [flags]フラグ
--client-cert-path string MDS によって検証されるクライアント証明書のパス。mTLS 認証の場合は含めます。
--client-key-path string クライアント秘密鍵へのパス。mTLS 認証の場合は含めます。
--context string CLI コンテキスト名。
-o, --output string 出力形式を "human"、 "json"、または "yaml" として指定します。(デフォルトは "human")グローバルフラグ
-h, --help このコマンドのヘルプを表示します。
--unsafe-trace -vvvv と同等ですが、プレーンテキストのシークレットを含む可能性のある HTTP リクエストとレスポンスもログに記録します。
-v, --verbose count 冗長性を上げます (-v は警告、-vv は情報、-vvv はデバッグ、-vvvv はトレース)。ユーザーに IAM ロールをバインドする
ユーザーに IAM ロールをバインドするには、次のコマンドを実行します。
confluent iam rbac role-binding create [flags]フラグ
--role string 必須: 新しいロールバインディングのロール名。
--principal string 必須: "Prefix:ID" 形式を使用したプリンシパルタイプと識別子。
--kafka-cluster string ロールバインディングの Kafka クラスタ ID。
--schema-registry-cluster string ロールバインディングの Schema Registry クラスタ ID。
--ksql-cluster string ロールバインディングの ksqlDB クラスタ ID。
--connect-cluster string ロールバインディングの Kafka Connect クラスタ ID。
--cmf string Confluent Managed Flink (CMF) ID。CMF 範囲を指定します。
--flink-environment string Flink 環境 ID。Flink 環境範囲を指定します。
--cluster-name string ロールバインディングリストのクラスタを一意に識別するためのクラスタ名。
--context string CLI コンテキスト名。
--resource string "Prefix:ID" 形式を使用したリソースタイプと識別子。
--prefix 指定されたリソース名をプレフィックスパターンとして扱うかどうか。
--client-cert-path string MDS によって検証されるクライアント証明書のパス。mTLS 認証の場合は含めます。
--client-key-path string クライアント秘密鍵へのパス。mTLS 認証の場合は含めます。
-o, --output string 出力形式を "human"、 "json"、または "yaml" として指定します。(デフォルトは "human")グローバルフラグ
-h, --help このコマンドのヘルプを表示します。
--unsafe-trace -vvvv と同等ですが、プレーンテキストのシークレットを含む可能性のある HTTP リクエストとレスポンスもログに記録します。
-v, --verbose count 冗長性を上げます (-v は警告、-vv は情報、-vvv はデバッグ、-vvvv はトレース)。サンプルコード:
# Schema Registry クラスタの DeveloperRead ロールを sr-read ユーザーにバインドします。
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>
# Schema Registry クラスタの SystemAdmin ロールを sr-admin ユーザーにバインドします。
confluent iam rbac role-binding create --principal User:sr-admin --role SystemAdmin --kafka-cluster <kafka-cluster-id> --schema-registry-cluster <schema-registry-cluster-id>IAM ロールにバインドされているユーザーを表示する
IAM ロールにバインドされているユーザーを表示するには、次のコマンドを実行します。
confluent iam rbac role-binding list [flags]フラグ
--principal string プリンシパル ID。ロールバインディングをこのプリンシパルに制限します。指定しない場合、すべてのプリンシパルとロールバインディングが一覧表示されます。
--current-user 現在のユーザーに割り当てられているロールバインディングを一覧表示します。
--role string "--principal" に割り当てられた事前定義ロール。" --principal" が指定されていない場合、ロールに割り当てられたすべてのプリンシパルが一覧表示されます。
--kafka-cluster string Kafka クラスタ ID。Kafka クラスタの範囲を指定します。
--schema-registry-cluster string Schema Registry クラスタ ID。Schema Registry クラスタの範囲を指定します。
--ksql-cluster string ksqlDB クラスタ ID。ksqlDB クラスタの範囲を指定します。
--connect-cluster string Kafka Connect クラスタ ID。Connect クラスタの範囲を指定します。
--cmf string Confluent Managed Flink (CMF) ID。CMF 範囲を指定します。
--flink-environment string Flink 環境 ID。Flink 環境範囲を指定します。
--client-cert-path string MDS によって検証されるクライアント証明書のパス。mTLS 認証の場合は含めます。
--client-key-path string クライアント秘密鍵へのパス。mTLS 認証の場合は含めます。
--context string CLI コンテキスト名。
--cluster-name string クラスタ名。クラスタの範囲を指定します。
--resource string "Prefix:ID" 形式を使用したリソースタイプと識別子。" --role" と共に指定し、プリンシパルがない場合は、すべてのプリンシパルとロールバインディングが一覧表示されます。
--inclusive 指定された範囲とネストされた範囲のロールバインディングを一覧表示します。それ以外の場合は、指定された範囲のロールバインディングを一覧表示します。範囲が指定されていない場合は、組織スコープのロールバインディングのみが一覧表示されます。
-o, --output string 出力形式を "human"、 "json"、または "yaml" として指定します。(デフォルトは "human")グローバルフラグ
-h, --help このコマンドのヘルプを表示します。
--unsafe-trace -vvvv と同等ですが、プレーンテキストのシークレットを含む可能性のある HTTP リクエストとレスポンスもログに記録します。
-v, --verbose count 冗長性を上げます (-v は警告、-vv は情報、-vvv はデバッグ、-vvvv はトレース)。サンプルコード:
# 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 ロールを削除する
ユーザーから IAM ロールを削除するには、次のコマンドを実行します。
confluent iam rbac role-binding delete [flags]フラグ
--role string 必須: 既存のロールバインディングのロール名。
--principal string 必須: "Prefix:ID" 形式を使用したプリンシパルタイプと識別子。
--force 削除確認プロンプトをスキップします。
--kafka-cluster string ロールバインディングの Kafka クラスタ ID。
--schema-registry-cluster string ロールバインディングの Schema Registry クラスタ ID。
--ksql-cluster string ロールバインディングの ksqlDB クラスタ ID。
--connect-cluster string ロールバインディングの Kafka Connect クラスタ ID。
--cmf string Confluent Managed Flink (CMF) ID。CMF 範囲を指定します。
--flink-environment string Flink 環境 ID。Flink 環境範囲を指定します。
--cluster-name string ロールバインディングリストのクラスタを一意に識別するためのクラスタ名。
--context string CLI コンテキスト名。
--resource string "Prefix:ID" 形式を使用したリソースタイプと識別子。
--prefix 指定されたリソース名をプレフィックスパターンとして扱うかどうか。
--client-cert-path string MDS によって検証されるクライアント証明書のパス。mTLS 認証の場合は含めます。
--client-key-path string クライアント秘密鍵へのパス。mTLS 認証の場合は含めます。
-o, --output string 出力形式を "human"、 "json"、または "yaml" として指定します。(デフォルトは "human")グローバルフラグ
-h, --help このコマンドのヘルプを表示します。
--unsafe-trace -vvvv と同等ですが、プレーンテキストのシークレットを含む可能性のある HTTP リクエストとレスポンスもログに記録します。
-v, --verbose count 冗長性を上げます (-v は警告、-vv は情報、-vvv はデバッグ、-vvvv はトレース)。サンプルコード:
# sr-read ユーザーから Schema Registry クラスタの 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>
# sr-admin ユーザーから Schema Registry クラスタの 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>Confluent CLI を使用して ACL を管理する
このセクションでは、Confluent CLI を使用してアクセス制御リスト (ACL) を管理するための一般的なコマンドについて説明します。詳細については、「confluent iam acl」をご参照ください。
制限
クラスタあたり最大 1,000 個の ACL を作成できます。
ACL を作成する
次のコマンドを実行して、ACL を作成します。
confluent iam acl create [flags]フラグ
--kafka-cluster string 必須: ACL コマンドの範囲の Kafka クラスタ ID。
--principal string 必須: この操作のプリンシパル。"User:" または "Group:" をプレフィックスとして付けます。
--operation string 必須: ACL 操作を次のように設定します: (all, alter, alter-configs, cluster-action, create, delete, describe, describe-configs, idempotent-write, read, write)。
--host string アクセスするホストを設定します。IP アドレスのみがサポートされています。(デフォルトは "*")
--allow リソースへのアクセスを許可する ACL 権限。
--deny リソースへのアクセスを制限する ACL 権限。
--cluster-scope クラスタリソースを設定します。このオプションを使用すると、ACL は Kafka クラスタ自体に対する指定された操作へのアクセスを許可します。
--consumer-group string コンシューマーグループリソースを設定します。
--transactional-id string TransactionalID リソースを設定します。
--topic string トピックリソースを設定します。このオプションを使用すると、ACL は、"--prefix" オプションが渡されたかどうかに応じて、そのプレフィックスで始まるトピックに対する指定された操作を許可します。
--prefix この値で始まるすべてのリソース名と一致するように設定します。
--client-cert-path string MDS によって検証されるクライアント証明書のパス。mTLS 認証の場合は含めます。
--client-key-path string クライアント秘密鍵へのパス。mTLS 認証の場合は含めます。
--context string CLI コンテキスト名。グローバルフラグ
-h, --help このコマンドのヘルプを表示します。
--unsafe-trace -vvvv と同等ですが、プレーンテキストのシークレットを含む可能性のある HTTP リクエストとレスポンスもログに記録します。
-v, --verbose count 冗長性を上げます (-v は警告、-vv は情報、-vvv はデバッグ、-vvvv はトレース)。ApsaraMQ for Confluent で IAM ロール用に作成された ACL は、IPv6 アドレスのルールをサポートしますが、CIDR ブロックまたはサブネットのルールはサポートしていません。
デフォルトでは、作成された ACL の外部のアドレスからのアクセスは拒否されます。 --deny フラグを使用して、特定のアドレスからのアクセスを拒否することもできます。 --deny フラグは --allow フラグよりも優先されます。
ACL を使用して、グループとユーザーの権限を管理できます。アスタリスク (*) ワイルドカード文字を使用して、すべてのプリンシパルに権限を付与できます。
--prefix フラグを使用してプレフィックスを指定し、名前にプレフィックスが含まれるリソースの権限を管理できます。たとえば、ACL を作成するときにコマンドに --topic abc- と --prefix を含めると、ACL は名前が abc- で始まるすべてのトピックに適用されます。
たとえば、IP アドレスが 198.51.xx.xx のユーザー Bob が特定の Kafka クラスターの test-topic トピックからデータを読み取ることを許可する ACL を作成する場合は、次のコマンドを実行します。
confluent iam acl create --allow --principal User:Bob --operation READ --host 198.51.xx.xx --topic test-topic --kafka-cluster <kafka-cluster-id>BadBob 以外のすべてのユーザーが特定の Kafka クラスタの test-topic トピックからデータを読み取ることを許可するには、次のコマンドを実行します。
confluent iam acl create --allow --principal User:'*' --operation READ --topic test-topic --kafka-cluster <kafka-cluster-id>
confluent iam acl create --deny --principal User:BadBob --operation READ --topic test-topic --kafka-cluster <kafka-cluster-id>ACL を表示する
次のコマンドを実行して、ACL を表示します。
confluent iam acl list [flags]フラグ
--kafka-cluster string 必須: ACL コマンドの範囲の Kafka クラスタ ID。
--principal string この操作のプリンシパル。"User:" または "Group:" をプレフィックスとして付けます。
--operation string ACL 操作を次のように設定します: (all, alter, alter-configs, cluster-action, create, delete, describe, describe-configs, idempotent-write, read, write)。
--host string アクセスするホストを設定します。IP アドレスのみがサポートされています。(デフォルトは "*")
--allow リソースへのアクセスを許可する ACL 権限。
--deny リソースへのアクセスを制限する ACL 権限。
--cluster-scope クラスタリソースを設定します。このオプションを使用すると、ACL は Kafka クラスタ自体に対する指定された操作へのアクセスを許可します。
--consumer-group string コンシューマーグループリソースを設定します。
--transactional-id string TransactionalID リソースを設定します。
--topic string トピックリソースを設定します。このオプションを使用すると、ACL は、"--prefix" オプションが渡されたかどうかに応じて、そのプレフィックスで始まるトピックに対する指定された操作を許可します。
--prefix この値で始まるすべてのリソース名と一致するように設定します。
--client-cert-path string MDS によって検証されるクライアント証明書のパス。mTLS 認証の場合は含めます。
--client-key-path string クライアント秘密鍵へのパス。mTLS 認証の場合は含めます。
--context string CLI コンテキスト名。
-o, --output string 出力形式を "human"、 "json"、または "yaml" として指定します。(デフォルトは "human")グローバルフラグ
-h, --help このコマンドのヘルプを表示します。
--unsafe-trace -vvvv と同等ですが、プレーンテキストのシークレットを含む可能性のある HTTP リクエストとレスポンスもログに記録します。
-v, --verbose count 冗長性を上げます (-v は警告、-vv は情報、-vvv はデバッグ、-vvvv はトレース)。たとえば、IP アドレスが 198.51.xx.xx のユーザー Bob が特定の Kafka クラスタの test-topic トピックからデータを読み取ることを許可する ACL を表示する場合、次のコマンドを実行します。
confluent iam acl list --principal User:Bob --operation READ --host 198.51.xx.xx --topic test-topic --kafka-cluster <kafka-cluster-id>ACL を削除する
次のコマンドを実行して、ACL を削除します。
confluent iam acl delete [flags]フラグ
--kafka-cluster string 必須: ACL コマンドの範囲の Kafka クラスタ ID。
--principal string 必須: この操作のプリンシパル。"User:" または "Group:" をプレフィックスとして付けます。
--operation string 必須: ACL 操作を次のように設定します: (all, alter, alter-configs, cluster-action, create, delete, describe, describe-configs, idempotent-write, read, write)。
--host string アクセスするホストを設定します。IP アドレスのみがサポートされています。(デフォルトは "*")
--allow リソースへのアクセスを許可する ACL 権限。
--deny リソースへのアクセスを制限する ACL 権限。
--cluster-scope クラスタリソースを設定します。このオプションを使用すると、ACL は Kafka クラスタ自体に対する指定された操作へのアクセスを許可します。
--consumer-group string コンシューマーグループリソースを設定します。
--transactional-id string TransactionalID リソースを設定します。
--topic string トピックリソースを設定します。このオプションを使用すると、ACL は、"--prefix" オプションが渡されたかどうかに応じて、そのプレフィックスで始まるトピックに対する指定された操作を許可します。
--prefix この値で始まるすべてのリソース名と一致するように設定します。
--client-cert-path string MDS によって検証されるクライアント証明書のパス。mTLS 認証の場合は含めます。
--client-key-path string クライアント秘密鍵へのパス。mTLS 認証の場合は含めます。
--context string CLI コンテキスト名。
--force 削除確認プロンプトをスキップします。
-o, --output string 出力形式を "human"、 "json"、または "yaml" として指定します。(デフォルトは "human")グローバルフラグ
-h, --help このコマンドのヘルプを表示します。
--unsafe-trace -vvvv と同等ですが、プレーンテキストのシークレットを含む可能性のある HTTP リクエストとレスポンスもログに記録します。
-v, --verbose count 冗長性を上げます (-v は警告、-vv は情報、-vvv はデバッグ、-vvvv はトレース)。サンプルコード:
confluent iam acl delete --principal User:Bob --operation READ --host 198.51.xx.xx --topic test-topic --kafka-cluster <kafka-cluster-id>参照
Confluent CLI コマンドの詳細については、「Confluent CLI コマンドリファレンス」をご参照ください。