

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

# Amazon ECS 的加密最佳实践
<a name="ecs"></a>

[Amazon Elastic Container Service（Amazon ECS）](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)是一项快速且可扩展的容器管理服务，可帮助运行、停止和管理集群上的容器。

借助 Amazon ECS，您可以使用以下任何一种方法对传输中数据进行加密：
+ 创建服务网格。使用 AWS App Mesh在已部署的 En [voy](https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy.html) 代理和网状端点（例如[虚拟节点或虚拟](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html)[网关](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html)）之间配置 TLS 连接。您可以使用来自的 TLS 证书 AWS 私有证书颁发机构 或客户提供的证书。有关更多信息和演练，请参阅[AWS App Mesh 使用 AWS Certificate Manager (ACM) 或客户提供的证书（AWS 博客文章）启用服务之间的流量加密](https://aws.amazon.com/blogs/containers/enable-traffic-encryption-between-services-in-aws-app-mesh-using-aws-certificate-manager-or-customer-provided-certificates/)。
+ 如果支持，请使用 [AWS Nitro Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html)。 AWS Nitro Enclaves 是 Amazon EC2 的一项功能，它允许您*从* Amazon EC2 实例创建隔离的执行环境，称为安全区。它们旨在帮助保护您最敏感的数据。此外，[ACM for Nitro Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html) 允许您在带有 Nitro Enclaves 的 Amazon EC2 实例上运行的 Web 应用程序和网络服务器上使用公有和私有 SSL/TLS 证书。 AWS 有关更多信息，请参阅 [AWS Nitro Enclaves — 用于处理机密数据的隔离 EC2 环境](https://aws.amazon.com/blogs/aws/aws-nitro-enclaves-isolated-ec2-environments-to-process-confidential-data/)（AWS 博客文章）。
+ 将服务器名称指示 (SNI) 协议与应用程序负载均衡器配合使用。您可以在 Application Load Balancer 的单个 HTTPS 侦听器后面部署多个应用程序。每个侦听器都有自己的 TLS 证书。您可以使用 ACM 提供的证书，也可以使用自签名证书。[应用程序负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html)和[网络负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html)都支持 SNI。有关更多信息，请参阅[应用程序负载均衡器现在支持多个 TLS 证书，并使用 SNI 进行智能选择](https://aws.amazon.com/blogs/aws/new-application-load-balancer-sni/)（AWS 博客文章）。
+ 为了提高安全性和灵活性，请使用 AWS 私有证书颁发机构 在 Amazon ECS 任务中部署 TLS 证书。有关更多信息，请参阅[一直维护容器的 TLS 第 2 部分：使用 AWS 私有 CA](https://aws.amazon.com/blogs/compute/maintaining-transport-layer-security-all-the-way-to-your-container-part-2-using-aws-certificate-manager-private-certificate-authority/)（AWS 博客文章）。
+ 使用[密钥发现服务](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret) (Envoy) 或 [ACM () 中托管的证书，在 App Mesh 中实现双向 TLS (GitHubm](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-mutual-tls-file-provided) [TL](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html))。

考虑下面针对该服务的加密最佳实践：
+ 在技术上可行的情况下，为了增强安全性，请在 AWS PrivateLink中配置 [Amazon ECS 接口 VPC 端点](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/vpc-endpoints.html)。通过 VPN 连接访问这些端点可对传输中数据进行加密。
+ 安全存储敏感材料，比如 API 密钥或数据库凭证。您可以将它们作为加密参数存储在 Parameter Store 中，这是 AWS Systems Manager的一项功能。但是，我们建议您使用， AWS Secrets Manager 因为此服务允许您自动轮换密钥、生成随机密钥以及共享密钥 AWS 账户。
+ 如果您的数据中心中的用户或应用程序或网络上的外部第三方直接向发出 HTTPS API 请求 AWS 服务，请使用从 AWS Security Token Service (AWS STS) 获得的临时安全证书签署这些请求。