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

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

可使用 Amazon 支持的接口 VPC 端点,防止 Amazon VPC 与 Amazon MSK API 之间的流量离开 Amazon 网络。接口 VPC 端点不需要互联网网关、NAT 设备、VPN 连接或 Amazon Direct Connect 连接。AmazonPrivateLink 是一种 Amazon 技术,可将弹性网络接口与 Amazon VPC 中的私有 IP 结合使用,以实现 Amazon 服务之间的私有通信。有关更多信息,请参阅 Amazon Virtual Private Cloud接口 VPC 端点(Amazon PrivateLink)

应用程序可使用 Amazon PrivateLink 与预置 Amazon MSK 和 MSK Connect API 连接。首先,为 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 兼容的 API。有关更多信息,请参阅 https://docs.aws.amazon.com/msk/1.0/apireference/ 中的操作

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

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

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

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

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

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