對 EBS 後端 AMI 使用加密 - Amazon Elastic Compute Cloud

對 EBS 後端 AMI 使用加密

以 Amazon EBS 快照為後端的 AMI 可以利用 Amazon EBS 加密。資料和根磁碟區的快照可以經過加密再連接至 AMI。您可以啟動執行個體並複製映像,而且包括完整 EBS 加密支援在內。所有已提供 AWS KMS 的區域支援這些操作的加密參數。

具有 EBS 磁碟區的 EC2 執行個體從 AMIs 啟動的方式,如同其他執行個體一樣。此外,從以未加密 EBS 快照為後端的 AMI 啟動執行個體時,您可以在啟動期間加密部分或所有磁碟區。

如同 EBS 磁碟區一樣,AMI 中的快照可以使用預設的 AWS KMS key,或您指定的客戶受管金鑰來加密。無論是哪種情況,您都必須擁有許可才能使用所選取的 KMS 金鑰。

具有加密快照的 AMI 可以跨 AWS 帳戶共享。如需詳細資訊,請參閱 共享 AMI

對 EBS 後端 AMI 加密主題

執行個體啟動案例

利用 AWS Management Console 或直接使用 Amazon EC2 API 或 CLI,使用 RunInstances 動作,並搭配透過區塊型設備映射提供的參數,從 AMI 啟動 Amazon EC2 執行個體。如需區塊型設備映射的詳細資訊,請參閱區塊型設備映射。有關從 AWS CLI 控制區塊型設備映射的範例,請參閱啟動、列出和終止 EC2 執行個體

根據預設,如果沒有明確的加密參數,從 AMI 的來源快照還原 EBS 磁碟區時,RunInstances 動作會維護快照的現有加密狀態。如果啟用了 預設加密,則從 AMI (從加密或未加密的快照) 建立的所有磁碟區都將加密。如果預設加密未啟用,則執行個體會維護 AMI 的加密狀態。

您也可以啟動執行個體並提供加密參數,以同時將新的加密狀態套用到產生的磁碟區。因此,可看到有下列行為:

在無加密參數的情況下啟動

  • 未加密快照會還原到未加密的磁碟區,除非預設加密已啟用,在此情況下,所有新建立的磁碟區都加密。

  • 您擁有的加密快照會還原到以相同 KMS 金鑰 所加密的磁碟區。

  • 您未擁有的加密快照 (例如,與您共享的 AMI) 會還原到以您的 AWS 帳戶的預設 KMS 金鑰所加密的磁碟區。

您可以提供加密參數來覆寫預設行為。可用的參數是 EncryptedKmsKeyId。只設定 Encrypted 參數會產生下列行為:

已設定 Encrypted 但未指定 KmsKeyId 的執行個體啟動行為

  • 未加密快照會還原到以您的 AWS 帳戶的預設 KMS 金鑰所加密的 EBS 磁碟區。

  • 您擁有的加密快照會還原到以相同 KMS 金鑰 所加密的 EBS 磁碟區。(換言之,Encrypted 參數沒有效果。)

  • 您未擁有的加密快照 (亦即,與您共享的 AMI) 會還原到以您的 AWS 帳戶的預設 KMS 金鑰所加密的磁碟區。(換言之,Encrypted 參數沒有效果。)

同時設定 EncryptedKmsKeyId 參數可讓您為加密操作指定非預設 KMS 金鑰。產生下列行為:

EncryptedKmsKeyId 都設定的執行個體

  • 未加密快照會還原到以指定的 KMS 金鑰 所加密的 EBS 磁碟區。

  • 加密快照會還原到不是以原始 KMS 金鑰 所加密的 EBS 磁碟區,而是以指定的 KMS 金鑰 所加密的 EBS 磁碟區。

提交 KmsKeyId 但未同時設定 Encrypted 參數會導致錯誤。

下列各節提供從 AMI 使用非預設加密參數來啟動執行個體的範例。在每個案例中,提供給 RunInstances 動作的參數會導致從快照還原磁碟區期間變更加密狀態。

如需使用主控台從 AMI 啟動執行個體的資訊,請參閱 啟動您的執行個體

啟動期間加密磁碟區

在此範例中,以未加密快照為後端的 AMI 用於啟動具有加密 EBS 磁碟區的 EC2 執行個體。


					啟動執行個體並即時加密磁碟區

單獨 Encrypted 參數會導致加密此執行個體的磁碟區。提供 KmsKeyId 參數為選擇性。如果未指定 KMS 金鑰 ID,則會使用 AWS 帳戶的預設 KMS 金鑰來加密磁碟區。若要以您擁有的不同 KMS 金鑰 來加密磁碟區,請提供 KmsKeyId 參數。

啟動期間重新加密磁碟區

在此範例中,受加密快照支援的 AMI 用於啟動 EC2 執行個體,而此執行個體具有以新的 KMS 金鑰 所加密的 EBS 磁碟區。


					啟動執行個體並即時重新加密磁碟區

如果您擁有 AMI 但未提供加密參數,則產生的執行個體具有使用與快照相同的 KMS 金鑰 所加密的磁碟區。如果 AMI 是共享,而非您所擁有,而且您未提供加密參數,則會以您的預設 KMS 金鑰 來加密磁碟區。按上圖所示提供加密參數,磁碟區會以指定的 KMS 金鑰 加密。

啟動期間變更多個磁碟區的加密狀態

在這個較複雜的範例中,以多個快照 (各有其自己的加密狀態) 為後端的 AMI 用於啟動 EC2 執行個體,而此執行個體具新加密的磁碟區和重新加密的磁碟區。


					啟動期間加密和重新加密多個磁碟區

在此案例中,提供每個來源快照的加密參數給 RunInstances 動作。指定所有可能的加密參數時,無論您是否擁有 AMI,產生的執行個體都相同。

映像複製案例

透過 AWS Management Console 或直接使用 Amazon EC2 API 或 CLI,使用 CopyImage 動作來複製 Amazon EC2 AMI。

根據預設,如果沒有明確的加密參數,在複製期間,CopyImage 動作會維護 AMI 的來源快照的現有加密狀態。您也可以啟動 AMI 並提供加密參數,以同時將新的加密狀態套用到其相關聯的 EBS 快照。因此,可看到有下列行為:

在無加密參數的情況下複製

  • 未加密快照會複製到另一個未加密的快照,除非預設加密已啟用,在此情況下,所有新建立的快照都加密。

  • 您擁有的加密快照會複製到以相同 KMS 金鑰 加密的快照。

  • 您未擁有的加密快照 (亦即,與您共享的 AMI) 會複製到以您的 AWS 帳戶的預設 KMS 金鑰所加密的快照。

您可以提供加密參數來覆寫所有這些預設行為。可用的參數是 EncryptedKmsKeyId。只設定 Encrypted 參數會產生下列行為:

已設定 Encrypted 但未指定 KmsKeyId 的複製映像行為

  • 未加密快照會複製到以 AWS 帳戶的預設 KMS 金鑰所加密的快照。

  • 加密快照會複製到以相同 KMS 金鑰 所加密的快照。(換言之,Encrypted 參數沒有效果。)

  • 您未擁有的加密快照 (亦即,與您共享的 AMI) 會複製到以您的 AWS 帳戶的預設 KMS 金鑰所加密的磁碟區。(換言之,Encrypted 參數沒有效果。)

同時設定 EncryptedKmsKeyId 參數可讓您為加密操作指定客戶受管 KMS 金鑰。產生下列行為:

EncryptedKmsKeyId 都設定的複製映像行為

  • 未加密快照會複製到以指定的 KMS 金鑰 所加密的快照。

  • 加密快照會複製到不是以原始 KMS 金鑰 所加密的快照,而是以指定的 KMS 金鑰 加密的快照。

提交 KmsKeyId 但未同時設定 Encrypted 參數會導致錯誤。

下一節提供使用非預設加密參數來複製 AMI 的範例,結果導致變更加密狀態。

如需使用主控台的詳細說明,請參閱 複製 AMI

複製期間加密未加密的映像

在此案例中,未加密根快照所支援的 AMI 將複製到具有加密根快照的 AMI。透過兩個加密參數叫用 CopyImage 動作,包括客戶受管金鑰。因此,根快照的加密狀態會變更,目標 AMI 會受到包含與來源快照相同資料的根快照支援,但使用指定的金鑰進行加密。您需要為兩個 AMI 中的快照支付儲存成本,以及從任一 AMI 啟動的任何執行個體的費用。

注意

啟用預設加密,這與在 AMI 中針對所有快照將 Encrypted 參數設定為 true 具有相同效果。


		快速複製 AMI 並加密快照

設定 Encrypted 參數會加密此執行個體的單一快照。若您未指定 KmsKeyId 參數,則會使用預設的客戶受管金鑰來加密快照複本。

注意

您也可以複製具有多個快照的映像,並個別設定各快照的加密狀態。