Amazon web services 最佳实践-如何将SES IAM用户凭据传递给Fargate任务?

Amazon web services 最佳实践-如何将SES IAM用户凭据传递给Fargate任务?,amazon-web-services,amazon-cloudformation,aws-fargate,aws-secrets-manager,Amazon Web Services,Amazon Cloudformation,Aws Fargate,Aws Secrets Manager,我有一个关于AWS中“硬编码”机密处理的问题。以下是我的设置: 我们正在运行一个由3个服务组成的Fargate集群。其中一项服务(后端)需要SES帐户(邮件发送)和S3存储桶(文件存储)的凭据。目前,我们使用AWS机密管理器,它保存ses smtp用户和s3用户的凭据,并在容器启动时将机密值作为环境变量注入。整个堆栈(其他区域中的SES除外)是使用云形成模板创建的。所需的机密也由模板创建。还有我的“问题”-目前机密模板包含硬编码的SES和S3凭据,这是不好的,因为模板被推到模板桶中(它不是公共的

我有一个关于AWS中“硬编码”机密处理的问题。以下是我的设置:

我们正在运行一个由3个服务组成的Fargate集群。其中一项服务(后端)需要SES帐户(邮件发送)和S3存储桶(文件存储)的凭据。目前,我们使用AWS机密管理器,它保存ses smtp用户和s3用户的凭据,并在容器启动时将机密值作为环境变量注入。整个堆栈(其他区域中的SES除外)是使用云形成模板创建的。所需的机密也由模板创建。还有我的“问题”-目前机密模板包含硬编码的SES和S3凭据,这是不好的,因为模板被推到模板桶中(它不是公共的,但无论如何),并且它可能被提交到版本控制,在那里它将被暴露给任何有项目读取权限的人。问题是-将SES和S3凭据传递给容器而不在任何地方公开它们的最佳实践是什么

提前感谢,,
Al

将IAM用于SES和S3访问

您的ECS群集有一个。 它是由您的下划线容器假设的,这些容器将具有您角色中定义的所有访问权限以及附加到它的策略

AWS服务访问

为您的SES和S3访问创建具有受限访问权限的策略,并将这些策略附加到角色

常规凭证

对于一些纯文本凭据,我建议在参数存储中创建这些凭据,并将它们映射到任务定义中的容器中。
您不应该在云形成模板中创建参数存储机密,最好手动添加这些,并从需要的位置引用这些信息。

感谢Nick指出,在CF模板中创建纯文本机密是不好的做法。我对此已经准备好了,但仍然不确定,因为在堆栈的初始加速中涉及到手动步骤,我天真的目标是创建一个完全模板化的堆栈定义,我可以在一个干净的帐户中自动加速100%。