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

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

开始使用 Amazon PrivateLink

本教程演示如何使用 Amazon PrivateLink 将请求从私有子网中的 EC2 实例发送到 Amazon CloudWatch。

下图提供了此场景的概述。要从您的计算机连接到私有子网中的实例,您需要首先连接到公有子网中的堡垒主机。堡垒主机和实例必须使用相同的密钥对。由于私钥的 .pem 文件位于您的计算机上,而不是在堡垒主机上,您将使用 SSH 密钥转发。然后,您可以从堡垒主机连接到该实例,而无需在 ssh 命令中指定 .pem 文件。在您为 CloudWatch 设置 VPC 端点后,来自发往 CloudWatch 的实例的流量将解析到端点网络接口,然后使用 VPC 端点发送到 CloudWatch。

私有子网中的实例通过 VPC 端点访问 CloudWatch。

出于测试目的,您可以使用单个可用区。在生产中,建议您使用至少两个可用区,来实现低延迟和高可用性。

步骤 1:创建具有子网的 VPC

使用以下过程创建具有公有和私有子网的 VPC。

创建 VPC
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 选择创建 VPC

  3. 对于 Resources to create(要创建的资源),选择 VPC and more(VPC 等)。

  4. 对于 Name tag auto-generation(名称标签自动生成),为 VPC 输入名称。

  5. 若要配置子网,请执行以下操作:

    1. 对于 Number of Availability Zones(可用区域数量),根据您的需求选择 12

    2. 对于 Number of public subnets(公有子网数量),确保每个可用区有一个公有子网。

    3. 对于 Number of private subnets(私有子网数量),确保每个可用区有一个私有子网。

  6. 选择创建 VPC

步骤 2:启动实例

使用您在上一步中创建的 VPC,在公有子网中启动堡垒主机,并在私有子网中启动实例。

前提条件
  • 使用 .pem 格式创建密钥对。启动堡垒主机和实例时,必须选择此密钥对。

  • 为堡垒主机创建一个安全组,以允许来自计算机的 CIDR 块的入站 SSH 流量。

  • 为实例创建一个安全组,以允许来自堡垒主机安全组的入站 SSH 流量。

  • 创建 IAM 实例配置文件并附加 CloudWatchReadOnlyAccess 策略。

启动堡垒主机
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 选择启动实例

  3. 对于 Name(名称),输入您的堡垒主机的名称。

  4. 保留默认图像和实例类型。

  5. 对于 Key pair(密钥对),选择您的密钥对。

  6. 对于 Network settings(网络设置),执行以下操作:

    1. 对于 VPC,选择您的 VPC。

    2. 对于 Subnet(子网),选择公有子网。

    3. 对于 Auto-assign public IP(自动分配公有 IP),选择 Enable(启用)。

    4. 对于 Firewall(防火墙),选择 Select existing security group(选择现有安全组),然后为堡垒主机选择安全组。

  7. 选择启动实例

启动实例
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 选择启动实例

  3. 对于 Name(名称),输入您的实例的名称。

  4. 保留默认图像和实例类型。

  5. 对于 Key pair(密钥对),选择您的密钥对。

  6. 对于 Network settings(网络设置),执行以下操作:

    1. 对于 VPC,选择您的 VPC。

    2. 对于 Subnet(子网),选择私有子网。

    3. 对于 Auto-assign public IP(自动分配公有 IP),选择 Disable(禁用)。

    4. 对于 Firewall(防火墙),选择 Select existing security group(选择现有安全组),然后为实例选择安全组。

  7. 展开 Advanced details(高级详细信息)。对于 IAM instance profile(IAM 实例配置文件),选择您的 IAM 实例配置文件。

  8. 选择启动实例

步骤 3:测试 CloudWatch 访问

使用以下过程确认实例无法访问 CloudWatch。您将使用适用于 CloudWatch 的只读 Amazon CLI 命令来执行此操作。

测试 CloudWatch 访问
  1. 在您的计算机上,使用以下命令将密钥对添加到 SSH 代理,其中 key.pem 是 .pem 文件的名称。

    ssh-add ./key.pem

    如果您收到一条错误消息,提示您的密钥对的权限过于开放,请运行以下命令,然后重试上一个命令。

    chmod 400 ./key.pem
  2. 从您的计算机连接到堡垒主机。您必须指定 -A 选项、实例用户名(例如 ec2-user)和堡垒主机的公有 IP 地址。

    ssh -A ec2-user@bastion-public-ip-address
  3. 从堡垒主机连接到实例。您必须指定实例用户名(例如 ec2-user)和实例的私有 IP 地址。

    ssh ec2-user@instance-private-ip-address
  4. 如下所示,在实例上运行 CloudWatch list-metrics 命令。对于 --region 选项,指定您在其中创建 VPC 的区域。

    aws cloudwatch list-metrics --namespace AWS/EC2 --region us-east-1
  5. 几分钟后,命令会超时。这表明您无法从具有当前 VPC 配置的实例访问 CloudWatch。

    Connect timeout on endpoint URL: https://monitoring.us-east-1.amazonaws.com/
  6. 保持与您的实例的连接。创建 VPC 端点后,您将再次尝试此 list-metrics 命令。

步骤 4:创建 VPC 端点以访问 CloudWatch

使用以下过程创建连接到 CloudWatch 的 VPC 端点。

先决条件

为 VPC 端点创建安全组,以允许流量流向 CloudWatch。例如,添加允许来自 VPC CIDR 块的 HTTPS 流量的规则。

为 CloudWatch 创建 VPC 端点
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Endpoints(端点)。

  3. 选择 创建端点

  4. 对于 Name tag(名称标签),输入端点的名称。

  5. 对于 Service category(服务类别),选择 Amazon Web Services 服务

  6. 对于 Service(服务),选择 com.amazonaws.region.monitoring

  7. 对于 VPC,选择您的 VPC。

  8. 对于 Subnets(子网),选择可用区,然后选择私有子网。

  9. 对于 Security group(安全组),选择 VPC 端点的安全组。

  10. 对于 Policy(策略),选择 Full access(完全访问权限)以允许所有主体通过 VPC 端点对所有资源执行所有操作。

  11. (可选)若要添加标签,请选择 Add new tag(添加新标签),然后输入该标签的键和值。

  12. 选择 创建端点。初始状态为 Pending(待处理)。在转到下一步之前,请等到状态变为 Available(可用)。这可能需要几分钟的时间。

步骤 5:测试 VPC 端点

验证 VPC 端点是否正在将请求从您的实例发送到 CloudWatch。

测试 VPC 端点

在您的实例上运行以下 命令。对于 --region 选项,指定您在其中创建 VPC 端点的区域。

aws cloudwatch list-metrics --namespace AWS/EC2 --region us-east-1

如果您收到响应(即使是结果为空的响应),则说明您已使用 Amazon PrivateLink 连接至 CloudWatch。

如果遇到 UnauthorizedOperation 错误,请确保该实例具有允许访问 CloudWatch 的 IAM 角色。

如果请求超时,请验证以下内容:

  • 端点的安全组允许流量流向 CloudWatch。

  • --region 选项指定了您在其中创建 VPC 端点的区域。

步骤 6:清理

如果不再需要您为本教程创建的堡垒主机和实例,则可以将其删除。

终止实例
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择两个测试实例,然后依次选择 Instance state(实例状态)、Terminate instance(终止实例)。

  4. 当系统提示您确认时,选择终止

如果您不再需要 VPC 端点,则可以将其删除。

删除 VPC 端点
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Endpoints(端点)。

  3. 选择 VPC 端点。

  4. 选择 Actions(操作)、Delete VPC Endpoint(删除 VPC 端点)。

  5. 提示进行确认时,输入 delete,然后选择 Delete(删除)。