ロールバインディングのシーケンスの例¶
以下に、Kafka Connect とコネクターを使用する場合の RBAC ロールバインディングを構成するシーケンスの例を示します。ここでは、前のセクションに記述されているとおりに構成パラメーターが構成されていることを前提としています。
注釈
実際のクラスター ID を取得する方法については、「クラスターの識別子について」を参照してください。
Connect REST API を使用してロールバインディングをセットアップする方法については、「REST API を使用した RBAC の構成」を参照してください。
以下のタスクは、RBAC システム管理者 として実行します。これらの手順を使用して、Connect クラスターの service principal にアクセス許可を付与します。$CONNECT_USER
は、以下の手順で構成するサンプルの service principal です。
注釈
You configure role-bindings for the following principals using this example:
- Connect worker service principal:
User:$CONNECT_USER
- Connector service principal:
User:$CONNECTOR_USER
- Connector user service principal:
User:$CLIENT
プリンシパル
User:$CONNECT_USER
に、Topic:connect-configs
に対するResourceOwner
ロールを付与します。confluent iam rbac role-binding 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 rbac role-binding 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 rbac role-binding 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 rbac role-binding create \ --principal User:$CONNECT_USER \ --role ResourceOwner \ --resource Group:connect-cluster \ --kafka-cluster-id $KAFKA_CLUSTER_ID
Grant principal
User:$CONNECT_USER
theSecurityAdmin
role. This allowsUser:$CONNECT_USER
permission to make requests to the Metadata Service (MDS) to find out if a user making calls to the Connect REST API is authorized to perform required operations. Note that$CONNECT_USER
does this by making an authorized request to MDS to check$CLIENT
permissions.confluent iam rbac role-binding create \ --principal User:$CONNECT_USER \ --role SecurityAdmin \ --kafka-cluster-id $KAFKA_CLUSTER_ID --connect-cluster-id $CONNECT_CLUSTER_ID
プリンシパル
User:$CONNECT_USER
のロールバインディングの一覧を表示します。すべてのロールバインディングが適切に構成されていることを確認します。confluent iam rbac role-binding 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 rbac role-binding 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 rbac role-binding create \ --principal User:$CONNECT_USER \ --role ResourceOwner \ --resource Group:secret-registry \ --kafka-cluster-id $KAFKA_CLUSTER_ID
The following steps configure role bindings for User:$CLIENT
(the user that
is creating a connector). The example uses $CONNECTOR_NAME
for the connector
name and $DATA_TOPIC
for the topic name.
プリンシパル
User:$CLIENT
に、Connector:$CONNECTOR_NAME
に対するResourceOwner
ロールを付与します。confluent iam rbac role-binding 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 rbac role-binding create \ --principal User:$CONNECTOR_USER \ --role ResourceOwner \ --resource Topic:$DATA_TOPIC \ --kafka-cluster-id $KAFKA_CLUSTER_ID
プリンシパル
User:$CLIENT
の Connect クラスターに対するロールバインディングの一覧を表示します。confluent iam rbac role-binding list \ --principal User:$CLIENT \ --kafka-cluster-id $KAFKA_CLUSTER_ID \ --connect-cluster-id $CONNECT_CLUSTER_ID
これらの手順を完了すると、以下の結果が得られます。
- Connect ワーカーの service principal に十分なアクセス許可が付与され、正常にワーカーを起動できるようになります。
- 例のコネクターを作成し、管理するのに十分なアクセス許可がユーザーに付与されます。
- 例のコネクターの service principal に、
$DATA_TOPIC
にアクセスするための十分なアクセス許可が付与されます。