为RAM用户授予所需资源的访问权限,以实现权限最小化目标,并避免多个用户共享阿里云账号密码或访问密钥,从而减少企业的访问安全风险。本文将详细介绍如何通过主账号为RAM用户分配适当的权限,并解释各项权限的作用。
背景信息
访问控制(Resource Access Management,简称RAM)是阿里云提供的权限管理系统。
RAM主要用于控制账号系统的权限。
您可以使用RAM在主账号的权限范围内创建RAM用户,并为不同的RAM用户授予不同的权限,例如购买或删除实例、升降配实例资源、修改网络类型以及查看实例信息等。
RAM用户实例开发权限的权限控制如下:
如果主账号没有授予RAM用户权限,则RAM用户无法在管理控制台查看或操作实例。
主账号可以直接授予RAM用户实例的开发权限。RAM用户即使无法在管理控制台操作实例,也可以正常连接开发工具进行数据开发。详情请参见授予RAM用户实例的开发权限。
授予RAM用户权限
使用RAM管理员登录RAM控制台。
在左侧导航栏,选择 。
在用户页面,单击目标RAM用户操作列的添加权限。
您也可以选中多个RAM用户,单击用户列表下方的添加权限,为RAM用户批量授权。
新增授权。
配置添加权限对话框的各项参数。
说明由于HoloWeb无法归属某个资源组,因此,通过指定资源组进行授权的方式暂不支持登录并使用HoloWeb。
下文所提及的权限仅代表RAM用户是否能登录并使用HoloWeb。若RAM用户需要连接Hologres实例并使用,您可前往实例详情页中进行授权。详情请参见授予RAM用户实例的开发权限。
选择资源范围。
账号级别:权限在当前阿里云账号内生效。
资源组级别:权限在指定的资源组内生效。
重要指定资源组授权生效的前提是该云服务及资源类型已支持资源组,详情请参见支持资源组的云服务。资源组授权示例,请参见使用资源组限制RAM用户管理指定的ECS实例。
选择授权主体。
授权主体即需要添加权限的RAM用户。系统会自动选择当前的RAM用户。
选择权限策略。
权限策略是一组访问权限的集合,分为以下两种。支持批量选中多条权限策略。
系统策略:由阿里云创建,策略的版本更新由阿里云维护,用户只能使用不能修改。更多信息,请参见支持RAM的云服务。
说明系统会自动标识出高风险系统策略(例如:AdministratorAccess、AliyunRAMFullAccess等),授权时,尽量避免授予不必要的高风险权限策略。
为RAM用户授予以下权限策略,RAM用户就会拥有所有操作的权限,如下表所示。
权限策略
描述
AliyunHologresFullAccess
管理Hologres服务的权限。
说明该权限策略不包含实例的使用权限,仍需Superuser在实例中创建用户后才可以登录并使用Hologres实例,详情请参见与实例使用相关的RAM用户权限问题。
设置该权限后,RAM用户拥有的权限包括:
查看管理控制台所有实例信息的权限,包括实例列表、实例详情、监控等页面。
可执行涉及账单的操作,包括对实例购买、升降配、续费、停机、删除等操作。
登录并使用HoloWeb的权限。
RAM用户购买实例后将成为实例的Superuser,拥有实例的所有权限(阿里云账号也会成为实例的Superuser)。
对于阿里云账号已经创建的实例,RAM用户默认没有实例的权限,需要阿里云账号在实例内给RAM用户授予相应的权限,详情请参见授予RAM用户实例的开发权限。
无管理控制台用户管理页面展示所有用户的权限,需要授予
listuser
的权限(AliyunRAMReadOnlyAccess),才可以在管理控制台的用户管理查看用户信息。
AliyunHologresWarehouseFullAccess
管理Hologres计算组的权限。
说明该权限策略不包含实例的使用权限,仍需Superuser在实例中创建用户后才可以登录并使用Hologres实例,详情请参见与实例使用相关的RAM用户权限问题。
设置该权限后,子账号拥有的权限包括:
创建、删除、扩容、缩容、停止及恢复计算组等管理计算组的权限。
配置分时弹性功能的权限。
登录并使用HoloWeb的权限。
AliyunBSSOrderAccess
在费用中心(BSS)查看、支付以及取消订单的权限。
设置该权限后,子账号可以在管理控制台升级或降级实例的配置,以及为实例续费。
AliyunRAMReadOnlyAccess
只读访问控制(RAM)的权限。
设置该权限后,RAM用户在HoloWeb的用户管理页面新增用户时可以展示当前阿里云账号下的所有RAM用户和RAM角色。
AliyunHologresReadOnlyAccess
只读管理Hologres的权限。
设置该权限后,RAM用户拥有的权限包括:
在管理控制台查看实例所有信息的权限,包括实例列表、实例详情。
登录并使用HoloWeb的权限。
无实例购买、升降配等涉及费用的操作权限。
无实例的操作权限,需要阿里云账号给RAM用户授予实例级别的权限。
不能在管理控制台或HoloWeb用户管理展示当前阿里云账号下的所有RAM用户,如需查看需要授予
AliyunRAMReadOnlyAccess
的权限。
说明RAM用户购买的实例,主账号和RAM用户默认均为Superuser。
主账号购买的实例,RAM用户需要被主账号授权后,才能使用实例。
自定义策略:由用户管理,策略的版本更新由用户维护。用户可以自主创建、更新和删除自定义策略。更多信息,请参见创建自定义权限策略。
重要为用户配置权限策略时,请务必配置AliyunRAMReadOnlyAccess的权限策略,保障用户能够访问管控台。
在创建权限策略页面,您可以使用脚本编辑自定义权限。
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:UpdateInstanceNetworkType", "Resource": "acs:hologram:cn-<region>:<账号ID>:instance/*" }. { //访问HoloWeb "Effect": "Allow", "Action": "hologram:HoloWebAccess", "Resource": "*" } ], "Version": "1" }
参数说明如下表所示。
参数
描述
<region>
地域,例如beijing。
<账号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/*" }, { //RAM用户购买权限,需要购买实例必须加上该条 "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": "cms:DescribeMetricList", "cms:QueryMetricList" "Resource": "acs:hologram:cn-<region>:<账号ID>:instance/*" }, { //修改网络类型 "Effect": "Allow", "Action": "hologram:UpdateInstanceNetworkType", "Resource": "acs:hologram:cn-<region>:<账号ID>:instance/*" } ], "Version": "1" }
单击继续编辑基本信息,输入基本名称和备注。
单击确认新增授权,然后单击关闭。
与控制台相关的RAM用户权限问题
Hologres管理控制台主要集成了RAM鉴权和实例的部分开发权限,与Hologres管理控制台相关的权限问题如下所示:
RAM用户无法查看实例列表及实例ID。
问题现象
RAM用户选择了正确的地域,但无法看到已购买的实例,并提示暂无权限查看所有实例,请让主账号前往RAM中心授予当前用户“xxx/*”资源的“hologram:ListInstances”权限报错。
问题原因
当前RAM用户没有查看实例列表的权限。
解决方法
主账号登录RAM控制台,授予RAM用户显示实例列表的权限AliyunHologresReadOnlyAccess。
被授权为Superuser的RAM用户无法新增用户。
问题现象
RAM用户已经被授权为Superuser,但是在Hologres管理控制台的用户管理模块无法看到用户列表并新增用户。提示暂无权限列出所有子账号,请让主账号前往RAM中心授予当前用户ram:ListUsers权限报错。
问题原因
当前RAM用户在Hologres管理控制台没有查看用户列表的权限。
解决方法
主账号登录RAM控制台,授予RAM用户显示用户列表的权限AliyunRAMReadOnlyAccess权限策略。
无法查看用户管理和DB管理模块的信息。
问题现象
RAM用户登录Hologres管理控制台后,无法查看用户管理和DB管理模块的信息。提示暂无权限,请找Superuser将当前账户添加到实例中报错。
问题原因
当前RAM用户没有实例的开发权限。
解决方法
主账号或具有Superuser权限的账号为RAM用户授予实例的开发权限,详情请参见授予RAM用户实例的开发权限。
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用户实例的开发权限。
误删Superuser
问题现象
误将实例下的所有Superuser都改为了普通用户。
说明若误将实例下的所有Superuser都改为了普通用户,则无法进行包括用户管理和实例相关的大部分操作。
解决方法
请加入Hologres官方答疑钉钉群联系技术支持,详情可参见在线支持。