操作场景
文件存储(Cloud File Storage,CFS)已支持资源级别的访问权限管理,即主账户可对指定的用户及用户组授予指定资源的指定操作权限。完成授权后, CFS 控制台及 API 将均按照该用户被授权情况,允许或禁止用户操作。
本指引将介绍如何为用户授权 CFS 的只读、读写以及自定义策略。更多关于腾讯云访问管理的原理及指引,请参见 访问管理。
操作步骤
创建访问控制策略
如果需要快捷地授予用户权限 ,则可以在策略管理界面右侧的搜索框中搜索 CFS,选择预设的 CFS 只读或读写权限并关联用户组以完成授权。
如果您需要给用户授予特定操作的权限 ,则可以新建一个自定义策略,并关联用户组以完成授权。
CFS 全读写策略
如果您想让用户拥有查询、创建、修改、删除等所有操作的权限,则可以授予用户 QcloudCFSFullAccess 权限。使用预设 QcloudCFSFullAccess 授予协作者或子用户所有 CFS 资源的读写以及 VPC 及子网的查询权限策略语法如下:
{"version": "2.0","statement": [{"action": ["cfs:*"],"resource": "*","effect": "allow"},{"action": ["vpc:DescribeVpcEx","vpc:DescribeSubnetEx"],"resource": "*","effect": "allow"}]}
CFS 只读策略
如果您想让用户拥有查询权限 ,但是不具有创建、修改、删除的权限,则可以授予用户 QcloudCFSReadOnlyAccess 权限。使用预设 QcloudCFSReadOnlyAccess 授予协作者或子用户所有 CFS 资源的只读以及 VPC 及子网的查询权限策略语法如下:
{"version": "2.0","statement": [{"action": ["cfs:Describe*"],"resource": "*","effect": "allow"},{"action": ["vpc:DescribeVpcEx","vpc:DescribeSubnetEx"],"resource": "*","effect": "allow"}]}
自定义策略
策略生成器页面提供了可视化的策略配置,您只需通过参数的选择,便可自动生成策略代码,适合初次接触 CAM 授权的用户。
参数 | 对应策略参数 | 选项及效果 |
效果 | Effect | 允许或禁止 |
服务 | Service | 此处选择文件存储 |
操作 | Action | 文件存储支持的所有操作类型 |
资源 | Resource | 通过六段式语法写入规则如下: 文件存储的所有资源写法为 * 指定地区的所有资源写法为 qcs::cfs:ap-guangzhou::* 指定用户下所有地区所有资源写法为 qcs::cfs::uin/27700000:* 指定用户下指定地区所有文件系统写法为 qcs::cfs:ap-guangzhou:uin/27700000:filesystem/* 指定用户下指定用户组系统写法为 qcs::cfs::uin/27700000:pgroup/pgroup-doxpcqh 注意:策略中的 UIN 必须为主账号 UIN(后面的文件系统或权限组资源必须属于该主账号) 使用自动策略生成器,相关的对应关系如下: 服务:仅可填写cfs 地域:根据实际需要,在下拉框中选择即可 账户:会默认填写当前账户信息,如若未生成可以填写uin/xxxxxxx,其中xxx为uin。 资源前缀:可填写filesystem、snap、resource。分别代表文件系统实例、快照实例、资源单位包实例。 资源:填写对应的资源ID,如cfs-xxxxx |
条件 | Condition |
其中,CFS 各个接口、接口功能及授权时注意事项在如下列出,可以根据下列说明,配置资源选项。
接口类别 | 接口名称 | 接口描述 | 权限类型 | 注意事项 |
服务接口 | SignUpCfsService | 开通 CFS 服务 | 写权限 | 授权该接口无需指定资源 |
| DescribeCfsServiceStatus | 查询 CFS 服务开通状态 | 读权限 | 授权该接口无需指定资源 |
文件系统接口 | DescribeCfsFileSystems | 列出文件系统 | 读权限 | 授权该接口需指定资源为* |
| CreateCfsFileSystem | 创建文件系统 | 写权限 | 授权该接口无需指定文件系统资源 |
| UpdateCfsFileSystemName | 更新文件系统名称 | 写权限 | 授权该接口需要指定文件系统资源 |
| UpdateCfsFileSystemPGroup | 更新文件系统的权限组 | 写权限 | 授权该接口需要指定文件系统资源 |
| UpdateCfsFileSystemSizeLimit | 更新文件系统配额 | 写权限 | 授权该接口需要指定文件系统资源 |
| DeleteCfsFileSystem | 删除文件系统 | 写权限 | 授权该接口需要指定文件系统资源 |
| DescribeMountTargets | 查询挂载点 | 读权限 | 授权该接口需要指定文件系统资源 |
| AddMountTarget | 创建挂载点 | 写权限 | 授权该接口需要指定文件系统资源 |
| DeleteMountTarget | 删除挂载点 | 写权限 | 授权该接口需要指定文件系统资源 |
权限组接口 | DescribeCfsPGroups | 列出权限组 | 读权限 | 授权该接口需指定资源为* |
| CreateCfsPGroup | 创建权限组 | 写权限 | 授权该接口无需指定资源 |
| UpdateCfsPGroup | 更新权限组信息 | 写权限 | 授权该接口需要指定权限组资源 |
| DeleteCfsPGroup | 删除权限组 | 写权限 | 授权该接口需要指定权限组资源 |
| DescribeCfsRules | 列出权限组规则 | 读权限 | 授权该接口需要指定权限组资源 |
| CreateCfsRule | 创建权限组规则 | 写权限 | 授权该接口需要指定权限组资源 |
| UpdateCfsRule | 更新权限组规则信息 | 写权限 | 授权该接口需要指定权限组资源 |
| DeleteCfsRule | 删除权限组规则 | 写权限 | 授权该接口需要指定权限组资源 |
密钥相关接口 | DescribeKmsKeys | 查询KMS密钥 | 读权限 | 授权该接口需指定资源为* |
注意
另外,由于 CFS 文件系统使用 VPC 的 IP,因此创建文件系统、列出 CFS 文件系统列表、查询文件系统详情等页面中需要获取 "vpc:DescribeVpcEx" 及 "vpc:DescribeSubnetEx" 接口的权限(如果不授予则无法查询和创建)。强烈建议您对所有授权 CFS 的策略中增加这两个接口对 VPC 所有资源的授权。 详细策略写法可以参考 QcloudCFSReadOnlyAccess 策略声明。
策略的写法格式如下,每个策略中可以有多条声明(statement)。
{"version": "2.0","statement": [{"effect": "Effect","action": ["Action"],"resource": "Resource"}]}
例如,禁止用户对某几个文件系统执行删除及更新配额操作的权限策略语法。
{"version": "2.0","statement": [{"effect": "deny","action": ["name/cfs:DeleteCfsFileSystem","name/cfs:UpdateCfsFileSystemSizeLimit"],"resource": ["qcs::cfs::uin/2779643970:filesystem/cfs-11111111","qcs::cfs::uin/2779643970:filesystem/cfs-22222222","qcs::cfs::uin/2779643970:filesystem/cfs-33333333"]}]}
为用户/用户组授权
如果是选择系统提供的权限,则可以直接在策略列表搜索到 QcloudCFSFullAccess 或 QcloudCFSReadOnlyAccess 或者是其他自定义策略后,在列表右侧的操作栏里单击关联用户/组,在弹出的窗口中查找并勾选需要被授权的用户或用户组,最后单击确定完成授权。
取消用户/用户组授权
如需取消已授权用户的权限,可在对应策略详情页的关联用户/组列表中,勾选需要取消授权的用户/用户组,然后单击解除用户/用户组,确认解除授权后,该用户/用户组将失去操作 CFS 资源的权限。