本文介绍了 CloudFS 支持的授权项和常用的权限策略示例。
策略是对权限的一种描述,IAM 提供基于身份的策略(Identity-based policies)和基于资源的策略(Resource-based policies。不论是用户、用户组还是角色,都需要通过关联策略来赋予权限。更多信息,请参考策略语法。
每个策略由以下元素组成:
trn: {service}:{region}:{account}: {resourceType}/{id}
。CloudFS 支持的授权项如下表所示。
权限 | 授权项 Action | Resource |
---|---|---|
查看文件系统列表。 | cfs:ListFs | trn:cfs:${region-id}:${account-id}:cfs/* |
创建文件系统实例。 | cfs:CreateFs | trn:cfs:${region-id}:${account-id}:cfs/* |
删除文件系统。 | cfs:DeleteFs | trn:cfs:${region-id}:${account-id}:cfs/fsName |
更新文件系统,扩容或开启加速。 | cfs:UpdateFs | trn:cfs:${region-id}:${account-id}:cfs/fsName |
查看可用区和地域。 | cfs:ListRegionAndZone | trn:cfs:${region-id}:${account-id}:cfs/* |
查看指定文件系统下的特定目录的文件信息。 | cfs:ListDir | trn:cfs:${region-id}:${account-id}:cfs/fsName |
查看 VPC 列表。 | cfs:DescribeVpcs | trn:cfs:${region-id}:${account-id}:cfs/* |
查看安全组信息。 | cfs:DescribeSecurityGroups | trn:cfs:${region-id}:${account-id}:cfs/* |
查看指定 VPC 下的子网列表。 | cfs:DescribeSubnetIds | trn:cfs:${region-id}:${account-id}:cfs/* |
查看对象存储的 Bucket 列表。 | cfs:ListTosBuckets | trn:cfs:${region-id}:${account-id}:cfs/* |
读取指定文件。 | cfs:Read | trn:cfs:${region-id}:${account-id}:${file-system-name}${path} |
上传文件。 | cfs:Write | trn:cfs:${region-id}:${account-id}:${file-system-name}${path} |
查看指定 TOS Bucket 的文件和子目录。 | cfs:List | trn:cfs:${region-id}:${account-id}:${file-system-name}/${ns_id} |
接口与授权策略中的 Action 的对应关系。
API | Action |
---|---|
append | cfs:Write |
create | cfs:Write |
delete | cfs:Write 及 父目录 cfs:Write 权限 |
getBlockLocations | cfs:Read |
mkdirs | cfs:Write |
rename | cfs:Write (sources), cfs:Write (destination) |
listPaths | 父目录 cfs:Read |
concat | cfs:Read (sources), cfs:Write (destination) |
getStoragePolicy | cfs:Read |
getXAttrs | cfs:Read |
listXAttrs | cfs:Read |
getContentSummary | cfs:Read |
removeXAttr | cfs:Write |
setReplication | cfs:Write |
setStoragePolicy | cfs:Write |
setTimes | cfs:Write |
setXAttr | cfs:Write |
getFileInfo | cfs:Read |
getFileLinkInfo | cfs:Read |
getLinkTarget | cfs:Read |
getListing | cfs:List 说明 您在使用
|
授权用户对路径 /path 及其子路径的完全控制权限。
{ "Statement" : [ { "Effect" : "Allow", "Action" : [ "cfs:*" ], "Resource": [ "trn:cfs:*:*:{file-system-name}/path/*" ] } ] }
授权用户对 /readPath 路径及其子路径的读取权限。
{ "Statement" : [ { "Effect" : "Allow", "Action" : [ "cfs:Read" ], "Resource": [ "trn:cfs:*:*: {file-system-name}/readPath/*" ] } ] }
授权用户对 /writePath 及其子路径的写权限。同时禁止对路径 /writePath/subPath/ 的写权限,则对该路径的删除操作将被禁止。
{ "Statement" : [ { "Effect" : "Allow", "Action" : [ "cfs:Write" ], "Resource": [ "trn:cfs:*:*: {file-system-name}/writePath/*" ] } { "Effect" : "Deny", "Action" : [ "cfs:Write" ], "Resource": [ "trn:cfs:*:*: {file-system-name}/writePath/subPath/" ] } ] }
禁用用户对某个 TOS Bucket 挂载的 List 权限。禁用后可以正常进行 FUSE 挂载,可以做 cd、cat、cp 等读写操作,但是不能 ls。
以下权限策略作用为:
{ "Statement": [ { "Effect": "Allow", "Action": [ "cfs:*" ], "Resource": [ "trn:cfs:*:*:{file-system-name}/12345" ] }, { "Effect": "Deny", "Action": [ "cfs:List" ], "Resource": [ "trn:cfs:*:*:{file-system-name}/12345" ] } ] }