注意
本文档适用于 Ceph 开发版本。
Bucket Policies
Luminous 版本新增。
Ceph 对象网关支持应用于桶的 Amazon S3 策略语言的一个子集。
创建和删除
桶策略通过标准 S3 操作进行管理,而不是通过 ce9489: 例如,可以使用radosgw-admin
.
For example, one may use s3cmd
来设置或删除策略,如下所示:
$ cat > examplepol
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"AWS": ["arn:aws:iam::usfolks:user/fred:subuser"]},
"Action": "s3:PutObjectAcl",
"Resource": [
"arn:aws:s3:::happybucket/*"
]
}]
}
$ s3cmd setpolicy examplepol s3://happybucket
$ s3cmd delpolicy s3://happybucket
限制
目前,我们仅支持以下操作:
s3:AbortMultipartUpload
s3:CreateBucket
s3:DeleteBucketPolicy
s3:DeleteBucket
s3:DeleteBucketWebsite
s3:DeleteObject
s3:DeleteObjectVersion
s3:DeleteReplicationConfiguration
s3:GetAccelerateConfiguration
s3:GetBucketAcl
s3:GetBucketCORS
s3:GetBucketLocation
s3:GetBucketLogging
s3:GetBucketNotification
s3:GetBucketPolicy
s3:GetBucketRequestPayment
s3:GetBucketTagging
s3:GetBucketVersioning
s3:GetBucketWebsite
s3:GetLifecycleConfiguration
s3:GetObjectAcl
s3:GetObject
s3:GetObjectTorrent
s3:GetObjectVersionAcl
s3:GetObjectVersion
s3:GetObjectVersionTorrent
s3:GetReplicationConfiguration
s3:IPAddress
s3:NotIpAddress
s3:ListAllMyBuckets
s3:ListBucketMultipartUploads
s3:ListBucket
s3:ListBucketVersions
s3:ListMultipartUploadParts
s3:PutAccelerateConfiguration
s3:PutBucketAcl
s3:PutBucketCORS
s3:PutBucketLogging
s3:PutBucketNotification
s3:PutBucketPolicy
s3:PutBucketRequestPayment
s3:PutBucketTagging
s3:PutBucketVersioning
s3:PutBucketWebsite
s3:PutLifecycleConfiguration
s3:PutObjectAcl
s3:PutObject
s3:PutObjectVersionAcl
s3:PutReplicationConfiguration
s3:RestoreObject
我们目前还不支持在用户、组或角色上设置策略。
我们使用 RGW 的“租户”标识符来代替 Amazon 的十二位账户 ID。未来我们可能会允许您将账户 ID 分配给租户,但目前,如果您想在 AWS S3 和 RGW S3 之间使用策略,您在创建用户时必须将 Amazon 账户 ID 作为租户 ID。
在 AWS 中,所有租户共享一个命名空间。RGW 为每个租户提供自己的桶命名空间。未来版本中可能会有一个选项来启用类似 AWS 的“扁平”桶命名空间。目前,要访问属于其他租户的桶,请在 S3 请求中将其地址为tenant:bucket
在 AWS 中,桶策略可以授予另一个账户访问权限,然后该账户所有者可以授予具有用户权限的个别用户访问权限。由于我们目前还不支持用户、角色和组权限,账户所有者目前需要直接授予个别用户访问权限,并且授予整个账户对桶的访问权限将授予该账户中的所有用户。
In AWS, a bucket policy can grant access to another account, and that account owner can then grant access to individual users with user permissions. Since we do not yet support user, role, and group permissions, account owners will currently need to grant access directly to individual users, and granting an entire account access to a bucket grants access to all users in that account.
桶策略目前不支持字符串插值。
对于所有请求,我们支持的条件键是:
aws:CurrentTime
aws:EpochTime
aws:PrincipalType
aws:Referer
aws:SecureTransport
aws:SourceIp
aws:UserAgent
aws:username
我们支持某些 S3 条件键用于桶和对象请求。
在 Ceph 的 Mimic 版本中添加了对以下桶相关操作的支持。
Swift
在 Swift 下无法设置桶策略,但已设置的桶策略也适用于 Swift 以及 S3 操作。
Swift 凭据根据正在使用的后端在策略中指定的 Principal 进行匹配。
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.