大纲
1 作用
一言以蔽之,AWS IAM就是为了管理:谁 (不)可以 对什么 做什么。
2 初创公司IAM成长记
2.1 根用户(Root User)
初创的软件研发公司“阿拉Software”,只有老王一人。他同时身兼老板和前后端研发工程师。为了管理方便,他只用了一个代码仓库管理了前后两端的代码。而作为根用户,他可以创建或删除代码仓库,但是不能提交代码,因为他还不是用户(User)。
2.2 用户(User)
2.2.1 管理员
老王为了能提交代码,他需要为自己创建一个用户(User)。由于只有他一个人,他就需要对代码仓库有全部权限。
谁 | 对什么 | 做什么 |
---|---|---|
老王 | 对代码仓库 | 做任何操作 |
2.2.2 普通用户
随着业务的快速发展,老王已经忙不过来了。于是他招聘了小李负责前端研发,小张负责后端研发。
小李经常会对整个工程进行字符串替换,偶尔会把后端的代码也改掉,造成线上Bug。为了规避这个问题,老王建立了前端代码仓库A,并只让小李提交;建立了后端代码仓库B,只让小张提交。
谁 | 对什么 | 做什么 |
---|---|---|
老王 | 对代码仓库A、B | 做任何操作 |
小李 | 对代码仓库A | 提交代码 |
小张 | 对代码仓库B | 提交代码 |
2.2.3 规模膨胀
在感受到代码功能分离带来的安全和稳定性后,老王要求每个独立的产品有各自的代码仓库。这样就不会因为A产品的代码改动,影响到可能同在一个代码仓库中的其他产品。
经过了半年研发,前端多出了C、E和G三个代码仓库;后端多出了D、F和H三个代码仓库。此时权限管理变成了这样:
谁 | 对什么 | 做什么 |
---|---|---|
老王 | 对代码仓库A、B、C、D、E、F、G和H | 做任何操作 |
小李 | 对代码仓库A、C、E和G | 提交代码 |
小张 | 对代码仓库B、D、F和H | 提交代码 |
公司的产品在市场上获得热烈的反响,老王准备扩大前后端研发团队以加速产品迭代速度。但是每次配置新人的权限时要非常小心,以避免配错或配漏代码仓库。
谁 | 对什么 | 做什么 |
---|---|---|
老王 | 对代码仓库A、B、C、D、E、F、G和H | 做任何操作 |
小李 | 对代码仓库A、C、E和G | 提交代码 |
小王 | 对代码仓库A、C、E和G | 提交代码 |
小赵 | 对代码仓库A、C、E和G | 提交代码 |
小张 | 对代码仓库B、D、F和H | 提交代码 |
小钱 | 对代码仓库B、D、F和H | 提交代码 |
小周 | 对代码仓库B、D、F和H | 提交代码 |
随着研发工程师数量的