首页 > 解决方案 > AWS IAM 条件策略

问题描述

我试图在特定资源具有一些​​标签键/值对的条件下提供对 IAM 策略的访问。尽管遵循了AWS 文档,但它似乎不起作用。

IAM 政策如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/environment": "dev"
                }
            }
        }
    ]
}

我有一个my-bucket-name带有标签的 S3 存储桶(名为 ):environment = dev。谁能向我解释为什么以下命令失败?

$ aws s3 ls s3://my-bucket-name
An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
$ aws s3 cp s3://my-bucket-name/file.json .
fatal error: An error occurred (403) when calling the HeadObject operation: Forbidden

更新:基于@Dennis Traub@jarmod的响应,我稍微编辑了这个以将标签添加到 S3 存储桶中的对象,但我仍然无法读取该对象。我还尝试将条件更改为"s3:RequestObjectTag/environment": "dev"但仍然不行。

标签: amazon-web-servicesamazon-s3amazon-iam

解决方案


如果我没记错的话,Amazon S3 不支持基于存储桶标签的条件键,只支持对象标签。这就是为什么它不起作用。


推荐阅读