【问题标题】:Create users with AWS .net SDK使用 AWS .net SDK 创建用户
【发布时间】:2015-08-03 06:45:54
【问题描述】:
我想使用 AWS .net SDK 创建用户以应用权限(对文件夹的有限访问)。存储桶中的每个用户都会有一个文件夹,用户将只能访问分配的文件夹。
所以简而言之,我的脚本会这样做:
- 创建 AWS 用户
- 在存储桶中为步骤#1 中创建的用户创建文件夹
- 将步骤#2 中创建的文件夹的访问权限授予步骤#1 中创建的用户
【问题讨论】:
标签:
amazon-web-services
amazon-s3
【解决方案1】:
1.创建 AWS 用户
要在 AWS Identity & Access Management (IAM) 中创建您的用户,请使用 CreateUser() 请求。
2。创建文件夹
无需创建文件夹。文件夹实际上并不存在于 Amazon S3 中。相反,键名(文件名)包括对象的路径。因此,存储在文件夹foo 中的bar.jpg 的密钥为foo/bar.jpg。当您在该位置创建对象时,伪装文件夹将自动出现(某种程度)。
3.授予文件夹访问权限
使用变量的单个 IAM 策略可用于授予所有用户访问存储桶中他们自己的子路径(实际上是文件夹)的权限。
来自IAM Policy Variables Overview:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket"],
"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
},
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket/${aws:username}/*"]
}
]
}