最近更新时间:2021-10-08
创建或者修改目标bucket的权限策略。如果您使用的是该bucket的非owner的账号,则需要PutBucketPolicy权限才能成功进行请求。
如果您使用的账号没有PutBucketPolicy权限,请求时会返回报错:403 Access Denied。
如果您的账号有PutBucketPolicy权限,但是该账号不属于目标bucket的owner账号,请求时返回报错:405 Method Not Allowed。
PUT /?policy HTTP/1.1 |
参数 | 描述 |
Host | bucket的名称,bucket-name.region.unicloudsrv.com |
请使用json格式。
请求Body的具体内容可以参考下文的示例。
参数 | 描述 |
Version | 固定值,请使用"2012-10-17" |
Effect | Allow or Deny |
Principal | 指定该ploicy适用的用户账号,具体的账号使用uuid,请保持"Principal": {'AWS': []}的结构不变 |
Action | 赋予的具体权限,具体请参考下文 |
Resource | 资源列表,具体请参考下文 |
参数 | 描述 |
s3:CreateBucket | 创建bucket |
s3:DeleteBucket | 删除bucket |
s3:DeleteBucketPolicy | 删除bucket的策略 |
s3:DeleteBucketWebsite | 删除静态网站设置 |
s3:DeleteObject | 删除目标bucket中的对象 |
s3:DeleteObjectVersion | 删除bucket中对象的多版本中的某个版本 |
s3:GetBucketAcl | 获取bucket的ACL信息 |
s3:GetBucketCORS | 获取bucket的CORS配置 |
s3:GetBucketWebsite | 获取静态网站设置 |
s3:GetBucketLocation | 访问获取bucket所在的region名称的api接口 |
s3:GetBucketLogging | 获取bucket的logging的配置 |
s3:GetBucketNotification | 获取bucket的事件通知配置 |
s3:GetBucketPolicy | 获取bucket的权限策略表 |
s3:GetBucketVersioning | 获取bucket的多版本管理状态 |
s3:GetEncryptionConfiguration | 获取bucket的默认的加密配置信息 |
s3:GetLifecycleConfiguration | 获取bucket的生命周期配置信息 |
s3:GetObject | 访问bucket中的对象的元数据和对象的数据内容 |
s3:GetObjectAcl | 获取bucket中对象的ACL信息 |
s3:GetObjectVersion | 获取特定版本的对象 |
s3:GetObjectVersionAcl | 获取特定版本的对象ACL |
s3:ListAllMyBuckets | 列出所有的bucket |
s3:ListBucket | 执行ListObjects接口,列出所有的对象 |
s3:ListBucketMultipartUploads | 获取正在运行中的分片上传的任务列表信息 |
s3:ListBucketVersions | 执行ListObjectVersions,列出所有对象版本 |
s3:ListMultipartUploadParts | 列出某个分片上传的所有分片 |
s3:PutBucketAcl | 修改bucket的ACL配置 |
s3:PutBucketCORS | 修改bucket的CORS配置 |
s3:PutBucketLogging | 修改bucket的日志记录配置 |
s3:PutBucketNotification | 修改bucket的事件通知配置 |
s3:PutBucketPolicy | 修改bucket的权限策略 |
s3:PutBucketVersioning | 修改bucket多版本设置 |
s3:PutBucketWebsite | 修改bucket静态网站设置 |
s3:PutEncryptionConfiguration | 修改bucket的加密配置 |
s3:PutLifecycleConfiguration | 修改buckt的生命周期配置 |
s3:PutObject | 创建对象 |
s3:PutObjectAcl | 修改bucket中对象的ACL配置 |
s3:PutObjectVersionAcl | 修改特定版本对象的ACL配置 |
s3:RestoreObject | 对bucket中的归档型对象进行解冻 |
Resource指代公有云资源,该api主要是针对bucket。
Resource组成说明:arn:partition:service:region:namespace:relative-id
参数 | 描述 |
arn | 固定字符串,请不要修改 |
partition | bucket所在地域代号 |
Service | 固定值S3 |
region | 空即可 |
namespace | 空即可 |
Relative ID | bucket-name或者bucket-name/object-key,可以使用通配符 |
关于通配符的使用
通配符可以使用或者?。其中指代所有结果。?指代任何一个字符。
Resource示例:
描述 | 示例 |
bucket中的某个对象 | arn:aws:s3:::bucket_name/key_name |
bucket中的所有对象 | arn:aws:s3:::bucket_name/* |
无
HTTP/1.1 200
赋予uuid1和uuid2的账号对bucket下所有对象的所有权限。
PUT /?policy HTTP/1.1 |