本文为您介绍主账号如何为RAM用户授予权限,从而让RAM用户实现在Hologres管理控制台执行查看、购买或删除实例等操作。
背景信息
访问控制(Resource Access Management,简称RAM)是阿里云提供的权限管理系统。
RAM主要用于控制账号系统的权限。
您可以使用RAM在主账号的权限范围内创建RAM用户,并为不同的RAM用户授予不同的权限,例如购买或删除实例、升降配实例资源、修改网络类型以及查看实例信息等。
- 如果主账号没有授予RAM用户权限,则RAM用户无法在管理控制台查看或操作实例。
- 主账号可以直接授予RAM用户实例的开发权限。RAM用户即使无法在管理控制台操作实例,也可以正常连接开发工具进行数据开发。详情请参见授予RAM用户实例的开发权限。
授予RAM用户权限
- 使用阿里云账号登录RAM控制台。
- 在左侧导航栏,选择 。
- 在用户页面,单击目标RAM用户操作列的添加权限。
- 新增授权。配置添加权限对话框的各项参数。
参数 描述 授权范围 取值如下: - 云账号全部资源
- 指定资源组
被授权主体 需要授权的RAM用户。 选择权限 取值如下: - 系统策略
- 自定义策略
说明- 您也可以根据业务需求自定义新建权限策略。
- 每次最多添加5条策略。如果您需要添加的策略数量大于5条,请分多次执行。
系统策略和自定义策略的权限说明如下:- 系统策略为RAM用户授予以下权限策略,RAM用户就会拥有所有操作的权限,如下表所示。
权限策略 描述 AliyunHologresFullAccess 管理Hologres服务的权限。 设置该权限后,RAM用户可以查看管理控制台所有实例的信息,以及购买实例。说明 您需要设置AliyunRAMReadOnlyAccess权限后,才可以在管理控制台的用户管理查看用户信息。AliyunBSSOrderAccess 在费用中心(BSS)查看、支付以及取消订单的权限。 设置该权限后,子账号可以在管理控制台升级或降级实例的配置,以及为实例续费。
AliyunRAMReadOnlyAccess 只读访问控制(RAM)的权限。 设置该权限后,RAM用户可以在管理控制台的用户管理查看当前实例的用户、组以及授权信息。
AliyunHologresReadOnlyAccess 只读管理Hologres的权限。 设置该权限后,RAM用户可以查看Hologres管理控制台所有实例的信息,但是无法操作实例,例如修改网络类型。
说明- RAM用户购买的实例,主账号和RAM用户默认均为Superuser。
- 主账号购买的实例,RAM用户需要被主账号授权后,才能使用实例。
- 自定义策略您可以根据业务需求,在 新建权限策略中自定义不同的权限。
在创建权限策略页面,您可以使用脚本配置自定义权限。
Hologres支持的自定义权限配置如下:
参数说明如下表所示。{ "Statement": [ { // 一次性授予所有权限,设置了该条,可不用设置下面的其他权限 "Effect": "Allow", "Action": "hologram:*",//所有操作都有权限 "Resource": "acs:hologram:*:<主账号ID>:instance/*"//针对所有region所有实例 <*不能被实例替代> }, { //购买或者续费实例 "Effect": "Allow", "Action": "hologram:*", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" }, { //删除实例 "Effect": "Allow", "Action": "hologram:DeleteInstance", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*"//<需要配置才能删除,不配置不能删除但是会提示删除成功> }, { //ram账号购买权限。ram用户配置该权限后才可以购买实例 "Effect": "Allow", "Action": "bss:PayOrder", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*"//<测试不通过> }, { //展示实例详情 "Effect": "Allow", "Action": "hologram:GetInstance", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" //<*能被实例替代> }, { //展示实例列表 "Effect": "Allow", "Action": "hologram:ListInstances", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*"//<*不能被实例替代> }, { //暂停实例 "Effect": "Allow", "Action": "hologram:StopInstance", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" }, { //恢复实例 "Effect": "Allow", "Action": "hologram:ResumeInstance", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" }, { //展示实例监控告警 "Effect": "Allow", "Action": "hologram:GetInstanceMetrics", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*"//<*可以被实例替代> }, { //修改网络类型 "Effect": "Allow", "Action": "hologram:UpdateInstanceNetworkType", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" } ], "Version": "1" }
示例语句如下。参数 描述 <region> 地域,例如beijing。 <主账号ID> 阿里云主账号的ID。 * 表示该主账号中所有实例的ID。您也可以替换*为具体的一个实例ID。 acs:hologram:cn-beijing:4322xxxxx:instance/hhhgggxxxx
说明 以下授权选项的instance/* 中的"*"不可以替换为具体某一个实例ID,只能设置为*:{ "Statement": [ { // 一次性授予所有权限,设置了该条,可不用设置下面的其他权限 "Effect": "Allow", "Action": "hologram:*",//所有操作都有权限 "Resource": "acs:hologram:*:<主账号ID>:instance/*"//针对所有region所有实例 }, { //购买,续费实例 "Effect": "Allow", "Action": "hologram:*", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" }, { //删除实例 "Effect": "Allow", "Action": "hologram:DeleteInstance", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" }, { //子账号购买权限,需要购买实例必须加上该条 "Effect": "Allow", "Action": "bss:PayOrder", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" }, { //展示实例列表 "Effect": "Allow", "Action": "hologram:ListInstances", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" }, { //暂停实例 "Effect": "Allow", "Action": "hologram:StopInstance", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" }, { //恢复实例 "Effect": "Allow", "Action": "hologram:ResumeInstance", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" }, { //展示实例监控告警 "Effect": "Allow", "Action": "hologram:GetInstanceMetrics", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" }, { //修改网络类型 "Effect": "Allow", "Action": "hologram:UpdateInstanceNetworkType", "Resource": "acs:hologram:cn-<region>:<主账号ID>:instance/*" } ], "Version": "1" }
- 单击确定。
- 单击完成。
与控制台相关的RAM用户权限问题
- RAM用户无法查看实例列表及实例ID。
- 问题现象
RAM用户选择了正确的地域,但无法看到已购买的实例,并提示暂无权限查看所有实例,请让主账号前往RAM中心授予当前用户“xxx/*”资源的“hologram:ListInstances”权限报错。
- 问题原因
当前RAM用户没有查看实例列表的权限。
- 解决方法
主账号登录RAM控制台,授予RAM用户显示实例列表的权限AliyunHologresReadOnlyAccess。
- 问题现象
- RAM用户无实例的操作权限。
- 问题现象
被授权为Superuser的RAM用户无法购买、升配和降配实例,以及转换实例的付费方式由按量付费为订阅。提示RAM子账号鉴权不通过报错。
- 问题原因
购买、升配、降配及转换付费方式等操作涉及费用账单,由主账号统一控制,当前RAM用户没有相关权限。
- 解决方法
主账号登录RAM控制台,授予RAM用户与实例费用相关的权限AliyunHologresFullAccess及AliyunBSSOrderAccess。
- 问题现象
与实例使用相关的RAM用户权限问题
- 无法登录并使用Hologres实例。
- 问题现象
报错:
role "<role_name>" does not exist
。 - 问题原因
新建Hologres实例后,仅阿里云账号和购买实例的RAM用户会被默认创建为实例的Superuser用户。其余RAM用户均需要Superuser在实例中将其创建为实例的用户,才可以登录并使用Hologres实例。
- 解决方法说明 可通过执行
select * from pg_user;
命令查看当前实例的Superuser。- 在HoloWeb的用户管理页面新增用户,并授予相应权限,详情请参见用户管理。
- 登录实例,执行
create user "<role_name>"
语句,详情请参见Hologres权限模型概述。
- 问题现象
- 无法查看用户管理和DB管理页面。
- 问题现象
RAM用户登录管理控制台,在用户管理和DB管理页面都看不到内容,且出现如下报错:
暂无权限,请找Superuser将当前账户添加到实例中
。 - 问题原因
当前RAM用户没有实例的开发权限,需要授予具体的开发权限才能展示相关信息。
- 解决方法
阿里云账号或拥有Superuser的RAM用户给此RAM用户授予实例的开发权限,详情请参见授予RAM用户实例的开发权限。
- 问题现象