重要
このページの日本語コンテンツは古くなっている可能性があります。最新の英語版コンテンツをご覧になるには、こちらをクリックしてください。
チュートリアル: Confluent Cloud でのアクセス管理¶
このチュートリアルでは、Confluent Cloud のユーザーアカウントとサービスアカウントを管理するためのワークフローについてエンドツーエンドで説明します。手順は次のとおりです。
- ステップ 1: ユーザーを招待する
- ステップ 2: CLI、クラスター、および Kafka へのアクセス権限を構成する
- ステップ 3: トピックの作成と管理
- ステップ 4: 生成と消費
- ステップ 5: サービスアカウントおよび API キーとシークレットのペアの作成
- ステップ 6: ACL を使用したアクセス権限の管理
- ステップ 7: ログアウト
ステップ 1: ユーザーを招待する¶
ステップ 2: CLI、クラスター、および Kafka へのアクセス権限を構成する¶
E メールの招待を受け入れ、ウェブブラウザーを使用してログインします。
confluent login コマンドを使用して Confluent CLI にログインします。
confluent login
認証情報を指定します。
Enter your Confluent Cloud credentials: Email: jane.smith@big-data.com Password: ************
出力は以下のようになります。
Logged in as "jane.smith@big-data.com". Using environment "a-42619" ("default").
注釈
組織のデフォルトの環境にログインします。デフォルトとは別の環境で作業する場合は、ID(
<env-id>
)を使用して環境を設定します。confluent environment use <env-id>
出力は以下のようになります。
Now using a-4985 as the default (active) environment.
confluent kafka cluster list コマンドを使用して、使用可能なクラスターを一覧表示します。
confluent kafka cluster list
出力は以下のようになります。
Id | Name | Type | Provider | Region | Availability | Status +--------------+---------------+----------+----------+-------------+--------------+----------+ lkc-j5zrrm | dev-test-01 | STANDARD | gcp | us-central1 | single-zone | UP lkc-382g7m | dev-test-02 | BASIC | aws | us-west-2 | single-zone | UP lkc-43npm | prod-test-01 | BASIC | aws | us-west-2 | single-zone | UP lkc-lq8dd | stage-test-01 | BASIC | aws | us-west-2 | single-zone | DELETED
confluent kafka cluster use コマンドを使用して、クラスター dev-test-01(
lkc-j5zrrm
)に接続します。これが、コマンドが実行されるクラスターになります。必ず、この例に示しているクラスター ID を実際のクラスター ID に置き換えてください。confluent kafka cluster use lkc-j5zrrm
出力は以下のようになります。
Set Kafka cluster "lkc-j5zrrm" as the active cluster for environment "a-42619".
API キーとシークレットを作成し、保存します。トピックに対して生成と消費を行うためには、この手順を実行する必要があります。この手順では、ユーザーアカウント(完全なアクセス許可を持つアカウント)の API キーを作成します。サービスアカウントの API キーを作成する方法、および ACL を使用してサービスアカウントにアクセス許可を付与する方法については、ステップ 5 およびステップ 6 を参照してください。
API キーは、Confluent Cloud Console または Confluent CLI を使用して生成できます。必ず、API キーとシークレットを保存してください。
ウェブ UI を使用する場合は、API access タブ、+ Add key の順にクリックします。キーとシークレットを保存し、I have saved my API key and secret and am ready to continue の横にあるチェックボックスをオンにします。
Confluent CLI を使用する場合は、以下のコマンドを入力します(必ず、この例に示しているクラスター ID を、実際のクラスター ID に置き換えてください)。
confluent api-key create --resource lkc-j5zrrm
出力は以下のようになります。
It may take a couple of minutes for the API key to be ready. Save the API key and secret. The secret is not retrievable later. +---------+------------------------------------------------------------------+ | API Key | ABCD1EFGHIJK2LMN | | Secret | abC1dEf23G4H567IJKLmn8O1PqrST1UvW0XyZAbcdefGHIjK23LMNOpQRSTUv4WX | +---------+------------------------------------------------------------------+
省略可能:
confluent api-key store <key> <secret>
を使用して API シークレットを追加します。CLI を使用して API キーを作成した場合は、シークレットは自動的にローカルに保管されます。一方、ウェブ UI または別のマシンの CLI を使用して API キーを作成した場合は、まず保管しないとシークレットを CLI で使用することができません。API キーの作成後にシークレットを取得することができないため、これは必須です。confluent api-key store <api-key> <api-secret> --resource <resource-id>
Confluent CLI コマンドで使用する API キーを設定します。
confluent api-key use <api-key> --resource <resource-id>
ステップ 3: トピックの作成と管理¶
confluent kafka topic create コマンドを使用して、すべてデフォルト値でトピックを作成します。
confluent kafka topic create myTopic1
出力は以下のようになります。
Created topic "myTopic1".
別のトピックを追加します。
confluent kafka topic create myTopic2
パーティションが 6 つのトピックを作成します。
confluent kafka topic create myTopic3 --partitions 6
出力は以下のようになります。
Created topic "myTopic3".
confluent kafka topic list コマンドを使用してトピックを一覧表示します。
confluent kafka topic list
出力は以下のようになります。
Name +----------+ myTopic1 myTopic2 myTopic3
confluent kafka topic delete コマンドを使用して、
myTopic1
という名前のトピックを削除します。confluent kafka topic delete myTopic1
出力は以下のようになります。
Deleted topic "myTopic1".
confluent kafka topic describe コマンドを使用して、トピックの詳細を記述します。
confluent kafka topic describe myTopic2
出力は以下のようになります。
Topic: myTopic2 PartitionCount: 6 ReplicationFactor: 3 Topic | Partition | Leader | Replicas | ISR +----------+-----------+--------+----------+---------+ myTopic2 | 0 | 0 | [0 3 2] | [0 3 2] myTopic2 | 1 | 2 | [2 1 0] | [2 1 0] myTopic2 | 2 | 1 | [1 0 2] | [1 2] myTopic2 | 3 | 3 | [3 2 1] | [3 2 1] myTopic2 | 4 | 0 | [0 1 3] | [0 1 3] myTopic2 | 5 | 2 | [2 3 0] | [2 3 0]
confluent kafka topic update コマンドを使用して
myTopic2
構成を変更し、cleanup.policy
を設定します。confluent kafka topic update myTopic2 --config cleanup.policy=compact
出力は以下のようになります。
Updated the following configs for topic "myTopic2": Name | Value +----------------+---------+ cleanup.policy | compact
ステップ 4: 生成と消費¶
confluent kafka topic produce コマンドを使用して、トピックにメッセージを生成します。
confluent kafka topic produce myTopic3
プロンプトでメッセージを入力し、メッセージごとに Return キーを押します。
このコマンドウィンドウは次のようになります。
confluent kafka topic produce myTopic3 Starting Kafka Producer. ^C or ^D to exit hello cool topic did you get this message? first second third yes! I love this cool topic
画面を 1 つに維持する場合は、
^C
と入力してプロデューサーを終了し、次の手順に示すように-b
(または--from-beginning
)を指定してコンシューマーを実行します。confluent kafka topic consume コマンドを使用して、トピックからメッセージを消費します。
confluent kafka topic consume myTopic3 --from-beginning
出力は以下のようになります。
confluent kafka topic consume myTopic3 --from-beginning Starting Kafka Consumer. ^C or ^D to exit second did you get this message? first third cool topic hello yes! I love this cool topic
ステップ 5: サービスアカウントおよび API キーとシークレットのペアの作成¶
ステップ 2 では ユーザーアカウント の API キーを追加しました。この API キーには、super.user
権限があります。このステップでは、アクセス許可が制限されたアプリケーションアクセスを付与できるように、サービスアカウント を作成する方法について説明します。
confluent iam service-account create コマンドを使用して、
dev-apps
という名前のサービスアカウントを作成します。confluent iam service-account create "dev-apps" \ --description "Service account for dev apps"
出力は以下のようになります。
+----------------+----------------------------------+ | ID | sa-1a2b3c | | Name | dev-apps | | Description | Service account for dev apps | +----------------+----------------------------------+
このサービスアカウントに関連付けられている
ID
(この場合はsa-1a2b3c
)をメモします。confluent api-key create コマンドを使用して、このサービスアカウントの API キーとシークレットのペアを作成します。これにはクラスター ID も必要です(
confluent kafka cluster list
の出力から取得できます)。confluent api-key create --service-account sa-1a2b3c --resource lkc-4xrp1
API キーとシークレットをメモします。これを確認できるのはこのときだけです。
このクラスターに接続するクライアントアプリケーションには、少なくとも次の 3 つの ID パラメーターを構成する必要があります。
- API キー: 最初に API キーとシークレットのペアを作成するときに取得できます
- API シークレット: 最初に API キーとシークレットのペアを作成するときに取得できます
bootstrap.servers
:confluent kafka cluster describe
の出力に表示されるEndpoint
に設定します
ステップ 6: ACL を使用したアクセス権限の管理¶
confluent kafka acl create コマンドを使用して、トピックに生成する権限を
dev-apps
サービスアカウントに付与します。confluent kafka acl create --allow --service-account sa-1a2b3c --operation WRITE --topic myTopic2 Principal | Permission | Operation | ResourceType | ResourceName | PatternType +--------------------+------------+-----------+--------------+-------------------+------------+ User:sa-1a2b3c | ALLOW | WRITE | TOPIC | myTopic2 | LITERAL
サービスでトピックを作成する必要もある場合は、新規トピックを作成する権限を
dev-apps
サービスアカウントに付与します。confluent kafka acl create --allow --service-account sa-1a2b3c --operation CREATE --topic "*" Principal | Permission | Operation | ResourceType | ResourceName | PatternType +--------------------+------------+-----------+--------------+-------------------+------------+ User:sa-1a2b3c | ALLOW | CREATE | TOPIC | myTopic2 | LITERAL
confluent kafka acl create コマンドを使用して、特定のトピックから消費する権限を
dev-apps
サービスアカウントに付与します。これには、トピックを指定するコマンドと、コンシューマーグループを指定するコマンドの 2 つが必要になることに注意してください。confluent kafka acl create --allow --service-account sa-1a2b3c --operation READ --topic myTopic2 Principal | Permission | Operation | ResourceType | ResourceName | PatternType +--------------------+------------+-----------+--------------+-------------------+------------+ User:sa-1a2b3c | ALLOW | READ | TOPIC | myTopic2 | LITERAL confluent kafka acl create --allow --service-account sa-1a2b3c --operation READ --consumer-group java_example_group_1 Principal | Permission | Operation | ResourceType | ResourceName | PatternType +------------------+------------+-----------+--------------+----------------------+------------+ User:sa-1a2b3c | ALLOW | READ | GROUP | java_example_group_1 | LITERAL
confluent kafka acl list コマンドを使用して、
dev-apps
サービスアカウントのすべての ACL を一覧表示します。confluent kafka acl list --service-account sa-1a2b3c
出力は以下のようになります。
Principal | Permission | Operation | ResourceType | ResourceName | PatternType +-------------------+------------+-----------+--------------+----------------------+------------+ User:sa-1a2b3c | ALLOW | CREATE | TOPIC | * | LITERAL User:sa-1a2b3c | ALLOW | READ | TOPIC | myTopic2 | LITERAL User:sa-1a2b3c | ALLOW | WRITE | TOPIC | myTopic2 | LITERAL User:sa-1a2b3c | ALLOW | READ | GROUP | java_example_group_1 | LITERAL
プレフィックスを指定したリソースパターンで ACL を追加することができます。たとえば、
demo
で始まる名前のすべてのトピックについての ACL を追加できます。confluent kafka acl create --allow --service-account sa-1a2b3c --operation WRITE --topic demo --prefix Principal | Permission | Operation | ResourceType | ResourceName | PatternType +--------------------+------------+-----------+--------------+----------------+------------+ User:sa-1a2b3c | ALLOW | WRITE | TOPIC | demo | PREFIXED
該当するリソースのすべての名前に一致するワイルドカードを使用して ACL を追加することができます。たとえば、すべての名前を許可する ACL を追加することができます。
confluent kafka acl create --allow --service-account sa-1a2b3c --operation WRITE --topic "*" Principal | Permission | Operation | ResourceType | ResourceName | PatternType +--------------------+------------+-----------+--------------+-----------------+------------+ User:sa-1a2b3c | ALLOW | WRITE | TOPIC | * | LITERAL
注釈
Windows ユーザーは、ワイルドカード文字を二重引用符で囲む必要があります。Linux ユーザーおよび MacOS ユーザーは、一重引用符と二重引用符のどちらでも使用できます。
confluent kafka acl delete コマンドを使用して、
dev-apps
サービスアカウントから ACL を削除します。confluent kafka acl delete --allow --service-account sa-1a2b3c --operation WRITE --topic myTopic2 Deleted ACLs.