总体目标:
我正在围绕AWS参数存储编写一个包装器,用于我们的微服务环境(全新)。基本上,如果我们决定迁移到Azure,我会尝试简化从一个服务提供商到另一个服务提供商的转换,例如,因此只需要修改此服务。
我们的想法是,启动时的服务可以调用此服务('配置服务')来获取所有配置设置。
问题:
如果我们决定采用这种方式,可能仍希望根据IAM权限(角色/策略)锁定参数。我在这个配置服务中寻找一种方法,可能会抓住调用配置服务的用户/角色并将其传递给参数存储,例如,在调用ssm.getParameters(...)
时。
我看过this页面,它允许限制用户可以传递哪些角色,因此我似乎可以通过该角色。不过,我需要找出如何来找到这个角色。
例如,如果我将.NET与ASP.NET站点和Windows身份验证结合使用,则可以模拟该用户以模拟该用户的权限。 (整体效果是呼叫服务的权限限制了它可以访问的参数。)
我在Elastic Container Service中使用node.js,使用新的Fargate luanch类型,如果这会影响潜在的答案。
答案 0 :(得分:0)
如果要锁定特定微服务的SSM参数
path
表示法Resource
以限制仅针对特定路径的访问(请参阅this)。
这将允许您只有每个微服务可用的特定参数。 PS。如果您只想检索当前角色used
aws sts get-caller-identity
另一种替代解决方案:
config-service
包含microservice
名称并创建IAM角色以匹配microservice
名称。aws sts assume-role
中的config-service
来承担微服务可用的IAM角色。config-service
锁定为仅承担允许的角色。