Amazon-Web-Services
IAM 使用者策略到 RW 到特定文件夾
我正在嘗試使用 CloudBerry Drive 工具將 S3 儲存桶附加為我的網路驅動器。我有一個儲存桶和其中的 2 個文件夾,假設儲存桶名稱為 environment,2 個文件夾為 dev 和 prod。我有 3 組使用者會使用它——管理員、開發人員和產品。管理員 - 必須對這兩個文件夾都具有 R/W 權限。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/*" } ] }
有了這個,我應該能夠 R/W 到 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" } ] }
有了這個,我應該能夠 R/W 到 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。
很抱歉寫了一個延遲的答案:但在我的腳本中,以這種方式更改條件:
"Condition":{"StringLike":{"s3:prefix":["home/David/*"]}}
感謝 ceejayoz 指出這個錯誤。