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

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

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

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

您的应用程序可以使用与 Amazon MSK 预配置和 MSK Connect 连接 APIs 。AWS PrivateLink首先,为 Amazon MSK API 创建一个接口 VPC 端点,以便来自和前往 Amazon VPC 资源的流量开始流经接口 VPC 端点。启用 FIPS 的接口 VPC 端点适用于美国区域。有关更多信息,请参阅创建接口端点

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

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

对于预置 MSK:
  • com.amazonaws.region.kafka

  • 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 兼容。有关更多信息,请参阅《Amazon MSK Connect API 参考》中的操作

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

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

借助 VPC 端点策略,您可以控制访问,方式是:将策略附加到 VPC 端点或使用附加到 IAM 用户、组或角色的策略中的额外字段,从而限制只能通过特定 VPC 端点进行访问。使用相应的示例策略,定义对预置 MSK 或 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 的端点策略示例。此策略允许指定角色列出连接器,并创建新的连接器。

JSON
JSON
{ "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" } } } ] }