AWS Cloud9 开发环境的 VPC 设置 - AWS Cloud9

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

AWS Cloud9 开发环境的 VPC 设置

与亚马逊虚拟私有云(亚马逊 VPC)关联的每个 AWS Cloud9 开发环境都必须满足特定的 VPC 要求。这些环境包括 EC2 环境以及与 VPC 内运行的 AWS Cloud 计算实例关联的 SSH 环境。示例包括 Amazon EC2 和 Amazon Lightsail 实例。

亚马逊 VPC 对以下内容的要求 AWS Cloud9

AWS Cloud9 使用的亚马逊 VPC 需要以下设置。如果您已熟悉这些要求,并且只想创建一个兼容的 VPC,则向前跳至 创建 VPC 以及其他 VPC 资源

使用以下核对清单来确认 VPC 满足以下所有要求:

  • VPC 可以 AWS 账户 与 AWS 区域 AWS Cloud9 开发环境位于同一环境中,也可以是 VPC 与环境 AWS 账户 不同的共享 VPC。但是,VPC 必须与环境位于 AWS 区域 同一环境中。有关的 Amazon VPC 的更多信息 AWS 区域,请参阅查看 AWS 区域的 VPC 列表。有关为创建 Amazon VPC 的更多说明 AWS Cloud9,请参阅创建 VPC 以及其他 VPC 资源。有关使用共享 Amazon VPC 的更多信息,请参阅《Amazon VPC 用户指南》中的使用共享 VPC

  • VPC 必须具有公有子网。如果子网的流量路由到互联网网关,则该子网是公有子网。有关 Amazon VPC 的子网列表,请参阅 查看 VPC 的子网列表

  • 如果您的环境通过 SSH 直接访问其 EC2 实例,则该实例只能在公有子网中启动。有关确认子网是否为公有子网的信息,请参阅 确认子网是否是公有子网

  • 如果您使用 Systems Manager 访问非入口 Amazon EC2 实例,则可以在公有子网或私有子网中启动实例。。

  • 如果您使用的是公有子网,请将互联网网关附加到 VPC。这样,实例的 AWS Systems Manager Agent (SSM Agent) 就可以连接到 Systems Manager。

  • 如果您使用的是私有子网,请允许子网的实例通过在公有子网中托管 NAT 网关与互联网通信。有关查看或更改互联网网关设置的更多信息,请参阅 查看或更改互联网网关的设置

  • 公有子网必须具有包含一组最少路由的路由表。要了解如何确认子网是否具有路由表,请参阅 确认子网是否具有路由表。有关如何创建路由表的信息,请参阅 创建路由表

  • VPC(或 AWS Cloud 计算实例,取决于您的架构)的关联安全组必须允许最少的入站和出站流量。有关适用于 Amazon VPC 的安全组列表,请参阅 查看 VPC 的安全组列表。有关在 Amazon VPC 中创建安全组的更多信息,请参阅 在 VPC 中创建安全组

  • 对于附加的安全层,如果 VPC 具有网络 ACL,则网络 ACL 必须允许至少一组入站和出站流量。要确认 Amazon VPC 是否具有至少一个网络 ACL,请参阅 确认 VPC 是否具有至少一个网络 ACL。有关创建网络 ACL 的信息,请参阅创建网络 ACL

  • 如果您的开发环境使用 SSM 访问 EC2 实例,请确保该实例被启动到的公有子网分配了公有 IP 地址。为此,您必须为公有子网启用自动分配公有 IP 地址选项,并将其设置为 Yes。您可以在子网设置页面中创建 AWS Cloud9 环境之前,在公有子网上启用此选项。有关修改公有子网中自动分配 IP 设置的步骤,请参阅《Amazon VPC 用户指南》中的修改子网的公有 IPv4 寻址属性。有关配置共有子网和私有子网的更多信息,请参阅 将子网配置为公有子网或私有子网

注意

要完成以下过程,请登录 AWS Management Console 并使用管理员凭证打开 Amazon VPC 控制台 (https://console.aws.amazon.com/vpc) 或亚马逊 EC2 控制台 (https://console.aws.amazon.com/ec2)。

如果您使用 AWS CLI 或 AWS CloudShell,我们建议您在中使用管理员凭据配置 AWS CLI 或 AWS 账户。 AWS CloudShell 如果您无法执行此操作,请咨询您的 AWS 账户 管理员。

查看 AWS 区域的 VPC 列表

要使用 Amazon VPC 控制台,请在 AWS 导航栏中选择 AWS Cloud9 用于创建环境的。 AWS 区域 然后,在导航窗格中选择 Your VPCs(您的 VPC)

例如,要使用 AWS CLI 或 AWS CloudShell,请运行 Amazon EC2 describe-vpcs命令,如下所示。

aws ec2 describe-vpcs --output table --query 'Vpcs[*].VpcId' --region us-east-2

在前面的命令中,us-east-2替换为 AWS 区域 在中 AWS Cloud9 创建环境的。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

输出包含 VPC ID 的列表。

查看 VPC 的子网列表

要使用 Amazon VPC 控制台,请选择导航窗格中的 Your VPCs(您的 VPC)。记下 VPC ID 列中的 VPC ID。然后选择导航窗格中的 Subnets (子网),并在 VPC 列中查找包含该 ID 的子网。

例如,要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 describe-subnets命令,如下所示。

aws ec2 describe-subnets --output table --query 'Subnets[*].[SubnetId,VpcId]' --region us-east-2

在前面的命令中,us-east-2替换为 AWS 区域 包含子网的。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

在输出中,查找与 VPC ID 匹配的子网。

确认子网是否是公有子网

重要

假设您正在将环境的 EC2 实例启动到私有子网中。确保允许该实例的出站流量,以便它能够连接到 SSM 服务。对于私有子网,出站流量通常通过网络地址转换 (NAT) 网关或 VPC 终端节点进行配置。(NAT 网关需要公有子网)。

假设您选择 VPC 端点(而不是 NAT 网关)来访问 SSM。如果实例的自动更新和安全补丁依赖于互联网访问,则它们可能无法正常工作。您可以使用其他应用程序(例如 S AWS ystems Manager Patch Manager)来管理您的环境可能需要的任何软件更新。 AWS Cloud9 软件将照常更新。

要使用 Amazon VPC 控制台,请选择导航窗格中的 Subnets(子网)。选中要使用的子网旁边的 AWS Cloud9 复选框。在 Route Table(路由表)选项卡上,如果在 Target(目标)列中有一个以 igw- 开头的条目,则该子网是公有子网。

要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 describe-route-tables命令。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Routes[*].{GatewayIds:GatewayId}' --region us-east-2 --filters Name=association.subnet-id,Values=subnet-12a3456b

在前面的命令中,us-east-2替换为 AWS 区域 包含子网的,然后subnet-12a3456b替换为子网 ID。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

在输出中,如果至少有一个结果以 igw- 开头,则子网为公有子网。

在输出中,如果没有结果,则路由表可能与 VPC 而不是子网关联。要确认这一点,请针对 VPC 的相关子网而不是子网本身运行 Amazon EC2 describe-route-tables 命令,如下所示。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Routes[*].{GatewayIds:GatewayId}' --region us-east-1 --filters Name=vpc-id,Values=vpc-1234ab56

在前面的命令中,us-east-2替换为包 AWS 区域 含 VPC 的,然后vpc-1234ab56替换为 VPC ID。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

在输出中,如果至少有一个结果以 igw- 开头,则 VPC 包含互联网网关。

查看或更改互联网网关的设置

要使用 Amazon VPC 控制台,请选择导航窗格中的 Internet Gateways(互联网网关)。选中 Internet 网关旁边的框。要查看这些设置,请查看每个选项卡。要更改某个选项卡上的设置,请选择 Edit (编辑)(如果适用),然后按照屏幕上的说明进行操作。

要使用 AWS CLI 或查看设置,请运行 Amazon EC2 describe-internet-gateways命令。aws-shell

aws ec2 describe-internet-gateways --output table --region us-east-2 --internet-gateway-id igw-1234ab5c

在前面的命令中,us-east-2替换为 AWS 区域 包含互联网网关的,并igw-1234ab5c替换为互联网网关 ID。要将上述命令与 aws-shell 一起运行,请忽略 aws

创建 Internet 网关

要使用 Amazon VPC 控制台,请选择导航窗格中的 Internet Gateways(互联网网关)。选择 Create internet gateway (创建 Internet 网关),然后按照屏幕上的说明进行操作。

要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 create-internet-gateway命令。

aws ec2 create-internet-gateway --output text --query 'InternetGateway.InternetGatewayId' --region us-east-2

在前面的命令中,us-east-2替换为 AWS 区域 包含新 Internet 网关的。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

输出包含新 Internet 网关的 ID。

将 Internet 网关附加到 VPC

要使用 Amazon VPC 控制台,请选择导航窗格中的 Internet Gateways(互联网网关)。选中 Internet 网关旁边的框。选择 Actions, Attach to VPC (操作,附加到 VPC)(如果可用),然后按照屏幕上的说明进行操作。

例如,要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 attach-internet-gateway命令,如下所示。

aws ec2 attach-internet-gateway --region us-east-2 --internet-gateway-id igw-a1b2cdef --vpc-id vpc-1234ab56

在前面的命令中,us-east-2替换为 AWS 区域 包含互联网网关的。将 igw-a1b2cdef 替换为互联网网关 ID。并将 vpc-1234ab56 替换为 VPC ID。要将上述命令与 aws-shell 一起运行,请忽略 aws

确认子网是否具有路由表

要使用 Amazon VPC 控制台,请选择导航窗格中的 Subnets(子网)。选中要使用的 VPC 的公有子网旁边的 AWS Cloud9 复选框。在 Route table(路由表)选项卡上,如果有 Route Table(路由表)的值,则公有子网具有一个路由表。

要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 describe-route-tables命令。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Associations[*].{RouteTableIds:RouteTableId}' --region us-east-2 --filters Name=association.subnet-id,Values=subnet-12a3456b

在前面的命令中,us-east-2替换为 AWS 区域 包含公有子网的,并subnet-12a3456b替换为公有子网 ID。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

如果输出中存在值,则公有子网具有至少一个路由表。

在输出中,如果没有结果,则路由表可能与 VPC 而不是子网关联。要进行确认,请针对子网的相关 VPC 而不是子网本身运行 Amazon EC2 describe-route-tables 命令,如下所示。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Associations[*].{RouteTableIds:RouteTableId}' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

在前面的命令中,us-east-2替换为包 AWS 区域 含 VPC 的,然后vpc-1234ab56替换为 VPC ID。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

在输出中,如果存在至少一个结果,则 VPC 至少具有一个路由表。

将路由表附加到子网

要使用 Amazon VPC 控制台,请选择导航窗格中的 Route Tables(路由表)。选中要附加的路由表旁边的框。在 Subnet Associations (子网关联) 选项卡上,选择 Edit (编辑),选中要将路由表附加到的子网旁边的框,然后选择 Save (保存)

例如,要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 associate-route-table命令,如下所示。

aws ec2 associate-route-table --region us-east-2 --subnet-id subnet-12a3456b --route-table-id rtb-ab12cde3

在前面的命令中,us-east-2替换为 AWS 区域 包含路由表的。将 subnet-12a3456b 替换为子网 ID。并将 rtb-ab12cde3 替换为路由表 ID。要将上述命令与 aws-shell 一起运行,请忽略 aws

创建路由表

要使用 Amazon VPC 控制台,请选择导航窗格中的 Route Tables(路由表)。选择 Create Route Table (创建路由表),然后按照屏幕上的说明进行操作。

例如,要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 create-route-table命令,如下所示。

aws ec2 create-route-table --output text --query 'RouteTable.RouteTableId' --region us-east-2 --vpc-id vpc-1234ab56

在前面的命令中,us-east-2替换为 AWS 区域 包含新路由表的,并vpc-1234ab56替换为 VPC ID。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

输出包含新路由表的 ID。

查看或更改路由表的设置

要使用 Amazon VPC 控制台,请选择导航窗格中的 Route Tables(路由表)。选中路由表旁边的框。要查看这些设置,请查看每个选项卡。要更改某个选项卡中的设置,请选择 Edit (编辑),然后按照屏幕上的说明进行操作。

要使用 AWS CLI 或查看设置,请运行 Amazon EC2 describe-route-tables命令,例如,如下所示。aws-shell

aws ec2 describe-route-tables --output table --region us-east-2 --route-table-ids rtb-ab12cde3

在前面的命令中,us-east-2替换为 AWS 区域 包含路由表的,并rtb-ab12cde3替换为路由表 ID。要将上述命令与 aws-shell 一起运行,请忽略 aws

建议的最低路由表设置 AWS Cloud9

目标位置 目标 状态 已传播

CIDR-BLOCK

本地

处于活动状态

0.0.0.0/0

igw-INTERNET-GATEWAY-ID

处于活动状态

在这些设置中,CIDR-BLOCK 是子网的 CIDR 块,igw-INTERNET-GATEWAY-ID 是兼容的互联网网关的 ID。

查看 VPC 的安全组列表

要使用 Amazon VPC 控制台,请选择导航窗格中的 Security Groups(安全组)。在 Search Security Groups(搜索安全组)框中,输入 VPC ID 或名称,然后按 Enter。将在搜索结果列表中显示该 VPC 的安全组。

要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 describe-security-groups命令。

aws ec2 describe-security-groups --output table --query 'SecurityGroups[*].GroupId' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

在前面的命令中,us-east-2替换为包 AWS 区域 含 VPC 的,然后vpc-1234ab56替换为 VPC ID。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

输出包含 VPC 的安全组 ID 的列表。

查看 AWS Cloud 计算实例的安全组列表

要使用 Amazon EC2 控制台,请展开导航窗格中的 Instances(实例),然后选择 Instances(实例)。在实例列表中,选择实例旁边的框。该实例的安全组将出现在 Description (描述) 选项卡中的 Security groups (安全组) 旁边。

例如,要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 describe-security-groups命令,如下所示。

aws ec2 describe-instances --output table --query 'Reservations[*].Instances[*].NetworkInterfaces[*].Groups[*].GroupId' --region us-east-2 --instance-ids i-12a3c456d789e0123

在前面的命令中,us-east-2替换为 AWS 区域 包含实例的,然后i-12a3c456d789e0123替换为实例 ID。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

输出包含实例的安全组 ID 的列表。

查看或更改 VPC 中的安全组的设置

要使用 Amazon VPC 控制台,请选择导航窗格中的 Security Groups(安全组)。选中安全组旁边的框。要查看这些设置,请查看每个选项卡。要更改某个选项卡上的设置,请选择 Edit (编辑)(如果适用),然后按照屏幕上的说明进行操作。

要使用 AWS CLI 或查看设置,请运行 Amazon EC2 describe-security-groups命令,例如,如下所示。aws-shell

aws ec2 describe-security-groups --output table --region us-east-2 --group-ids sg-12a3b456

在前面的命令中,us-east-2替换为 AWS 区域 包含实例的,然后sg-12a3b456替换为安全组 ID。要将上述命令与 aws-shell 一起运行,请忽略 aws

查看或更改 AWS Cloud 计算实例安全组的设置

要使用 Amazon EC2 控制台,请展开导航窗格中的 Instances(实例),然后选择 Instances(实例)。在实例列表中,选中实例旁边的框。在 Description (描述) 选项卡中,对于 Security groups (安全组)。查看每个选项卡。要更改某个选项卡上的设置,请选择 Edit (编辑)(如果适用),然后按照屏幕上的说明进行操作。

要使用 AWS CLI 或查看设置,请运行 Amazon EC2 describe-security-groups命令,例如,如下所示。aws-shell

aws ec2 describe-security-groups --output table --region us-east-2 --group-ids sg-12a3b456

在前面的命令中,us-east-2替换为 AWS 区域 包含实例的,然后sg-12a3b456替换为安全组 ID。要将上述命令与 aws-shell 一起运行,请忽略 aws

的最低入站和出站流量设置 AWS Cloud9

重要

实例的 IA 安全组可能没有入站规则。如果发生这种情况,这意味着不允许从另一台主机发送到实例的传入流量。有关使用非入口 EC2 实例的信息,请参阅 使用 AWS Systems Manager 访问非入口 EC2 实例

  • 入站:通过端口 22 使用 SSH 的所有 IP 地址。但是,您可以将这些 IP 地址限制为仅限 AWS Cloud9 使用的 IP 地址。有关更多信息,请参阅 AWS Cloud9 的入站 SSH IP 地址范围

    注意

    对于 2018 年 7 月 31 日当天或之后创建的 EC2 环境, AWS Cloud9 使用安全组通过端口 22 通过 SSH 限制入站 IP 地址。具体而言,这些入站 IP 地址只是 AWS Cloud9 使用的地址。有关更多信息,请参阅 AWS Cloud9 的入站 SSH IP 地址范围

  • 入站(仅限网络 ACL):对于 EC2 环境以及与运行 Amazon Linux 或 Ubuntu Server 的 Amazon EC2 实例关联的 SSH 环境,所有 IP 地址均通过端口 32768-61000 使用 TCP。有关更多信息以及其他 Amazon EC2 实例类型的端口范围,请参阅 Amazon VPC 用户指南 中的临时端口

  • 出站:使用任何协议和端口的所有流量源。

您可以在安全组级别设置该行为。要获得更高级别的安全性,您还可以使用网络 ACL。有关更多信息,请参阅 Amazon VPC 用户指南中的安全组和网络 ACL 的比较

例如,要将入站和出站规则添加到安全组中,您可以按如下方式设置这些规则。

入站规则
类型 协议 端口范围

SSH (22)

TCP (6)

22

0.0.0.0(但请参阅以下注释以及AWS Cloud9 的入站 SSH IP 地址范围。)

注意

对于 2018 年 7 月 31 日当天或之后创建的 EC2 环境, AWS Cloud9 添加入站规则,以限制通过端口 22 使用 SSH 的入站 IP 地址。这仅限于 AWS Cloud9 使用的地址。有关更多信息,请参阅 AWS Cloud9 的入站 SSH IP 地址范围

出站规则
类型 协议 端口范围

所有流量

ALL

ALL

0.0.0.0/0

如果您还选择将入站和出站规则添加到网络 ACL 中,您可以按如下方式设置这些规则。

入站规则
规则 # 类型 协议 端口范围 允许/拒绝

100

SSH (22)

TCP (6)

22

0.0.0.0(但请参阅AWS Cloud9 的入站 SSH IP 地址范围。)

允许

200

自定义 TCP 规则

TCP (6)

32768-61000(适用于 Amazon Linux 和 Ubuntu Server 实例。有关其他实例类型,请参阅临时端口。)

0.0.0.0/0

允许

*

所有流量

ALL

ALL

0.0.0.0/0

DENY

出站规则
规则 # 类型 协议 端口范围 允许/拒绝

100

所有流量

ALL

ALL

0.0.0.0/0

允许

*

所有流量

ALL

ALL

0.0.0.0/0

DENY

有关安全组和网络 ACL 的更多信息,请参阅 Amazon VPC 用户指南中的以下内容。

在 VPC 中创建安全组

要使用 Amazon VPC 或 Amazon EC2 控制台,请执行以下任一操作:

  • 在 Amazon VPC 控制台中,选择导航窗格中的 Security Groups(安全组)。选择 Create Security Group (创建安全组),然后按照屏幕上的说明进行操作。

  • 在 Amazon EC2 控制台中,展开导航窗格中的 Network & Security(网络与安全),然后选择 Security Groups(安全组)。选择 Create Security Group (创建安全组),然后按照屏幕上的说明进行操作。

例如,要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 create-security-group命令,如下所示。

aws ec2 create-security-group --region us-east-2 --vpc-id vpc-1234ab56

在前面的命令中,us-east-2替换为包 AWS 区域 含 VPC 的,然后vpc-1234ab56替换为 VPC ID。要将上述命令与 aws-shell 一起运行,请忽略 aws

确认 VPC 是否具有至少一个网络 ACL

要使用 Amazon VPC 控制台,请选择导航窗格中的 Your VPCs(您的 VPC)。选择要使用的 VPC 旁边的 AWS Cloud9 复选框。在 Summary(摘要)选项卡上,如果具 Network ACL(网络 ACL)的值,则 VPC 具有至少一个网络 ACL。

要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 describe-network-acls命令。

aws ec2 describe-network-acls --output table --query 'NetworkAcls[*].Associations[*].NetworkAclId' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

在前面的命令中,us-east-2替换为包 AWS 区域 含 VPC 的,然后vpc-1234ab56替换为 VPC ID。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

如果输出包含列表中的至少一个条目,则 VPC 至少具有一个网络 ACL。

查看 VPC 的网络 ACL 列表

要使用 Amazon VPC 控制台,请选择导航窗格中的 Network ACLs(网络 ACL)。在 Search Network ACLs(搜索网络 ACL)框中,输入 VPC ID 或名称,然后按 Enter。将在搜索结果列表中显示该 VPC 的网络 ACL。

要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 describe-network-acls命令。

aws ec2 describe-network-acls --output table --query 'NetworkAcls[*].Associations[*].NetworkAclId' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

在前面的命令中,us-east-2替换为包 AWS 区域 含 VPC 的,然后vpc-1234ab56替换为 VPC ID。要在 Windows 中运行上述命令,请将单引号(' ')替换为双引号(" ")。要将上述命令与 aws-shell 一起运行,请忽略 aws

输出包含 VPC 的网络 ACL 的列表。

查看或更改网络 ACL 的设置

要使用 Amazon VPC 控制台,请选择导航窗格中的 Network ACLs(网络 ACL)。选择网络 ACL 旁边的框。要查看这些设置,请查看每个选项卡。要更改某个选项卡上的设置,请选择 Edit(编辑)(如果适用),然后按照屏幕上的说明进行操作。

要使用 AWS CLI 或查看设置,请运行 Amazon EC2 describe-network-acls命令。aws-shell

aws ec2 describe-network-acls --output table --region us-east-2 --network-acl-ids acl-1234ab56

在前面的命令中,us-east-2替换为 AWS 区域 包含网络 ACL 的,然后acl-1234ab56替换为网络 ACL ID。要将上述命令与 aws-shell 一起运行,请忽略 aws

创建网络 ACL

要使用 Amazon VPC 控制台,请选择导航窗格中的 Network ACLs(网络 ACL)。选择 Create Network ACL (创建网络 ACL),然后按照屏幕上的说明进行操作。

要使用 AWS CLI 或aws-shell,请运行 Amazon EC2 create-network-acl命令。

aws ec2 create-network-acl --region us-east-2 --vpc-id vpc-1234ab56

在前面的命令中,us-east-2替换为 AWS 区域 包含要将新网络 ACL 连接到的 VPC 的。另外,将 vpc-1234ab56 替换为 VPC ID。要将上述命令与 aws-shell 一起运行,请忽略 aws

创建 VPC 以及其他 VPC 资源

按照以下过程创建 VPC 以及运行应用程序所需的其他 VPC 资源。VPC 资源包括子网、路由表、互联网网关和 NAT 网关。

使用控制台创建 VPC、子网和其他 VPC 资源
  1. 通过 https://console.aws.amazon.com/vpc/ 打开 Amazon VPC 控制台。

  2. 在 VPC 控制面板上,选择创建 VPC

  3. 对于要创建的资源,选择 VPC 等

  4. 要为 VPC 资源创建名称标签,请选中名称标签自动生成。要为 VPC 资源提供自己的名称标签,请取消选中该选项。

  5. 对于 IPv4 CIDR 块,必须输入 VPC 的 IPv4 地址范围。推荐的 IPv4 范围 AWS Cloud9 为10.0.0.0/16

  6. (可选)要支持 IPv6 流量,请选择 IPv6 CIDR 块,然后选择 Amazon 提供的 IPv6 CIDR 块

  7. 选择租赁选项。此选项定义您启动到此 VPC 中的 EC2 实例是在与其他 AWS 账户 共享的硬件上运行,还是在专供您使用的硬件上运行。如果您选择将 VPC 的租赁设为 Default,则在此 VPC 中启动的 EC2 实例将使用您在启动实例时指定的租赁属性。有关更多信息,请参阅 Amazon EC2 用户指南中的使用定义的参数启动实例。

    如果您选择 VPC 的租赁为 Dedicated,则这些实例将始终在专供您使用的硬件上作为专用实例运行。如果您使用的是 AWS Outposts,则您的 Outpost 需要私有连接;您必须使用 Default 租赁。

  8. 对于可用区 (AZ)数量,我们建议生产环境至少在两个 Availability Zones 中预置子网。要为您的子网选择可用区,请展开自定义可用区。否则,您可以让 AWS 自己选择可用区。

  9. 要配置子网,请选择公有子网的数量私有子网的数量的值。要选择子网的 IP 地址范围,请展开自定义子网 CIDR 块。否则,让我们为你 AWS 选择它们。

  10. (可选)如果私有子网中的资源需要通过 IPv4 访问公共互联网:对于 NAT 网关,请选择要在其中创建 NAT 网关的可用区数量。在生产环境中,我们建议您在每个可用区部署一个 NAT 网关,其中包含需要访问公共互联网的资源。

  11. (可选)如果私有子网中的资源需要通过 IPv6 访问公共互联网:对于仅限出口的互联网网关,请选择

  12. (可选)如果要直接从 VPC 访问 Amazon S3,请选择 VPC 端点S3 网关。这将为 Amazon S3 创建一个网关 VPC 端点。有关更多信息,请参阅《AWS PrivateLink 指南》中的 网关 VPC 端点

  13. (可选)对于 DNS 选项,默认情况下,两个域名解析选项均处于启用状态。如果默认设置无法满足您的需求,您可以停用这些选项。

  14. (可选)要向 VPC 添加标签,请展开其他标签,选择添加新标签,然后输入标签键和标签值。

  15. 预览窗格中,您可以直观地显示您所配置的 VPC 资源之间的关系。实线表示资源之间的关系。虚线表示指向 NAT 网关、互联网网关和网关端点的网络流量。创建 VPC 后,您可以使用资源地图选项卡,随时以此格式直观地显示 VPC 的资源。

  16. VPC 配置完成后,选择创建 VPC

仅创建 VPC

按照以下过程,使用 Amazon VPC 控制台创建无额外 VPC 资源的 VPC。

使用控制台创建无额外 VPC 资源的 VPC。
  1. 通过 https://console.aws.amazon.com/vpc/ 打开 Amazon VPC 控制台。

  2. 在 VPC 控制面板上,选择创建 VPC

  3. 对于要创建的资源,选择 仅 VPC

  4. (可选)对于名称标签,输入 VPC 的名称。这样做可创建具有 Name 键以及您指定的值的标签。

  5. 对于 IPv4 CIDR block(IPv4 CIDR 块),请执行以下操作之一:

    • 选择 IPv4 CIDR 手动输入,然后输入您的 VPC 的 IPv4 地址范围。推荐的 IPv4 范围 AWS Cloud9 为10.0.0.0/16

    • 选择 IPAM 分配的 IPv4 CIDR 块,然后选择一个 Amazon VPC IP 地址管理器 (IPAM) IPv4 地址池和网络掩码。CIDR 块的大小受 IPAM 池上的分配规则限制。IPAM 是一项 VPC 功能,可帮助您规划、跟踪和监控工作负载的 IP 地址。 AWS 有关更多信息,请参阅《Amazon Virtual Private Cloud 管理员指南》中的什么是 IPAM?

      如果您使用 IPAM 来管理 IP 地址,我们建议您选择此选项。否则,您为 VPC 指定的 CIDR 块可能与 IPAM CIDR 分配重叠。

  6. (可选)要创建双堆栈 VPC,请为您的 VPC 指定一个 IPv6 地址范围。对于 IPv6 CIDR block(IPv6 CIDR 块),请执行以下操作之一:

    • 选择 IPAM 分配的 IPv6 CIDR 块,然后选择您的 IPAM IPv6 地址池。CIDR 块的大小受 IPAM 池上的分配规则限制。

    • 要从 Amazon 的 IPv6 地址池请求 IPv6 CIDR 块,请选择 Amazon 提供的 IPv6 CIDR 块。对于网络边界组,选择从中 AWS 通告 IP 地址的组。Amazon 提供 /56 固定大小的 IPv6 CIDR 块。

    • 选择我拥有的 IPv6 CIDR,使用你自带的 IP 地址 (BYOIP) AWS 使用你带来的 IP v6 CIDR 块。对于 Pool(池),选择要从中分配 IPv6 CIDR 块的 IPv6 地址池。

  7. (可选)选择租赁选项。此选项定义了您在 VPC 中启动的 EC2 实例是在与其他人共享的硬件上运行 AWS 账户 还是仅供您使用的硬件上运行。如果您选择将 VPC 的租赁设为 Default,则在此 VPC 中启动的 EC2 实例将使用您在启动实例时指定的租赁属性。有关更多信息,请参阅 Amazon EC2 用户指南中的使用定义的参数启动实例。

    如果您选择 VPC 的租赁为 Dedicated,则这些实例将始终在专供您使用的硬件上作为专用实例运行。如果您使用的是 AWS Outposts,则您的 Outpost 需要私有连接;您必须使用 Default 租赁。

  8. (可选)要向 VPC 添加标签,请选择添加新标签,然后输入标签键和标签值。

  9. 选择创建 VPC

  10. 创建 VPC 后,您可以添加子网。

为创建子网 AWS Cloud9

您可以使用 Amazon VPC 控制台为与兼容的 VPC 创建子网 AWS Cloud9。您是否可以为 EC2 实例创建私有子网或公有子网,取决于环境与其连接的方式:

  • 通过 SSH 直接访问:仅限公有子网

  • 通过 Systems Manager 访问:公有子网或私有子网

在私有子网启动环境的 EC2 这一选项仅在使用控制台、命令行或 AWS CloudFormation 创建“非入口”EC2 环境时可用。

您可以按照相同的步骤创建子网,该子网可设为公有或私有。如果子网的关联路由表包含指向互联网网关的路由,则该子网是公有子网。但是如果子网的关联路由表没有指向互联网网关的路由,则该子网是私有子网。有关更多信息,请参阅 将子网配置为公有子网或私有子网

如果您按照前面的步骤为其创建 VPC AWS Cloud9,则无需执行此过程。这是因为新建 VPC 向导自动为您创建子网。

重要
  • AWS 账户 必须已经在同 AWS 区域 一个环境中具有兼容的 VPC。有关更多信息,请参阅亚马逊 VPC 对以下内容的要求 AWS Cloud9中的 VPC 要求。

  • 对于此过程,我们建议您在中使用 IAM 管理员的证书登录 AWS Management Console 并打开 Amazon VPC 控制台 AWS 账户。如果您无法执行此操作,请咨询您的 AWS 账户 管理员。

  • 某些企业可能不允许您自行创建子网。如果您无法创建子网,请咨询您的 AWS 账户 管理员或网络管理员。

创建子网
  1. 如果亚马逊 VPC 控制台尚未打开,请登录 AWS Management Console 并打开亚马逊 VPC 控制台,网址为 https://console.aws.amazon.com/vpc

  2. 在导航栏中 AWS 区域 ,如果与环境的区域不同,请选择正确的区域。

  3. 如果尚未显示子网页,请在导航窗格中选择子网

  4. 选择创建子网

  5. Create Subnet(创建子网)对话框中,在 Name tag(名称标签)中输入子网的名称。

  6. 对于 VPC,请选择要与子网关联的 VPC。

  7. 对于可用区,选择子网要使用的可用区,或者选择无首选项让您 AWS 选择可用区。 AWS 区域

  8. 对于 IPv4 CIDR 块,请使用 CIDR 格式输入供子网使用的 IP 地址范围。该 IP 地址范围必须是 VPC 中的 IP 地址子集。

    有关 CIDR 块的信息,请参阅 Amazon VPC 用户指南中的 VPC 和子网大小调整。另请参阅 3.1。RFC 4632 中的基本概念和前缀表示法,或 Wikipedia 中的 IPv4 CIDR 块

创建子网后,将其配置为公有子网或私有子网

将子网配置为公有子网或私有子网

创建子网后,您可以通过指定子网与互联网通信的方式将其设为公有子网或私有子网。

公有子网有一个公有 IP 地址,并且连接了一个互联网网关(IGW),以允许子网的实例与互联网以及其他 AWS 服务进行通信。

私有子网中的实例具有私有 IP 地址,并且网络地址转换(NAT)网关用于在子网的实例与互联网以及其他 AWS 服务之间来回发送流量。NAT 网关必须托管在公有子网中。

Public subnets
注意

即使您环境的实例是在私有子网中启动的,您的 VPC 也必须至少具有一个公有子网。这是因为转发进出实例的流量的 NAT 网关必须托管在公有子网中。

将子网配置为公有子网,包括将互联网网关 (IGW) 附加到该子网、配置路由表以指定通往该 IGW 的路由以及在安全组中定义用于控制入站和出站流量的设置。

有关执行这些任务的指导,请参阅 创建 VPC 以及其他 VPC 资源

重要

如果您的开发环境使用 SSM 访问 EC2 实例,请确保该实例被启动到的公有子网分配了公有 IP 地址。为此,您必须为公有子网启用自动分配公有 IP 地址选项,并将其设置为 Yes。在子网设置页面中创建 AWS Cloud9 环境之前,可以在公有子网上启用此功能。有关修改公有子网中自动分配 IP 设置的步骤,请参阅《Amazon VPC 用户指南》中的修改子网的公有 IPv4 寻址属性。有关配置共有子网和私有子网的更多信息,请参阅 将子网配置为公有子网或私有子网。

Private subnets

如果您正在创建通过 Systems Manager 访问的非入口实例,则可以在私有子网中将其启动。私有子网没有公有 IP 地址。因此,您需要一个 NAT 网关以将私有 IP 地址映射到公有地址来进行请求,并且还需要将公有 IP 地址映射回私有地址以进行响应。

警告

您在账户中创建和使用 NAT 网关会产生费用。NAT 网关小时使用费率和数据处理费率适用于此。Amazon EC2 数据传输费同样适用。有关更多信息,请参阅 Amazon VPC 定价

在创建和配置 NAT 网关之前,您必须执行以下操作:

  • 创建一个公有 VPC 子网以托管 NAT 网关。

  • 预置可分配给 NAT 网关的弹性 IP 地址

  • 对于私有子网,清除 Enable auto-assign public IPv4 address(启用自动分配公有 IPv4 地址)复选框,以便为启动到其中的实例分配一个私有 IP 地址。有关更多信息,请参阅 Amazon VPC 用户指南中的您的 VPC 中的 IP 地址

有关此任务中的步骤,请参阅 Amazon VPC 用户指南中的使用 NAT 网关

重要

目前,如果您的环境的 EC2 实例启动到私有子网,则无法使用AWS 托管临时证书允许 EC2 环境 AWS 服务 代表 AWS 实体(例如 IAM 用户)进行访问。