Ansible Playbook を使用した Confluent Platform での一元的な監査ログの構成

Confluent Platform で一元的な 監査ログ を構成するには、Ansible Playbooks for Confluent Platform を使用できます。

要件

  • 一元的な RBAC アーキテクチャに Confluent Platform をデプロイし、監査ログの送信先クラスターとして 1 つの Kafka クラスターを指定すること。
  • すべての Kafka クラスターを クラスターレジストリ に登録すること。

一元的な監査ログを構成するための一般的なワークフローを以下に示します。

監査ログを送信するための Kafka クラスターの構成

いずれかのクラスターから送信先の Kafka クラスターに監査ログを送信するには、インベントリファイルに以下の変数を追加します。

audit_logs_destination_enabled: true
audit_logs_destination_bootstrap_servers:
audit_logs_destination_listener:
  ssl_enabled:
  ssl_mutual_auth_enabled:
  sasl_protocol:

kafka_broker_cluster_name:

以下に例を示します。

audit_logs_destination_enabled: true
audit_logs_destination_bootstrap_servers: kafka-broker1:9093,kafka-broker2:9093,kafka-broker3:9093
audit_logs_destination_listener:
  ssl_enabled: false
  ssl_mutual_auth_enabled: false
  sasl_protocol: kerberos

kafka_broker_cluster_name: mycluster

上記の変数を設定してクラスターをインストールできるのは、MDS のインストール時など、送信先クラスターのプロビジョニング前です。

送信先の Kafka クラスターの登録

Kafka クラスターを監査ログの送信先クラスターにするために必要な特別な変数はありません。ただし、送信先クラスターのインベントリファイルで次の変数を使用して、MDS クラスターレジストリに送信先クラスターを登録することをお勧めします。

このセクションでは、クラスター名の例として confluent-audit-logs を使用しています。

kafka_broker_cluster_name: confluent-audit-logs

監査ログのロールバインディングの作成

送信先クラスターで監査ログメッセージが承認されたことの確認に必要なロールバインディングを追加します。

  1. Ansible アドホックコマンドを実行して、接続で使用されているプリンシパルを検出します。

    ansible -i <audit-logs-source-cluster-inventory> kafka_broker \
      -m import_role -a "name=confluent.kafka_broker tasks_from=set_principal.yml" \
      -e listener="{{audit_logs_destination_listener}}"
    

    出力例:

    kafka-broker2 | SUCCESS => {
        "kafka_broker_principal": "User:CN=kafka_broker,OU=QE IT,O=CONFLUENT,L=PaloAlto,ST=Ca,C=US"
    }
    
  2. MDS にログインし、前の手順のログに返されたプリンシパルについて、以下のロールバインディングを作成します。

    プリンシパル ID と MDS ユーザー ID では大文字と小文字が区別されるため、値を指定するときは大文字と小文字を一致させる必要があることに注意してください。

    # Log in as MDS super user
    confluent login --url <mds-kafka>:8090
    
    # For all Kafka clusters, run:
    confluent iam rolebinding create \
       --principal User:CN=kafka_broker,OU=QE IT,O=CONFLUENT,L=PaloAlto,ST=Ca,C=US \
       --role DeveloperWrite \
       --resource Topic:confluent-audit-log-events \
       --prefix --cluster-name confluent-audit-logs
    
    # For MDS, run:
    confluent iam rolebinding create \
       --principal User:CN=kafka_broker,OU=QE IT,O=CONFLUENT,L=PaloAlto,ST=Ca,C=US  \
       --role ResourceOwner \
       --resource Topic:confluent-audit-log-events \
       --prefix --cluster-name confluent-audit-logs
    

監査ログの構成

監査ログのセットアップについては、「CLI による監査ログの構成」を参照してください。