View a markdown version of this page

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

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

在 Amazon EC2 中公開提供您的 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. 在導覽窗格中,選擇 AMI。

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

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

  5. 選擇儲存變更。

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 清單。

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

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

    Edit-EC2ImageAttribute ` -ImageId ami-0abcdef1234567890 ` -Attribute launchPermission ` -OperationType remove ` -UserGroup all