5.3. AMQ Streams での Service Registry ストレージを使用した TLS セキュリティーの設定
AMQ Streams Operator および Service Registry Operator を、暗号化された Transport Layer Security (TLS) 接続を使用するように設定できます。
前提条件
- OperatorHub またはコマンドラインを使用して Service Registry Operator をインストールする。
- AMQ Streams Operator をインストールする、または Kafka が OpenShift クラスターからアクセスできる。
ここでは、AMQ Streams Operator が利用可能であることを前提としていますが、任意の Kafka デプロイメントを使用できます。この場合、Service Registry Operator が想定する Openshift シークレットを手動で作成する必要があります。
手順
- OpenShift Web コンソールで Installed Operators をクリックし、AMQ Streams Operator の詳細を選択してから、Kafka タブをクリックします。
- Create Kafka をクリックし、Service Registry ストレージの新しい Kafka クラスターをプロビジョニングします。
Kafka クラスターに TLS 認証を使用するように、
authorization
フィールドとtls
フィールドを設定します。次に例を示します。apiVersion: kafka.strimzi.io/v1beta1 kind: Kafka metadata: name: my-cluster namespace: registry-example-streams-tls spec: kafka: authorization: type: simple version: 2.5.0 replicas: 3 listeners: plain: {} tls: authentication: type: tls config: offsets.topic.replication.factor: 3 transaction.state.log.replication.factor: 3 transaction.state.log.min.isr: 2 log.message.format.version: '2.5' storage: type: ephemeral zookeeper: replicas: 3 storage: type: ephemeral entityOperator: topicOperator: {} userOperator: {}
Kafka トピックを作成し、Service Registry アーティファクトを保存します。
- Provided APIs > Kafka Topic で、Create topic をクリックします。
-
デフォルトのトピック名を
my-topic
から必要なstorage-topic
に変更します。
Kafka トピックを作成し、Service Registry のグローバル ID を保存します。
- Provided APIs > Kafka Topic で、Create topic をクリックします。
-
デフォルトのトピック名を
my-topic
から必要なglobal-id-topic
に変更します。
Kafka User リソースを作成し、Service Registry ユーザーの認証および承認を設定します。たとえば、
spec
ブロックではmetadata
セクションにユーザー名を指定するか、デフォルトのmy-user
を使用できます。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
注記Service Registry が必要とするトピックおよびリソースに合わせて承認を設定する必要があります。これは簡単な例です。
Workloads をクリックしてから Secrets をクリックし、Service Registry が Kafka クラスターに接続するために AMQ Stremas によって作成される 2 つのシークレットを見つけます。
-
my-cluster-cluster-ca-cert
- Kafka クラスターの PKCS12 トラストストアが含まれています my-user
- ユーザーのキーストアが含まれます注記シークレットの名前は、クラスターまたはユーザー名によって異なります。
-
シークレットを手動で作成する場合は、以下のキーと値のペアを含める必要があります。
my-cluster-ca-cert
-
ca.p12
- PKCS12 形式のトラストストア -
ca.password
- truststore password
-
my-user
-
user.p12
- PKCS12 形式のキーストア -
user.password
- keystore password
-
Service Registry をデプロイするように、以下の設定例を設定します。
apiVersion: apicur.io/v1alpha1 kind: ApicurioRegistry metadata: name: example-apicurioregistry spec: configuration: persistence: "streams" streams: bootstrapServers: "my-cluster-kafka-bootstrap.registry-example-streams-tls.svc:9093" security: tls: keystoreSecretName: my-user truststoreSecretName: my-cluster-cluster-ca-cert
重要プレーンでセキュアでないユースケースとは別の
bootstrapServers
アドレスを使用する必要があります。アドレスは TLS 接続をサポートする必要があり、指定された Kafka リソースのtype:tls
フィールドにあります。