文档

OOS操作ECS分组资源的权限策略管理

更新时间:

阿里云账号分为主账号(用户) 和子账号(用户)两类,主账号为注册阿里云时的账号,其权限为root,出于安全考虑,建议实际操作时采用子账号。而操作员工的职责不同,不同子账号需要的权限也不同。此时,子账号权限策略的有效管理就很重要。本文将介绍下,当某员工通过子账号,使用系统运维管理(OOS)执行某模板,来完成一些例行运维任务时,如何既使子账号顺利完成相应操作,又最大程度保障账号的安全。

场景介绍

某公司账号下购买了若干台ECS实例,其中2台被打上标签TagKey:TagValue进行了分组,某员工甲被分配的子账号为subUser1ForOOS,甲定期通过该账号在OOS中执行一个模板T,模板执行的任务是对标签TagKey:TagValue分组下的ECS实例批量执行Shell指令。即该员工具有对模板T的只读和执行权限,以及有模板任务涉及API(如RunCommand)的操作权限,且可操作的API仅对标签TagKey:TagValue分组下的实例有效。

解决方案

为满足上述场景,权限管理要分两方面,OOS资源操作和ECS资源操作:

  • OOS方面的权限策略包括对模板的执行权限、对执行的查询权限。

  • ECS方面权限策略为对标签TagKey:TagValue下实例的操作权限,且操作权限仅限于模板中涉及的API。

以上的权限策略成功创建后,将其授权给员工甲使用的RAM子用户即可(或具有员工甲相同职责的用户组)。

操作步骤

  • ECS实例的分组

  • 创建子账号(用户)

  • 创建自定义权限策略

  • 为子账号授权

  • 子账号执行OOS模板

ECS实例的分组

  1. 登录云服务器管理控制台

  2. 选择2台实例,在操作菜单下选择竖着的三点>实例设置>编辑标签

    image

  3. 单击新建标签,输入标签键标签值,单击确定

    本文中标签键设为TagKey,标签值设为TagValue。

    image

创建子账号(用户)

  1. 使用阿里云主账号(或管理员账号)登录RAM访问控制

  2. 在左侧导航栏的身份管理菜单下,单击用户>创建用户image

  3. 输入登录名称显示名称image

  4. 勾选访问台控制,单击自定义登录密码并填写要设置的子账号密码。单击确定image

创建自定义权限策略

  1. 使用阿里云主账号登录RAM访问控制

  2. 在左侧导航栏的权限管理菜单下,单击权限策略>创建权限策略

  3. 分别创建OOS管理策略和ECS管理策略,策略内容如下:

    说明

    需将策略中的$AliyunMasterAccountID、$TagKey、$TagValue、$RegionID修改为您所使用的阿里云主账号、ECS设置的tag以及使用的地域。

    1. OOS管理策略:

      { 
      "Statement": [
          {
              "Action": [
                  "oos:StartExecution",
                  "oos:List*",
                  "oos:Get*"
              ],
              "Resource": [
                  "acs:oos:$RegionID:$AliyunMasterAccountID:template/*",
                  "acs:oos:$RegionID:$AliyunMasterAccountID:execution/*"
              ],
              "Effect": "Allow"
          }
      ],
      "Version": "1"
      }
    2. 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"
      }            
  4. 分别填写策略名称备注,单击确定

为子账号(或用户组)授权

  1. 使用阿里云主账号(或管理员账号)登录RAM访问控制

  2. 在左侧导航栏的权限管理菜单下,单击授权。单击新增授权

  3. 授权主体中输入子账号名称(或用户组名称)并选中,在选择权限中选择自定义策略,在左侧权限策略名称列表下,单击选择需要授予给子账号(或用户组)的权限策略。 image

  4. 单击确定。单击完成

执行OOS模板

  1. 登录上文创建的子账号。

  2. 进入系统运维管理控制台

  3. 自动化任务>公共任务模板,找到ACS-ECS-BulkyRunCommand模板,单击创建执行

    image

  4. 单击下一步,设置参数image

  5. 设置参数,单击下一步:确定image

  6. 单击创建

image

  • 本页导读 (0)