簡體   English   中英

AWS IAM 條件策略

[英]AWS IAM Conditional Policies

我正在嘗試提供對 IAM 策略的訪問,條件是該特定資源具有一些​​標簽鍵/值對。 盡管遵循AWS 文檔,但它似乎不起作用。

IAM 政策如下:

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

我有一個帶有標簽的 S3 存儲桶(名為my-bucket-name ): 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 S3 不支持基於存儲桶標簽的條件鍵,僅支持對象標簽。 這就是它不起作用的原因。

基於@Dennis Traub的回答,要使其與存儲桶中的特定對象一起使用,IAM 策略必須利用"s3:ExistingObjectTag/environment": "dev"條件。 以下政策對我有用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM