AWS IAM
1. 简介
https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html
**AWS Identity and Access Management (IAM)**:AWS身份认证和资源权限控制
AWS account root user:根用户,拥有所有的AWS资源和服务的完全权限。类似于linux的root用户,不可以使用AWS根用户执行日常的操作。而是使用根用户去创建管理员用户和管理员用户组。使用管理员用户执行管理权限。
IAM的特性:
- 共享AWS账户资源,不需要共享key或者密码
- 精细的资源权限控制:对于不同的IAM用户,授予不同的资源权限
- IAM为AWS的application提供AWS资源的访问权限:robot用户
- 联合身份:使用如google账户认证获取临时的credentials来访问某一个IAM user
1. 术语
1. IAM Resources
IAM资源指IAM对象,包括 user, group, role, policy, and identity provider
identity provider:身份认证提供商,如GoogleApps。使用第三方的身份认证方式管理用户以及资源权限。
2. IAM Identities
包括users, groups, and roles。指可以赋予policy的IAM对象,用于身份鉴别以及分组。
3. IAM Entities
可用于鉴权的实体,如具体指 user,federated user(联合用户)和 assumed IAM roles
4. Principals
是指利用 root 用户或 IAM user/role 进行登录并请求(Request)使用 AWS 服务的个人或者应用
5. Authentication and Authorization
Authentication: 身份验证,指用户是否能够通过当前的credentials发送request
Authorization:授权,指当前的request是否有足够的权限执行。
1. Attribute-based access control (ABAC)
基于属性的访问控制,在role和resource的tag:value值相同时,允许访问该资源。增加权限时只需要修改资源的tag:value值。
2. Role-based access control (RBAC)
对不同的IAM identities赋予不同的policy,这叫基于角色的访问控制。若需要修改权限,则需要修改policy
2. 概念
1. users
IAM users: 类似于linux系统中的用户,共享AWS账户资源,user也可以是application的robot用户,user也可以是管理员用户。可以通过创建IAM用户并分发credentials的方式分配账户。或者通过联合身份验证的方式,如G Suite SAML认证的方式,从AWS中获取临时的credentials。
联合身份验证的方式通过google账户认证获取临时的credentials来访问某一个IAM
2. user group
等同于linux的用户组概念。相同group的用户具有类似的权限。
1 |
|
3. policy
policy定义了该用户组下所有的用户对AWS资源操作的权限,如AdministratorAccess管理员权限。policy可以被用户自定义。
1 |
|
policy在赋予用户组后可以继续被管理员更新,以增加或者减少资源权限。
1 |
|
1 |
|
policies中的permission决定了request是否能够被执行。
4. role
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!