Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
设置以使用 Amazon EC2
完成本部分中的任务,以便为首次启动 Amazon EC2 实例进行设置:
完成后,您将准备好学习 Amazon EC2 入门教程。
注册 Amazon Web Services 账户
如果您没有Amazon Web Services 账户,请完成以下步骤来创建一个。
Amazon注册过程完成后,会发送一封确认电子邮件。在任何时候,您都可以通过转至 https://aws.amazon.com/ 并选择 My Account(我的账户) 来查看当前的账户活动并管理您的账户。
保护 IAM 用户
注册Amazon Web Services 账户后,启用多重身份验证(MFA)保护管理用户。有关说明,请参阅 IAM 用户指南 中的 为 IAM 用户启用虚拟 MFA 设备(控制台)。
要授予其他用户访问Amazon Web Services 账户资源的权限,请创建 IAM 用户。为了保护 IAM 用户,请启用 MFA 并仅向 IAM 用户授予执行任务所需的权限。
有关创建和保护 IAM 用户的更多信息,请参阅《IAM 用户指南》中的以下主题:
创建密钥对
Amazon 使用公有密钥密码术来保护实例的登录信息。在启动实例时指定密钥对的名称,然后在提供私有密钥,以获取 Windows 实例的管理员密码,以便您使用远程桌面协议(RDP)进行登录。
如果您尚未创建密钥对,则可以通过 Amazon EC2 控制台自行创建。请注意,如果您计划在多个 Amazon Web Services 区域中启动实例,则需要在每个区域中创建密钥对。有关 区域的更多信息,请参阅区域和可用区。
创建密钥对
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格中,选择 Key Pairs (密钥对)。
-
选择 Create key pair (创建密钥对)。
-
对于 Name (名称),为模板输入一个描述性名称。Amazon EC2 将公有密钥与您指定的密钥名称相关联。密钥名称最多可包含 255 个 ASCII 字符。它不能包含前导空格或尾随空格。
-
对于 Key pair type(密钥对类型),选择 RSA 或者 ED25519。请注意,Windows 实例不支持 ED25519 密钥。
-
对于 Private key file format(私有密钥文件格式),选择要保存私有密钥的格式。要以可与 OpenSSH 一起使用的格式保存私有密钥,请选择 pem。要以可与 PuTTY 一起使用的格式保存私有密钥,请选择 ppk。
-
选择 Create key pair (创建密钥对)。
-
您的浏览器会自动下载私有密钥文件。基本文件名是指定为密钥对名称的名称,文件扩展名由您选择的文件格式确定。将私有密钥文件保存在安全位置。
有关更多信息,请参阅Amazon EC2 密钥对和 Windows 实例。
创建安全组
安全组用作相关实例的防火墙,可在实例级别控制入站和出站的数据流。您必须在安全组中添加规则,以便能够使用 RDP 从您的 IP 地址连接到实例。您还可以添加允许来自任意位置的入站和出站 HTTP 和 HTTPS 访问的规则。
请注意,如果您计划在多个 Amazon Web Services 区域 中启动实例,则需要在每个区域中创建安全组。有关 区域的更多信息,请参阅区域和可用区。
先决条件
您需要使用本地计算机的公有 IPv4 地址。Amazon EC2 控制台中的安全组编辑器可以为您自动检测公有 IPv4 地址。此外,您可以在 Internet 浏览器中使用搜索短语“什么是我的 IP 地址”,或使用以下服务:检查 IP。如果您正通过 Internet 服务提供商 (ISP) 连接或者在不使用静态 IP 的情况下从防火墙后面连接,则您需要找出客户端计算机使用的 IP 地址范围。
您可以使用以下方法之一创建自定义安全组。
- Console
-
创建具有最小特权的安全组
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
从顶部的导航栏中选择安全组的 Amazon Web Services 区域。安全组特定于某一区域,因此您应选择已创建密钥对的区域。
-
在左侧导航窗格中,选择安全组。
-
选择创建安全组。
-
对于 Basic details (基本详细信息),执行以下操作:
-
输入新安全组的名称和描述。使用一个容易记住的名称,例如,您的用户名称,后跟 _SG_,加区域名称。例如,me_SG_uswest2。
-
在 VPC 列表中,为区域选择您的默认 VPC。
-
对于 Inbound rules (入站规则),创建允许传输到您的实例的规则。例如,对于接受 HTTP 和 HTTPS 流量的 Web 服务器,请使用以下规则。有关更多示例,请参阅 针对不同使用案例的安全组规则。
-
选择 添加规则。对于类型,选择 HTTP。对于来源,选择 Anywhere-IPv4 以允许来自任何 IPv4 地址的入站 HTTP 流量,或者选择 Anywhere-IPv6 以允许来自任何 IPv6 地址的入站 HTTP 流量。
-
选择 添加规则。对于类型,选择 HTTPS。对于来源,选择 Anywhere-IPv4 以允许来自任何 IPv4 地址的入站 HTTPS 流量,或者选择 Anywhere-IPv6 以允许来自任何 IPv6 地址的入站 HTTPS 流量。
-
选择 Add rule (添加规则)。对于 Type (类型),选择 RDP。对于 Source (源),执行以下操作之一:
出于安全原因,请勿为具有 RDP 规则的来源选择 Anywhere-IPv4 或 Anywhere-IPv6。这会允许从互联网上的所有 IP 地址访问您的实例。这在测试环境中可以接受一小段时间,但是在生产环境中并不安全。
-
对于 Outbound rules (出站规则),请保留允许所有出站流量的默认规则。
-
选择创建安全组。
- Amazon CLI
-
当您使用 Amazon CLI 创建安全组时,将向安全组自动添加允许所有出站流量的出站规则。入站规则不会自动添加;需要您手动添加。
在此过程中,您将组合使用 create-security-group 和 authorize-security-group-ingress Amazon CLI 命令来创建安全组,并添加允许指定入站流量的入站规则。单独运行命令可替代以下过程,即先创建安全组,然后向安全组添加入站规则。
创建安全组并向安全组添加入站规则
按照如下所示使用 create-security-group 和 authorize-security-group-ingress Amazon CLI 命令:
aws ec2 authorize-security-group-ingress \
--region us-west-2
\
--group-id $(aws ec2 create-security-group \
--group-name myname_SG_uswest2
\
--description "Security group description
" \
--vpc-id vpc-12345678
\
--output text \
--region us-west-2
) \
--ip-permissions \
IpProtocol=tcp,FromPort=80,ToPort=80,IpRanges='[{CidrIp=0.0.0.0/0,Description="HTTP from anywhere
"}]' \
IpProtocol=tcp,FromPort=443,ToPort=443,IpRanges='[{CidrIp=0.0.0.0/0,Description="HTTPS from anywhere
"}]' \
IpProtocol=tcp,FromPort=3389,ToPort=3389,IpRanges='[{CidrIp=172.31.0.0/16
,Description="RDP from private network
"}]' \
IpProtocol=tcp,FromPort=3389,ToPort=3389,IpRanges='[{CidrIp=203.0.113.25/32
,Description="RDP from public IP
"}]'
对于:
-
--region
:指定要在其中创建入站规则的区域。
-
--group-id
:指定用于创建安全组的 create-security-group
命令和以下参数:
-
--group-name
:指定新安全组的名称。使用一个容易记住的名称(如您的用户名)后跟 _SG_
加区域名称。例如,myname_SG_uswest2
。
-
--description
:指定有助于了解安全组允许的流量的描述。
-
--vpc-id
:指定该区域的默认 VPC。
-
--output
:指定 text
作为命令的输出格式。
-
--region
:指定要在其中创建安全组的区域。该区域应与您为入站规则指定的区域相同。
-
--ip-permissions
:指定要添加到安全组的入站规则。本示例中的规则适用于 Web 服务器,该服务器接受来自任何地方的 HTTP 和 HTTPS 流量,并接受来自专用网络(如果您的公司或路由器从某个范围分配地址)以及指定公有 IP 地址(例如采用 CIDR 表示法的计算机或网络的公有 IPv4 地址)的 RDP 流量。
出于安全原因,请勿使用 RDP 规则为 CidrIp
指定 0.0.0.0/0
。这会允许从互联网上的所有 IP 地址访问您的实例。这在测试环境中可以接受一小段时间,但是在生产环境中并不安全。
- PowerShell
-
当您使用 Amazon Tools for Windows PowerShell 创建安全组时,将向安全组自动添加允许所有出站流量的出站规则。入站规则不会自动添加;需要您手动添加。
在此过程中,您将组合使用 New-EC2SecurityGroup 和 Grant-EC2SecurityGroupIngress Amazon Tools for Windows PowerShell 命令来创建安全组,并添加允许指定入站流量的入站规则。单独运行命令可替代以下过程,即先创建安全组,然后向安全组添加入站规则。
创建安全组
按照如下所示使用 New-EC2SecurityGroup 和 Grant-EC2SecurityGroupIngress Amazon Tools for Windows PowerShell 命令。
Import-Module AWS.Tools.EC2
New-EC2SecurityGroup -GroupName myname_SG_uswest2
-Description 'Security group description
' -VpcId vpc-12345678
-Region us-west-2
| `
Grant-EC2SecurityGroupIngress `
-GroupName $_ `
-Region us-west-2
`
-IpPermission @(
(New-Object -TypeName Amazon.EC2.Model.IpPermission -Property @{
IpProtocol = 'tcp';
FromPort = 80;
ToPort = 80;
Ipv4Ranges = @(@{CidrIp = '0.0.0.0/0'; Description = 'HTTP from anywhere
'})
}),
(New-Object -TypeName Amazon.EC2.Model.IpPermission -Property @{
IpProtocol = 'tcp';
FromPort = 443;
ToPort = 443;
Ipv4Ranges = @(@{CidrIp = '0.0.0.0/0'; Description = 'HTTPS from anywhere
'})
}),
(New-Object -TypeName Amazon.EC2.Model.IpPermission -Property @{
IpProtocol = 'tcp';
FromPort = 3389;
ToPort = 3389;
Ipv4Ranges = @(
@{CidrIp = '172.31.0.0/16
'; Description = 'RDP from private network
'},
@{CidrIp = '203.0.113.25/32
'; Description = 'RDP from public IP
'}
)
})
)
对于安全组:
对于入站规则:
-
-GroupName
:指定 $_
以引用您正在创建的安全组。
-
-Region
:指定要在其中创建入站规则的区域。该区域应与您为安全组指定的区域相同。
-
-IpPermission
:指定要添加到安全组的入站规则。本示例中的规则适用于 Web 服务器,该服务器接受来自任何地方的 HTTP 和 HTTPS 流量,并接受来自专用网络(如果您的公司或路由器从某个范围分配地址)以及指定公有 IP 地址(例如采用 CIDR 表示法的计算机或网络的公有 IPv4 地址)的 RDP 流量。
出于安全原因,请勿使用 RDP 规则为 CidrIp
指定 0.0.0.0/0
。这会允许从互联网上的所有 IP 地址访问您的实例。这在测试环境中可以接受一小段时间,但是在生产环境中并不安全。
有关更多信息,请参阅 适用于 Windows 实例的 Amazon EC2 安全组。