ロールバインディングのシーケンスの例

以下に、Kafka Connect とコネクターを使用する場合の RBAC ロールバインディングを構成するシーケンスの例を示します。ここでは、前のセクションに記述されているとおりに構成パラメーターが構成されていることを前提としています。

注釈

実際のクラスター ID を取得する方法については、「クラスターの識別子について」を参照してください。

Connect REST API を使用してロールバインディングをセットアップする方法については、「REST API を使用した RBAC の構成」を参照してください。

以下のタスクは、RBAC システム管理者 として実行します。これらの手順を使用して、Connect クラスターの service principal にアクセス許可を付与します。$CONNECT_USER は、以下の手順で構成するサンプルの service principal です。

  1. プリンシパル 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
    
  2. プリンシパル 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
    
  3. プリンシパル 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
    
  4. プリンシパル 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
    
  5. プリンシパル User:$CONNECT_USERSecurityAdmin ロールを付与します。これにより、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
    
  6. プリンシパル 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 つの手順が必要です。

  1. プリンシパル 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
    
  2. プリンシパル 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 を使用します。

  1. プリンシパル 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
    
  2. プリンシパル 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
    
  3. プリンシパル 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 にアクセスするための十分なアクセス許可が付与されます。