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

背景信息

访问控制RAM是阿里云提供的资源访问控制服务。更多详情,请参见什么是RAM。以下列举了访问控制RAM的典型场景:

  • 用户:如果您购买了多台云服务器ECS实例,您的组织里有多个用户(如员工、系统或应用程序)需要使用这些实例,您可以创建一个策略允许部分用户使用这些实例。避免了将同一个AccessKey泄露给多人的风险。
  • 用户组:您可以创建多个用户组,并授予不同权限策略,起到批量管理的效果。例如:
    • 为了加强网络安全控制,您可以给某个用户组授权一个权限策略,该策略可以规定:如果用户的IP地址不是来自企业网络,则拒绝此类用户请求访问相关ECS资源。
    • 您可以创建以下两个用户组管理不同工作职责的人员,如果某开发人员的工作职责发生转变,成为一名系统管理人员,您可以将其从Developpers用户组移到SysAdmins用户组。
      • SysAdmins:该用户组需要创建和管理的权限。您可以给SysAdmins组授予一个权限策略,该策略授予用户组成员执行所有ECS操作的权限,包括ECS实例、镜像、快照和安全组等。
      • Developers:该用户组需要使用实例的权限。您可以给Developers组授予一个权限策略,该策略授予用户组成员调用DescribeInstances、StartInstance、StopInstance、RunInstance和DeleteInstance等权限。

权限策略

权限策略分为系统策略自定义策略
  • 系统策略:阿里云提供多种具有不同管理目的的默认权限策略。云服务器ECS经常使用的系统策略有:
    • AliyunECSReadOnlyAccess:只读访问云服务器ECS的权限。
    • AliyunECSFullAccess:云服务器ECS的管理员级别权限。
    • AliyunECSImageImportDefaultRole:导入自定义镜像的权限。
    • AliyunECSImageExportDefaultRole:导出自定义镜像的权限。
    • AliyunECSNetworkInterfaceManagementAccess:管理弹性网卡的权限。
  • 自定义策略:需要您精准地设计权限策略,适用于熟悉阿里云各种云服务API以及具有精细化控制需求的用户。如下文(可选)创建自定义权限策略步骤中创建的自定义策略。

前提条件

您已使用云账号登录RAM控制台

操作步骤

本文示例使用主账号在RAM控制台创建一个RAM用户,并授予自定义权限或者系统权限:

  1. 创建RAM用户
  2. (可选)创建自定义权限策略
  3. 授权RAM用户

创建RAM用户

按以下步骤在访问控制RAM控制台创建一个RAM用户:

  1. 在左侧导航栏的人员管理菜单下,单击用户
  2. 单击新建用户
    说明 单击添加用户,可一次性创建多个RAM用户。
  3. 输入登录名称显示名称
  4. 访问方式区域下,选择控制台密码登录编程访问
    说明 为了保障账号安全,建议仅为RAM用户选择一种登录方式,避免RAM用户离开组织后仍可以通过访问密钥访问阿里云资源。
  5. 单击确认

(可选)创建自定义权限策略

除了使用阿里云提供的系统权限,您还可以按以下步骤在访问控制RAM控制台创建一个自定义权限策略:

  1. 在左侧导航栏的权限管理菜单下,单击权限策略管理
  2. 单击新建权限策略
  3. 填写策略名称备注
  4. 配置模式选择可视化配置脚本配置
    • 可视化配置:单击添加授权语句,根据界面提示,对权限效力、操作名称和资源等进行配置。
    • 脚本配置:请参考权限策略语法和结构编辑策略内容。
    选择脚本配置时,Statement结构下的ActionResource参数取值请参见鉴权列表,其他参数取值请参见 访问控制文档 权限策略语法和结构
    • 脚本配置策略示例一:允许RAM用户创建按量付费实例。
      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                          "ecs:DescribeImages", 
                        "vpc:DescribeVpcs", 
                        "vpc:DescribeVSwitches", 
                        "ecs:DescribeSecurityGroups", 
                        "ecs:DescribeKeyPairs",
                        "ecs:DescribeTags", 
                        "ecs:RunInstances"
                ],
                  "Resource": "*"
              }
          ],
          "Version": "1"
      }
    • 脚本配置策略示例二:允许RAM用户创建预付费实例。其中bss相关API主要用于查看并支付预付费订单,其对应的系统策略为AliyunBSSOrderAccess
      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                          "ecs:DescribeImages", 
                        "vpc:DescribeVpcs", 
                        "vpc:DescribeVSwitches", 
                        "ecs:DescribeSecurityGroups", 
                        "ecs:DescribeKeyPairs",
                        "ecs:DescribeTags", 
                        "ecs:RunInstances",
                        "bss:DescribeOrderList",
                        "bss:DescribeOrderDetail",
                        "bss:PayOrder",
                        "bss:CancelOrder"
                ],
                  "Resource": "*"
              }
          ],
          "Version": "1"
      }
    • 脚本配置策略示例三:允许RAM用户创建了ECS实例后查询实例和磁盘信息。
      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                          "ecs:DescribeInstances", 
                          "ecs:DescribeDisks"
                ],
                  "Resource": "*"
              }
          ],
          "Version": "1"
      }
  5. 单击确认

授权RAM用户

按以下步骤在访问控制RAM控制台创授权RAM用户相关权限:

  1. 在左侧导航栏的人员管理菜单下,单击用户
  2. 用户登录名称/显示名称列表下,找到目标RAM用户。
  3. 单击添加权限,被授权主体会自动填入。
  4. 在左侧权限策略名称列表下,单击需要授予RAM用户的权限策略。
    说明 在右侧区域框,选择某条策略并单击×,可撤销该策略。
  5. 单击确定
  6. 单击完成

后续步骤

完成授权后,权限立即生效,RAM用户可以登录RAM控制台操作目标云资源。