首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ECS服务中存储AWS凭据的位置

在ECS服务中存储AWS凭据的位置
EN

Stack Overflow用户
提问于 2019-09-11 15:06:46
回答 1查看 988关注 0票数 1

我有一个ECS服务,它需要AWS凭据。我使用ECR存储停靠映像和jenkins可见,仅用于VPN连接来构建映像。

我看到了向服务提供AWS凭据的两种可能性。

  1. 将它们作为Jenkins秘密存储,并在构建过程中插入到docker映像中。
  2. 在创建ECS任务定义时,让它们成为环境的一部分

什么更安全?还有其他的可能性吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-11 16:11:06

首先,您不应该在AWS内部工作时使用AWS凭据,您应该分配角色到任务定义或服务,而不是将凭据传递给docker或任务定义。

使用用于Amazon任务的IAM角色,您可以指定一个IAM角色,该角色可以由任务中的容器使用。应用程序必须用AWS凭据对其API请求进行签名,此特性提供了一种管理应用程序使用的凭据的策略,类似于Amazon实例配置文件向EC2实例提供凭据的方式。

因此,有时底层应用程序的设计方式不能使用角色,所以在本文中,我建议将ENV存储在任务定义中,但同样地,从哪里获得ENV的值?

任务定义支持两种处理ENV的方法,

  • 纯文本作为直接值
  • valueFrom任务定义 使用‘ ’属性

下面是任务定义的片段,显示引用系统管理器参数存储参数时的格式。

代码语言:javascript
复制
{
  "containerDefinitions": [{
    "secrets": [{
      "name": "environment_variable_name",
      "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name"
    }]
  }]
}

这是最安全和AWS文档推荐的方法的,所以这是一个更好的方法,与在任务定义内的纯文本或Dockerfile中的ENV相比。

您可以阅读更多的这里系统.管理器.参数存储

但是要使用这些,您必须提供对访问系统管理器参数存储的任务定义的权限。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57892046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档