在 Amazon EC2 中公開提供您的 AMI - Amazon Elastic Compute Cloud

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

在 Amazon EC2 中公開提供您的 AMI

您可以與所有人共用 AMI,讓 AMI 可公開使用 AWS 帳戶。

如果您希望阻止公開共用您的 AMI,則可以啟用封鎖 AMI 的公有存取權。這樣可以阻止任何公開 AMI 的嘗試,有助於防止未經授權的存取和 AMI 資料的潛在濫用。請注意,啟用封鎖公開存取並不會影響您已公開提供的 AMI;它們仍然可以公開使用。如需詳細資訊,請參閱了解封鎖 AMI 的公有存取權

若要只允許特定帳戶使用 AMI 來啟動執行個體,請參閱 與指定的 AWS 帳戶共享 AMI

考量事項

在將 AMI 設定為公有之前,請考慮以下項目。

  • 擁有權 – 若要公開 AMI,您的 AWS 帳戶 必須擁有 AMI。

  • 區域 - AMI 是一種區域性的資源。共享 AMI 後,只能從共享 AMI 的區域中使用 AMI。若要讓 AMI 在其他區域可用,請將 AMI 複製到該區域,然後共用。如需詳細資訊,請參閱複製 Amazon EC2 AMI

  • 封鎖公開存取 – 若要公開共用 AMI,必須在將公開共用 AMI 的每個區域中停用封鎖 AMI 的公有存取權。公開共用 AMI 後,您可以重新啟用「封鎖 AMI 的公有存取權」,以防止進一步公開共用您的 AMI。

  • 部分 AMI 無法設定為公有 - 如果您的 AMI 有下列任一情況,則無法將其設定為公有 (但您可以與指定的 AWS 帳戶共用 AMI):

    • 加密磁碟區

    • 加密磁碟區的快照

    • 產品代碼

  • 避免敏感資料外洩 - 若要避免共享 AMI 時洩漏敏感資料,請詳讀 建立共用 Linux AMI 的建議 中的安全性考量,並遵照推薦的動作進行。

  • 使用 - 共享 AMI 後,使用者只能從 AMI 啟動執行個體。他們無法刪除、共用或修改它。不過,他們在使用您的 AMI 啟動了執行個體之後,就可以從其啟動的執行個體建立 AMI。

  • 自動棄用 - 在預設情況下,所有公用 AMI 的棄用日期都設定為自 AMI 建立日期起兩年。您可將棄用日期設定為早於兩年。若要取消棄用日期,或將棄用移至稍後日期,您必須僅與特定 共用 AMI,以 AWS 帳戶將其設為私有。

  • 移除過時的 AMIs – 在公有 AMI 到達其棄用日期後,如果 AMI 六個月或更長時間沒有啟動新的執行個體, AWS 則通常會移除公有共用屬性,讓過時的 AMIs 不會出現在公有 AMI 清單中。

  • 帳單 – 當其他人使用 AMI AWS 帳戶 啟動執行個體時,您無須付費。使用 AMI 啟動執行個體的帳戶會根據它們啟動的執行個體計費。

與所有 AWS 帳戶共用 AMI (公開共用)

將 AMI 公有化之後,可以在主控台的社群 AMI 中使用,您可以從 EC2 主控台左側導覽器中的 AMI 目錄存取,也可在使用主控台啟動執行個體時進行存取。請注意,AMI 公有化後要經過一段時間才會出現在 Community AMI (社群 AMI) 內。

Console
使 AMI 公有化
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

  3. 從清單中選取您的 AMI,然後選取 Actions (動作)、Edit AMI permissions (編輯 AMI 許可)。

  4. AMI 可用性下,選擇公有

  5. 選擇 Save changes (儲存變更)。

AWS CLI

每個 AMI 都有一個launchPermission屬性,可控制除了擁有者的 AWS 帳戶之外,還允許使用該 AMI 來啟動執行個體。透過修改 AMI 的 launchPermission 屬性,您可以公開 AMI (將啟動許可授予所有 AWS 帳戶),或僅與您指定的 AWS 帳戶 共用。

您可在具有 AMI 啟動許可的帳戶清單中新增或移除帳戶 ID。若要將 AMI 設定為公有,請指定 all 群組。您可同時指定公有和明確啟動許可。

使 AMI 公有化
  1. 如下所示,使用 modify-image-attribute 命令,新增 all 群組至指定 AMI 的 launchPermission 清單。

    aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Add=[{Group=all}]"
  2. 若要確認 AMI 的啟動許可,請使用 describe-image-attribute 命令。

    aws ec2 describe-image-attribute \ --image-id ami-0abcdef1234567890 \ --attribute launchPermission
  3. (選用) 若要重新將 AMI 設定為私有,請從啟動許可中移除 all 群組。請注意,AMI 擁有者始終具備啟動許可,因此不受此命令影響。

    aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Remove=[{Group=all}]"
PowerShell

每個 AMI 都有一個launchPermission屬性,可控制除了擁有者的 AWS 帳戶之外,還允許使用該 AMI 來啟動執行個體。透過修改 AMI 的 launchPermission 屬性,您可以公開 AMI (將啟動許可授予所有 AWS 帳戶),或僅與您指定的 AWS 帳戶 共用。

您可在具有 AMI 啟動許可的帳戶清單中新增或移除帳戶 ID。若要將 AMI 設定為公有,請指定 all 群組。您可同時指定公有和明確啟動許可。

使 AMI 公有化
  1. 如下所示,使用 Edit-EC2ImageAttribute 命令,新增 all 群組至指定 AMI 的 launchPermission 清單。

    PS C:\> Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission -OperationType add -UserGroup all
  2. 若要確認 AMI 的啟動許可,請使用下列 Get-EC2ImageAttribute 命令。

    PS C:\> Get-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission
  3. (選用) 若要重新將 AMI 設定為私有,請從啟動許可中移除 all 群組。請注意,AMI 擁有者始終具備啟動許可,因此不受此命令影響。

    PS C:\> Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission -OperationType remove -UserGroup all