云服务器内容精选

  • 示例流程 图1 给用户授权MetaStudio权限流程 创建用户组并授权 在 IAM 控制台创建用户组,并授予MetaStudio管理员权限“MetaStudio FullAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,验证MetaStudio FullAccess的管理员权限。 在“服务列表”中选择数字内容生产线,进入服务主界面,单击“分身形象制作”,并参考形象制作,制作分身数字人。如果制作成功,说明“MetaStudio FullAccess”已生效。
  • 响应示例 状态码为200时: 请求成功。 { "role_assignments":{ "group":{ "id":"07609e7eb200250a3f7dc003cb7a4e2d" }, "is_inherited":true, "role":{ "id":"11e5c42d20cc349a2b9e2f8afd253f50c" }, "scope":{ "domain":{ "id":"d78cbac186b744899480f25bd022f468" } } }, "total_num":1 }
  • 响应参数 表3 响应Body参数 参数 参数类型 描述 total_num Long 返回授权记录的总条数。 role_assignments Array of RoleAssignmentBody objects 授权信息。 表4 role_assignments 名称 类型 描述 user RoleUserAssignmentId object 授权用户信息。仅在授权主体,取值为user时返回此字段。 role RoleAssignmentId object 授权策略信息。 group RoleGroupAssignmentId object 授权用户组信息。仅在授权主体,取值为group时返回此字段。 agency RoleAgencyAssignmentId object 授权委托信息。仅在授权主体,取值为agency时返回此字段。 scope RoleAssignmentScope object 授权作用的范围。 is_inherited Boolean 是否基于所有项目授权。 表5 role_assignments.user 参数 参数类型 描述 id String IAM用户ID。 表6 role_assignments.role 名称 类型 描述 id String 权限ID。 表7 role_assignments.group 名称 类型 描述 id String 用户组ID。 表8 role_assignments.agency 名称 类型 描述 id String 委托ID。 表9 role_assignments.scope 名称 类型 描述 project RoleProjectAssignmentId object 基于IAM项目授权的信息。仅授权范围选择project时返回此字段。 domain RoleDomainAssignmentId object 基于全局服务或所有项目授权的信息。仅授权范围选择domain时返回此字段。 enterprise_project RoleEnterpriseProjectAssignmentId object 基于企业项目授权的信息。仅授权范围选择enterprise_project时返回此字段。 表10 role_assignments.scope.project 名称 类型 描述 id String IAM项目ID。 表11 role_assignments.scope.domain 名称 类型 描述 id String 全局服务ID。 表12 role_assignments.scope.enterprise_project 名称 类型 描述 id String 企业项目ID。
  • URI GET /v3.0/OS-PERMISSION/role-assignments 表1 Query参数 参数 是否必选 参数类型 描述 domain_id 是 String 待查询账号ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 role_id 否 String 策略ID。 subject 否 String 授权主体,取值范围:user、group、agency。该参数与subject.user_id、subject.group_id、subject.agency_id只能选择一个。 subject.user_id 否 String 授权的IAM用户ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 subject.group_id 否 String 授权的用户组ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 subject.agency_id 否 String 授权的委托ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 scope 否 String 授权范围,取值范围:project、domain、enterprise_project。该参数与scope.project_id、scope.domain_id、scope.enterprise_projects_id只能选择一个。 说明: 如需查看全局服务授权记录,scope取值domain或填写scope.domain_id。 如需查看基于所有资源的授权记录,scope取值为domain,且is_inherited取值为true。 如需查看基于项目的授权记录,scope取值为project或填写scope.project_id。 如需查看基于企业项目的授权记录,scope取值为enterprise_project或填写scope.enterprise_project_id。 scope.project_id 否 String 授权的项目ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 scope.domain_id 否 String 待查询账号ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 scope.enterprise_projects_id 否 String 授权的企业项目ID,获取方式请参见:如何获取企业项目ID。 is_inherited 否 Boolean 是否包含基于所有项目授权的记录,默认为false。当参数scope=domain或者scope.domain_id存在时生效。true:查询基于所有项目授权的记录。 false:查询基于全局服务授权的记录。 include_group 否 Boolean 是否包含基于IAM用户所属用户组授权的记录,默认为true。当参数subject=user或者subject.user_id存在时生效。true:查询基于IAM用户授权、IAM用户所属用户组授权的记录。 false:仅查询基于IAM用户授权的记录。 page 否 Integer 分页查询时数据的页数,查询值最小为1。需要与per_page同时存在。 per_page 否 Integer 分页查询时每页的数据个数,取值范围为[1,50],需要与page同时存在。
  • 示例流程 图1 给用户授权Live只读权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予Live只读权限“Live ReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择 视频直播 服务,进入“ 域名 管理”界面进行添加域名操作,若提示权限不足,则表示“Live ReadOnlyAccess”已生效。
  • 响应示例 状态码为 200 时: 请求成功。 { "roles": [ { "domain_id": null, "flag": "fine_grained", "description_cn": " 应用运维管理 服务只读权限", "catalog": " AOM ", "name": "system_all_30", "description": "AOM read only", "links": { "next": null, "previous": null, "self": "https://iam.myhuaweicloud.com/v3/roles/75cfe22af2b3498d82b655fbb39de498" }, "id": "75cfe22af2b3498d82b655fbb39de498", "display_name": "AOM Viewer", "type": "XA", "policy": { "Version": "1.1", "Statement": [ { "Action": [ "aom:*:list", "aom:*:get", "apm:*:list", "apm:*:get" ], "Effect": "Allow" } ] } } ], "links": { "next": null, "previous": null, "self": "https://iam.myhuaweicloud.com/v3/projects/065a7c66da0010992ff7c0031e5a5e7d/groups/077d71374b8025173f61c003ea0a11ac/roles" } }
  • URI GET /v3/projects/{project_id}/groups/{group_id}/roles 表1 路径参数 参数 是否必选 参数类型 描述 group_id 是 String 用户组ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 project_id 是 String 项目ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。
  • 响应参数 表3 响应Body参数 参数 参数类型 描述 links Object 资源链接信息。 roles Array of objects 权限信息列表。 表4 links 参数 参数类型 描述 self String 资源链接。 previous String 前一邻接资源链接地址,不存在时为null。 next String 后一邻接资源链接地址,不存在时为null。 表5 roles 参数 参数类型 描述 domain_id String 权限所属账号ID。 flag String 该参数值为fine_grained时,标识此权限为系统内置的策略。 description_cn String 权限的中文描述信息。仅在创建时中传入了description_cn参数,响应体中才会返回此字段。 。 catalog String 权限所在目录。 name String 系统内部呈现的权限名称。如云目录服务C CS 普通用户权限CCS User的name为ccs_user。 携带在用户的token中,云服务根据该名称来判断用户是否有权限访问。 description String 权限描述信息。 links Object 权限的资源链接信息。 id String 权限ID。 display_name String 权限名称。 type String 权限的显示模式。 说明: AX表示在domain层显示。 XA表示在project层显示。 AA表示在domain和project层均显示。 XX表示在domain和project层均不显示。 自定义策略的显示模式只能为AX或者XA,不能在domain层和project层都显示(AA),或者在domain层和project层都不显示(XX)。 policy Object 权限的具体内容。 updated_time String 权限更新时间。 说明: UNIX时间戳格式,单位是毫秒,时间戳格式如:1687913793000。 created_time String 权限创建时间。 说明: UNIX时间戳格式,单位是毫秒,时间戳格式如:1687913793000。 表6 roles.links 参数 参数类型 描述 self String 资源链接地址。 previous String 前一邻接资源链接地址,不存在时为null。 next String 后一邻接资源链接地址,不存在时为null。 表7 roles.policy 参数 参数类型 描述 Depends Array of objects 该权限所依赖的权限。 Statement Array of objects 授权语句,描述权限的具体内容。 Version String 权限版本号。 说明: 1.0:系统预置的角色。以服务为粒度,提供有限的服务相关角色用于授权。 1.1:策略。IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。 表8 roles.policy.Depends 参数 参数类型 描述 catalog String 权限所在目录。 display_name String 权限名称。 表9 roles.policy.Statement 参数 参数类型 描述 Action Array of strings 授权项,指对资源的具体操作权限。支持的授权项请参考各云服务《API参考》中“权限和授权项”章节。 说明: 格式为:服务名:资源类型:操作,例:vpc:ports:create。 服务名为产品名称,例如ecs、evs和vpc等,服务名仅支持小写。 资源类型和操作没有大小写,要求支持通配符号*,无需罗列全部授权项。 当自定义策略为委托自定义策略时,该字段值为: "Action": ["iam:agencies:assume"]。 Effect String 作用。包含两种:允许(Allow)和拒绝(Deny),既有Allow又有Deny的授权语句时,遵循Deny优先的原则。 取值范围: Allow Deny Condition Object 限制条件。如果创建此策略未传入此字段,则返回结果中也无此字段。 说明: 以请求示例中的Condition为例:条件键(obs:prefix)和字符串(public)需相等(StringEquals)。 "Condition": { "StringEquals": { "obs:prefix": [ "public" ] } } Resource object 资源,如果创建此策略时未传入此字段,则返回结果中也无此字段。规则如下: 说明: 可填 * 的五段式:::::,例:"obs:::bucket:*"。 region字段为*或用户可访问的region。service必须存在且resource属于对应service。 当该自定义策略为委托自定义策略时,该字段类型为Object,值为:"Resource": {"uri": ["/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"]}。
  • 示例流程 图1 给用户授权Live只读权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予Live只读权限“Live ReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择视频直播服务,进入“域名管理”界面进行添加域名操作,若提示权限不足,则表示“Live ReadOnlyAccess”已生效。
  • 角色内容 给用户组选择角色时,单击角色前面的,可以查看角色的详细内容,以“DNS Administrator”为例,说明角色的内容。 图1 DNS Administrator角色内容 { "Version": "1.0", "Statement": [ { "Action": [ "DNS:Zone:*", "DNS:RecordSet:*", "DNS:PTRRecord:*" ], "Effect": "Allow" } ], "Depends": [ { "catalog": "BASE", "display_name": "Tenant Guest" }, { "catalog": "VPC", "display_name": "VPC Administrator" } ] }
  • 参数说明 表1 参数说明 参数 含义 值 Version 角色的版本 1.0:代表基于角色的访问控制。 Statement: 角色的授权语句 Action:授权项 操作权限 格式为:服务名:资源类型:操作 "DNS:Zone:*":表示对DNS的Zone所有操作。其中“DNS”为服务名;“Zone”为资源类型;“*”为通配符,表示对Zone资源类型可以执行所有操作。 Effect:作用 定义Action中的操作权限是否允许执行 Allow:允许执行。 Deny:不允许执行。 说明: 当同一个Action的Effect既有Allow又有Deny时,遵循Deny优先的原则。 Depends: 角色的依赖关系 catalog 依赖的角色所属服务 服务名称。例如:BASE、VPC。 display_name 依赖的角色名称 角色名称。 说明: 给用户组授予示例的“DNS Administraor”角色时,必须同时勾选该角色依赖的角色“Tenant Guest”和“VPC Administrator”,“DNS Administraor”才会生效。 了解更多角色依赖关系,请参考:系统权限。
  • 示例流程 图1 给用户授权VOD只读权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予VOD只读权限“VOD Guest”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择 视频点播 服务,进入“全局配置”界面,若提示权限不足,表示“VOD Guest”已生效。 在“服务列表”中选择除弹性云服务器外的任一服务,若提示权限不足,表示“VOD Guest”已生效。
  • 创建媒资隔离的用户 视频点播提供了VOD Administrator、VOD Operator、VOD Guest、VOD Group Administrator、VOD Group Operator、VOD Group Guest、VOD FullAccess、VOD ReadOnlyAccess和VOD CommonOperations九个系统策略,具体请参考产品介绍-权限管理。其中VOD Administrator、VOD Operator和VOD Guest三个系统策略仅能进行操作权限的划分,若您还需要对视频点播中存储的媒资进行隔离,建议您使用VOD Group Administrator、VOD Group Operator和VOD Group Guest三个系统策略,它们既支持操作权限划分,也支持媒资隔离。媒资隔离是指仅同组内的用户能访问或管理该组其他用户创建的媒资。 媒资隔离示例如表1所示。 表1 账号权限配置建议 策略组 用户A(管理账号) 用户B(上传账号) 用户C(观看账号) VOD Group Administrator √ - - VOD Group Operator - √ - VOD Group Guest - - √ 以上三种策略组,不管是低权限的账户还是高权限的账户,都只能操作本组内用户创建的媒资,达到了媒资隔离的效果,即用户A、B、C只能访问自己组内的媒资。 若用户A需要能操作用户B创建的媒资,则用户A需要加入B所在的VOD Group Operator策略组。
  • 示例流程 图1 IAM用户授权流程 创建用户组并授权 在IAM控制台创建用户组,并授予 CDM 集群只读权限“CDM ReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择“ 云数据迁移 服务”,进入CDM主界面查看集群,若未提示权限不足,表示“CDM ReadOnlyAccess”已生效。 在“服务列表”中选择除CDM服务外的任一服务,若提示权限不足,表示“CDM ReadOnlyAccess”已生效。
  • 自定义策略样例 示例1:授权用户创建云数据库 GeminiDB实例 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "nosql:instance:create" ] } ] } 示例2:拒绝用户删除云数据库 GeminiDB数据库实例 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则。 如果您给用户授予 GaussDB NoSQLFullAccess的系统策略,但不希望用户拥有GaussDB NoSQLFullAccess中定义的删除云数据库 GeminiDB实例权限,您可以创建一条拒绝删除云数据库 GeminiDB实例的自定义策略,然后同时将GaussDB NoSQLFullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对云数据库 GeminiDB执行除了删除云数据库 GeminiDB实例外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Effect": "Deny" "Action": [ "nosql:instance:delete" ], } ] } 示例3:多个授权项策略 一个自定义策略中可以包含多个授权项,且除了可以包含本服务的授权项外,还可以包含其他服务的授权项,可以包含的其他服务必须跟本服务同属性,即都是项目级服务或都是全局级服务。多个授权语句策略描述如下: { "Version": "1.1", "Statement": [ { "Action": [ "nosql:instance:create", "nosql:instance:rename", "nosql:instance:delete", "vpc:publicIps:list", "vpc:publicIps:update" ], "Effect": "Allow" } ] }