本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon VPC Lattice 中的数据保护
责任共担模式AWS分担责任模型
传输中加密
VPC Lattice 是一项完全托管的服务,由控制面板和数据面板组成。每个面板在服务中都有不同的用途。控制平面提供了用于创建、更新 read/describe、删除和列出 (CRUDL) 资源(例如CreateService和UpdateService)的管理 API。与 VPC 莱迪思控制平面的通信在传输途中受到 TLS 的保护。数据平面是 VPC Lattice Invoke API,它提供服务之间的互连。当您使用 HTTPS 或 TLS 时,TLS 会对与 VPC 莱迪思数据平面的通信进行加密。密码套件和协议版本使用 VPC Lattice 提供的默认值,并且不可配置。有关更多信息,请参阅 VPC Lattice 服务的 HTTPS 侦听器。
静态加密
默认情况下,静态数据加密有助于降低保护敏感数据的操作开销和复杂性。同时,还支持构建符合严格加密合规性和监管要求的安全应用程序。
Server-side 使用 Amazon S3 托管密钥进行加密 (SSE-S3)
当您对 Amazon S3 托管密钥 (SSE-S3) 使用服务器端加密时,每个对象都使用唯一的密钥进行加密。作为额外的保护措施,我们使用定期轮换的根密钥对密钥本身进行加密。Amazon S3 服务器端加密使用市面上最强的分组密码之一,即 256 位高级加密标准 (AES-256) GCM 来加密您的数据。对于之前加密的对象 AES-GCM, AES-CBC 仍支持解密这些对象。有关更多信息,请参阅使用带有 Amazon 加密密钥的服务器端 S3-managed 加密 (SSE-S3)。
如果您为 VPC Lattice 访问日志的 S3 存储桶启用使用亚马逊 S3-managed 加密密钥 (SSE-S3) 的服务器端加密,我们会自动加密每个访问日志文件,然后再将其存储在您的 S3 存储桶中。有关更多信息,请参阅亚马逊 CloudWatch 用户指南中的发送到 Amazon S3 的日志。
Server-side 使用加密AWS KMS密钥存储在AWS KMS(SSE-KMS)
Server-side 使用AWS KMS密钥加密 (SSE-KMS) 与此类似 SSE-S3,但使用此服务会带来额外的好处和费用。该AWS KMS密钥有单独的权限,可提供额外的保护,防止未经授权访问您的 Amazon S3 中的对象。 SSE-KMS 还为您提供审计跟踪,显示您的AWS KMS密钥何时被使用以及由谁使用。有关更多信息,请参阅通过 AWS Key Management Service (SSE-KMS) 使用服务器端加密。
证书私有密钥的加密和解密
您的 ACM 证书和私钥使用别名的AWSaws/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 的加密上下文
加密上下文是一组可选的键值对,其中包含有关您的私钥可能用于什么的上下文信息。 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 的加密密钥
当您在VPC莱迪思服务中使用AWS托管密钥时,您可以使用AWS CloudTrail来跟踪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。
在中使用以下ListGrants命令AWS CLI查看所有授权的详细信息。
aws kms list-grants —key-idyour-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"
}