本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
透過允許 AMI 在 Amazon EC2 控制 AMI 的探索及使用
若要控制使用者在 AWS 帳戶對於 Amazon Machine Images (AMI) 的探索及使用,您可以使用允許 AMI 功能。此功能可讓您指定 AMI 必須符合的條件,才能在您的帳戶中可見且可供使用。在啟用條件之後,啟動執行個體的使用者只會看到並存取符合指定條件的 AMI。例如,您可指定受信任的 AMI 供應商清單作為條件,只有來自這些供應商的 AMI 才可見且可供使用。
啟用允許 AMIs設定之前,您可以啟用稽核模式來預覽哪些 AMIs 將可見或不會可供使用。這可讓您根據需要調整條件,確保只有預期的 AMI 可見且可供您帳戶的使用者使用。此外,您可執行 describe-instance-image-metadata 命令並篩選回應,識別使用不符合指定條件的 AMI 啟動的任何執行個體。此資訊可指導您決定是否更新啟動組態以使用符合規範的 AMI (例如,在啟動範本指定不同 AMI),或調整條件以允許這些 AMI。
您可直接在帳戶或使用宣告式政策,在帳戶層級指定允許 AMI 設定。這些設定必須在您要控制 AMI 探索及使用的每個 AWS 區域 位置配置。您可使用宣告式政策同時在多個區域及多個帳戶套用設定。使用宣告式政策時,您無法直接在帳戶中修改設定。本主題說明如何直接在帳戶內配置設定。如需使用宣告式政策的相關資訊,請參閱「AWS Organizations 使用者指南」中的宣告式政策。
注意
允許 AMI 功能僅可針對公共 AMI 或與您的帳戶共享的 AMI 控制其探索及使用。其不限制您帳戶擁有的 AMI。無論您設定的條件為何,您帳戶建立AMIs 一律可供您帳戶中的使用者探索和使用。
允許 AMI 的主要優點
-
合規性和安全性:使用者只能探索及使用符合指定條件的 AMI,進而降低以不合規方式使用 AMI 的風險。
-
高效管理:透過減少允許 AMI 數量可讓管理剩餘的 AMI 變得更簡單、更有效率。
-
集中帳戶層級實作:直接在帳戶內或使用宣告式政策,在帳戶層級配置允許 AMI 設定。這可提供集中且有效的方式來控制整個帳戶的 AMI 使用情況。
允許 AMI 運作方式
您可以透過在 JSON 組態中指定條件來控制 AMI 存取。這些條件決定可在您的帳戶中探索和使用哪些 AMIs。定義您的條件之後,您可以使用 API 或主控台啟用這些條件。啟用後,會根據條件評估所有 AMIs。如果 AMI 至少符合其中一個條件,則允許在您的帳戶中。
允許 AMIs條件
目前,唯一支援的條件是 AMI 供應商。有效值是由 AWS AWS 帳戶 IDs 定義的別名,如下所示:
-
amazon
- 此別名可識別由 AWS建立的 AMI -
aws-marketplace
– 識別 中已驗證提供者所建立 AMIs 的別名 AWS Marketplace -
aws-backup-vault
– 識別位於邏輯氣隙隔離備份文件庫帳戶中的 AWS 備份 AMIs 的別名。如果您使用 AWS 備份邏輯氣隙隔離保存庫功能,請確定此別名包含為 AMI 供應商。 -
AWS 帳戶 IDs – 一或多個 12 位數 AWS 帳戶 IDs
-
none
- 表示只能探索及使用由您帳戶建立的 AMI。無法探索及使用公用或共用 AMI。如果指定none
,則無法指定別名或帳戶 ID。
JSON 組態
允許 AMI 的核心組態是 JSON 組態,其定義允許 AMI 的條件。以下範例指定兩個別名和三個 AWS 帳戶 ID:
{ "ImageCriteria": [ { "ImageProviders": [ "amazon", "aws-marketplace", "
123456789012
", "112233445566
", "009988776655
" ] } ] }
如何評估條件
JSON 組態中的條件會使用 or
條件進行評估。這表示 AMI 只需要符合任何ImageCriteria
物件中其中一個指定的提供者,即可視為允許。例如,如果您同時將 amazon
和 AWS 帳戶 ID 指定為提供者,則會允許任一提供者AMIs。
JSON 組態的限制
-
ImageCriteria
物件:單一組態最多可指定 10 個ImageCriteria
物件。 -
ImageProviders
值:所有ImageCriteria
物件的最大值為 200。
限制範例
請考慮以下範例來說明這些限制,其中使用不同 ImageProviders
清單來對 AMI 供應商帳戶進行分組:
{ "ImageCriteria": [ { "ImageProviders": ["amazon", "aws-marketplace"] }, { "ImageProviders": ["
123456789012
", "112233445566
", "121232343454
"] }, { "ImageProviders": ["998877665555
", "987654321098
"] } // Up to 7 more ImageCriteria objects can be added // Up to 193 more ImageProviders values can be added ] }
在此範例中:
-
有 3 個
imageCriteria
物件 (最多可新增 7 個,達到上限 10 個)。 -
所有物件共有 7 個
imageProviders
值 (最多可新增 193 個值,達到上限 200 個)。
在此範例中,允許來自所有ImageCriteria
物件中任何指定 AMIs 提供者的 AMI,因為它們是使用 or
條件進行評估。
允許 AMI 操作
允許 AMIs功能有三種用於管理映像條件的操作模式:啟用、停用和稽核模式。這些模式可讓您啟用或停用映像條件,或根據需要來檢閱這些條件。
已啟用
當啟用允許 AMI 時:
-
會套用
ImageCriteria
。 -
僅可在 EC2 主控台以及透過使用映像的 API (例如,描述、複製、儲存或執行使用映像的其他動作) 來探索允許 AMI。
-
只能使用允許 AMI 啟動執行個體。
已停用
當停用允許 AMI 時:
-
不會套用
ImageCriteria
。 -
AMI 的可探索性或使用方式不受任何限制。
稽核模式
在稽核模式中:
-
會套用
ImageCriteria
,但 AMI 的可探索性或使用方式不受任何限制。 -
在 EC2 主控台中,對於每個 AMI,允許映像欄位會顯示是或否,以指示啟用允許 AMI 時,帳戶使用者可否探索及使用該 AMI。
-
在命令列,
describe-image
操作的回應包括"ImageAllowed": true
或"ImageAllowed": false
,以指示當允許 AMI 啟用時,帳戶使用者可否探索及使用 AMI。 -
在 EC2 主控台,當啟用允許 AMI 時,AMI 目錄會在帳戶使用者無法探索或使用的 AMI 旁邊顯示不允許。
實作允許 AMI 的最佳實務
實作允許 AMIs 時,請考慮這些最佳實務,以確保順利轉換,並將對您 AWS 環境的潛在干擾降至最低。
-
啟用稽核模式
從在稽核模式啟用允許 AMI 開始。此模式可讓您無需實際限制存取,即可查看哪些 AMI 會受到您的條件影響,提供無風險的評估期。
-
設定允許 AMI 條件
仔細確定哪些 AMI 供應商符合您組織的安全性策略、合規性要求和營運需求。
注意
我們建議指定
amazon
別名以允許 建立AMIs AWS,確保您使用的 AWS 受管服務可以繼續在您的帳戶中啟動 EC2 執行個體。 -
檢查對預期業務流程的影響
您可以使用 主控台或 CLI 來識別使用不符合指定條件AMIs 啟動的任何執行個體。此資訊可指導您決定是否更新啟動組態以使用符合規範的 AMI (例如,在啟動範本指定不同 AMI),或調整條件以允許這些 AMI。
主控台:使用 ec2-instance-launched-with-allowed-ami AWS Config 規則,檢查執行中或已停止的執行個體是否使用AMIs 條件AMIs啟動。如果 AMI 不符合允許 AMIs條件,則表示規則為「NON_COMPLIANT」,如果符合,表示為「COMPLIANT」。只有在允許 AMIs設定設為已啟用或稽核模式時,規則才會運作。
CLI:執行 describe-instance-image-metadata 命令並篩選回應,以識別使用不符合指定條件AMIs 啟動的任何執行個體。
如需主控台和 CLI 的指示,請參閱 尋找不允許從 AMIs的執行個體。
-
啟用允許 AMI
在確認條件不會對預期業務流程產生負面影響之後,請啟用允許 AMI。
-
監控執行個體啟動
繼續監控您應用程式和所用 AWS 受管服務的 AMIs 執行個體啟動,例如 Amazon EMR、Amazon ECR、Amazon EKS 和 AWS Elastic Beanstalk。檢查是否有任何意外問題,並對允許 AMI 條件進行必要調整。
-
試行新 AMIs
若要測試不符合目前允許 AMIs 設定的第三方 AMIs, AWS 建議使用下列方法:
-
使用單獨的 AWS 帳戶:建立無法存取您業務關鍵資源的帳戶。請確定此帳戶中未啟用允許 AMIs設定,或者明確允許您要測試AMIs,以便您可以對其進行測試。
-
在另一個測試 AWS 區域:使用可使用第三方 AMIs的區域,但您尚未啟用允許 AMIs設定的區域。
這些方法有助於確保您的業務關鍵資源在測試新的 AMIs時保持安全。
-
所需的 IAM 許可
若要使用允許 AMI 功能,您需要下列 IAM 許可:
-
GetAllowedImagesSettings
-
EnableAllowedImagesSettings
-
DisableAllowedImagesSettings
-
ReplaceImageCriteriaInAllowedImagesSettings