策略授权参考
云服务在IAM预置了常用授权项,称为系统策略。如果IAM系统策略无法满足授权要求,管理员可以根据各服务支持的授权项,创建IAM自定义策略来进行精细的访问控制,IAM自定义策略是对系统策略的扩展和补充。
除IAM服务外,Organizations服务中的服务控制策略(Service Control Policies,以下简称SCP)也可以使用这些授权项元素设置访问控制策略。
SCP是一种基于组织的访问控制策略。组织管理账号可以使用SCP指定组织中成员账号的权限边界,限制账号内用户的操作。服务策略可以关联到组织、组织单元和成员账号。当服务策略关联到组织或组织单元时,该组织或组织单元下所有账号受到该策略影响。IAM策略授予权限的有效性受SCP限制,只有在SCP允许范围内的权限才能生效。
本章节介绍IAM服务策略授权场景中自定义策略和组织服务中SCP使用的元素,这些元素包含了操作(Action)、资源(Resource)和条件(Condition)。
操作(Action)
操作(Action)即为策略中支持的操作项。
- “访问级别”列描述如何对操作进行分类(list、read和write等)。此分类可帮助您了解在策略中相应操作对应的访问级别。
- “资源类型”列指每个操作是否支持资源级权限。
- 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在策略语句的Resource元素中指定所有资源类型(“*”)。
- 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。
- 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。
- “条件键”列包括了可以在策略语句的Condition元素中支持指定的键值。
- 如果该操作项资源类型列存在值,则表示条件键仅对列举的资源类型生效。
- 如果该操作项资源类型列没有值(-),则表示条件键对整个操作项生效。
- 如果此列没有值(-),表示此操作不支持指定条件键。
您可以在自定义策略语句的Action元素中指定以下RGC的相关操作。
授权项 |
描述 |
访问级别 |
资源类型(*为必须) |
条件键 |
---|---|---|---|---|
rgc:control:list |
授予列出控制策略的权限。 |
list |
- |
- |
rgc:controlViolation:list |
授予列出不合规信息的权限。 |
list |
- |
- |
rgc:control:get |
授予获取控制策略详细信息的权限。 |
read |
- |
- |
rgc:control:enable |
授予开启控制策略的权限。 |
write |
- |
- |
rgc:control:disable |
授予关闭控制策略的权限。 |
write |
- |
- |
rgc:controlOperate:get |
授予获取控制策略操作状态的权限。 |
read |
- |
- |
rgc:enabledControl:list |
授予列出开启的控制策略的权限。 |
list |
- |
- |
rgc:controlsForOrganizationalUnit:list |
授予列出某个注册组织单元下开启的控制策略的权限。 |
list |
- |
- |
rgc:controlsForAccount:list |
授予列出某个纳管账号开启的控制策略的权限。 |
list |
- |
- |
rgc:complianceStatusForAccount:get |
授予获取组织里某个纳管账号的资源合规状态的权限。 |
read |
- |
- |
rgc:complianceStatusForOrganizationalUnit:get |
授予获取组织里某个注册组织单元下所有纳管账号的资源合规状态的权限。 |
read |
- |
- |
rgc:controlsForOrganizationalUnit:get |
授予获取某个组织单元开启的控制策略的权限。 |
read |
- |
- |
rgc:controlsForAccount:get |
授予获取某个账号开启的控制策略的权限。 |
read |
- |
- |
rgc:configRuleCompliance:list |
授予列出纳管账号的Config规则合规性信息的权限。 |
list |
- |
- |
rgc:externalConfigRuleCompliance:list |
授予列出纳管账号的外部Config规则合规性信息的权限。 |
list |
- |
- |
rgc:driftDetail:list |
授予列出漂移信息的权限。 |
list |
- |
- |
rgc:managedOrganizationalUnit:register |
授予注册组织单元的权限。 |
write |
- |
- |
rgc:managedOrganizationalUnit:reRegister |
授予重新注册组织单元的权限。 |
write |
- |
- |
rgc:managedOrganizationalUnit:deRegister |
授予取消注册组织单元的权限。 |
write |
- |
- |
rgc:operation:get |
授予获取注册过程信息的权限。 |
read |
- |
- |
rgc:managedOrganizationalUnit:delete |
授予删除注册组织单元的权限。 |
write |
- |
- |
rgc:managedOrganizationalUnit:get |
授予获取已注册组织单元的权限。 |
read |
- |
- |
rgc:managedOrganizationalUnit:create |
授予创建组织单元的权限。 |
write |
- |
- |
rgc:managedOrganizationalUnit:list |
授予列举控制策略生效的注册组织单元信息的权限。 |
list |
- |
- |
rgc:managedAccount:enroll |
授予纳管账号的权限。 |
write |
- |
- |
rgc:managedAccount:unEnroll |
授予取消纳管账号的权限。 |
write |
- |
- |
rgc:managedAccount:update |
授予更新纳管账号的权限。 |
write |
- |
- |
rgc:managedAccount:get |
授予获取纳管账号的权限。 |
read |
- |
- |
rgc:managedAccountsForParent:list |
授予列出注册组织单元下所有纳管账号信息的权限。 |
list |
- |
- |
rgc:managedAccount:create |
授予创建账号的权限。 |
write |
- |
- |
rgc:managedAccount:list |
授予列出控制策略生效的纳管账号信息的权限。 |
list |
- |
- |
rgc:managedCoreAccount:get |
授予获取核心纳管账号的权限。 |
read |
- |
- |
rgc:homeRegion:get |
授予查询主区域的权限。 |
read |
- |
- |
rgc:preLaunch:check |
授予设置Landing Zone前检查的权限。 |
write |
- |
- |
rgc:landingZone:setup |
授予设置Landing Zone的权限。 |
write |
- |
- |
rgc:landingZone:delete |
授予删除Landing Zone的权限。 |
write |
- |
- |
rgc:landingZoneStatus:get |
授予获取查询Landing Zone设置状态的权限。 |
read |
- |
- |
rgc:availableUpdate:get |
授予获取Landing Zone可更新状态的权限。 |
read |
- |
- |
rgc:landingZoneConfiguration:get |
授予获取Landing Zone配置信息的权限。 |
read |
- |
- |
rgc:landingZoneIdentityCenter:get |
授予获取当前客户的Identity Center用户信息的权限。 |
read |
- |
- |
rgc:operation:list |
授予获取注册组织单元或纳管账号的当前操作状态的权限。 |
list |
- |
- |
rgc:templateDeployParam:get |
授予获取模板部署参数的权限。 |
read |
- |
- |
rgc:template:create |
授予创建模板的权限。 |
write |
- |
- |
rgc:template:delete |
授予删除模板的权限。 |
write |
- |
- |
rgc:predefinedTemplate:list |
授予列出预置模板的权限。 |
list |
- |
- |
rgc:managedAccountTemplate:get |
授予获取纳管账号模板详情的权限。 |
read |
- |
- |
RGC的API通常对应着一个或多个操作项。表2展示了API与操作项的关系,以及该API需要依赖的操作项。
API |
对应的操作项 |
依赖的操作项 |
---|---|---|
POST /v1/managed-organizational/organizational-unit/{organizational_unit_id}/register |
rgc:organizationalUnit:register |
- |
GET /v1/managed-organizational/{operation_id} |
rgc:operation:get |
- |
GET /v1/managed-organizational/managed-account/{managed_account_id} |
rgc:managedAccount:get |
- |
POST /v1/managed-organizational/managed-accounts |
rgc:account:create |
- |
POST /v1/governance/control/enable |
rgc:control:enable |
- |
POST /v1/governance/control/disable |
rgc:control:disable |
- |
GET /v1/governance/operated-controls/{control_operate_request_id} |
rgc:controlOperate:get |
- |
GET /v1/governance/enabled-controls |
rgc:enabledControls:list |
- |
GET /v1/governance/managed-organizational-unit/{managed_organizational_unit_id}/controls |
rgc:controlsForOrganizationalUnit:list |
- |
资源类型(Resource)
RGC服务不支持在策略中的资源中指定资源进行权限控制。如需允许访问RGC服务,请在策略的Resource元素中使用通配符号*,表示策略将应用到所有资源。