設定以使用 Amazon EC2。
完成本節中的任務,即可為第一次啟動 Amazon EC2 執行個體進行設定:
完成後,您將準備好進行 Amazon EC2 入門教學課程。
註冊 AWS 帳戶
如果您還沒有 AWS 帳戶,請完成下列步驟建立新帳戶。
註冊程序完成後,AWS 會傳送一封確認電子郵件給您。您可以隨時前往 https://aws.amazon.com/ 並選擇 我的帳戶,以檢視您目前的帳戶活動並管理帳戶。
建立管理使用者
在您註冊 AWS 帳戶 之後,請建立管理使用者,讓您可以不使用根使用者處理日常作業。
建立金鑰對
AWS 使用公有金鑰的密碼編譯,保護您執行個體登入資訊的安全。Linux 執行個體沒有密碼,您可以使用金鑰對安全地登入執行個體。當您啟動執行個體時,應指定金鑰對的名稱,然後提供私有金鑰 (在使用 SSH 登入時)。
如果您尚未建立金鑰對,可以使用 Amazon EC2 主控台來建立。請注意,如果您計劃在多個 AWS 區域 中啟動執行個體,您將需要在每個區域中各建立一組金鑰對。如需關於區域的詳細資訊,請參閱區域 (Region) 和區域 (Zone)。
建立您的金鑰對
在 https://console.aws.amazon.com/ec2/ 開啟 Amazon 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 (建立金鑰對)。
-
您的瀏覽器會自動下載私有金鑰檔案。基礎檔案名稱是您所指定的金鑰對名稱,而副檔名是根據您選擇的檔案格式所決定。將私有金鑰檔案存放在安全的地方。
-
如果您計劃在 macOS 或 Linux 電腦上使用 SSH 用戶端連線至 Linux 執行個體,請使用下列命令設定私有金鑰檔案的許可,以便只有您能夠讀取該檔案。
chmod 400 key-pair-name
.pem
如果您未設定這些許可,則無法使用此金鑰對來連接至您的執行個體。如需更多詳細資訊,請參閱 錯誤:未受保護的私有金鑰檔案。
如需更多詳細資訊,請參閱 Amazon EC2 金鑰對和 Linux 執行個體。
建立安全群組
安全群組就像是防火牆,用於關聯的執行個體,可在執行個體層級控制傳入及傳出流量。您必須新增安全群組的規則,使您能夠使用 SSH 從 IP 地址連線到執行個體。您也可以新增允許任何位置之傳入和傳出 HTTP 和 HTTPS 存取的規則。
請注意,如果您計劃在多個 AWS 區域 中啟動執行個體,將需要在每個區域中各建立一個安全群組。如需關於區域的詳細資訊,請參閱區域 (Region) 和區域 (Zone)。
先決條件
您會需要本機電腦的公有 IPv4 地址。Amazon EC2 主控台中的安全群組編輯器,可以自動為您偵測公有 IPv4 地址。或者,您可以在網際網路瀏覽器中使用「what is my IP address (我的 IP 地址是什麼)」搜尋字詞,或是使用下列的服務:Check IP。如果您透過網際網路服務提供者 (ISP) 或是經由不具靜態 IP 地址的防火牆連線,則需找出用戶端電腦使用的 IP 地址範圍。
您可以使用下列其中一種方法建立自訂安全性群組。
- New console
-
建立具有最低權限的安全群組
在 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。
-
從頂端導覽列,為安全群組選取一個 AWS 區域。安全群組是區域特有的,因此您應該選取您建立金鑰對的同一個區域。
-
在左導覽窗格中,選擇 Security Groups (安全群組)。
-
選擇 Create Security Group (建立安全群組)。
-
對於 Basic details (基本詳細資訊),執行下列動作:
-
輸入新安全群組的名稱和說明。選擇一個好記的名稱,例如您的使用者名稱,後面加上 _SG_,再加上區域名稱。例如,me_SG_uswest2。
-
在 VPC 清單中,為區域選取您的預設 VPC。
-
對於 Inbound rules (傳入規則),請建立允許特定流量觸達執行個體的規則。例如,對於接受 HTTP 和 HTTPS 流量的 Web 伺服器使用下列規則。如需更多範例,請參閱 不同使用案例的安全群組規則。
-
選擇 Add rule (新增規則)。針對 Type (類型),選擇 HTTP。針對 Source (來源),選擇 Anywhere (隨處)。
-
選擇 Add rule (新增規則)。對於 Type (類型),選擇 HTTPS。針對 Source (來源),選擇 Anywhere (隨處)。
-
選擇 Add rule (新增規則)。對於 Type (類型),選擇 SSH。對於 Source (來源),請執行下列其中一項動作:
基於安全考量,請勿對 Source (來源) 選擇 Anywhere (隨處),請勿對 SSH 選擇規則。這將允許從網際網路上的所有 IP 地址存取您的執行個體。通常在測試環境中短暫進行此操作是沒有問題的,但用在生產環境則不安全。
-
對於 Outbound rules (傳出規則),請保留允許所有傳出流量的預設規則。
-
選擇 Create Security Group (建立安全群組)。
- Old console
-
建立具有最低權限的安全群組
-
在 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。
-
在左導覽窗格中,選擇 Security Groups (安全群組)。
-
選擇 Create Security Group (建立安全群組)。
-
輸入新安全群組的名稱和說明。選擇一個好記的名稱,例如您的使用者名稱,後面加上 _SG_,再加上區域名稱。例如,me_SG_uswest2。
-
在 VPC 清單中,為區域選取您的預設 VPC。
在 Inbound rules (傳入規則) 索引標籤上,建立下列規則 (針對每個新規則選擇 Add rule (新增規則)):
從 Type (類型) 清單中選擇 HTTP,並確認 Source (來源) 設定為 Anywhere (任何位置) (0.0.0.0/0
)。
從 Type (類型) 清單中選擇 HTTPS,並確認 Source (來源) 設定為 Anywhere (任何位置) (0.0.0.0/0
)。
-
從 Type (類型) 清單中選擇 SSH。在 Source (來源) 方塊中選擇 My IP (我的 IP),以使用本機電腦的公有 IPv4 地址來自動填寫欄位。或者,請選擇 Custom (自訂),並以 CIDR 表示法來指定您的電腦或網路的公有 IPv4 地址。若要以 CIDR 表示法指定個別 IP 地址,請加上路由前綴 /32
,例如 203.0.113.25/32
。如果您的公司會分配某個範圍的地址,請指定整個範圍 (例如 203.0.113.0/24
)。
基於安全考量,請勿允許 SSH 從所有 IP 地址中存取您的執行個體。通常在測試環境中短暫進行此操作是沒有問題的,但用在生產環境則不安全。
-
在 Outbound rules (傳出規則) 索引標籤上,保留允許所有傳出流量的預設規則。
-
選擇 Create Security Group (建立安全群組)。
- AWS CLI
-
使用 AWS CLI 建立安全群組時,允許所有傳出流量的傳出規則會自動新增至安全群組。系統不會自動新增傳入規則,您必須手動新增。
在此程序中,您將會結合 create-security-group 和 authorize-security-group-ingress AWS CLI 命令來建立安全群組,並新增允許指定傳入流量的傳入規則。下列程序的替代方案是個別執行命令,先建立安全群組,然後將傳入規則新增至安全群組。
若要建立安全群組並將傳入規則新增至安全群組
使用 create-security-group 和 authorize-security-group-ingress AWS 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=22,ToPort=22,IpRanges='[{CidrIp=172.31.0.0/16
,Description="SSH from private network
"}]' \
IpProtocol=tcp,FromPort=22,ToPort=22,IpRanges='[{CidrIp=203.0.113.25/32
,Description="SSH from public IP
"}]'
對於:
-
--region
:指定要建立傳入規則的區域。
-
--group-id
:指定 create-security-group
命令以及下列參數以建立安全群組:
-
--group-name
:指定新安全群組的名稱。使用容易記得的名稱 (例如您的使用者名稱),並在後面加上 _SG_
和區域名稱。例如 myname_SG_uswest2
。
-
--description
:指定可協助您了解安全群組允許哪些流量的描述。
-
--vpc-id
:指定區域的預設 VPC。
-
--output
:將 text
指定為命令的輸出格式。
-
--region
:指定要建立安全群組的區域。該區域應與您為傳入規則指定的區域為同一個區域。
-
--ip-permissions
:指定要新增至安全群組的傳入規則。此範例中的規則適用於接受來自任何位置的 HTTP 和 HTTPS 流量,且接受來自私人網路的 SSH 流量 (如果您的公司或路由器是從某個範圍分配位址) 和指定公有 IP 地址 (例如您以 CIDR 標記法標記的電腦或網路公有 IPv4 位址) 流量的 Web 伺服器。
基於安全考量,請勿使用 SSH 的規則來為 CidrIp
指定 0.0.0.0/0
。這將允許從網際網路上的所有 IP 地址存取您的執行個體。通常在測試環境中短暫進行此操作是沒有問題的,但用在生產環境則不安全。
- PowerShell
-
使用 AWS Tools for Windows PowerShell 建立安全群組時,允許所有傳出流量的傳出規則會自動新增至安全群組。系統不會自動新增傳入規則,您必須手動新增。
在此程序中,您將會結合 New-EC2SecurityGroup 和 Grant-EC2SecurityGroupIngress AWS Tools for Windows PowerShell 命令來建立安全群組,並新增允許指定傳入流量的傳入規則。下列程序的替代方案是個別執行命令,先建立安全群組,然後將傳入規則新增至安全群組。
建立安全群組
使用 New-EC2SecurityGroup 和 Grant-EC2SecurityGroupIngress AWS 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
:指定要新增至安全群組的傳入規則。此範例中的規則適用於接受來自任何位置的 HTTP 和 HTTPS 流量,且接受來自私人網路的 RDP 流量 (如果您的公司或路由器是從某個範圍分配位址) 和指定公有 IP 地址 (例如您以 CIDR 標記法標記的電腦或網路公有 IPv4 位址) 流量的 Web 伺服器。
基於安全考量,請勿使用 RDP 的規則來為 CidrIp
指定 0.0.0.0/0
。這將允許從網際網路上的所有 IP 地址存取您的執行個體。通常在測試環境中短暫進行此操作是沒有問題的,但用在生產環境則不安全。
如需更多詳細資訊,請參閱 Linux 執行個體的 Amazon EC2 安全群組。