使用IBM Cloud IAM 进行权限管理 (1) - 概念,IAM的使用,标签,经典架构的授权
使用IBM Cloud IAM 管理云端资源 - 概念,IAM的使用,标签,经典架构的授权
概念
在实际上手之前,有几个概念需要提前说明白。直接上图,如下:
在IBM Cloud的一个账号(Account)下,包含多个用户(User)和Service ID。 用户好理解,Service ID 用来标识一些需要访问公有云资源的应用,例如某个程序需要访问某个资源,那么这个应用程序就会被赋予一个Service ID,给这个Service ID授权,就是给这个应用程序授权。
用户和Service ID都是访问组(Access Group)的成员。Access Group 是用户(和Service ID)的集合;给Access Group授权就是给组里的每一个成员授权,这样方便管理。
与Access Group相对的,还有一个 Resource Group, 顾名思义,这是资源的集合。授权Resource Group的访问,就是授权对这个资源组里所有资源的访问。
狼群在捕获猎物的时候,只有头狼能够吃到肝,地位最低的狼可能只能闻味。
同样,不同角色(Role)的访问者,对资源的访问力度也是不同的,有的人是Manager,可以最大限度的掌控资源(看你不爽,删之)。有的人是viewer,也就是能看看,其他的您就别操心了。
Policy是连接访问组(用户),角色(Manager/operator)以及资源的纽带。Policy的作用是告诉系统,有这样一个人(user),他对资源A(Resource)的访问权限是Manager(可以查看,修改,删除等)。
由于历史的原因,权限管理这块在IBM 公有云上并没有做的统一,导致IAM不能管理平台上的所有资源,它主要用来管理 PaaS 相关和账户管理相关的一些资源。PaaS相关的服务比如Blockchian,Cloudant,Object Storage; 账户管理相关的,例如查看账单,给后台开工单之类的服务。还有好多好多。
除了IAM,IBM云上的权限管理还包括Cloud Foundry access 和 Classic Infrastructure access。 其中Classic Infrastructure主要管理经典架构下的资源,例如虚机,物理机。这个资源我们在后面的操作中会用到。
如上图所示,对每种资源来说,都有Platform roles和Service roles,前者是一种通过平台操作或查看资源信息的权限,比如说对资源进行搜索,给资源加标签的功能。后者是对资源进行实际使用的功能。
我们的项目,需要给新来的小朋友们分配的权限有如下几个:
- Classic Infrastructure相关:添加新服务器,升级服务器,取消服务器。
- PaaS相关:查看账单,有问题了给后台开工单的权限。另外因为有些文件需要存放在对象存储里面,这个权限也要给。
启用IAM的服务
IBM Cloud上的服务有启用了IAM的(IAM-enabled),也有没启用的。
对启用IAM(IAM-enabled)的服务和资源,如上文所述,IAM会统一管理这类资源的访问,以及资源组本身。这种管理是基于IAM策略、资源组(Resource Group)和访问组(Access Group)的。对于Cloud Foundry组织和空间,也就是没有启用IAM的服务,这种方式不适用,用这些的玩家请绕行。
想知道哪些服务启用了IAM,可以通过如下步骤查看启用IAM的服务清单:
也可以在创建新的服务时,看系统是否提示为实例资源选择资源组,有资源组选项表明是启用了IAM的服务,比如下文将描述的对象存储。
给资源打标签
我们给客户做的项目权且称作PrjA,老三套环境:开发、测试、生产。租用IBM Cloud的IaaS资源,比如物理机、虚拟机、对象存储时,把这些资源按照环境分成三个资源组PrjA-Dev, PrjA-Test, PrjA-Prod。
在使用IBM Cloud服务的过程中,强烈建议给各个实例打上标签,以便了解各个项目的资源使用情况,对于同时跑几个环境的情形,标签尤其关键,至少不会把同事正在做的工作删掉,别问我怎么知道的。
标签可以在资源列表页面打:
也可以在实例详细信息页面打:
添加标签:
系统会自动将标签调整为全小写:
保存后看起来是这样:
随时可以点击上面的铅笔图标,增删改标记。
为用户设置经典架构访问权限
以开发团队用户B为例,管理员为B设置权限的过程如下,这些步骤也适用于对物理机资源的授权。
首先用户B需要有注册IBM Cloud的账号的邮箱。
管理员将用户加入到项目的账号中:
邀请成功后,用户将显示在如下用户列表。选择用户信息行右边的省略号,在下拉列表中
选择“管理用户”:
选择“经典基础架构”,“许可权”,用户B是开发团队成猿,为其赋予“基本用户”许可权集,点击“设置”,点击“应用”使其生效:
选择“经典基础架构”下的“设备”菜单,点选用户B需要访问的虚拟机,点击“设置”, 获取设备的访问权。
此时,用户B登录IBM Cloud后可以看到自己被授权访问的两台虚机:
顺便提一句,个人感觉IBM Cloud 的门户UI在使用便捷程度上还是有进步的,较之此前,目录结构更清晰,搜索也更方便了。