
我正在嘗試使用 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 指出我這個錯誤。