【问题标题】:Grant access to AWS resources in another account using a service-linked role in ECS使用 ECS 中的服务相关角色授予对另一个账户中 AWS 资源的访问权限
【发布时间】:2020-12-16 00:48:28
【问题描述】:

我目前正在建立一个基于 https://aws.amazon.com/blogs/mt/best-practices-for-organizational-units-with-aws-organizations 的 AWS 架构。

作为起点,我有一个根组织,其中包含几个名为 InfrastructureWorkloadsDeployments 的组织单位。

我想要多个环境,例如StagingProduction,在我的问题中,假设我只有 Staging

因此,根据最佳实践,我拥有以下服务帐户:

OU:基础架构,帐户:InfrastructureStaging

  • VPC:包含子网、互联网网关等的网络
  • ALB:具有目标组、侦听器等的应用程序负载均衡器。

OU:工作负载,帐户:WorkloadStaging

  • ECS:具有 Fargate 集群、任务定义和服务的弹性容器服务

如最佳实践中所述,此架构应分离关注点,例如基础架构团队(账户)可以管理 VPC,多个工作负载账户可以管理其工作负载。

现在我的问题是:当我创建 ECS 服务时,我必须创建一个服务相关角色,如下所述:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html

此角色存在于 WorkloadStaging 账户中,并授予 ECS 管理所需资源的权限,但仅限于 WorkloadStaging 账户中。但是,我的负载均衡器目标组等在另一个帐户中 (InfrastructureStaging)。

通常授予对跨账户资源的访问权限是通过角色完成的,我会在其中创建一个例如ecs InfrastructureStaging 帐户中的角色,授予对附加策略的资源的访问权限,然后告诉外部用户担任该角色。

但我不能使用服务相关角色来做到这一点,可以吗?

总结一下:

  • 我有两个帐户AB
  • B 有一个我想从 A 访问的资源
  • A 想要使用服务相关角色 (ECS) 访问 B 中的此资源
  • 我该怎么做?

【问题讨论】:

    标签: amazon-web-services amazon-iam amazon-ecs


    【解决方案1】:

    在(帐户 A)中,ECS 任务在 ECS 中运行,它通过创建该角色的唯一实例来承担 ECS 角色,它不能成为主体语句的目标, 所以它是一个临时权限,不能承担其他角色。 要解决此问题,您可以通过编程方式从 ECS 任务中承担角色,例如使用 botos python,请参阅以下链接: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sts.html

    【讨论】:

    • 谢谢!如果我想从已经运行的任务中访问 A 中的资源,那将起作用。但是,在我的情况下,B 账户是 VPC 的所有者,应该在其中创建 A 账户中的 ECS。为此,我无法承担任何角色。也许这目前根本不可能?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2016-06-13
    • 2019-06-24
    • 1970-01-01
    • 2018-08-20
    相关资源
    最近更新 更多