在 AWS Fargate 上使用自管密

利用客户管理密钥保护 AWS Fargate 上的 Amazon ECS 工作负载

关键要点

  • AWS Fargate 现在支持客户管理的密钥(CMK)来加密 Amazon ECS 的临时存储。
  • 客户可以将现有密钥导入 AWS KMS 或创建新的 CMK,以满足合规要求。
  • 加密事件可通过 AWS CloudTrail 进行审计,确保安全性和合规性。

正如 :“加密是确保没有其他人能够访问您的数据的工具。” 亚马逊网络服务(AWS)在近乎所有的 165 个云服务中都嵌入了加密功能。一旦您利用这些功能,就可以“随意扭动,无需担心他人目光,尽情加密,确保安全”。

安全是 AWS 的首要任务,贯穿于我们所做的一切。在 AWS Fargate 上,每个 (Amazon ECS) 的任务都是在一个全新的、单租户的计算实例上启动的。这个计算的临时存储始终是加密的,加密所用的 (AWS KMS) 密钥由 AWS Fargate 进行管理。

今天,AWS 宣布您可以使用自己的客户管理密钥(CMK)。一旦将其添加到 AWS KMS,您就可以用这些密钥来加密在 AWS Fargate 上运行的 Amazon ECS 任务的临时存储。通过这一新功能,在严格管控的环境中运营的客户,能够更好地控制和监控其任务的临时存储加密。

本文将探讨 AWS Fargate 任务的临时存储,并展示如何启用和审计新的客户管理密钥(CMK)功能。

概述

AWS Fargate 是一种无服务器的计算引擎,用于在 Amazon ECS 和 (Amazon EKS) 上运行容器化工作负载。每当在 AWSFargate 上调度一项新任务时,作为 Amazon ECS 任务或 ,该工作负载会被放置在一个一次性、单租户的计算实例上。

对于 Amazon ECS 任务,这个计算单元有 20GiB 的 。通过在任务定义中指定 ephemeralStorage 参数,可以将其增加至 200GiB。这个临时存储与 Amazon ECS 任务的生命周期是绑定的,一旦 Amazon ECS 任务停止,以及底层计算停止,该临时存储将被删除。

如果您使用 AWS Fargate 或更高版本,这个临时存储卷默认是加密的。它采用 AWS 密钥管理服务(KMS)密钥和 AES-256加密算法进行加密。该密钥及其生命周期由 AWS Fargate 服务拥有。有关 Fargate 管理的临时存储加密的更多信息,请参阅 。

随着今天的发布,作为 Fargate管理的加密的替代方案,您可以选择使用客户管理的密钥(CMK)来加密临时存储。这将帮助监管敏感的客户满足其内部安全政策和监管要求。

客户可以将现有的密钥导入 AWS KMS 或创建新的 CMK 来加密临时存储。AWS Fargate 使用的 CMK 可以通过 AWS KMS的常规生命周期管理操作进行管理,例如轮换、禁用和删除。有关管理 KMS 密钥的更多详细信息,请参阅 。另外,所有来自 AWS Fargate 对 KMS 密钥的访问操作可以在 中进行审计。

在 2024 年 1 月, 额外的 (Amazon EBS) 卷可以附加到在 AWS Fargate 上运行的 Amazon ECS 任务。这些 EBS 卷为 AWS Fargate 客户解锁了更多用例,允许在任务中使用更高容量和高性能的卷,搭配临时存储。这些 EBS卷的管理方式与临时存储不同,并且这些卷已经可以用客户管理的 KMS密钥(CMK)进行加密()。

AWS Fargate 属于 下的合规性程序范围。AWS Fargate 包含的合规程序有:

您可以使用 下载第三方审计报告。有关更多信息,请参阅 。许多合规程序要求客户在其 Amazon ECS 上的 AWS Fargate 资源中对数据进行静态加密。

客户在密钥处理方面也有额外的内部风险管理政策,要求他们生成自己的密钥,在云外进行备份,并管理这些密钥的生命周期。直到今天,这些客户无法使用 AWSFargate 的默认加密解决方案来保护其内部安全政策下的工作负载。

在 Amazon ECS 集群上启用 CMK 的临时存储

在今天的发布后,单个 KMS 密钥现在可以附加到新的或现有的 Amazon ECS 集群上。一旦附加了密钥,所有在 AWS Fargate上启动的新任务将使用此 KMS 密钥。如果您有现有任务在 Amazon ECS 集群中运行,必须重新部署这些任务以使用新加密密钥。如果这些任务是 Amazon ECS 服务的一部分,则传递 --force-new-deployment 标志给 amazon ecs update-service ,强制所有任务使用新 KMS 密钥重新部署,同时遵循服务的

设置。

要将 KMS 密钥附加到新的或现有的集群,请在新的 managedStorageConfiguration 字段中指定 KeyId

bash aws ecs create-cluster \ --cluster clusterName \ --configuration '{"managedStorageConfiguration":{"fargateEphemeralStorageKmsKeyId":"arn:aws:kms:us- west-2:012345678901:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"}}'

以下是描述集群 的输出示例,具有客户管理的密钥:

bash aws ecs describe-clusters --clusters ecs-fargate-self-managed-key- cluster --region us-west-2 --include CONFIGURATIONS

删除)

除了审核 CloudTrail 日志以获取加密事件外,您还可以通过现有任务的 DescribeTask

验证一个 ECS 任务是否使用 KMS 密钥:

`json { "tasks": (IAM) 可确保您的 Amazon ECS 集群在创建时使用客户管理密钥。该策略可以应用为

或作为您 的一部分。

以下是一个 IAM 策略示例代码段,确保仅在使用特定 AWS KMS 密钥时才能创建集群:

`json { "Version": "2012-10-17", "Statement": 。

json { "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "ec2-frontend-api.amazonaws.com" }, "eventTime": "2024-04-23T18:08:13Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "ec2-frontend- api.amazonaws.com", "userAgent": "ec2-frontend-api.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us- west-2:123456789012:key/9b52b885-3f4d-40af-9843-d6b24b735559", "granteePrincipal": "fargate.us-west-2.amazonaws.com", "operations": [ "Decrypt" ], "constraints": { "encryptionContextSubset": { "**aws:ecs:clusterAccount": "123456789012", **"aws:ebs:id": "vol-01234567890abcdef", **"aws:ecs:clusterName": "ecs-fargate-self-managed- key-cluster" } }, "retiringPrincipal": "ec2.us-west-2.amazonaws.com" }, "responseElements": { "grantId": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "keyId": "arn:aws:kms:us-west-2:123456789012:key/9b52b885-3f4d-40af-9843-d6b24b735559" }, "requestID": "be4d1a4e4730e0dceca51f87ee7454d5db76400d80e22bfbf3c4ca01e893b60c", "eventID": "bf36027c-86bd-40f2-a561-960cbe148c4c", "readOnly": false, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us- west-2:123456789012:key/9b52b885-3f4d-40af-9843-d6b24b735559" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "sharedEventID": "bf36027c-86bd-40f2-a561-960cbe148c4c", "eventCategory": "Management" }

结论

通过使用 AWS KMS 客户管理的密钥,您现在可以满足对在 AWS Fargate 上运行的 Amazon ECS 工作负载中数据的安全要求。

要了解有关您 Amazon ECS 工作负载的合规性,请参考 [FSI 服务聚焦:在 AWS Fargate 上的 Amazon ElasticContainer Service (ECS) 博客文章](https://aws.amazon.com/blogs/industries/fsi- service-spotlight-amazon-elastic-container-service-ecs-with-aws-fargate/) 或 。有关在 AWS Fargate 中使用客户管理密钥的更多信息,请参阅 。此功能是我们客户在 上的请求。

标签: ,

Leave a Reply

Required fields are marked *