

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

# Amazon EBS 加密的運作方式
<a name="how-ebs-encryption-works"></a>

您可以同時加密 EC2 執行個體的開機和資料磁碟區。

當您建立加密 EBS 磁碟區並連接到支援的執行個體類型時，便會加密下列資料類型：
+ 磁碟區內的待用資料
+ 所有在磁碟區和執行個體間移動的資料
+ 所有從磁碟區建立的快照
+ 所有從那些快照建立的磁碟區

Amazon EBS 會使用業界標準 AES-256 [資料加密，使用資料金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)來加密您的磁碟區。資料金鑰由 產生， AWS KMS 然後由 AWS KMS 使用 AWS KMS 金鑰加密，然後再與您的磁碟區資訊一起存放。Amazon EBS 會在您建立 Amazon EBS 資源 AWS 受管金鑰 的每個區域中自動建立唯一的 。KMS 金鑰的[別名](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html)為 `aws/ebs`。根據預設，Amazon EBS 使用此 KMS 金鑰 來加密。或者，您可以使用您建立的對稱客戶受管加密金鑰。使用您自己的 KMS 金鑰 可為您提供更多彈性，包括能夠建立、旋轉和停用 KMS 金鑰。

Amazon EC2 使用 AWS KMS 來加密和解密 EBS 磁碟區的方式略有不同，具體取決於您建立加密磁碟區的快照是加密還是未加密。

## 加密快照時 EBS 加密的運作方式
<a name="how-ebs-encryption-works-encrypted-snapshot"></a>

當您從您擁有的加密快照建立加密磁碟區時，Amazon EC2 會搭配 AWS KMS 來加密和解密 EBS 磁碟區，如下所示：

1. Amazon EC2 傳送 [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html) 請求給 AWS KMS，指定您為磁碟區加密選擇的 KMS 金鑰。

1. 如果使用與快照相同的 KMS 金鑰加密磁碟區， AWS KMS 會使用與快照相同的資料金鑰，並在相同的 KMS 金鑰下加密磁碟區。如果磁碟區使用不同的 KMS 金鑰加密， AWS KMS 會產生新的資料金鑰，並使用您指定的 KMS 金鑰進行加密。加密的資料金鑰會傳送給 Amazon EBS，隨磁碟區中繼資料一起存放。

1. 當您將加密磁碟區連接至執行個體時，Amazon EC2 會傳送 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 請求至 AWS KMS ，以便它可以解密資料金鑰。

1. AWS KMS 會解密加密的資料金鑰，並將解密的資料金鑰傳送至 Amazon EC2。

1. Amazon EC2 使用存放在 Nitro 硬體的純文字資料金鑰來加密磁碟區的磁碟 I/O。只要磁碟區連接到執行個體，純文字資料金鑰就會存在記憶體中。

## 快照未加密時 EBS 加密的運作方式
<a name="how-ebs-encryption-works-unencrypted-snapshot"></a>

當您從未加密的快照建立加密磁碟區時，可使用 AWS KMS 搭配 Amazon EC2 來加密和解密 EBS 磁碟區：

1. Amazon EC2 會將 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 請求傳送至 AWS KMS，以便加密從快照建立的磁碟區。

1. Amazon EC2 傳送 [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html) 請求給 AWS KMS，指定您為磁碟區加密選擇的 KMS 金鑰。

1. AWS KMS 會產生新的資料金鑰、在您選擇用於磁碟區加密的 KMS 金鑰下進行加密，並將加密的資料金鑰傳送至 Amazon EBS，以與磁碟區中繼資料一起存放。

1. Amazon EC2 會將[解密](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)請求傳送至 AWS KMS 以解密加密的資料金鑰，然後使用此金鑰來加密磁碟區資料。

1. 當您將加密磁碟區連接至執行個體時，Amazon EC2 會傳送 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 請求至 AWS KMS，以便它可以解密資料金鑰。

1. 當您將加密磁碟區連接至執行個體時，Amazon EC2 會傳送[解密](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)請求給 AWS KMS，並指定加密的資料金鑰。

1. AWS KMS 會解密加密的資料金鑰，並將解密的資料金鑰傳送至 Amazon EC2。

1. Amazon EC2 使用存放在 Nitro 硬體的純文字資料金鑰來加密磁碟區的磁碟 I/O。只要磁碟區連接到執行個體，純文字資料金鑰就會存在記憶體中。

如需詳細資訊，請參閱*AWS Key Management Service 開發人員指南*中的 [Amazon Elastic Block Store (Amazon EBS) 如何使用 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/services-ebs.html)和[Amazon EC2 的兩則範例](https://docs.aws.amazon.com/kms/latest/developerguide/ct-ec2two.html)。

## 無法使用的 KMS 金鑰如何影響資料金鑰
<a name="unusable-keys"></a>

當 KMS 金鑰變得無法使用時，效果幾乎是即時的 (視最終一致性而定)。KMS 金鑰的金鑰狀態變更反映了其最新狀況，所有在密碼編譯操作中使用 KMS 金鑰的請求都將失敗。

當您執行會導致 KMS 金鑰無法使用的動作，不會立即影響 EC2 執行個體或連接的 EBS 磁碟區。當磁碟區連接執行個體時，Amazon EC2 會採用資料金鑰 (而非 KMS 金鑰) 來加密所有磁碟 I/O。

然而，當加密的 EBS 磁碟區從 EC2 執行個體中斷連接時，Amazon EBS 就會從 Nitro 硬體移除資料金鑰。下次再將加密的 EBS 磁碟區連接到 EC2 執行個體，連接會失敗，因為 Amazon EBS 無法使用 KMS 金鑰來解密磁碟區的加密資料金鑰。若要再次使用 EBS 磁碟區，您必須讓 KMS 金鑰變得再次可用。

**提示**  
如果您不想再存取存放在 EBS 磁碟區中的資料，且該資料已透過您打算設為無法使用的 KMS 金鑰所產生的資料金鑰進行加密，建議您先將 EBS 磁碟區從 EC2 執行個體中分離，然後再將 KMS 金鑰設為無法使用。

如需詳細資訊，請參閱*《AWS Key Management Service 開發人員指南》*中的[無法使用的 KMS 金鑰如何影響資料金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#unusable-kms-keys)。