【问题标题】:Amazon S3: Temporary CredentialsAmazon S3:临时凭证
【发布时间】:2013-11-01 11:46:27
【问题描述】:

我已经设置了一个网络服务来为亚马逊 s3 中的存储桶创建临时凭证,以便其他应用程序可以使用这些临时凭证上传文件。

我想在存储桶中为每个 userId 创建单独的文件夹,临时凭证将只允许特定用户访问该文件夹

这是我目前使用的政策

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

}

到目前为止,这允许调用应用程序将文件上传到 myTestBucket 中的文件夹 1,而不是预期的文件夹 2。 其中一个应用程序现在需要为每个用户列出文件夹中的对象。

使用相同的策略,当我使用临时凭据执行此操作时会出现以下异常

Status Code: 403, AWS Service: Amazon S3, AWS Request ID: 7BC4C177E8CA1762, AWS Error Code: AccessDenied, AWS Error Message: Access Denied

谁能建议我的政策需要更新哪些内容才能让我列出文件?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2 amazon


    【解决方案1】:

    列表存储桶操作是在存储桶上进行的,因此必须更新您的策略以允许对存储桶进行特定操作

    使用类似以下的策略可以让用户上传、获取和删除他们的文件并列出他们的文件:

    {
      "Version": "2012-10-17",
      "Statement": [
         {
           "Effect":"Allow",
           "Action":["s3:PutObject","s3:GetObject","s3:DeleteObject"],
           "Resource":"arn:aws:s3:::__MY_APPS_BUCKET_NAME__/__USERNAME__/*"
         },
         {
           "Effect":"Allow",
           "Action":"s3:ListBucket",
           "Resource":"arn:aws:s3:::__MY_APPS_BUCKET_NAME__",
           "Condition":{"StringLike":{"s3:prefix":"__USERNAME__/"}}
         }
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-16
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 2020-11-03
      • 2017-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多