将 Amazon MSK APIs 与接口 VPC 端点结合使用 - Amazon Managed Streaming for Apache Kafka
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将 Amazon MSK APIs 与接口 VPC 端点结合使用

您可以使用由提供支持的接口 VPC 端点 Amazon PrivateLink,以防止 Amazon VPC 和 Amazon MSK 之间的流量 APIs 离开亚马逊网络。接口 VPC 端点不需要互联网网关、NAT 设备、VPN 连接或 Amazon Direct Connect 连接。 Amazon PrivateLink是一种 Amazon 技术,可将弹性网络接口与 Amazon VPC IPs 中的私有通信。 Amazon 有关更多信息,请参阅亚马逊 Virtual Private Cloud接口 VPC 终端节点 (Amazon PrivateLink)

您的应用程序可以使用与 Amazon MSK Provisioned 和 MSK Connect 连接 APIs 。 Amazon PrivateLink首先,为 Amazon MSK API 创建一个接口 VPC 端点,以便进出您的 Amazon VPC 资源的流量流过接口 VPC 端点。启用 FIPS 的接口 VPC 端点适用于美国区域。有关更多信息,请参阅创建接口终端节点

使用此功能,您的 Apache Kafka 客户端可以动态获取连接字符串以连接 MSK Provisioned 或 MSK Connect 资源,而无需通过互联网检索连接字符串。

创建 Interface VPC 端点时,请选择以下服务名称端点之一:

对于已配置的 MSK:
  • com.amazonaws.region.kaf

  • com.amazonaws.region.kafka-fips(启用 FIPS)

其中地区是您的地区名称。选择此服务名称即可使用与 MSK 预置 APIs的 MSK 兼容性。有关更多信息,请参阅 https://docs.aws.amazon.com/msk/1.0/ apireference/ 中的操作

对于 MSK Connect:
  • com.amazonaws.region.kafkaconnect

其中地区是您的地区名称。选择此服务名称即可使用与 MSK Connec APIs t 兼容的服务。有关更多信息,请参阅《亚马逊 MSK Connect API 参考》中的操作

有关更多信息,包括创建接口 VPC 终端节点的 step-by-step说明,请参阅Amazon PrivateLink 指南中的创建接口终端节点

控制对亚马逊 MSK 预配置或 MSK Connect 的 VPC 终端节点的访问权限 APIs

借助 VPC 端点策略,您可以控制访问,方式是:将策略附加到 VPC 端点或使用附加到 IAM 用户、组或角色的策略中的额外字段,从而限制只能通过特定 VPC 端点进行访问。使用相应的示例策略来定义 MSK Provisioned 或 MSK Connect 服务的访问权限。

如果您在创建端点时未附加策略,Amazon VPC 会为您附加一个默认策略,该策略允许对服务的完全访问。终端节点策略不会覆盖或替换 IAM 基于身份的策略或服务特定的策略。这是一个单独的策略,用于控制从端点中对指定服务进行的访问。

有关更多信息,请参阅Amazon PrivateLink 指南中的使用 VPC 终端节点控制对服务的访问

MSK Provisioned — VPC policy example
只读访问权限

此示例策略可以附加到 VPC 端点。(有关更多信息,请参阅控制对 Amazon VPC 资源的访问)。它限制仅能通过其附加的 VPC 端点列出或描述操作。

{ "Statement": [ { "Sid": "MSKReadOnly", "Principal": "*", "Action": [ "kafka:List*", "kafka:Describe*" ], "Effect": "Allow", "Resource": "*" } ] }
MSK 预置的 — VPC 端点策略示例

限制对特定 MSK 集群的访问

此示例策略可以附加到 VPC 端点。它限制通过其附加的 VPC 端点访问特定 Kafka 集群的访问。

{ "Statement": [ { "Sid": "AccessToSpecificCluster", "Principal": "*", "Action": "kafka:*", "Effect": "Allow", "Resource": "arn:aws:kafka:us-east-1:123456789012:cluster/MyCluster" } ] }
MSK Connect — VPC endpoint policy example
列出连接器并创建新的连接器

下面是用于 MSK Connect 的终端节点策略示例。此策略允许指定角色列出连接器并创建新的连接器。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "MSKConnectPermissions", "Effect": "Allow", "Action": [ "kafkaconnect:ListConnectors", "kafkaconnect:CreateConnector" ], "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/<ExampleRole>" ] } } ] }
MSK Connect — VPC 端点策略示例

仅支持来自指定 VPC 中特定 IP 地址的请求

以下示例显示的策略仅允许来自指定 VPC 中指定 IP 地址的请求成功。来自其它 IP 地址的请求将失败。

{ "Statement": [ { "Action": "kafkaconnect:*", "Effect": "Allow", "Principal": "*", "Resource": "*", "Condition": { "IpAddress": { "aws:VpcSourceIp": "192.0.2.123" }, "StringEquals": { "aws:SourceVpc": "vpc-555555555555" } } } ] }