将 Amazon MSK APIs 与接口 VPC 终端节点配合使用 - Amazon Managed Streaming for Apache Kafka

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

将 Amazon MSK APIs 与接口 VPC 终端节点配合使用

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

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

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

创建接口 VPC 终端节点时,请选择以下服务名称终端节点之一:

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

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

其中地区是您的地区名称。选择此服务名称可与 MSK 预配置 APIs兼容。有关更多信息,请参阅 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说明,请参阅AWS PrivateLink 指南中的创建接口终端节点

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

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

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

有关更多信息,请参阅AWS 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" } } } ] }