本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 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
-
- AWS CLI
-
每個 AMI 都有一個launchPermission
屬性,可控制除了擁有者的 AWS 帳戶之外,還允許使用該 AMI 來啟動執行個體。透過修改 AMI 的 launchPermission
屬性,您可以公開 AMI (將啟動許可授予所有 AWS 帳戶),或僅與您指定的 AWS 帳戶 共用。
您可在具有 AMI 啟動許可的帳戶清單中新增或移除帳戶 ID。若要將 AMI 設定為公有,請指定 all
群組。您可同時指定公有和明確啟動許可。
使 AMI 公有化
-
如下所示,使用 modify-image-attribute 命令,新增 all
群組至指定 AMI 的 launchPermission
清單。
aws ec2 modify-image-attribute \
--image-id ami-0abcdef1234567890
\
--launch-permission "Add=[{Group=all}]"
-
若要確認 AMI 的啟動許可,請使用 describe-image-attribute 命令。
aws ec2 describe-image-attribute \
--image-id ami-0abcdef1234567890
\
--attribute launchPermission
-
(選用) 若要重新將 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 公有化
-
如下所示,使用 Edit-EC2ImageAttribute 命令,新增 all
群組至指定 AMI 的 launchPermission
清單。
PS C:\>
Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890
-Attribute launchPermission -OperationType add -UserGroup all
-
若要確認 AMI 的啟動許可,請使用下列 Get-EC2ImageAttribute 命令。
PS C:\>
Get-EC2ImageAttribute -ImageId ami-0abcdef1234567890
-Attribute launchPermission
-
(選用) 若要重新將 AMI 設定為私有,請從啟動許可中移除 all
群組。請注意,AMI 擁有者始終具備啟動許可,因此不受此命令影響。
PS C:\>
Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890
-Attribute launchPermission -OperationType remove -UserGroup all