設定以使用 Amazon EC2。 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定以使用 Amazon EC2。

完成本節中的任務,即可為第一次啟動 Amazon EC2 執行個體進行設定:

完成後,您將準備好進行 Amazon EC2 入門教學課程。

註冊 AWS 帳戶

如果您還沒有 AWS 帳戶,請完成以下步驟建立新帳戶。

註冊 AWS 帳戶
  1. 開啟 https://portal.aws.amazon.com/billing/signup

  2. 請遵循線上指示進行。

    部分註冊程序需接收來電,並在電話鍵盤輸入驗證碼。

    註冊 AWS 帳戶時,會建立 AWS 帳戶根使用者。根使用者有權存取該帳戶中的所有 AWS 服務和資源。作為最佳安全實務,將管理存取權指派給管理使用者,並且僅使用根使用者來執行需要根使用者存取權的任務

註冊程序完成後,AWS 會傳送一封確認電子郵件給您。您可以隨時登錄 https://aws.amazon.com/ 並選擇 我的帳戶,以檢視您目前的帳戶活動並管理帳戶。

建立管理使用者

當您註冊 AWS 帳戶 之後,請保護您的 AWS 帳戶根使用者,啟用 AWS IAM Identity Center,並建立管理使用者,讓您可以不使用根使用者處理日常作業。

保護您的 AWS 帳戶根使用者
  1. 選擇 根使用者 並輸入您的 AWS 帳戶電子郵件地址,以帳戶擁有者身分登入 AWS Management Console。在下一頁中,輸入您的密碼。

    如需使用根使用者登入的說明,請參閱 AWS 登入使用者指南中的以根使用者身分登入

  2. 若要在您的根使用者帳戶上啟用多重要素驗證 (MFA)。

    如需指示,請參閱《IAM 使用者指南》中的為 AWS 帳戶根使用者啟用虛擬 MFA 裝置 (主控台)

建立管理使用者
  1. 啟用 IAM Identity Center。

    如需指示,請參閱 AWS IAM Identity Center 使用者指南中的啟用 AWS IAM Identity Center

  2. 在 IAM Identity Center 中,將管理權限授予管理使用者。

    若要取得有關使用 IAM Identity Center 目錄 做為身分識別來源的教學課程,請參閱《使用 AWS IAM Identity Center 使用者指南中的以預設 IAM Identity Center 目錄 設定使用者存取權限

以管理員的身分登入
  • 若要使用您的 IAM 身分中心使用者登入,請使用建立 IAM 身分中心使用者時傳送至您電子郵件地址的登入 URL。

    如需有關如何使用 IAM Identity Center 使用者登入的說明,請參閱《AWS 登入 使用者指南》中的登入 AWS存取入口網站

建立金鑰對

AWS 使用公有金鑰的密碼編譯,保護您執行個體登入資訊的安全。Linux 執行個體沒有密碼,您可以使用金鑰對安全地登入執行個體。當您啟動執行個體時,應指定金鑰對的名稱,然後提供私有金鑰 (在使用 SSH 登入時)。

如果您尚未建立金鑰對,可以使用 Amazon EC2 主控台來建立。請注意,如果您計劃在多個 AWS 區域 中啟動執行個體,您將需要在每個區域中各建立一組金鑰對。如需關於區域的詳細資訊,請參閱區域 (Region) 和區域 (Zone)

建立您的金鑰對
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Key Pairs (金鑰對)

  3. 選擇 Create key pair (建立金鑰對)

  4. 對於 Name (名稱),輸入金鑰對的描述性名稱。Amazon EC2 會將公有金鑰與您指定為金鑰名稱的名稱相關聯。金鑰名稱最多可包含 255 個 ASCII 字元。它不能包括前置或結尾空格。

  5. 針對 Key pair type (金鑰對類型),選擇 RSAED25519。請注意,Windows 執行個體不支援 ED25519 金鑰。

  6. 針對 Private key file format (私有金鑰檔案格式),選擇私有金鑰的儲存格式。若要將私有金鑰儲存為可與 OpenSSH 搭配使用的格式,請選擇 pem。若要將私有金鑰儲存為可與 PuTTY 搭配使用的格式,請選擇 ppk

  7. 選擇 Create key pair (建立金鑰對)

  8. 您的瀏覽器會自動下載私有金鑰檔案。基礎檔案名稱是您所指定的金鑰對名稱,而副檔名是根據您選擇的檔案格式所決定。將私有金鑰檔案存放在安全的地方。

    重要

    這是您儲存私有金鑰檔案的唯一機會。

  9. 如果您計劃在 macOS 或 Linux 電腦上使用 SSH 用戶端連線至 Linux 執行個體,請使用下列命令設定私有金鑰檔案的許可,以便只有您能夠讀取該檔案。

    chmod 400 key-pair-name.pem

    如果您未設定這些許可,則無法使用此金鑰對來連接至您的執行個體。如需詳細資訊,請參閱 錯誤:未受保護的私有金鑰檔案

如需詳細資訊,請參閱 Amazon EC2 金鑰配對和 Amazon EC2 執行個體

建立安全群組

安全群組就像是防火牆,用於關聯的執行個體,可在執行個體層級控制傳入及傳出流量。您必須新增安全群組的規則,使您能夠使用 SSH 從 IP 地址連線到執行個體。您也可以新增允許任何位置之傳入和傳出 HTTP 和 HTTPS 存取的規則。

請注意,如果您計劃在多個 AWS 區域 中啟動執行個體,將需要在每個區域中各建立一個安全群組。如需關於區域的詳細資訊,請參閱區域 (Region) 和區域 (Zone)

必要條件

您會需要本機電腦的公有 IPv4 地址。Amazon EC2 主控台中的安全群組編輯器,可以自動為您偵測公有 IPv4 地址。或者,您可以在網際網路瀏覽器中使用「what is my IP address (我的 IP 地址是什麼)」搜尋字詞,或是使用下列的服務:Check IP。如果您透過網際網路服務提供者 (ISP) 或是經由不具靜態 IP 地址的防火牆連線,則需找出用戶端電腦使用的 IP 地址範圍。

您可以使用下列其中一種方法建立自訂安全性群組。

Console
建立具有最低權限的安全群組
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 從頂端導覽列,為安全群組選取一個 AWS 區域。安全群組是區域特有的,因此您應該選取您建立金鑰對的同一個區域。

  3. 在左導覽窗格中,選擇 Security Groups (安全群組)。

  4. 選擇建立安全群組

  5. 對於 Basic details (基本詳細資訊),執行下列動作:

    1. 輸入新安全群組的名稱和說明。選擇一個好記的名稱,例如您的使用者名稱,後面加上 _SG_,再加上區域名稱。例如,me_SG_uswest2

    2. VPC 清單中,為區域選取您的預設 VPC。

  6. 對於 Inbound rules (傳入規則),請建立允許特定流量觸達執行個體的規則。例如,對於接受 HTTP 和 HTTPS 流量的 Web 伺服器使用下列規則。如需更多範例,請參閱 不同使用案例的安全群組規則

    1. 選擇新增規則。針對 Type (類型),選擇 HTTP。在 [來] 中,選擇 [任何位置 IPv4] 允許來自任何 IPv4 位址的輸入 HTTP 流量,或選擇任何位置 IPv6 允許來自任何 IPv6 位址的輸入 HTTP 流量。

    2. 選擇新增規則。對於 Type (類型),選擇 HTTPS。在 [來] 中,選擇 [任何位置 IPv4] 允許來自任何 IPv4 位址的輸入 HTTPS 流量,或選擇任何位置 IPv6 允許來自任何 IPv6 位址的輸入 HTTPS 流量。

    3. 選擇 Add rule (新增規則)。對於 Type (類型),選擇 SSH。對於 Source (來源),請執行下列其中一項動作:

      • 選擇 My IP (我的 IP),自動新增您本機電腦的公有 IPv4 地址。

      • 選擇 Custom (自訂),並以 CIDR 表示法來指定您的電腦或網路的公有 IPv4 地址。若要以 CIDR 表示法指定個別 IP 地址,請加上路由前綴 /32,例如 203.0.113.25/32。如果您的公司或您的路由器會分配某個範圍的地址,請指定整個範圍,例如 203.0.113.0/24

      警告

      這將允許從網際網路上的所有 IP 地址存取您的執行個體。通常在測試環境中短暫進行此操作是沒有問題的,但用在生產環境則不安全。

  7. 對於 Outbound rules (傳出規則),請保留允許所有傳出流量的預設規則。

  8. 選擇建立安全群組

AWS CLI

使用 AWS CLI 建立安全群組時,允許所有傳出流量的傳出規則會自動新增至安全群組。系統不會自動新增傳入規則,您必須手動新增。

在此程序中,您將會結合 create-security-group 和 authorize-security-group-ingress AWS CLI 命令來建立安全群組,並新增允許指定傳入流量的傳入規則。下列程序的替代方案是個別執行命令,先建立安全群組,然後將傳入規則新增至安全群組。

若要建立安全群組並將傳入規則新增至安全群組

使用 create-security-groupauthorize-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-EC2SecurityGroupGrant-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:指定新安全群組的名稱。使用容易記得的名稱 (例如您的使用者名稱),並在後面加上 _SG_ 和區域名稱。例如 myname_SG_uswest2

  • -Description:指定可協助您了解安全群組允許哪些流量的描述。

  • -VpcId:指定區域的預設 VPC。

  • -Region:指定要建立安全群組的區域。

傳入規則方面:

  • -GroupName:若要參考您正在建立的安全群組,請指定 $_

  • -Region:指定要建立傳入規則的區域。該區域應與您為安全群組指定的區域為同一個區域。

  • -IpPermission:指定要新增至安全群組的傳入規則。此範例中的規則適用於接受來自任何位置的 HTTP 和 HTTPS 流量,且接受來自私人網路的 RDP 流量 (如果您的公司或路由器是從某個範圍分配位址) 和指定公有 IP 地址 (例如您以 CIDR 標記法標記的電腦或網路公有 IPv4 位址) 流量的 Web 伺服器。

    警告

    基於安全考量,請勿使用 RDP 的規則來為 CidrIp 指定 0.0.0.0/0 。這將允許從網際網路上的所有 IP 地址存取您的執行個體。通常在測試環境中短暫進行此操作是沒有問題的,但用在生產環境則不安全。

如需更多詳細資訊,請參閱 Linux 執行個體的 Amazon EC2 安全群組