账户访问控制

本文介绍了如何使用访问控制RAM(Resource Access Management)在账号级别上控制对OOS资源的访问,具体通过创建RAM用户(组)并授予特定权限策略实现。

应用场景

访问控制RAM是阿里云提供的资源访问控制服务。以下列举了访问控制RAM的典型场景:

  • 系统运维理员:您可以创建一个系统运维管理管理员,给该管理员组授予系统运维管理的完全权限,包括创建、编辑和执行模板。

  • 模板开发者:该用户组需要编辑模板权限。您可以给开发者(组)授予一个权限策略,该策略授予用户组成员调用CreateTemplateUpdateTemplate等权限。

  • 模板执行:您可以限制一部分用户只能执行OOS模板,但不能创建或修改OOS模板。

  • 模板鉴权:您可以限制某个模板只能被某个指定用户(组)执行。

为子账户授予PassRole权限

说明

OOS服务设置RAM角色并授权后,只能说明系统运维管理有权使用这个RAM角色,并不代表系统运维管理的子账户有权使用这个RAM角色。只有对子账户和目标RAM角色进行PassRole鉴权之后,该子账户才能通过系统运维管理使用目标RAM角色。

  • 如果允许某个子账户灵活地使用已经授信给系统运维管理的所有RAM角色,则您可以创建如下的权限策略并授权给该子账户。

    为子账户授予PassRole权限的策略

    {
      "Version": "1",
      "Statement": [
        {
          "Action": "ram:PassRole",
          "Resource": "*",
          "Effect": "Allow",
          "Condition": {
            "StringEquals": {
              "acs:Service": "oos.aliyuncs.com"
            }
          }
        }
      ]
    }	
  • 出于安全考虑,您可能需要限制子账户只能使用某个特定的RAM Role(比如默认的OOSServiceRole)来操作系统运维管理,在这种情况下,您可以做如下权限授权。

    限制子账号只能使用特定RAM权限的策略

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ram:PassRole",
          "Resource": "acs:ram::{parent_uid}:role/OOSServiceRole"
        }
      ]
    }

注意事项:

  • 如果RAM角色是在模板内部固定的(包括使用默认OOSServiceRole),输入参数不包含角色,则在执行该模板的时候,不需要PassRole授权。但是,在创建或者修改该模板的时候,子账户需要PassRole授权。

  • 如果RAM角色是在执行模板时通过输入参数Parameters动态获取的,模板本身并没有指定RAM Role,则在创建或者修改该模板时,不需要PassRole的权限。但是针对执行该模板并指定RAM Role的子账户,需要PassRole权限。

  • 如上示例中的{parent_uid}为您所使用的阿里云主账号ID。

权限策略

步骤一:创建自定义权限策略

  1. 登录RAM控制台

  2. 在左侧导航栏,单击权限管理 > 权限策略

  3. 单击创建权限策略image

  4. 单击脚本编辑,输入自定义策略后,单击确定

    • 策略示例一:允许RAM用户执行模板,但不允许编辑模板

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "oos:List*",
                      "oos:Get*",
                      "oos:StartExecution",
                      "oos:CancelExecution",
                      "oos:NotifyExecution"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    • 策略示例二:允许RAM用户创建编辑模板,不包含执行权限

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "oos:List*",
                      "oos:Get*",
                      "oos:CreateTemplate",
                      "oos:UpdateTemplate",
                      "oos:ValidateTemplateContent"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    • 策略示例三:系统运维管理的管理员权限

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "oos:*",
                  "Effect": "Allow",
                  "Resource": "*"
              },
              {
                  "Action": "ram:PassRole",
                  "Resource": "*",
                  "Effect": "Allow",
                  "Condition": {
                      "StringEquals": {
                          "acs:Service": "oos.aliyuncs.com"
                      }
                  }
              }
          ]
      }
  5. 创建权限策略页面,输入策略名称和备注,然后单击确定

    创建完成后,您可以单击策略详情查看详细信息。如果策略内容需要进一步修改,也可以单击修改策略内容进行相应调整。

步骤二:为RAM用户授予相关权限

  1. 在左侧导航栏,选择身份管理 > 用户image

  2. 找到已创建的RAM用户,单击对应操作列下的添加权限

  3. 权限策略区域,选择一个或多个系统权限策略或者自定义权限策略。

  4. 单击确认新增授权