今天我们要来介绍 AWS IAM 的架构概念,那我们开始吧!
IAM 里面有个重要元件叫做 Policy,是用来规范某人使用 AWS 资源的权限,而在 Policy 之下有两个类别,分别为 Identity-based policy 与 Resouce-based policy,如下图:
每一个 Identity-based policy 中有多个 Statement ,这边用 * 符号代表多个(图#1),而每一个 Statement 只会归属於一个 Policy (图#2),而 Statement 就是更细部去定义如何去使用特定的 AWS 服务,Statement 之中有三大要素:
在 IAM 中有一个叫 User 的东西,也就是常见的登录帐号,每一个 Policy 可以被多个 User 使用,而每一个 User 也可以拥有多个 Policy (下图中的 * 符号代表多个)。
除了 User 以外,IAM 还提供给我们 Group,每一个 Group 可以涵盖多个 User,每一个 User 可以同时存在於多个 Group 中。
而 Group 与 Policy 之间的关系也一样,一个 Policy 可以被多个 Group 使用,Group 也可以同时套用多个 Policy。如下图:
除了 User 与 Group 之外,IAM 还提供给我们 Role 作使用,一个 Policy 可以同时给多个 Role 使用,一个 Role 也可以套用多个 Policy。
Role 主要目的,就是让「不是登录帐号」的其他东西(譬如说不是Group/User),来使用 AWS 的 Service (例如 EC2 Instance),透过这个方式就可以将 AWS Service 连接到 IAM 服务之中。举例,当我创造一个 EC2 Instance 时同时创建一个 Role,让他可以去连接到 S3 Bucket 的权限。如下图:
与 Identity-based policy 相同,每一个 Resource-based policy 中有多个 Statement (下图中的 * 符号代表多个),而每一个 Statement 只会归属於一个 Policy (图中以数字 1 代表此关系)。不过 Statement 中的 Resource (下图红框)与上述介绍有不同的意义,这边特别写上 self 来表示。
通常在设定 Resource-based policy 时,通常是去各个服务的介面设定,譬如说在某个 S3 Bucket 的介面下,去设定 Resource-based policy,而 Resource (下图红框)就表示此 S3 Bucket 本身。
要决定套用给谁,必须使用 Statement 的 Principal 栏位(下图粉色),若想使 User 能使用 AWS Service,就必须在 Principal 里进行设定。如下图:
Identity-based policy: 可以看到 User、Group 与 Role,他们是在 Policy level,一套用就是整个 Policy 底下的 Statement 一次套用(下图#1)
Resource-based policy: 而 Principal 则不是,Principal 是在 Statement level,换言之,在每一个 Statement 都要做一次 Principal 的设定(下图#2)
除此之外 Identity-based policy 有重复使用的概念,设定好一次就可以套用给 User/Group/Role (下图#3)
Resource-based policy 在每一次撰写时都要到 Service 底下去做设定,跨 Service 之间无法重复使用(下图#4)
从不同角度看 Policy 的功用:
整理结果如下图:
那以上是这次对 IAM 架构的介绍。
那麽明天,我们将接着看到「权限宝石:【Lab】IAM User 建立与使用(上)」!
面对效能强大的 PS4 与 XB1、任天堂这次依然不跟对手比效能、以创意来对决、而且还因为怕被对手复...
这篇一样是Excel复制了很多料号,然後贴入ECR受影响物件 左边一个输入框,右边是系统讯息,上面一...
大家好! 今天我们要实作在触控装置中侦测手势的方向。 我们进入今天的主题吧! 备注:前几天和今天的范...
基本上目前看到的方法大致上都如下图所示,所以我目前实作的也是如此, 因为脑子里没有更好的解决方案(在...