本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
控制对 Apache 的访问权限 ZooKeeper
出于安全原因,您可以限制对作为 Amazon MSK 集群一部分的 Apache ZooKeeper 节点的访问权限。要限制对节点的访问,您可以为节点分配单独的安全组。然后,您可以决定有权访问该安全组的人员。
将您的 Apache ZooKeeper 节点放在单独的安全组中
-
获取集群的 Apache ZooKeeper 连接字符串。要了解如何操作,请参阅获取 Amazon MSK 集群的 Apache ZooKeeper 连接字符串。连接字符串包含您的 Apache ZooKeeper 节点的 DNS 名称。
-
使用
host
或ping
等工具将您在上一步中获得的 DNS 名称转换为 IP 地址。稍后您需要在此过程中使用这些 IP 地址,因此请保存这些地址。 登录到 Amazon Web Services Management Console 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/
)。 在左侧窗格的 Network & Security (网络与安全性) 下,选择 Network Interfaces (网络接口)。
-
在网络接口表上方的搜索字段中,键入集群名称,然后键入 return。这会将表中显示的网络接口数限制为与您的集群关联的接口。
-
选中与列表中的第一个网络接口对应的行开头处的复选框。
-
在页面底部的详细信息窗格中,查找 Primary private IPv4 IP (主要私有 IPv4 IP)。如果此 IP 地址与您在此过程的第一步中获得的 IP 地址之一相匹配,这意味着此网络接口被分配给属于您的集群的一个 Apache ZooKeeper 节点。否则,取消选中此网络接口旁边的复选框,然后选择列表中的下一个网络接口。选择网络接口的顺序无关紧要。在接下来的步骤中,您将在分配给 Apache ZooKeeper 节点的所有网络接口上逐个执行相同的操作。
-
选择与 Apache ZooKeeper 节点对应的网络接口时,选择页面顶部的 “操作” 菜单,然后选择 “更改安全组”。将新安全组分配给此网络接口。有关创建安全组的信息,请参阅 Amazon VPC 文档中的创建安全组。
-
重复前面的步骤,为与集群的 Apache ZooKeeper 节点关联的所有网络接口分配相同的新安全组。
-
现在,您可以选择有权访问此新安全组的人员。有关设置安全组规则的信息,请参阅 Amazon VPC 文档中的添加、删除和更新规则。
在 Apache 中使用 TLS 安全性 ZooKeeper
您可以使用 TLS 安全性对客户端和 Apache ZooKeeper 节点之间的传输进行加密。要在您的 Apache ZooKeeper 节点上实现 TLS 安全,请执行以下操作:
集群必须使用 Apache Kafka 版本 2.5.1 或更高版本才能在 Apache 中使用 TLS 安全性 ZooKeeper。
在创建或配置集群时启用 TLS 安全。使用启用 TLS 的 Apache Kafka 版本 2.5.1 或更高版本创建的集群会自动在 Apache ZooKeeper 终端节点上使用 TLS 安全性。有关设置 TLS 安全的信息,请参阅如何开始使用加密?。
使用DescribeCluster 操作检索 TLS Apache ZooKeeper 端点。
创建 Apache ZooKeeper 配置文件以与
kafka-configs.sh
和kafka-acls.sh
工具或 sh ZooKeeper ell 一起使用。对于每个工具,您都使用 --zk-tls-config-file
参数来指定您的 Apache ZooKeeper 配置。以下示例展示了一个典型的 Apache ZooKeeper 配置文件:
zookeeper.ssl.client.enable=true zookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty zookeeper.ssl.keystore.location=kafka.jks zookeeper.ssl.keystore.password=test1234 zookeeper.ssl.truststore.location=truststore.jks zookeeper.ssl.truststore.password=test1234
对于其他命令(例如
kafka-topics
),必须使用KAFKA_OPTS
环境变量配置 Apache ZooKeeper 参数。以下示例显示如何配置KAFKA_OPTS
环境变量以将 Apache ZooKeeper 参数传递给其他命令:export KAFKA_OPTS=" -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty -Dzookeeper.client.secure=true -Dzookeeper.ssl.trustStore.location=/home/ec2-user/kafka.client.truststore.jks -Dzookeeper.ssl.trustStore.password=changeit"
配置
KAFKA_OPTS
环境变量后,可以正常使用 CLI 命令。以下示例使用KAFKA_OPTS
环境变量中的 Apache ZooKeeper 配置创建 Apache Kafka 主题:<path-to-your-kafka-installation>
/bin/kafka-topics.sh --create --zookeeperZooKeeperTLSConnectString
--replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopic
注意
你在 Apache ZooKeeper 配置文件中使用的参数的名称和你在KAFKA_OPTS
环境变量中使用的参数的名称不一致。注意在配置文件和KAFKA_OPTS
环境变量中使用哪些名称以及哪些参数。
有关使用 TLS 访问 Apache ZooKeeper 节点的更多信息,请参阅 KIP-515:启用 ZK 客户端使用支持 TLS 的新身份验证