

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

# Amazon VPC Lattice 中的資料保護
<a name="data-protection"></a>

 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於 Amazon VPC Lattice 中的資料保護。如此模型所述， AWS 負責保護執行所有 的 全球基礎設施 AWS 雲端。您負責維護在此基礎設施上託管內容的控制權。此內容包括您所使用 AWS 服務 的安全組態和管理任務。如需有關資料隱私權的更多相關資訊，請參閱[資料隱私權常見問答集](https://aws.amazon.com/compliance/data-privacy-faq/)。如需有關歐洲資料保護的相關資訊，請參閱*AWS 安全性部落格*上的[AWS 共同責任模型和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 部落格文章。

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

VPC Lattice 是由控制平面和資料平面組成的全受管服務。每個平面在服務中都有不同的用途。控制平面提供用於建立、讀取/描述、更新、刪除和列出 (CRUDL) 資源APIs （例如 `CreateService`和 `UpdateService`)。與 VPC Lattice 控制平面的通訊由 TLS 保護傳輸中。資料平面是 VPC Lattice 調用 API，可提供 服務之間的互連。當您使用 HTTPS 或 TLS 時，TLS 會加密與 VPC Lattice 資料平面的通訊。密碼套件和通訊協定版本使用 VPC Lattice 提供的預設值，且無法設定。如需詳細資訊，請參閱[VPC Lattice 服務的 HTTPS 接聽程式](https-listeners.md)。

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

根據預設，靜態資料的加密有助於降低保護敏感資料時涉及的操作開銷和複雜性。同時，其可讓您建置符合嚴格加密合規性和法規要求的安全應用程式。

**Topics**
+ [使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密](#s3-managed-keys)
+ [伺服器端加密與存放在 AWS KMS (SSE-KMS) 中的 AWS KMS 金鑰](#kms-managed-keys)

### 使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密
<a name="s3-managed-keys"></a>

使用伺服器端加密搭配 Amazon S3 受管金鑰 (SSE-S3) 時，每個物件都會使用唯一金鑰來加密。作為額外的保護，我們使用我們定期輪換的根金鑰來加密金鑰本身。Amazon S3 伺服器端加密使用目前最強大的其中一種區塊加密法 (256 位元進階加密標準 (AES-256) GCM)，加密您的資料。對於在 AES-GCM 之前加密的物件，仍支援以 AES-CBC 解密這些物件。如需詳細資訊，請參閱[搭配使用伺服器端加密與 Amazon S3-managed加密金鑰 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)。

如果您為 VPC Lattice 存取日誌的 S3 儲存貯體使用 Amazon S3-managed加密金鑰 (SSE-S3) 啟用伺服器端加密，我們會在每個存取日誌檔案存放在 S3 儲存貯體之前自動加密。如需詳細資訊，請參閱《[Amazon CloudWatch 使用者指南》中的傳送至 Amazon S3 的日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3)。 *Amazon CloudWatch *

### 伺服器端加密與存放在 AWS KMS (SSE-KMS) 中的 AWS KMS 金鑰
<a name="kms-managed-keys"></a>

具有 AWS KMS 金鑰的伺服器端加密 (SSE-KMS) 類似於 SSE-S3，但使用此服務可獲得額外的好處和費用。 AWS KMS 金鑰有個別的許可，可為 Amazon S3 中的物件提供額外的保護，防止未經授權的存取。SSE-KMS 也為您提供稽核線索，顯示您的 AWS KMS 金鑰何時被使用以及由誰使用。如需詳細資訊，請參閱[搭配 AWS Key Management Service (SSE-KMS) 使用伺服器端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)。

**Topics**
+ [加密和解密憑證的私有金鑰](#private-key)
+ [VPC Lattice 的加密內容](#encryption-context)
+ [監控 VPC Lattice 的加密金鑰](#monitoring-encryption-keys)

#### 加密和解密憑證的私有金鑰
<a name="private-key"></a>

您的 ACM 憑證和私有金鑰會使用別名為 **aws/acm** 的 AWS 受管 KMS 金鑰進行加密。您可以在 AWS KMS 主控台的**AWS 受管金鑰下，檢視具有此別名的金鑰** ID。

VPC Lattice 不會直接存取您的 ACM 資源。它使用 AWS TLS Connection Manager 來保護和存取憑證的私有金鑰。當您使用 ACM 憑證建立 VPC Lattice 服務時，VPC Lattice 會將您的憑證與 AWS TLS Connection Manager 建立關聯。方法是 AWS KMS 針對 AWS 字首為 **aws/acm** 的受管金鑰在 中建立授予。授權是一種政策工具，允許 TLS Connection Manager 使用密碼編譯操作中的 KMS 金鑰。授權可讓承授者主體 (TLS Connection Manager) 呼叫 KMS 金鑰上指定的授予操作，以解密憑證的私有金鑰。TLS Connection Manager 接著會使用憑證和解密的 （純文字） 私有金鑰，與 VPC Lattice 服務的用戶端建立安全連線 (SSL/TLS 工作階段）。當憑證與 VPC Lattice 服務取消關聯時，授權即會淘汰。

如果您想要移除 KMS 金鑰的存取權，建議您使用 或 中的 `update-service`命令，從服務取代 AWS 管理主控台 或刪除憑證 AWS CLI。

#### VPC Lattice 的加密內容
<a name="encryption-context"></a>

[加密內容](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html)是選用的一組金鑰/值對，其中包含有關私有金鑰可能用於哪些用途的內容資訊。 會將加密內容 AWS KMS 合併為加密資料，並將其用作額外的已驗證資料，以支援已驗證的加密。

當您的 TLS 金鑰與 VPC Lattice 和 TLS Connection Manager 搭配使用時，您的 VPC Lattice 服務名稱會包含在用來加密靜態金鑰的加密內容中。您可以透過檢視 CloudTrail 日誌中的加密內容，如下一節所示，或查看 ACM 主控台中的**關聯資源**索引標籤，來驗證憑證和私有金鑰正在使用的 VPC Lattice 服務。

若要解密資料，則必須在請求中包含相同的加密內容。VPC Lattice 在所有 AWS KMS 密碼編譯操作中使用相同的加密內容，其中金鑰為 ，`aws:vpc-lattice:arn`而值為 VPC Lattice 服務的 Amazon Resource Name (ARN)。

下列範例展示操作輸出中的加密內容，例如 `CreateGrant`。

```
"encryptionContextEquals": {
    "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
}
```

#### 監控 VPC Lattice 的加密金鑰
<a name="monitoring-encryption-keys"></a>

當您搭配 VPC Lattice 服務使用 AWS 受管金鑰時，您可以使用 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/) 來追蹤 VPC Lattice 傳送的請求 AWS KMS。

**CreateGrant**  
當您將 ACM 憑證新增至 VPC Lattice 服務時，系統會代表您傳送`CreateGrant`請求，讓 TLS Connection Manager 能夠解密與您的 ACM 憑證相關聯的私有金鑰

您可以在 **CloudTrail**、事件**歷史記錄**、**CreateGrant** 中將`CreateGrant`操作檢視為事件。

以下是 `CreateGrant`操作的 CloudTrail 事件歷史記錄中的範例事件記錄。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn:aws:iam::111122223333:user/Alice",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE_KEY_ID",
        "sessionContext": {
            "sessionIssuer": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::111122223333:user/Alice",
                "accountId": "111122223333",
                "userName": "Alice"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-02-06T23:30:50Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "acm.amazonaws.com"
    },
    "eventTime": "2023-02-07T00:07:18Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "acm.amazonaws.com",
    "userAgent": "acm.amazonaws.com",
    "requestParameters": {
        "granteePrincipal": "tlsconnectionmanager.amazonaws.com",
        "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "operations": [
            "Decrypt"
        ],
        "constraints": {
            "encryptionContextEquals": {
                "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
            }
        },
        "retiringPrincipal": "acm.us-west-2.amazonaws.com"
    },
    "responseElements": {
        "grantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    },
    "requestID": "ba178361-8ab6-4bdd-9aa2-0d1a44b2974a",
    "eventID": "8d449963-1120-4d0c-9479-f76de11ce609",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

在上述`CreateGrant`範例中，承授者主體是 TLS Connection Manager，加密內容具有 VPC Lattice 服務 ARN。

**ListGrants**  
您可以使用 KMS 金鑰 ID 和帳戶 ID 來呼叫 `ListGrants` API。這可讓您取得指定 KMS 金鑰的所有授予清單。如需詳細資訊，請參閱 [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)。

在 中使用下列`ListGrants`命令 AWS CLI ，以查看所有授予的詳細資訊。

```
aws kms list-grants —key-id {{your-kms-key-id}}
```

以下為範例輸出。

```
{
    "Grants": [
        {
            "Operations": [
                "Decrypt"
            ], 
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", 
            "Name": "IssuedThroughACM", 
            "RetiringPrincipal": "acm.us-west-2.amazonaws.com", 
            "GranteePrincipal": "tlsconnectionmanager.amazonaws.com", 
            "GrantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758", 
            "IssuingAccount": "arn:aws:iam::111122223333:root", 
            "CreationDate": "2023-02-06T23:30:50Z", 
            "Constraints": {
                "encryptionContextEquals": {
                  "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                  "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
                }
            }
        }
    ]
}
```

在上述`ListGrants`範例中，承授者主體是 TLS Connection Manager，加密內容具有 VPC Lattice 服務 ARN。

**解密**  
VPC Lattice 使用 TLS Connection Manager 呼叫 `Decrypt`操作來解密您的私有金鑰，以便在 VPC Lattice 服務中提供 TLS 連線。您可以在 **CloudTrail** 事件歷史記錄 **Decrypt** 中將`Decrypt`操作檢視為事件。 ****

以下是 `Decrypt` CloudTrail 操作事件歷史記錄中的範例事件記錄。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "tlsconnectionmanager.amazonaws.com"
    },
    "eventTime": "2023-02-07T00:07:23Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "tlsconnectionmanager.amazonaws.com",
    "userAgent": "tlsconnectionmanager.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
        },
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "12345126-30d5-4b28-98b9-9153da559963",
    "eventID": "abcde202-ba1a-467c-b4ba-f729d45ae521",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "sharedEventID": "abcde202-ba1a-467c-b4ba-f729d45ae521",
    "eventCategory": "Management"
}
```