为什么要单独存储 ECS 任务定义机密

问题描述

我正在为 ECS 任务设置任务定义。任务中容器上的环境变量之一是当前作为 securestring 存储在 Parameter Store 中的一组凭据。我想知道不直接将它作为环境变量存储在任务容器中的理由是什么?

将其存储在 Parameter Store 中似乎唯一增加的安全性是 AWS 用户和资源可以被细分为不能直接访问它,但还有其他原因吗?

解决方法

Parameter Store 和/或 Secrets Manager 将充当所有需要访问您的密钥值的服务的单一事实来源。当这些秘密值发生变化时,它为您提供了一个需要更新的位置。它使用 KMS 加密安全地存储值,并通过 IAM 提供对您个人秘密值的访问控制。

如果您将您的秘密直接嵌入到您的 ECS 任务定义中,则上述情况都不成立。

,

您将使用参数存储来避免将凭据放在版本控制中,例如 GIT,其他人可以读取。 不确定您计划如何在任务的容器中存储变量。也许你可以澄清一下。