【问题标题】:ECS Task Access Denied to S3拒绝对 S3 的 ECS 任务访问
【发布时间】:2023-03-12 11:00:01
【问题描述】:

我为我的任务设置了一个具有以下权限的 IAM 角色,但我在尝试访问存储桶时遇到 access denied

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket/Templates/*",
                "arn:aws:s3:::bucket/*",
                "arn:aws:s3:::anotherBucket/*"
            ]
        }
    ]
}

容器实例具有标准AmazonEC2ContainerServiceforEC2Role 策略的角色。

我似乎能够从 bucket/like bucket/00001 下读取和写入文件夹,但我无法从 bucket/Templates 读取。

我反复重新部署了权限和任务(使用 terraform),但没有任何变化。我已将日志记录添加到应用程序以确保它使用正确的存储桶和路径/键。

我被难住了。有人知道我在这里可能错过了什么吗?

谢谢

PS:我刚刚想到,我无法访问的存储桶中的文件我使用脚本复制到那里。这是使用任务使用的凭据以外的凭据完成的。

aws s3 cp ..\Api\somefiles\000000000001\ s3://bucket/000000000001 --recursive --profile p aws s3 cp ..\Api\somefiles\Templates\000000000001\ s3://bucket/Templates/000000000001 --recursive --profile p

我在 cp 命令上使用了 -acl bucket-owner-full-control 但我删除了它以查看是否有帮助 - 它没有。也许我需要别的东西?

【问题讨论】:

    标签: amazon-s3 aws-ecs


    【解决方案1】:

    解决了。从以前的雇主那里找到一个旧样本:) 我需要明确的 List* 权限,与其他权限分开。我还需要定义 sid。

    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "sid1",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "s3:HeadBucket"
            ],
            "Resource": "*"
        },
        {
            "Sid": "sid2",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*"
        }
    ]
    

    }

    【讨论】:

      【解决方案2】:

      它现在可以工作了,因为您更改了资源以匹配“”。 尝试将存储桶本身添加为资源,以及 / 模式:

      "Version": "2012-10-17",
      "Statement": [
          {
              "Sid": "sid1",
              "Effect": "Allow",
              "Action": [
                  "s3:ListAllMyBuckets",
                  "s3:ListBucket",
                  "s3:HeadBucket"
              ],
              "Resource": "*"
          },
          {
              "Sid": "sid2",
              "Effect": "Allow",
              "Action": "s3:*",
              "Resource": [
                      "arn:aws:s3:::bucket",
                      "arn:aws:s3:::bucket/*",
                      "arn:aws:s3:::anotherBucket"
                      "arn:aws:s3:::anotherBucket/*",
                  ]
          }
      ]
      

      【讨论】:

        猜你喜欢
        • 2023-01-10
        • 2020-09-28
        • 2019-10-21
        • 1970-01-01
        • 1970-01-01
        • 2019-12-04
        • 2017-12-24
        • 2021-11-06
        • 2012-09-11
        相关资源
        最近更新 更多