S3 网关终端节点从 ECS 中拉取 ECR 中的 docker 映像的最具限制性文档策略

Most restrictive Document Policy for an S3 Gateway Endpoint to pull docker image in ECR from ECS

提问人:Jaime Elso de Blas 提问时间:11/17/2023 更新时间:11/17/2023 访问量:18

问:

我正在部署一个 ECS Fargate 集群,该集群在私有子网中提供服务。为了使任务能够从 ECR 中拉取 Docker 映像,我在我的 VPC 中创建了三个终端节点(dkr、ecr API 和 S3)。

重点关注 S3 终端节点,我想尽可能关联限制性最强的策略,以便只有任务才能使用此终端节点,并且只能访问 ECR 存储映像的特定 S3 存储桶。

在官方 AWS 文档中,他们提出了以下策略:

{
  "Statement": [
    {
      "Sid": "Access-to-specific-bucket-only",
      "Principal": "*",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::prod-region-starport-layer-bucket/*"]
    }
  ]
}

此策略是可以的,但它仅限制通过终端节点对存储桶的访问。我想要一个策略,该策略专门允许 ECS 访问它,而不允许访问终端节点的同一私有子网中的其他资源。

我尝试过这个政策:

{
  "Statement": [
    {
      "Sid": "Access-to-specific-bucket-only-from-ecs-task",
      "Principal": {
        "Service": "ecs-tasks.amazonaws.com"
      },
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::prod-region-starport-layer-bucket/*"]
    }
  ]
}

但它不起作用,任务无法拉取图像,我不知道为什么。此外,我还尝试了运行 ECS 服务的角色,并且还尝试了运行任务的角色。这两件事都不是主要的;任务无法拉取映像。

你能帮我吗?

amazon-web-services amazon-iam amazon-ecr vpc-endpoint

评论

0赞 Paweł Rubin 11/17/2023
您尝试直接通过 S3 API 而不是 ECR API 授予拉取映像的访问权限是否有任何具体原因?
0赞 Jaime Elso de Blas 11/17/2023
根据官方 AWS 文档,有必要有一个 S3 终端节点,因为这是 ECR 存储 Docker 映像的地方。我正在做的是尽可能地将端点世俗化,以便只有 ECS 可以通过此端点访问它。

答: 暂无答案