

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon VPC Lattice 中的数据保护
<a name="data-protection"></a>

责任共担模式 AWS [分担责任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)适用于 Amazon VPC Lattice 中的数据保护。如本模型所述 AWS ，负责保护运行所有内容的全球基础架构 AWS Cloud。您负责维护对托管在此基础架构上的内容的控制。此内容包括您所使用的 AWS 服务 的安全配置和管理任务。有关数据隐私的更多信息，请参阅[数据隐私常见问题](https://aws.amazon.com/compliance/data-privacy-faq/)。有关欧洲数据保护的信息，请参阅 *AWS Security Blog* 上的 [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 博客文章。

## 传输中加密
<a name="encryption-transit"></a>

VPC Lattice 是一项完全托管的服务，由控制面板和数据面板组成。每个面板在服务中都有不同的用途。控制平面提供了用于创建、更新 read/describe、删除和列出 (CRUDL) 资源（例如`CreateService`和`UpdateService`）的管理 API。与 VPC 莱迪思控制平面的通信在传输途中受到 TLS 的保护。数据平面是 VPC Lattice Invoke API，它提供服务之间的互连。当您使用 HTTPS 或 TLS 时，TLS 会对与 VPC 莱迪思数据平面的通信进行加密。密码套件和协议版本使用 VPC Lattice 提供的默认值，并且不可配置。有关更多信息，请参阅 [VPC Lattice 服务的 HTTPS 侦听器](https-listeners.md)。

## 静态加密
<a name="encryption-rest"></a>

默认情况下，静态数据加密有助于降低保护敏感数据的操作开销和复杂性。同时，还支持构建符合严格加密合规性和监管要求的安全应用程序。

**Topics**
+ [Server-side 使用 Amazon S3 托管密钥进行加密 (SSE-S3)](#s3-managed-keys)
+ [Server-side 使用加密 AWS KMS 密钥存储在 AWS KMS (SSE-KMS)](#kms-managed-keys)

### Server-side 使用 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 存储桶启用使用亚马逊 S3-managed 加密密钥 (SSE-S3) 的服务器端加密，我们会自动加密每个访问日志文件，然后再将其存储在您的 S3 存储桶中。有关更多信息，请参阅亚马逊* CloudWatch 用户指南中的发送到 Amazon* [S3 的日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3)。

### Server-side 使用加密 AWS KMS 密钥存储在 AWS KMS (SSE-KMS)
<a name="kms-managed-keys"></a>

Server-side 使用 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 **aws/acm**托管 KMS 密钥进行加密。您可以在 AWS KMS 控制台的**AWS 托管密钥下查看带有此别名的密钥** ID。

VPC Lattice 不会直接访问您的 ACM 资源。它使用 AWS TLS 连接管理器来保护和访问您的证书的私钥。当您使用 ACM 证书创建 VPC Lattice 服务时，VPC Lattice 会将您的证书与 AWS TLS Connection Manager 关联。这是通过在 AWS KMS 您的 AWS 托管密钥上创建带有前缀的授权来完成的**aws/acm**。授权是一种策略工具，允许 TLS Connection Manager 在加密操作中使用 KMS 密钥。授权允许被授权主体（TLS Connection Manager）对 KMS 密钥调用指定授权操作，以解密证书的私有密钥。然后，TLS连接管理器使用证书和解密（纯文本）私钥与VPC莱迪思服务的客户端建立安全连接（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 Latrice 服务的名称将包含在用于静态加密密钥的加密上下文中。您可以通过查看 CloudTrail 日志中的加密上下文（如下一节所示）或查看 ACM 控制台中的 “**关联资源**” 选项卡，来验证您的证书和私钥用于哪个 VPC Lattice 服务。

要解密数据，在请求中包含相同的加密上下文。VPC Lattice 在所有 AWS KMS 加密操作中使用相同的加密环境，其中密钥为`aws:vpc-lattice:arn`，值为 VPC 莱迪思服务的亚马逊资源名称 (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莱迪思服务中使用 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 连接管理器，加密上下文具有 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 连接管理器，加密环境具有 VPC 莱迪思服务 ARN。

**Decrypt**  
VPC Lattice 使用 TLS Connection Manager 调用 `Decrypt` 操作来解密您的私有密钥，以便在您的 VPC Lattice 服务中提供 TLS 连接。您可以在事件**历史记录 **Decryp** t 中将该`Decrypt`操作作为**CloudTrail**事件**进行查看。

以下是该`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"
}
```