控制对 Apache 的访问 ZooKeeper - Amazon Managed Streaming for Apache Kafka
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

控制对 Apache 的访问 ZooKeeper

出于安全考虑,您可以限制对 Apache 的访问 ZooKeeper 属于您的亚马逊 MSK 集群的节点。要限制对节点的访问,您可以为节点分配单独的安全组。然后,您可以决定有权访问该安全组的人员。

放置你的 Apache ZooKeeper 单独安全组中的节点

  1. 获取 Apache ZooKeeper 集群的连接字符串。要了解如何操作,请参阅获得 Apache ZooKeeper Amazon MSK 集群的连接字符串。连接字符串包含您的 Apache 的 DNS 名称 ZooKeeper 节点。

  2. 使用 hostping 等工具将您在上一步中获得的 DNS 名称转换为 IP 地址。稍后您需要在此过程中使用这些 IP 地址,因此请保存这些地址。

  3. 登录到 Amazon Web Services Management Console 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/)。

  4. 在左侧窗格的 Network & Security (网络与安全性) 下,选择 Network Interfaces (网络接口)

  5. 在网络接口表上方的搜索字段中,键入集群名称,然后键入 return。这会将表中显示的网络接口数限制为与您的集群关联的接口。

  6. 选中与列表中的第一个网络接口对应的行开头处的复选框。

  7. 在页面底部的详细信息窗格中,查找 Primary private IPv4 IP (主要私有 IPv4 IP)。如果此 IP 地址与您在此过程的第一步中获得的 IP 地址之一相匹配,则表示该网络接口已分配给 Apache ZooKeeper 属于您的集群的节点。否则,取消选中此网络接口旁边的复选框,然后选择列表中的下一个网络接口。选择网络接口的顺序无关紧要。在接下来的步骤中,您将在分配给 Apache 的所有网络接口上执行相同的操作 ZooKeeper 节点,一个接一个。

  8. 当您选择与 Apache 对应的网络接口时 ZooKeeper 节点,选择操作页面顶部的菜单,然后选择更改安全组. 将新安全组分配给此网络接口。有关创建安全组的信息,请参阅创建安全组Amazon VPC 文档中,请查看

  9. 重复前面的步骤,为与 Apache 关联的所有网络接口分配相同的新安全组 ZooKeeper 集群的节点。

  10. 现在,您可以选择有权访问此新安全组的人员。有关设置安全组规则的信息,请参阅添加、删除和更新规则Amazon VPC 文档中,请查看

在 Apache 中使用 TLS 安全性 ZooKeeper

在客户端和 Apache 之间的传输过程中,您可以使用 TLS 安全进行加密 ZooKeeper 节点。使用你的 Apache 实现 TLS 安全性 ZooKeeper 节点,执行以下操作:

  • 集群必须使用 Apache Kafka 版本 2.5.1 或更高版本才能在 Apache 中使用 TLS 安全性 ZooKeeper.

  • 在创建或配置集群时启用 TLS 安全。使用 Apache Kafka 版本 2.5.1 或更高版本创建且启用了 TLS 的集群会自动使用 Apache 的 TLS 安全性 ZooKeeper 终端节点。有关设置 TLS 安全的信息,请参阅如何开始使用加密?.

  • 检索 TLS Apache ZooKeeper 端点使用DescribeCluster 操作。

  • 创建一个 Apache ZooKeeper 与... 一起使用的配置文件kafka-configs.shkafka-acls.sh工具,或者使用 ZooKeeper Shell。对于每种工具,您都使用--zk-tls-config-file用于指定你的 Apache 的参数 ZooKeeper COMig。

    以下示例显示了典型的 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 命令。以下示例使用 Apache 创建 Apache Kafka 主题 ZooKeeper 配置来自KAFKA_OPTS环境变量:

    <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --zookeeper ZooKeeperTLSConnectString --replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopic
注意

你在 Apache 中使用的参数的名称 ZooKeeper 配置文件和你在你的KAFKA_OPTS环境变量不一致。注意你在配置文件中使用了哪些名称和哪些参数KAFKA_OPTS环境变量。

有关访问您的 Apache 的更多信息 ZooKeeper 带有 TLS 的节点,请参阅KIP-515:允许 ZK 客户端使用新的 TLS 支持身份验证.