Virtual Private Cloud (VPC) 目标 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Virtual Private Cloud (VPC) 目标

Apache Kafka 规则操作将数据路由到 Amazon Virtual Private Cloud (Amazon VPC) 中的 Apache Kafka 集群。当您为规则操作指定 VPC 目标时,将自动启用 Apache Kafka 规则操作使用的 VPC 配置。

VPC 目标包含 VPC 内部的子网列表。规则引擎将在您在此列表中指定的每个子网中创建一个弹性网络接口。有关网络接口的更多信息,请参阅 Amazon EC2 用户指南中的弹性网络接口

要求和注意事项

  • 如果您使用的是自我管理的 Apache Kafka 集群,则将在互联网上使用公有终端节点访问此集群:

    • 您必须为子网中的实例创建 NAT 网关。NAT 网关具有可以连接到互联网的公有 IP 地址,这允许规则引擎将您的消息转发到公有 Kafka 集群。

    • 作为 NAT 网关的廉价替代方案,您可以使用由 VPC 目标创建的弹性网络接口 (ENI) 分配弹性 IP 地址。必须将您使用的安全组配置为阻止传入流量。

      注意

      如果 VPC 目标被禁用,然后重新启用,则必须将弹性 IP 与新的 ENI 重新关联。

  • 如果 VPC 主题规则目标连续30天未收到任何流量,该目标将被禁用。

  • 如果 VPC 目标使用的任何资源发生变化,目标将被禁用且无法使用。

  • 可以禁用 VPC 目标的一些更改包括:删除 VPC、子网、安全组或使用的角色;将角色修改为不再拥有必要的权限;以及禁用目标。

定价

出于定价目的,除了在资源位于您的 VPC 中时向资源发送消息的操作之外,还会计量 VPC 规则操作。有关定价信息,请参阅 Amazon IoT Core 定价

创建 Virtual Private Cloud (VPC) 主题规则目标

使用 CreateTopicRuleDestination API 或 Amazon IoT Core 控制台,创建 Virtual Private Cloud (VPC) 目标。

当您创建 VPC 目标时,必须指定以下信息。

vpcId

VPC 目标的唯一 ID。

subnetIds

规则引擎在其中创建弹性网络接口的子网列表。规则引擎为列表中的每个子网分配一个网络接口。

securityGroups(可选)

要应用到网络接口的安全组列表。

roleArn

有权代表您创建网络接口的角色的 Amazon Resource Name (ARN)。

此 ARN 应附加一个类似于以下示例的策略。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:CreateNetworkInterfacePermission", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/VPCDestinationENI": "true" } } }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface", "aws:RequestTag/VPCDestinationENI": "true" } } } ] }

使用 Amazon CLI 创建 VPC 目标

以下示例显示如何使用 Amazon CLI 创建 VPC 目标。

aws --region regions iot create-topic-rule-destination --destination-configuration 'vpcConfiguration={subnetIds=["subnet-123456789101230456"],securityGroups=[],vpcId="vpc-123456789101230456",roleArn="arn:aws:iam::123456789012:role/role-name"}'

运行此命令后,VPC 目标状态将为 IN_PROGRESS。几分钟后,其状态将更改为 ERROR(如果命令不成功)或 ENABLED。当目标状态为 ENABLED 时,目标即可使用。

您可以使用以下命令获取 VPC 目标的状态。

aws --region region iot get-topic-rule-destination --arn "VPCDestinationARN"

使用 Amazon IoT Core 创建 VPC 目标控制台

以下步骤介绍如何使用 Amazon IoT Core 控制台创建 VPC 目标。

  1. 导航到 Amazon IoT Core 控制台。在左侧的窗格中,Act(操作)选项卡下,选择 Destination(目标)。

  2. 输入以下字段的值。

    • VPC ID

    • 子网 ID

    • 安全组

  3. 选择具有创建网络接口所需权限的角色。前面的示例策略包含这些权限。

当 VPC 目标状态为 ENABLED(已启用)时,目标即可使用。