【发布时间】:2018-01-17 08:34:56
【问题描述】:
总体目标:
我正在为我们的微服务环境(全新)编写一个围绕 AWS Parameter Store 的包装器。基本上,如果我们决定迁移到 Azure,我会尝试简化从一个服务提供商到另一个服务提供商的过渡,例如,因此只需修改此服务。
这个想法是一个服务在启动时可以调用这个服务('config service')来获取所有的配置设置。
问题:
如果我们决定走这条路,可能仍希望根据 IAM 权限(角色/策略)锁定参数。我正在此配置服务中寻找一种方法,以获取调用配置服务的用户/角色并将其传递给 Parameter Store,例如,在调用 ssm.getParameters(...) 时。
我看过this页面,它允许限制用户可以传递哪些角色,所以看起来我可以传递角色。不过,我需要弄清楚如何找到那个角色。
例如,如果我将 .NET 与 ASP.NET 站点和 Windows 身份验证一起使用,则可以模拟该用户以模拟该用户的权限。 (总体效果是调用服务的权限限制了它可以访问的参数。)
我在 Elastic Container Service 中使用 node.js,使用新的 Fargate luanch 类型,如果这会影响潜在答案。
【问题讨论】:
-
我确实做了一个
process的控制台转储,其中包括环境变量等,但我没有看到任何东西。 -
EC2 实例可以通过元数据确定角色名称。这是在 iam/info 和 iam/security-credentials 下。 docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
-
@JohnHanley 我查看了您的链接并发现了其他一些可行的方法(即this one 和
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI环境变量)。但是,这仍然意味着每项服务都依赖于 AWS 才能找到其执行角色。我希望 AWS 可以将信息传递到配置服务中,因此它可以被信任,并且依赖项只存在于一项服务中。
标签: node.js amazon-web-services aws-sdk ssm aws-ssm