ロールバインディングのシーケンスの例¶
以下に、Kafka Connect とコネクターを使用する場合の RBAC ロールバインディングを構成するシーケンスの例を示します。ここでは、前のセクションに記述されているとおりに構成パラメーターが構成されていることを前提としています。
注釈
実際のクラスター ID を取得する方法については、「クラスターの識別子について」を参照してください。
Connect REST API を使用してロールバインディングをセットアップする方法については、「REST API を使用した RBAC の構成」を参照してください。
以下のタスクは、RBAC システム管理者 として実行します。これらの手順を使用して、Connect クラスターの service principal にアクセス許可を付与します。$CONNECT_USER
は、以下の手順で構成するサンプルの service principal です。
プリンシパル
User:$CONNECT_USER
に、Topic:connect-configs
に対するResourceOwner
ロールを付与します。confluent iam rolebinding create \ --principal User:$CONNECT_USER \ --role ResourceOwner \ --resource Topic:connect-configs \ --kafka-cluster-id $KAFKA_CLUSTER_ID
プリンシパル
User:$CONNECT_USER
に、Topic:connect-offsets
に対するResourceOwner
ロールを付与します。confluent iam rolebinding create \ --principal User:$CONNECT_USER \ --role ResourceOwner \ --resource Topic:connect-offsets \ --kafka-cluster-id $KAFKA_CLUSTER_ID
プリンシパル
User:$CONNECT_USER
に、Topic:connect-statuses
に対するResourceOwner
ロールを付与します。confluent iam rolebinding create \ --principal User:$CONNECT_USER \ --role ResourceOwner \ --resource Topic:connect-statuses \ --kafka-cluster-id $KAFKA_CLUSTER_ID
プリンシパル
User:$CONNECT_USER
に、Group:connect-cluster
に対するResourceOwner
ロールを付与します。confluent iam rolebinding create \ --principal User:$CONNECT_USER \ --role ResourceOwner \ --resource Group:connect-cluster \ --kafka-cluster-id $KAFKA_CLUSTER_ID
プリンシパル
User:$CONNECT_USER
にSecurityAdmin
ロールを付与します。これにより、User:$CONNECT_USER
のアクセス許可で、Metadata Service(MDS)へのリクエストを実行して、MDS REST API の呼び出しを行ったユーザーに、要求された操作を実行する権限があるかどうかを確認することができます。confluent iam rolebinding create \ --principal User:$CONNECT_USER \ --role SecurityAdmin \ --kafka-cluster-id $KAFKA_CLUSTER_ID --connect-cluster-id $CONNECT_CLUSTER_ID
プリンシパル
User:$CONNECT_USER
のロールバインディングの一覧を表示します。すべてのロールバインディングが適切に構成されていることを確認します。confluent iam rolebinding list \ --principal User:$CONNECT_USER \ --kafka-cluster-id $KAFKA_CLUSTER_ID \ --connect-cluster-id $CONNECT_CLUSTER_ID
Connect シークレットレジストリ を使用している場合は、次の 2 つの手順が必要です。
プリンシパル
User:$CONNECT_USER
に、Topic:_confluent-secrets
に対するResourceOwner
ロールを付与します。confluent iam rolebinding create \ --principal User:$CONNECT_USER \ --role ResourceOwner \ --resource Topic:_secrets \ --kafka-cluster-id $KAFKA_CLUSTER_ID
プリンシパル
User:$CONNECT_USER
に、Group:secret-registry
に対するResourceOwner
ロールを付与します。confluent iam rolebinding create \ --principal User:$CONNECT_USER \ --role ResourceOwner \ --resource Group:secret-registry \ --kafka-cluster-id $KAFKA_CLUSTER_ID
以下の手順では、コネクターを作成しているユーザー用のロールバインディングを構成します。この手順でのサンプルのユーザー名は User:$CLIENT
です。この例では、コネクター名として $CONNECTOR_NAME
、トピック名として $DATA_TOPIC
を使用します。
プリンシパル
User:$CLIENT
に、Connector:$CONNECTOR_NAME
に対するResourceOwner
ロールを付与します。confluent iam rolebinding create \ --principal User:$CLIENT \ --role ResourceOwner \ --resource Connector:$CONNECTOR_NAME \ --kafka-cluster-id $KAFKA_CLUSTER_ID \ --connect-cluster-id $CONNECT_CLUSTER_ID
プリンシパル
User:$CONNECT_USER
に、Topic:$DATA_TOPIC
に対するResourceOwner
ロールを付与します。confluent iam rolebinding create \ --principal User:$CONNECT_USER \ --role ResourceOwner \ --resource Topic:$DATA_TOPIC \ --kafka-cluster-id $KAFKA_CLUSTER_ID
プリンシパル
User:$CLIENT
の Connect クラスターに対するロールバインディングの一覧を表示します。confluent iam rolebinding list \ --principal User:$CLIENT \ --kafka-cluster-id $KAFKA_CLUSTER_ID \ --connect-cluster-id $CONNECT_CLUSTER_ID
これらの手順を完了すると、以下の結果が得られます。
- Connect ワーカーの service principal に十分なアクセス許可が付与され、正常にワーカーを起動できるようになります。
- 例のコネクターを作成し、管理するのに十分なアクセス許可がユーザーに付与されます。
- 例のコネクターの service principal に、
$DATA_TOPIC
にアクセスするための十分なアクセス許可が付与されます。