繁体   English   中英

AWS S3:特定存储桶的用户策略

[英]AWS S3: user policy for specifc bucket

我只是设置了我的AWS S3。 我的应用程序可以使用完整的admin-acces键,但是由于这样做可能会有风险,因此我想设置一个具有IAM组的IAM用户,并只允许他使用S3东西。 我的存储桶位于eu-central-1中,在以下策略中其名称为“ MYBCKET”:

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

}

这是行不通的。 如果我为用户提供以下政策,则该政策有效:

    {
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:ListBucket"
        ],
        "Resource": [
            "*"
        ]
    },
    {
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:DeleteObject"
        ],
        "Resource": [
            "*"
        ]
    }
]

}

必须肯定与资源有关。 有人可以向我解释资源的内容,以便我可以理解并希望发现错误吗? 只是告诉您:我确定我的存储桶名称拼写正确,并且在资源arn:aws:s3:::MYBCKET/*arn:aws:s3:::MYBCKET等资源中尝试了不同的组合工作。

感谢您的答复和时间。

如果您的意图是用户应以编程方式访问存储桶,则我认为您的策略没有任何问题。

如果用户还需要能够通过控制台访问策略,则可以尝试使用此方法,该方法将允许用户列出存储桶:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketLocation",
        "s3:ListAllMyBuckets"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3::: MYBCKET"]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": ["arn:aws:s3::: MYBCKET/*"]
    }
  ]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM