Loading...

资讯中心

在 AWS Fargate 上使用自管密钥保护 Amazon ECS 工作负载 计算博客

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

关键要点

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

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

一元机场vip

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

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

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

概述

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

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

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

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

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

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

AWS Fargate 属于 共享责任模型 下的合规性程序范围。AWS Fargate 包含的合规程序有:

C5CCCSCISPEDESC CSPDOD CC SRGFedRAMPFINMAHITRUST CSFISMAPISO 和 CSA STAR 证书KISMSMTCSPCIPiTuKriSOCSNI 27001

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

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

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

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

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

bashaws ecs createcluster cluster clusterName configuration {managedStorageConfiguration{fargateEphemeralStorageKmsKeyIdarnawskmsuswest2012345678901key/a1b2c3d4567890abcdefEXAMPLE11111}}

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

在 AWS Fargate 上使用自管密钥保护 Amazon ECS 工作负载 计算博客

bashaws ecs describeclusters clusters ecsfargateselfmanagedkeycluster region uswest2 include CONFIGURATIONS

除了审核 CloudTrail 日志以获取加密事件外,您还可以通过现有任务的 DescribeTask API 验证一个 ECS 任务是否使用 KMS 密钥:

json{ tasks [ { clusterArn arnawsecsuswest21234567890cluster/mycluster taskArn arnawsecsuswest21234567890task/1122334211114fdeb6ca273c5cfc00a1 fargateEphemeralStorage { sizeInGiB 20 kmsKeyId arnawskmsuswest21234567890key/082222a111114fdeb6ca273c5cfc00a1 } } ]}

强制使用客户管理密钥的加密

新的 AWS 身份与访问管理 (IAM) 条件键 可确保您的 Amazon ECS 集群在创建时使用客户管理密钥。该策略可以应用为 服务控制策略 或作为您 IAM 权限 的一部分。

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

json{ Version 20121017 Statement [ { Effect Allow Action [ ecsCreateCluster ] Resource Condition { StringEquals { ecsfargateephemeralstoragekmskey arnawskmsuseast1123456789012key/1234abcd12ab34cd56ef1234567890ab } } } ]}

审计加密事件

加密事件记录在 AWS CloudTrail 中。以下是包含卷 ID、集群名称和操作的 AWS 账户 ID 的 CloudTrail 事件示例。有关记录的事件类型的更多详细信息,请查阅 管理 AWS KMS 密钥以用于 Fargate 临时存储。

json{ eventVersion 108 userIdentity { type AWSService invokedBy ec2frontendapiamazonawscom } eventTime 20240423T180813Z eventSource kmsamazonawscom eventName CreateGrant awsRegion uswest2 sourceIPAddress ec2frontendapiamazonawscom userAgent ec2frontendapiamazonawscom requestParameters { keyId arnawskmsuswest2123456789012key/9b52b8853f4d40af9843d6b24b735559 granteePrincipal fargateuswest2amazonawscom operations [ Decrypt ] constraints { encryptionContextSubset { awsecsclusterAccount 123456789012 awsebsid vol01234567890abcdef awsecsclusterName ecsfargateselfmanagedkeycluster } } retiringPrincipal ec2uswest2amazonawscom } responseElements { grantId e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 keyId arnawskmsuswest2123456789012key/9b52b8853f4d40af9843d6b24b735559 } requestID be4d1a4e4730e0dceca51f87ee7454d5db76400d80e22bfbf3c4ca01e893b60c eventID bf36027c86bd40f2a561960cbe148c4c readOnly false resources [ { accountId AWS Internal type AWSKMSKey ARN arnawskmsuswest2123456789012key/9b52b8853f4d40af9843d6b24b735559 } ] eventType AwsApiCall managementEvent true recipientAccountId 123456789012 sharedEventID bf36027c86bd40f2a561960cbe148c4c eventCategory Management}

结论

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

要了解有关您 Amazon ECS 工作负载的合规性,请参考 FSI 服务聚焦:在 AWS Fargate 上的 Amazon Elastic Container Service (ECS) 博客文章 或 AWS Fargate 安全概述白皮书。有关在 AWS Fargate 中使用客户管理密钥的更多信息,请参阅 AWS 文档。此功能是我们客户在 AWS 容器路线图 上的请求。

标签 容器,无服务器

©  - All Rights Reserved clash for abdroid .