RW 到特定資料夾的 IAM 使用者策略

RW 到特定資料夾的 IAM 使用者策略

我正在嘗試使用 CloudBerry Drive 工具將 S3 儲存桶附加為我的網路磁碟機。我裡面有一個儲存桶和 2 個資料夾,假設儲存桶名稱為環境,2 個資料夾為 dev 和 prod。我有 3 組使用者會使用它 - 管理員、開發人員和生產人員。管理員 - 必須對這兩個資料夾具有讀/寫權限。 Dev - 應僅具有對 dev 資料夾的寫入權限 Prod - 應具有對 dev 資料夾的讀取權限和對 prod 資料夾的寫入權限。

但是我對 IAM 權限感到困惑。管理員在 S3 完全存取權限下運作正常。但其他 2 個帳戶無法正常運作。

開發者

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",
            "s3:DeleteObjectVersion",
            "s3:RestoreObject",
            "s3:PutObjectVersionTagging",
            "s3:PutObjectTagging",
            "s3:DeleteObject"
        ],
        "Resource": "arn:aws:s3:::environment/dev/*"
    }
  ]
}

有了這個,我應該能夠讀/寫 dev 資料夾,但我無法做到這一點。使用 CloudBerry Drive,我可以複製貼上文件,但無法上傳到 S3。此外,S3 中的文件已在此處列出(這是必需的),但無法存取相同的文件(附加錯誤)。

產品

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "s3:DeleteObjectTagging",
            "s3:DeleteObjectVersion",
            "s3:GetObjectVersionTagging",
            "s3:ReplicateTags",
            "s3:RestoreObject",
            "s3:PutObjectVersionTagging",
            "s3:DeleteObjectVersionTagging",
            "s3:ListMultipartUploadParts",
            "s3:ReplicateObject",
            "s3:GetObjectVersionTorrent",
            "s3:PutObject",
            "s3:GetObjectAcl",
            "s3:GetObject",
            "s3:ObjectOwnerOverrideToBucketOwner",
            "s3:GetObjectTorrent",
            "s3:AbortMultipartUpload",
            "s3:GetObjectVersionAcl",
            "s3:GetObjectTagging",
            "s3:PutObjectTagging",
            "s3:GetObjectVersionForReplication",
            "s3:DeleteObject",
            "s3:ReplicateDelete",
            "s3:GetObjectVersion"
        ],
        "Resource": "arn:aws:s3:::environment/Prod"
    }
  ]
}

有了這個,我應該能夠讀/寫 prod 資料夾,但我無法做到這一點。使用 CloudBerry Drive,我可以複製貼上文件,但無法上傳到 S3。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "s3:GetObjectVersionTorrent",
            "s3:GetObjectAcl",
            "s3:GetObject",
            "s3:GetObjectTorrent",
            "s3:GetObjectVersionTagging",
            "s3:GetObjectVersionAcl",
            "s3:GetObjectTagging",
            "s3:GetObjectVersionForReplication",
            "s3:GetObjectVersion",
            "s3:ListMultipartUploadParts"
        ],
        "Resource": [
            "arn:aws:s3:::environment"
        ],
        "Condition": {
            "StringLike": {
                "s3:prefix": [
                    "dev/*"
                ]
            }
        }
    }
  ]
}

S3 中的文件列於此(這是必需的),但無法存取相同的文件(附加錯誤)。

希望我清楚我的要求: 1. dev 使用者只能對dev 資料夾具有R/W 存取權限2. prod 使用者對prod 資料夾具有R/W 存取權限,對dev 資料夾具有R 存取權限3.所有這些都是使用CloudBerry Drive 完成的S3。

注意:我在谷歌上搜尋了很多,並嘗試了幾乎所有的方法,包括一些顯示如何向特定用戶資料夾提供寫入權限的策略。 在此輸入影像描述

答案1

對於寫入延遲的答案表示歉意:但是在我的腳本中,以這種方式更改條件:

"Condition":{"StringLike":{"s3:prefix":["home/David/*"]}}

感謝 ceejayoz 指出我這個錯誤。

相關內容