最近更新时间:2025-06-20 17:30:47
Bucket Policy是基于资源的授权策略,桶拥有者可以通过Bucket Policy授权其他用户访问KS3指定资源。bucket-policy命令用于添加、修改、查询、删除Bucket授权策略。有关空间策略规则的更多详情请参见文档:空间策略(Bucket Policy)。
以下示例均以Linux为例。
如果桶此前未添加过Bucket Policy配置,则使用该命令将为桶添加Bucket Policy配置。如果Bucket已存在Bucket Policy配置,则使用该命令将直接覆盖已有的Bucket Policy配置。
添加或修改Bucket Policy配置步骤如下:
1. 创建本地文件,并在文件中添加Bucket Policy规则。
2. KS3Util先从本地文件中读取Bucket Policy配置,然后将读取到的Bucket Policy配置添加到指定的桶。
./ks3util bucket-policy --method put ks3://bucketname local_json_file参数 | 说明 |
|---|---|
bucketname | 添加或修改Bucket Policy的目标桶名称。 |
local_json_file | 配置Bucket Policy的本地JSON文件名称,例如 |
1. 除上述的功能参数,关于Util支持的通用选项参数,详情请参考通用选项&过滤规则文档。
2. 设置桶空间策略需具备ks3:PutBucketPolicy权限。
a. 在本地创建名为localfile.json的文件,并根据使用场景写入不同的Bucket Policy规则。
场景一:授予主账号为10000123456的用户拥有samplebucket桶下全部资源的只读权限。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"ks3:ListBucket",
"ks3:ListBucketMultipartUploads",
"ks3:GetObject",
"ks3:GetObjectAcl",
"ks3:ListMultipartUploadParts"
],
"Principal": {
"KSC": [
"krn:ksc:iam::20000123456:root"
]
},
"Resource": [
"krn:ksc:ks3:::samplebucket",
"krn:ksc:ks3:::samplebucket/*"
]
}
]
}场景二:授予主账号为10000123456下的子账号test-child1拥有samplebucket桶下data目录中资源的读写权限。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"ks3:ListBucket",
"ks3:ListBucketMultipartUploads",
"ks3:GetObject",
"ks3:PutObject",
"ks3:DeleteObject",
"ks3:AbortMultipartUpload",
"ks3:ListMultipartUploadParts",
"ks3:PostObjectRestore",
"ks3:GetObjectAcl",
"ks3:PutObjectAcl"
],
"Principal": {
"KSC": [
"krn:ksc:iam::10000123456:user/test-child1"
]
},
"Resource": [
"krn:ksc:ks3:::samplebucket",
"krn:ksc:ks3:::samplebucket/data/*"
]
}
]
}场景三:授予指定IP下的用户拥有samplebucket桶的全部权限。
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"ks3:*"
],
"Principal": {
"KSC": [
"*"
]
},
"Resource": [
"krn:ksc:ks3:::samplebucket",
"krn:ksc:ks3:::samplebucket/*"
],
"Condition": {
"IpAddress": {
"ksc:SourceIp": [
"54.240.143.1"
]
}
}
}
]
}b. 添加Bucket Policy规则。
为samplebucket桶添加Bucket Policy规则。
./ks3util bucket-policy --method put ks3://samplebucket localfile.json以下输出结果表明已成功添加Bucket Policy规则。
0.204926(s) elapsed./ks3util bucket-policy --method get ks3://bucketname [local_json_file]参数 | 说明 |
|---|---|
bucketname | 获取Bucket Policy的目标桶名称。 |
local_json_file | 用于存放Bucket Policy配置的本地文件名称,例如 |
1. 除上述的功能参数,关于Util支持的通用选项参数,详情请参考通用选项&过滤规则文档。
2. 获取桶空间策略需具备ks3:GetBucketPolicy权限。
获取目标桶samplebucket的Bucket Policy配置,并将配置结果写入本地文件localfile.json。
./ks3util bucket-policy --method get ks3://samplebucket localfile.json以下输出结果表明已成功获取Bucket Policy配置。
0.188731(s) elapsed./ks3util bucket-policy --method delete ks3://bucketname参数 | 说明 |
|---|---|
bucketname | 删除Bucket Policy规则配置的目标桶名称。 |
1. 除上述的功能参数,关于Util支持的通用选项参数,详情请参考通用选项&过滤规则文档。
2. 删除桶空间策略需具备ks3:DeleteBucketPolicy权限。
删除samplebucket的Bucket Policy配置。
./ks3util bucket-policy --method delete ks3://samplebucket以下输出结果表明已删除samplebucket的Bucket Policy配置。
0.156663(s) elapsed纯净模式
