【问题标题】:ECS get access to ECR in separate accountECS 可以在单独的帐户中访问 ECR
【发布时间】:2021-01-23 03:10:41
【问题描述】:

我将 AWS/Terraform 与 ECS 一起使用,并且我有一个设置,其中我有多个 AWS 账户,所有这些账户都需要访问单独 AWS 账户中 ECR 中包含的 Docker 映像。

在单独的 AWS 账户(在 ECR 中有 Docker 映像的那个)中,我创建了一个具有访问密钥(ID 和密码)的用户。

在我的其他 AWS 账户中,我有 ECS 任务定义,我可以在其中指定 Docker 映像的位置,但是,当我运行任务时,它需要访问其他账户才能拉取映像。

如何在我的 Terraform ECS 任务定义中指定从另一个帐户中提取 Docker 映像,它需要使用该帐户中用户的访问密钥进行身份验证?

【问题讨论】:

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


    【解决方案1】:

    在单独的 AWS 账户(在 ECR 中有 Docker 映像的那个)中,我创建了一个具有访问密钥(ID 和密码)的用户。

    应使用repository policies 设置对 ECR 存储库的跨账户访问,而不是 IAM 用户。此类策略的示例是 here

    在 terraform 中,您使用 aws_ecr_repository_policy 设置 ECR 策略。此外,您的 aws_ecs_task_definition 将需要指定 task_role_arn 有权访问其他帐户中的 ECR 存储库。

    【讨论】:

    • 我们如何才能提供更精细的访问权限,而不仅仅是授予 root 权限?如果我必须将 task_role_arn 添加到 ecr 权限策略中,我们如何使用 terraform 来做到这一点?问题是,aws_iam_policy_attachment 只接受用户、组和角色作为输入,而不接受 ecr 存储库名称
    • @karthikeayan 如果您不想使用 root,您可以指定 IAM 用户或角色。关于 terraform,最好提出问题并解释您想要做什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 2017-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多