当您的企业存在多用户协同访问资源的场景时,您可以创建多个RAM用户(子账号)并按需为其分配最小权限,避免多用户共享阿里云账号(主账号)密码或访问密钥(AccessKey),从而降低企业的安全风险。本文介绍如何通过RAM用户执行OOS模板。
场景介绍
某公司账号下购买了若干台ECS实例,其中2台被打上标签TagKey:TagValue
进行了分组,某员工甲被分配的RAM用户为subUser1ForOOS
,甲定期通过该账号在OOS中执行一个模板T,模板执行的任务是对标签TagKey:TagValue
分组下的ECS实例批量执行Shell指令。即该员工具有对模板T的只读和执行权限,以及有模板任务涉及API(如RunCommand)的操作权限,且可操作的API仅对标签TagKey:TagValue
分组下的实例有效。
解决方案
为满足上述场景,权限管理要分两方面,OOS资源操作和ECS资源操作:
OOS方面的权限策略包括对模板的执行权限、对执行的查询权限。
ECS方面权限策略为对标签
TagKey:TagValue
下实例的操作权限,且操作权限仅限于模板中涉及的API。
以上的权限策略成功创建后,将其授权给员工甲使用的RAM用户即可(或具有员工甲相同职责的用户组)。
操作步骤
ECS实例的分组
创建RAM用户
创建自定义权限策略
为RAM用户授权
RAM用户执行OOS模板
ECS实例的分组
登录云服务器管理控制台。
选择2台实例,在操作菜单下选择
。单击新建标签,输入标签键和标签值,单击确定。
本文中标签键设为TagKey,标签值设为TagValue。
创建RAM用户
使用阿里云账号或RAM管理员登录RAM控制台。
在左侧导航栏的
菜单下,单击创建用户。输入登录名称及显示名称。
勾选访问台控制,单击自定义密码并填写要设置的子账号密码。单击确定。
创建自定义权限策略
使用阿里云账号或RAM管理员登录RAM控制台。
在左侧导航栏的权限管理菜单下,单击权限策略>创建权限策略。
分别创建OOS管理策略和ECS管理策略,策略内容如下:
说明需将策略中的$AliyunMasterAccountID、$TagKey、$TagValue、$RegionID修改为您所使用的阿里云账号、ECS设置的tag以及使用的地域。
OOS管理策略:
{ "Statement": [ { "Action": [ "oos:StartExecution", "oos:List*", "oos:Get*" ], "Resource": [ "acs:oos:$RegionID:$AliyunMasterAccountID:template/*", "acs:oos:$RegionID:$AliyunMasterAccountID:execution/*" ], "Effect": "Allow" } ], "Version": "1" }
ECS管理策略:
{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DescribeInstances", "ecs:RebootInstance" ], "Resource": "acs:ecs:$RegionID:$AliyunMasterAccountID:instance/*", "Condition": { "StringEquals": { "ecs:tag/$TagKey": [ "$TagValue" ] } } }, { "Effect": "Allow", "Action": [ "ecs:DescribeCloudAssistantStatus", "ecs:InstallCloudAssistant" ], "Resource": "acs:ecs:*:$AliyunMasterAccountID:instance/*", "Condition": { "StringEquals": { "ecs:tag/$TagKey": [ "$TagValue" ] } } }, { "Action": "ecs:DescribeTagKeys", "Effect": "Allow", "Resource": "*" }, { "Action": "ecs:DescribeTags", "Effect": "Allow", "Resource": "*" }, { "Effect": "Deny", "Action": [ "ecs:DeleteTags", "ecs:UntagResources", "ecs:CreateTags", "ecs:TagResources" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecs:RunCommand" ], "Resource": "acs:ecs:*:$AliyunMasterAccountID:instance/*", "Condition": { "StringEquals": { "ecs:tag/$TagKey": [ "$TagValue" ] } } }, { "Action": [ "ecs:RunCommand" ], "Resource": [ "acs:ecs:*:$AliyunMasterAccountID:command/*" ], "Effect": "Allow" }, { "Action": [ "ecs:DescribeInvocations", "ecs:DescribeInvocationResults" ], "Resource": [ "*" ], "Effect": "Allow" } ], "Version": "1" }
分别填写策略名称和备注,单击确定。
为RAM用户或用户组授权
使用阿里云账号或RAM管理员登录RAM控制台。
在左侧导航栏的
菜单下,单击新增授权。在授权主体中输入RAM用户名称或用户组名称并选中,在权限策略中选择自定义策略,在左侧权限策略名称列表下,单击选择需要授予给RAM用户或用户组的权限策略。
单击确认新增授权。
执行OOS模板
登录上文创建的RAM用户。
进入系统运维管理控制台。
,找到ACS-ECS-BulkyRunCommand模板,单击创建执行。
单击下一步:设置参数。
设置参数,单击下一步:确定。
单击创建。