使 AMI 公有化 - Amazon Elastic Compute Cloud

使 AMI 公有化

可以與其他 AWS 帳戶 共用 AMI。若要允許所有 AWS 帳戶 使用 AMI 來啟動執行個體,請使 AMI 成為公有。若要只允許特定帳戶使用 AMI 來啟動執行個體,請參閱 與指定的 AWS 帳戶共享 AMI

考量

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

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

    • 加密磁碟區

    • 加密磁碟區的快照

    • 產品代碼

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

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

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

  • 計費 – 當其他 AWS 帳戶 使用您的 AMI 來啟動執行個體時,不會向您收取費用。使用 AMI 啟動執行個體的帳戶會根據它們啟動的執行個體計費。

與所有的 AWS 帳戶共享 AMI (主控台)

使 AMI 公有化後,當您用主控台在相同的區域內啟動執行個體時,AMI 會在 Community AMI (社群 AMI) 中變成可用。請注意,AMI 公有化後要經過一段時間才會出現在 Community AMI (社群 AMI) 內。將 AMI 設定為私有後,也要經過一段時間才會從 Community AMI (社群 AMI) 移除 AMI。

New console

使用主控台共用公用 AMI

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

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

  4. 選擇 Public (公有),然後選擇 Save changes (儲存變更)。

Old console

使用主控台共用公用 AMI

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

  3. 從清單中選取 AMI,然後選擇 Actions (動作)、Modify Image Permissions (修改映像許可)。

  4. 選擇 Public (公有化),然後選擇 Save (儲存)。

與所有的 AWS 帳戶 共用 AMI (Tools for Windows 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

與所有的 AWS 帳戶 共用 AMI (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}]"