View a markdown version of this page

Amazon MSK API 与接口 VPC 端点结合使用 - Amazon Managed Streaming for Apache Kafka

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

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

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

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

使用此功能,Apache Kafka 客户端可动态获取连接字符串以连接预置 MSK 或 MSK Connect 资源,而无需遍历互联网来检索连接字符串。

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

对于预置 MSK:
  • 新连接不再支持以下服务名称终端节点:

    • com.amazonaws.region.kafka

    • com.amazonaws.region.kafka-fips (FIPS-enabled

  • 同时支持 IPv4 和 IPv6 流量的双栈端点服务有:

    • wws.api.region.kafka-api

    • aws.api.region.kafka-api-fips () FIPS-enabled

要设置双栈端点,必须遵循Dual-stack 和 FIPS 端点指南。

其中区域指您的区域名称。选择此服务名称即可使用 MSK Provisioned-compatible API。有关更多信息,请参阅中的操作https://docs.aws.amazon.com/msk/1.0/apireference/

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

其中区域指您的区域名称。选择此服务名称即可使用 MSK Connect-compatible API。有关更多信息,请参阅《Amazon MSK Connect API 参考》中的操作

有关更多信息,包括创建接口 VPC 端点的分步说明,请参阅《AWS PrivateLink 指南》中的创建接口端点

控制对预置 Amazon MSK 或 MSK Connect API 的 VPC 端点的访问

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

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

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

MSK Provisioned — VPC policy example
Read-only 访问

此示例策略可以附加到某个 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/MyMSKConnectExecutionRole" ] } } ] }
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" } } } ] }