Apr 102020
 

经常有朋友找我讨论如何去测试各个公有云,其实市场上的测试,目前都是比较原始阶段,直白点,就是启动一个虚拟机去DD,拿是没啥意思的,猫腻,我就不说了。那种简单的功能对比,搞的像投标,也是完全没任何意义。

这次测试,是基于我的一个使用场景来测试,发现不少问题,这里就整理一下。作为阿里云的MVP,也是需要多多提有价值的建议。不然明年就评选不上。

一个团队,项目使用阿里云,和多个团队,项目使用阿里云,你所面临管理,权限的问题,是不一样的。

当面对多个项目使用一个公有云账号的时候,那么对于目前国内公有云厂商是一个很大的挑战,基于这个场景去测试,估计国内的公有云厂商,都会底气不足。

  • 每个项目完全独立,互相不影响
  • 每个项目可以独立核算,至少知道自己的消费情况
  • 一个项目可能会有多个管理员进行管理

https://help.aliyun.com/document_detail/93743.html

阿里云的官方文档。悲催,官方文档操作,满屏的UI报错,我都忍,居然安全组都无法创建。

阿里云概念

技术上各大公有云的概念,其实是有差异的。这里就介绍一下阿里云和其他云,差异的地方。

子账号

你在阿里云注册的账号,称为主账号,阿里云的子账号,和OpenStack,青云的子账号是有所不同。你可以理解阿里云的子账号,就是给运维人员分配的账号。你会发现你创建的子账号,登录进去,要么什么都干不了,要么什么都能干。

如果我没权限,你就让我根本看不到菜单。否则我点击,显示权限不足,是很烦人的。

RAM

RAM,全称是Resource Access Management,简称RAM。那么他可以给子账号进行授权,权限还可以自己定义。那么设计是非常理想的。那么我们就需要看看是否可以满足我们的需求。

我知道AWS有RAM的功能,国内的公有云厂商都没有,曾经有一个和青云的交流,提到过他们计划搞RAM,不过都过去4年,都没实现。

阿里云的RAM,其实目前看来,真的还是需要打磨。问题很多。

阿里云推荐用户采用子账号管理日常的工作,给某个子账号授权,让他们可以进行日常的管理工作。不过有时候很悲催,例如开通镜像仓库的功能,就必须用主账号才能开通,没有为什么。

资源组

Resource Group,你可以理解公有云所有的服务都是资源,我们把资源归类,一个资源,只能归属一个资源组。

VPC和安全组

目前阿里云的所有虚拟机,都是在VPC里面,已经不能使用以前那种所谓经典网络,强制使用VPC,这样平台来说,安全比较可控。

无论AWS,还是OpenStack,安全组,都是独立的。安全组创建后,你可以放到任意的虚拟机使用。那么对于阿里云来说,安全组,必须和VPC进行关联,给这个vpc下的虚拟机使用。这种差异,了解了,就避免使用过程中的麻烦。

EIP和公网IP

这真的是阿里云和别的不一样的地方。你创建虚拟机的时候,让自动分配的公网IP地址,和你单独申请的公网IP地址,是不一样的。一个区别可能就是删除虚拟机,那么自动分配的那个公网IP就会删掉。

这个地方,其实很怪。

Region 和可用区

这个概念和AWS是一样的。阿里云创建虚拟机的时候,让你选择区域和可用区。其实你创建的虚拟机的可用区,是由你使用交换机的区域决定的。需要注意的是,不同的region,不同的可用区,提供的虚拟机的种类不太一样,你需要确认你需要的资源,这个region和可用区有才行。

场景

我现在有一个阿里云公有云账号,有多个项目需要使用阿里云的资源,我们希望可以把他们完全隔开,不考虑任何的共享。

具体的做法就是:通过RAM授权,每个子账号,只能管理,使用自己的资源组

这应该是每个企业的常见需求。

子账号登陆后

  1. 子账号可以使用阿里云上所有的资源
  2. 他只能看到和维护自己创建的资源
  3. 一个资源组里,可以有多个子账号
  4. 子账号可以看到他们使用资源的费用

从阿里云的文档和配置过程,阿里云通过资源组,是可以实现这个需求,不过由于权限,导致根本无法使用。这个就是需要你经过场景的实际测试。才能发现问题。

实施

这是我个人的阿里云账号,和企业的阿里云账号,其实功能是完全一致,除了个别功能,只针对企业用户开放。

创建2个资源组

资源组

创建两个用户:test1,test2

user

这个时候,如果你使用test1账号登录,登录进去是什么都做不了。

授权

我们给test1在自动驾驶的资源组里,具备管理员的权限。test2用户在测试资源组里,具备管理员权限

car-right

对test2用户,同样操作。

检查用户权限

test1

权限范围的地方,大家就要注意,一串数字,其实就是你的资源id号,表示你在这个资源组里具备的权限。

result

这个时候,在主账号的配置,都已经完成。让test1账号,具备某个资源组的全部管理功能。

测试

test1用户登录

test1-login

只能看到授权的资源组,看不到默认的资源组。达到我们的目标。这其实就是阿里云的产品经理设计的结果,不过后面的测试,就没那么顺利。

阿里云上可以在虚拟机创建的过程中,提示把

  1. VPC和交换机
  2. 安全组

创建出来,我这次就提前创建,创建任何资源,都必须注意创建的区域:Region和可用区。

北京二区

创建VPC和交换机

vpc-h

一个vpc,底下可以是多个交换机,每个交换机,不同的网段,等于不同的vlan划分开,还能选择不同的可用区。

vpc和交换机创建成功后,你有可能看不到

bug1

这就是一个bug。选择账号全部资源,你是看不到你创建的vpc。只能选择自己的资源组。阿里应该是考虑到一个子账号,有多个资源组的情况下,如何展示。

进入刚才创建的VPC

big2

SLB和RDS,显示没获取。其实就是权限上有问题。ECS我也没创建,就显示0。所以我猜测我去创建LB和RDS,会失败。

如果你创建RDS,会提示无法找到VPC和交换机。他已经存在,找不到。其实这块,应该是RAM权限有bug导致。

如果你创建安全组,其实默认也会出现找不到VPC的情况。

安全组

专有网络的地方,是找不到你刚才创建的VPC,你通过创建专用网络去创建,哪怕你再创建新的一个,也是无法看到。

当安全组都无法创建。那么其实后面就无法进行。

2020年4月10日,我测试,还是这种情况。

我直接通过ECS去创建虚拟机,你不能指定安全组,不过你确实可以把虚拟机创建出来。但是你是看不到安全组的规则。

  2 Responses to “阿里云资源组功能测试”

  1. 有空试试 zstack 的项目管理,多多提意见 😀
    https://www.zstack.io/help/tutorials/co_module_tutorial/1.html

 Leave a Reply

(required)

(required)

This site uses Akismet to reduce spam. Learn how your comment data is processed.