尋找共享 AMI - Amazon Elastic Compute Cloud

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

尋找共享 AMI

您可用 Amazon EC2 主控台或命令列來尋找共享 AMI。

AMI 是一種區域性的資源。因此,您必須在 AMI 進行共享的區域中搜尋,才能搜尋到共享 AMI (公有或私有)。若要讓 AMI 在其他區域可用,請將 AMI 複製到該區域,然後共享。如需詳細資訊,請參閱 複製 AMI

尋找共享 AMI (主控台)

使用主控台尋找共享私有 AMI
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 AMIs (AMI)。

  3. 在第一個篩選條件中,選擇 Private images (私有映像)。將列出與您共享的所有 AMI。若要縮小搜尋範圍,請選擇 Search (搜尋) 列並使用選單中提供的篩選條件選項。

使用主控台尋找共享公用 AMI
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 AMIs (AMI)。

  3. 在第一個篩選條件中,選擇 Public images (公有映像)。若要縮小搜尋範圍,請選擇 Search (搜尋) 欄位並使用功能表中提供的篩選條件選項。

使用主控台尋找 Amazon 的共享公用 AMI
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 AMIs (AMI)。

  3. 在第一個篩選條件中,選擇 Public images (公有映像)。

  4. 選擇 Search (搜尋) 欄位,然後從顯示的功能表選項中依序選擇 Owner alias (擁有者別名)、=amazon,以僅顯示 Amazon 的公有映像。

使用主控台尋找來自已驗證的供應商的共享公用 AMI
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 AMI Catalog (AMI 型錄)。

  3. 選擇 Community AMI (社群 AMI)。

  4. Verified provider (已驗證的供應商) 標籤指示來自 Amazon 或已驗證的合作夥伴的 AMI。

尋找共享 AMI (AWS CLI)

使用 describe-images 命令 (AWS CLI) 來列出 AMI。您可縮小範圍,僅列出感興趣的 AMI 類型,如下列範例所示。

範例:列出所有公用 AMI

下列命令列出所有公用 AMI,包括您所擁有的任何公用 AMI。

aws ec2 describe-images --executable-users all
範例:列出具有明確啟動許可的 AMI

下列命令列出您擁有明確啟動許可的 AMI。此清單不含您所擁有的任何 AMI。

aws ec2 describe-images --executable-users self
範例:列出已驗證的供應商擁有的 AMI

下列命令會列出已驗證的供應商擁有的 AMI。已驗證的供應商 (Amazon 或已驗證的合作夥伴) 擁有的公用 AMI 有一個採用別名的擁有者,其在帳戶欄位顯示為 amazonaws-marketplace。這可協助您輕鬆尋找來自已驗證的供應商的 AMI。其他使用者無法為其 AMI 設定別名。

aws ec2 describe-images \ --owners amazon aws-marketplace \ --query 'Images[*].[ImageId]' \ --output text
範例:列出某一帳戶擁有的 AMI

下列命令會列出特定 AWS 帳戶擁有的 AMI。

aws ec2 describe-images --owners 123456789012
範例:使用篩選條件縮小 AMI 範圍

若要減少顯示的 AMI 數量,請使用篩選條件,只列出感興趣的 AMI 類型。例如,下列篩選條件只會顯示 EBS 後端 AMI。

--filters "Name=root-device-type,Values=ebs"

尋找共用 AMI (適用於視窗的工具 PowerShell)

使用指Get-EC2Image令 (視窗工具 PowerShell) 列示 AMI。您可縮小範圍,僅列出感興趣的 AMI 類型,如下列範例所示。

範例:列出所有公用 AMI

下列命令列出所有公用 AMI,包括您所擁有的任何公用 AMI。

PS C:\> Get-EC2Image -ExecutableUser all
範例:列出具有明確啟動許可的 AMI

下列命令列出您擁有明確啟動許可的 AMI。此清單不含您所擁有的任何 AMI。

PS C:\> Get-EC2Image -ExecutableUser self
範例:列出已驗證的供應商擁有的 AMI

下列命令會列出已驗證的供應商擁有的 AMI。已驗證的供應商 (Amazon 或已驗證的合作夥伴) 擁有的公用 AMI 有一個採用別名的擁有者,其在帳戶欄位顯示為 amazonaws-marketplace。這可協助您輕鬆尋找來自已驗證的供應商的 AMI。其他使用者無法為其 AMI 設定別名。

PS C:\> Get-EC2Image -Owner amazon aws-marketplace
範例:列出某一帳戶擁有的 AMI

下列命令會列出特定 AWS 帳戶擁有的 AMI。

PS C:\> Get-EC2Image -Owner 123456789012
範例:使用篩選條件縮小 AMI 範圍

若要減少顯示的 AMI 數量,請使用篩選條件,只列出感興趣的 AMI 類型。例如,下列篩選條件只會顯示 EBS 後端 AMI。

-Filter @{ Name="root-device-type"; Values="ebs" }

使用共享 AMI

開始使用共享 AMI 之前,請先採取下列步驟,確定沒有預先安裝的登入資料可能允許第三方對您的執行個體執行不必要的存取,並確定沒有預先設定的遠端登入可能將機密資料傳送至第三方。請參閱 AMI 所使用 Linux 發行版本的說明文件,以取得改善系統安全性的詳細資訊。

為確保您不會意外失去執行個體的存取權,建立您初始化兩個 SSH 工作階段,並保持第二個工作階段為開啟狀態,直到您移除無法識別的登入資料並確認您仍可用 SSH 登入您的執行個體為止。

  1. 識別並停用任何未經授權的公有 SSH 金鑰。檔案中唯一能存在的金鑰應該是您用來啟動 AMI 的金鑰。以下命令可找出 authorized_keys 檔案:

    [ec2-user ~]$ sudo find / -name "authorized_keys" -print -exec cat {} \;
  2. 停用根使用者的密碼型態身分驗證。開啟 sshd_config 檔案並編輯 PermitRootLogin 行,如下所示:

    PermitRootLogin without-password

    或者,您可停用公用程式,以根使用者身分登入執行個體:

    PermitRootLogin No

    重新啟動 sshd 服務。

  3. 檢查是否有任何其他使用者能夠登入您的執行個體。具有超級使用者權限的使用者特別危險。移除或鎖定任何未知帳戶的密碼。

  4. 檢查未使用且正在執行網路服務偵聽是否有傳入連線的開放中連接埠。

  5. 若要避免預先設定的遠端登入,您應刪除現有的組態檔案,然後重新啟動 rsyslog 服務。例如:

    [ec2-user ~]$ sudo rm /etc/rsyslog.conf [ec2-user ~]$ sudo service rsyslog restart
  6. 確認所有的 cron 任務均為合法。

如果發現可能存有安全風險的公用 AMI,請聯絡 AWS 安全團隊。如需詳細資訊,請參閱 AWS 安全中心