AWS IAM

  1. IAM (Identity and Access Management)
    1. IAM不是用于存储应用的认证和授权信息,是用于AWS资源的认证和授权
    2. IAM也不用于操作系统的认证和授权
  2. 常见认证/授权场景
    1. 操作系统:AD/LDAP
    2. Application:AD, Application user repository, Amazon Cognito
    3. AWS Resources: IAM
  3. 操作IAM的方式
    1. AWS console
    2. CLI
    3. SDK
    4. RESTful API
  4. Principal,IAM实体
    1. Root account,创建AWS时的跟账号
    2. IAM users,root account或具有IAM权限的IAM user创建的账号
    3. Roles/Temporary security tokens,角色或者临时安全令牌
  5. Roles/Temporary Security Tokens的使用场景
    1. 为EC2增加角色,这样EC2 instance就具备了相应的权限,在EC2上面执行CLI,SDK调用等就不用输入用户名/密码或者access key ID
    2. Cross Account Access,为其它account的IAM用户分配权限
    3. Federation:为其它应用的用户分配权限,例如,常见的微信登录,QQ登录等,在登录某个网站/系统时,可以注册新用户,也可以使用微信/QQ等账号登录,登录后为其授权。
  6. 为什么为EC2分配role,而不是内嵌Access Key ID
    1. 两种方式都可以为EC2授权
    2. 将Access Key ID和Security Access Key内嵌到EC2,并存放在某个配置文件,会增加泄漏的风险,且当要rotate Access Key ID的时候需要重新拷贝Key到EC2,存在安全隐患,也不方便
    3. 为EC2分配role以后,当调用API,SDK操作AWS资源时,AWS会自动生成临时security token和session ID,并将其设置为API,SDK的参数,不存在拷贝key的过程,也不存在rotate的问题
  7. Authentication,认证
    1. 验证某个账号是否合法,合法则允许进入系统,否则不能进入
    2. User Name/Password:通过用户名密码的方式认证
    3. Access Key:通过与用户名/密码关联的Access Key ID和Security Access Key认证
    4. Access Key/Sesstion Token:如果分配了Role,则使用Access Key和Session Token认证,这些都是临时生成的
  8. Authorization,授权
    1. 为合法用户授权,可以登录的用户有很多,不同的用户有不同的权限,通过policy为不同的Principal授权
    2. Policies,允许(拒绝)在某种条件下操作某个服务下的某些资源,JSON格式
      1. Effect,Allow or Deny
      2. Service,将要操作什么服务
      3. Resource,将要操作服务的什么资源,一般Service和Resource是一起用ARN定义的
      4. Action,具体的操作,如List,Delete,etc
      5. Condition,在什么条件下才有此权限,如IP Range,特定的时间等
    3. Policy 示例

  9. 为Principal授权
    1. policy分为两种,系统预定义的policy和用户自定义的policy
    2. IAM User可以属于某个Group,为Group授权后,Group里面所有的用户都具备相应的权限
    3. 可以为User/Group直接分配系统预定义的policy或用户自定义的policy
    4. 授权有四种场景:
      1. 为IAM User分配系统预定义的policy
      2. 为IAM User分配用户自定义的policy
      3. IAM User属于某个Group,为Group分配系统预定义的policy
      4. IAM User属于某个Group,为Group分配用户自定义的policy
      5. 最佳实践:使用root账号创建IAM admin 账号,之后退出root账号,用IAM admin账号管理所有IAM用户
      6. 不能将role加入到Group,但可以为role分配系统预定义或用户自定义的policy,这点与IAM User一样
  10. MFA (Multi-Factor Authentication)
    1. 为IAM用户或root账号启动MFA,这样在登录系统时不仅需要输入用户名/密码,还需要输入MFA code,MFA code可以来自硬件设备或软件app
    2. 强烈要求root账号启动MFA
    3. MFA code是通过MFA Key计算出来的,知道MFA Key也就知道了MFA Code,MFA Code和时间有关,30s过期
  11. Rotating Keys
    1. 需要定期Rotate Access Key,这样能避免Access Key泄漏
    2. 好像不能自动rotate key,需要手动操作
  12. 如何处理多个权限
    1. 综合分析所有policy,只要有一个deny,则deny,而不管是否有allow
    2. 没有allow,默认都是deny
    3. 其它则allow
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值