3.3. TLS セキュリティーでの Kafka ストレージの設定


AMQ Streams Operator および Apicurio Registry Operator を、暗号化された Transport Layer Security (TLS) 接続を使用するように設定できます。

前提条件

  • OperatorHub またはコマンドラインを使用して Apicurio Registry Operator をインストールしている。
  • AMQ Streams Operator がインストールされているか、Kafka が OpenShift クラスターからアクセスできる。
注記

ここでは、AMQ Streams Operator が利用可能であることを前提としていますが、任意の Kafka デプロイメントを使用できます。この場合、Apicurio Registry Operator が想定する Openshift シークレットを手動で作成する必要があります。

手順

  1. OpenShift Web コンソールで Installed Operators をクリックし、AMQ Streams Operator の詳細を選択してから、Kafka タブをクリックします。
  2. Create Kafka をクリックし、Apicurio Registry ストレージの新しい Kafka クラスターをプロビジョニングします。
  3. Kafka クラスターに TLS 認証を使用するように、 authorization フィールドと tls フィールドを設定します。次に例を示します。

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
      namespace: registry-example-kafkasql-tls
      # Change or remove the explicit namespace
    spec:
      kafka:
        config:
          offsets.topic.replication.factor: 3
          transaction.state.log.replication.factor: 3
          transaction.state.log.min.isr: 2
          log.message.format.version: '2.7'
          inter.broker.protocol.version: '2.7'
        version: 2.7.0
        storage:
          type: ephemeral
        replicas: 3
        listeners:
          - name: tls
            port: 9093
            type: internal
            tls: true
            authentication:
              type: tls
        authorization:
          type: simple
      entityOperator:
        topicOperator: {}
        userOperator: {}
      zookeeper:
        storage:
          type: ephemeral
        replicas: 3
    Copy to Clipboard

    データを保存するために Apicurio Registry によって自動作成されるデフォルトの Kafka トピック名は kafkasql-journal です。環境変数を設定することで、この動作またはデフォルトのトピック名をオーバーライドできます。デフォルト値は以下のとおりです。

    • REGISTRY_KAFKASQL_TOPIC_AUTO_CREATE=true
    • REGISTRY_KAFKASQL_TOPIC=kafkasql-journal

    Kafka トピックを手動で作成しない場合は、次の手順を省略します。

  4. Kafka Topic タブをクリックし、Create Kafka Topic をクリックして、kafkasql-journal トピックを作成します。

    apiVersion: kafka.strimzi.io/v1beta1
    kind: KafkaTopic
    metadata:
      name: kafkasql-journal
      labels:
        strimzi.io/cluster: my-cluster
      namespace: registry-example-kafkasql-tls
    spec:
      partitions: 2
      replicas: 1
      config:
        cleanup.policy: compact
    Copy to Clipboard
  5. Kafka User リソースを作成し、Apicurio Registry ユーザーの認証および承認を設定します。metadata セクションでユーザー名を指定するか、デフォルトの my-user を使用できます。

    apiVersion: kafka.strimzi.io/v1beta1
    kind: KafkaUser
    metadata:
      name: my-user
      labels:
        strimzi.io/cluster: my-cluster
      namespace: registry-example-kafkasql-tls
    spec:
      authentication:
        type: tls
      authorization:
        acls:
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: topic
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: cluster
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: transactionalId
          - operation: All
            resource:
              name: '*'
              patternType: literal
              type: group
        type: simple
    Copy to Clipboard
    注記

    このシンプルな例では、admin パーミッションを前提とし、Kafka トピックを自動的に作成します。Apicurio Registry が必要とするトピックとリソース専用に authorization セクションを設定する必要があります。

    次の例は、Kafka トピックを手動で作成する場合に必要な最小設定を示しています。

     ...
      authorization:
        acls:
        - operations:
            - Read
            - Write
          resource:
            name: kafkasql-journal
            patternType: literal
            type: topic
        - operations:
            - Read
            - Write
          resource:
            name: apicurio-registry-
            patternType: prefix
            type: group
        type: simple
    Copy to Clipboard
  6. WorkloadsSecrets の順にクリックして、Apicurio Registry が Kafka クラスターに接続するために AMQ Streams が作成する 2 つのシークレットを見つけます。

    • my-cluster-cluster-ca-cert - Kafka クラスターの PKCS12 トラストストアが含まれています
    • my-user - ユーザーのキーストアが含まれます

      注記

      シークレットの名前は、クラスターまたはユーザー名によって異なります。

  7. シークレットを手動で作成する場合は、以下のキーと値のペアを含める必要があります。

    • my-cluster-ca-cert

      • ca.p12 - PKCS12 形式のトラストストア
      • ca.password - truststore password
    • my-user

      • user.p12 - PKCS12 形式のキーストア
      • user.password - keystore password
  8. 次の設定例を設定して、Apicurio Registry をデプロイします。

    apiVersion: registry.apicur.io/v1
    kind: ApicurioRegistry
    metadata:
      name: example-apicurioregistry-kafkasql-tls
    spec:
      configuration:
        persistence: "kafkasql"
        kafkasql:
          bootstrapServers: "my-cluster-kafka-bootstrap.registry-example-kafkasql-tls.svc:9093"
          security:
            tls:
              keystoreSecretName: my-user
              truststoreSecretName: my-cluster-cluster-ca-cert
    Copy to Clipboard
重要

プレーンでセキュアでないユースケースとは別の bootstrapServers アドレスを使用する必要があります。アドレスは TLS 接続をサポートする必要があり、指定された Kafka リソースの type:tls フィールドにあります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat