

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

# 加密
<a name="s3-files-encryption"></a>

S3 檔案提供全方位的加密功能，可保護靜態和傳輸中的資料。

## 靜態加密
<a name="s3-files-encryption-at-rest"></a>

您的 S3 儲存貯體會使用 Amazon S3 的加密機制進行加密。如需 S3 中資料加密的資訊，請參閱[使用加密保護資料](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html)。

S3 檔案會使用伺服器端加密來加密 S3 檔案系統中的靜態資料。伺服器端加密是指接收資料的應用程式或服務在目的地將資料加密。在 S3 檔案系統中，資料和中繼資料預設會在寫入儲存體之前加密，並在讀取時自動解密。這些程序由 S3 檔案透明處理，因此您不需要修改應用程式。檔案系統中的所有靜態資料都會使用 AWS Key Management Service (KMS) 金鑰，使用下列其中一種方法進行加密：
+ （預設） 伺服器端加密搭配 AWS 擁有的 KMS 金鑰 (SSE-KMS)
+ 伺服器端加密搭配客戶受管 KMS 金鑰 (SSE-KMS-CMK)

使用 AWS KMS 金鑰需支付額外費用。如需詳細資訊，請參閱 [AWS Key Management Service 開發人員指南中的 KMS 關鍵概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)和 [AWS KMS 定價](https://aws.amazon.com/kms/pricing/)。 *AWS *

### 伺服器端加密搭配 AWS 擁有的 KMS 金鑰 (SSE-KMS)
<a name="s3-files-encryption-aws-owned-key"></a>

這是在 S3 檔案系統中加密靜態資料的預設金鑰。 AWS 擁有的金鑰是 AWS 服務擁有和管理的 KMS 金鑰集合。當您使用 AWS 擁有的金鑰時，S3 檔案會擁有和管理 S3 檔案系統中靜態資料和中繼資料的加密。如需 AWS 擁有金鑰的詳細資訊，請造訪 [AWS KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)。

### 伺服器端加密搭配客戶受管 AWS KMS 金鑰 (SSE-KMS-CMK)
<a name="s3-files-encryption-sse-kms"></a>

建立檔案系統時，您可以選擇設定您管理的 AWS Key Management Service (AWS KMS) 金鑰。當您搭配 S3 檔案系統使用 SSE-KMS 加密時， AWS KMS 金鑰必須與檔案系統位於相同的區域。

## AWS KMS 的 S3 檔案金鑰政策
<a name="s3-files-encryption-key-policies"></a>

金鑰政策是控制對客戶受管金鑰存取的主要方式。如需金鑰政策的詳細資訊，請參閱 [Key Management Service 開發人員指南中的 AWS KMS 中的金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。 *AWS *下列清單說明 S3 檔案支援用於加密靜態檔案系統的所有 AWS KMS 相關許可：

kms:Encrypt  
（選用） 將純文字加密為加密文字。此許可會納入預設的金鑰政策中。

kms:解密  
（必要） 解密加密文字。加密文字為之前已加密的純文字。此許可會納入預設的金鑰政策中。

kms:ReEncrypt  
（選用） 使用新的客戶受管金鑰加密伺服器端的資料，而不會公開用戶端資料的純文字。資料會先解密，然後重新加密。此許可會納入預設的金鑰政策中。

kms:GenerateDataKeyWithoutPlaintext  
（必要） 傳回以客戶受管金鑰加密的資料加密金鑰。此許可會納入 kms:GenerateDataKey\* 下預設的金鑰政策中。

kms:創建權限  
（必要） 將授予新增至金鑰，以指定誰可以使用金鑰，以及在哪些條件下使用。授予是金鑰政策的備用許可機制。如需授予的詳細資訊，請參閱 *AWS Key Management Service 開發人員指南*中的 [AWS KMS 中的授予](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)。此許可會納入預設的金鑰政策中。

kms:描述金鑰  
（必要） 提供指定客戶受管金鑰的詳細資訊。此許可會納入預設的金鑰政策中。

kms:ListAliases  
（選用） 列出帳戶中的所有金鑰別名。當您使用主控台來建立加密的檔案系統時，此許可會填入選擇 KMS 金鑰清單。我們建議您使用此許可，以提供最佳使用者體驗。此許可會納入預設的金鑰政策中。

## 金鑰狀態及其效果
<a name="s3-files-encryption-key-states"></a>

KMS 金鑰的狀態會直接影響對您加密檔案系統的存取：

已啟用  
正常操作 - 檔案系統的完整讀取和寫入存取權。

Disabled  
檔案系統在一段時間後變得無法存取。可以重新啟用。

待刪除  
檔案系統變得無法存取。在等待期間可以取消刪除。請注意，取消刪除金鑰後，金鑰需要移至啟用狀態。

已刪除  
檔案系統永久無法存取。此動作無法反轉。

**警告**  
如果您停用或刪除用於檔案系統的 KMS 金鑰，或撤銷對金鑰的 S3 檔案存取權，您的檔案系統將無法存取。如果您沒有備份，這可能會導致資料遺失。在變更加密金鑰之前，請務必確保您已備妥適當的備份程序。

## 傳輸中加密
<a name="s3-files-encryption-in-transit"></a>

S3 檔案需要使用 Transport Layer Security (TLS) 加密傳輸中的資料。當您使用掛載協助程式掛載檔案系統時，在用戶端和檔案系統之間傳輸的所有資料都會使用 TLS 加密。掛載協助程式會初始化 efs-proxy 程序，以與您的檔案系統建立安全的 TLS 連線。掛載協助程式也會建立稱為 amazon-efs-mount-watchdog 的程序，以監控掛載的運作狀態，並在第一次掛載 S3 檔案系統時自動啟動。它可確保每個掛載的 efs-proxy 程序正在執行，並在卸載檔案系統時停止程序。如果程序因某些原因而意外終止，監視程式程序會重新啟動它。

以下說明傳輸中 TLS 加密的運作方式：

1. 在用戶端和檔案系統之間建立安全的 TLS 連線

1. 所有 NFS 流量都會透過此加密連線路由

1. 資料會在傳輸前加密，並在接收時解密

加密傳輸中的資料會變更您的 NFS 用戶端設定。檢查您的主動掛載檔案系統時，您會看到一個掛載至 127.0.0.1 或 localhost 的檔案系統，如下列範例。

```
$ mount | column -t
127.0.0.1:/  on  /home/ec2-user/s3files        type  nfs4         (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=20127,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1)
```

您可以使用掛載協助程式掛載檔案系統，該協助程式一律使用 TLS 加密傳輸中的資料。因此，掛載時，NFS 用戶端會重新設定為掛載至本機連接埠。