我正在尝试使用 CloudBerry Drive 工具将 S3 存储桶附加为我的网络驱动器。我有一个存储桶和其中的 2 个文件夹,假设存储桶名称为 environment,2 个文件夹为 dev 和 prod。我有 3 组用户将使用它 - Admin、Dev 和 Prod。Admin - 必须对这两个文件夹都具有读/写权限。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 for S3 完成的。
答案1
抱歉,答案写得晚了:但是在我的脚本中,可以通过以下方式更改条件:
"Condition":{"StringLike":{"s3:prefix":["home/David/*"]}}
感谢 ceejayoz 指出我这个错误。