第8章 Kafka のセキュリティー
Streams for Apache Kafka のセキュアなデプロイメントには、以下のセキュリティー対策の 1 つ以上が含まれる場合があります。
- データ交換の暗号化
- アイデンティティー証明に使用する認証
- ユーザーが実行するアクションを許可または拒否する認可
- データセキュリティーとシステムの相互運用性を確保するために、FIPS 対応の OpenShift クラスターで Streams for Apache Kafka を実行する
8.1. 暗号化
Streams for Apache Kafka は、暗号化された通信用のプロトコルである Transport Layer Security (TLS)をサポートします。
通信は、以下の間で常に暗号化されます。
- Kafka ブローカー
- ZooKeeper ノード
- Kafka ブローカーと ZooKeeper ノード
- Operator および Kafka ブローカー
- Operator および ZooKeeper ノード
- Kafka Exporter
Kafka ブローカーとクライアントの間で TLS 暗号化を設定することもできます。Kafka ブローカーの外部リスナーを設定するときに、外部クライアントに対して TLS が指定されます。
Streams for Apache Kafka コンポーネントおよび Kafka クライアントは、暗号化にデジタル署名を使用します。Cluster Operator は、証明書を設定し、Kafka クラスター内で暗号化を有効にします。Kafka クライアントと Kafka ブローカーの通信やクラスター間の通信に、Kafka リスナー証明書と呼ばれる独自のサーバー証明書を指定できます。
Streams for Apache Kafka は Secret を使用して、mTLS に必要な証明書と秘密鍵を PEM および PKCS #12 形式で保存します。
TLS CA (認証局) は、コンポーネントの ID を認証するために証明書を発行します。Streams for Apache Kafka は、CA 証明書に対してコンポーネントの証明書を検証します。
- Streams for Apache Kafka コンポーネントは、クラスター CAに対して検証されます。
- Kafka クライアントは、クライアント CA 証明局に対して検証されます。