0

总体的目标:

我正在为我们的微服务环境(全新)编写 AWS Parameter Store 的包装器。基本上,如果我们决定迁移到 Azure,我会尝试简化从一个服务提供商到另一个服务提供商的过渡,例如,因此只需修改此服务。

这个想法是,启动时的服务可以调用此服务(“配置服务”)来获取所有配置设置。

问题:

如果我们决定走这条路,可能仍希望根据 IAM 权限(角色/策略)锁定参数。我正在此配置服务中寻找一种方法,以获取调用配置服务的用户/角色并将其传递给 Parameter Store,例如,在调用ssm.getParameters(...).

我看过这个页面,它允许限制用户可以传递哪些角色,所以看起来我可以传递角色。不过,我需要弄清楚如何找到那个角色。

例如,如果我将 .NET 与 ASP.NET 站点和 Windows 身份验证一起使用,则可以模拟该用户以模拟该用户的权限。(整体效果是调用服务的权限限制了它可以访问的参数。)

我在弹性容器服务中使用 node.js,使用新的 Fargate luanch 类型,如果这会影响潜在的答案。

4

1 回答 1

0

如果要锁定特定微服务的 SSM 参数

  1. 为每个 ECS 任务创建和附加 IAM 角色
  2. path使用符号组织参数
  3. 对于每个 IAM 角色,指定Resource仅限制对特定路径的访问(请参阅this)。这将允许您为每个微服务仅提供特定参数。

PS。如果您只想检索当前正在使用的角色 aws sts get-caller-identity

另一种替代解决方案:

  1. 调用时在请求中config-service包含microservice名称并创建 IAM 角色以匹配microservice名称。
  2. aws sts assume-role在您的角色中使用config-service可用于微服务的 IAM 角色。
  3. 锁定您config-service以仅承担允许的角色。
于 2018-01-16T21:53:12.747 回答