如何仅允许 IAM 用户完全访问存储桶中的特定路径? [关闭]
Posted
技术标签:
【中文标题】如何仅允许 IAM 用户完全访问存储桶中的特定路径? [关闭]【英文标题】:How to I allow full access for an IAM user to a specific path within a bucket only? [closed] 【发布时间】:2014-03-09 17:20:47 【问题描述】:背景
我有几个桶,每个桶里面都有一个“开发”和“生产”文件夹。 我有两个帐户,accountname-dev
和 accountname-prod
目标
我希望account-dev
拥有对 BucketName/DEVELOPMENT 的完全访问权限(所有操作)
我希望 account-prod
拥有 BucketName/PRODUCTION 的完全访问权限(所有操作)
问题
每当我使用策略生成器时,似乎我都做错了。添加标准管理策略可以正常访问文档,但我的自定义策略不允许。
我使用 Amazon 的 IAM 策略创建屏幕为特定账户添加了策略。
我尝试使用的策略是:
"Version": "2012-10-17",
"Statement": [
"Sid": "[Redacted]",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Condition":
"StringLike":
"s3:prefix": "DEVELOPMENT/*"
,
"Resource": [
"arn:aws:s3:::RedactedBucketName"
]
]
问题
上述政策有什么问题吗? 这是我需要添加的唯一策略吗?还是我也需要先在存储桶级别添加某种访问功能? 即使 Amazon 的策略生成屏幕未包含委托人的完整 ARN,是否最好还是将其包含在内?【问题讨论】:
仅供参考,给投票这个离题的人:它与我们的开发代码失败直接相关。想过把它放在 ServerFault 上,但是对于同一主题的问题似乎要少得多,所以我认为它属于这里。 【参考方案1】:我可以让它这样工作:
仅将 IAM 用户策略(不需要 S3 存储桶策略)分配给单个用户。
查看以下用户政策。我为account-dev
用户创建,意思是,您必须将此 IAM 策略应用于account-dev
用户。
"Statement": [
"Sid": "AllowGroupToSeeBucketListInTheConsole",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
,
"Sid": "AllowRootLevelListingOfDevelopmentBucket",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::development-bucket-name"
],
"Condition":
"StringEquals":
"s3:prefix": [
""
],
"s3:delimiter": [
"/"
]
,
"Sid": "AllowListBucketIfSpecificPrefixIsIncludedInRequest",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::development-bucket-name"
],
"Condition":
"StringLike":
"s3:prefix": [
"DEVELOPMENT/*"
]
,
"Sid": "AllowUserToReadWriteObjectData",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:DeleteObjectVersion"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::development-bucket-name/DEVELOPMENT/*"
]
]
用户从 S3 控制台工作需要AllowGroupToSeeBucketListInTheConsole
和 AllowRootLevelListingOfDevelopmentBucket
。如果您不希望用户从 S3 控制台工作并希望他仅使用 API 工作,那么您可以省略这 2 节。
同样,您为account-prod
创建了另一个用户策略并将其分配给该用户。
【讨论】:
感谢您的回答!不幸的是,原来的政策是好的,但这是另一个问题。因此,我将删除使用问题,但感谢您的加入!以上是关于如何仅允许 IAM 用户完全访问存储桶中的特定路径? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
允许用户访问特定 S3 存储桶进行备份的 AWS IAM 策略