chaihongjun.me

利用阿里云的RAM做ESC分类资源管理

利用阿里云的RAM做ESC分类资源管理

随着公司规模的扩大,网站运营的数量在逐渐增加,购买的阿里云ECS也是越来越多,为了便于管理最先开始用的是某一个阿里云账户购买ECS,但是后期由于安全和管理的问题,所有ECS集中在一个阿里云账户下,会发现,如果要管理非常不便利。于是,通过阿里云的RAM,将ECS资源分配给不同的用户去管理,互补干涉。

关于RAM里面的子帐号,企业别名等等,这里就不一一介绍了。

RAM的入口:https://ram.console.aliyun.com/

RAM 有相关的用户,群组,策略等概念。这里的用户和群组和linux的用户,组概念可以看作类似的道理,这里主要讲如何指定策略。

需求:阿里云账户下有5台ECS,现在需要将其中一台ECS,单独赋给某个员工去管理。阿里云的帮助系统是这样描述的:

假设您名下有10台ECS实例,而您想授权某个子用户只能查看并管理其中的2台实例,这个怎么办?这个目前RAM还无法实现(后续会通过其它机制来满足)。

但目前可以做到的是,您可以授权某个子用户能查看所有实例但只能操作其中的2台实例,这个操作包括启动、停机、释放等针对指定实例的控制台或API操作。具体做法是要使用自定义授权策略的功能,

意思很简单,可以实现让这个员工看到我所有ECS的资源,但仅仅是看到无法控制除了授权的那台ECS资源。具体策略如下:

{
  "Statement": [
    {
      "Action": "ecs:*",
      "Effect": "Allow",
      "Resource": [
                  "acs:ecs:*:*:instance/这里是ECS的实例ID"
                  ]
    },
    {
      "Action": "ecs:Describe*",
      "Effect": "Allow",
      "Resource": "*"
    }
  ],
  "Version": "1"
}

如果是多台ESC,

{
  "Statement": [
    {
      "Action": "ecs:*",
      "Effect": "Allow",
      "Resource": [
                  "acs:ecs:*:*:instance/这里其中一台ECS的实例ID",
                  "acs:ecs:*:*:instance/这里另外一台ECS的实例ID",
                  ......
                  ]
    },
    {
      "Action": "ecs:Describe*",
      "Effect": "Allow",
      "Resource": "*"
    }
  ],
  "Version": "1"
}

将策略运用到组或者用户上就OK了。

另外,当授权完之后的子用户登录地址变成了:
http://signin.aliyun.com/这里是企业别名/login.htm

知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。作者:chaihongjun»