通过RAM对ECS进行权限管理

本文介绍了通过RAM对云服务器(ECS)进行权限管理,以满足RAM用户操作ECS的多种需求。

背景信息

RAM提供的ECS系统权限策略如下:

  • AliyunECSFullAccess:管理ECS的权限。

  • AliyunECSReadOnlyAccess:只读访问ECS的权限。

如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。ECS鉴权列表,请参见鉴权规则

操作步骤

  1. 创建RAM用户。

    具体操作,请参见创建RAM用户

  2. 创建自定义策略。

    更多信息,请参见创建自定义权限策略权限策略示例

  3. 为RAM用户授权。

    具体操作,请参见为RAM用户授权

    其中,授权范围您可以选择:

    • 整个云账号:权限在当前阿里云账号内生效。为方便操作,本示例选择整个云账号

    • 指定资源组:权限在指定的资源组内生效。资源组授权示例,请参见使用资源组管理指定的ECS实例

权限策略示例

  • 示例1:授权RAM用户管理2个指定的ECS实例。

    假设您的账号购买了多个ECS实例,而作为RAM管理员,您希望仅授权其中的2个ECS实例给某个RAM用户。ECS实例ID分别为i-001、i-002。

    {
      "Statement": [
        {
          "Action": "ecs:*",
          "Effect": "Allow",
          "Resource": [
                      "acs:ecs:*:*:instance/i-001",
                      "acs:ecs:*:*:instance/i-002"
                      ]
        },
        {
          "Action": "ecs:Describe*",
          "Effect": "Allow",
          "Resource": "*"
        }
      ],
      "Version": "1"
    }
    说明
    • 授予该权限策略的RAM用户可以查看所有的ECS实例,但只能操作其中2个ECS实例。如果您只想查看和操作这2个ECS实例,您可以使用资源组授权的方式。具体操作,请参见使用资源组管理指定的ECS实例

    • Describe*在权限策略中是必须的,否则用户在控制台将无法查看任何ECS实例。但使用API、CLI或SDK可以直接对这2个ECS实例进行操作。

  • 示例2:授权RAM用户仅可以查看华北1(青岛)地域的ECS实例,但不允许查看磁盘及快照信息。

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ecs:Describe*",
          "Resource": "acs:ecs:cn-qingdao:*:instance/*"
        }
      ],
      "Version": "1"
    }
    说明

    如果您想授权RAM用户查看其他地域的ECS实例,可以将Resource中的cn-qingdao替换为其他地域ID。关于地域ID,请参见地域和可用区

  • 示例3:授权RAM用户创建快照。

    如果RAM用户已拥有ECS实例管理员权限,但仍不能创建磁盘快照,再次授予RAM用户指定磁盘的权限即可正常使用。ECS实例ID为i-001,磁盘ID为d-001

    {
      "Statement": [
        {
          "Action": "ecs:*",
          "Effect": "Allow",
          "Resource": [
            "acs:ecs:*:*:instance/i-001"
          ]
        },
        {
          "Action": "ecs:CreateSnapshot",
          "Effect": "Allow",
          "Resource": [
            "acs:ecs:*:*:disk/d-001",
            "acs:ecs:*:*:snapshot/*"
          ]
        },
        {
          "Action": [
            "ecs:Describe*"
          ],
          "Effect": "Allow",
          "Resource": "*"
        }
      ],
      "Version": "1"
    }