简介: 云上身份安全是当今企业管理者和云上运维团队所面临的挑战之一,针对云上身份管理不全面所产生的风险究竟又哪些?又应当如何应对?本文将结合案例和最佳实践与您分享。

引言

云上身份安全是当今企业管理者和云上运维团队所面临的挑战之一。例如员工离职后发现权限未收回,恶意删除了大规模应用造成企业损失惨重;又比如员工密钥泄露导致被恶意攻击,造成数据泄漏,服务中断等影响。这些真实且震撼的案例还有许多,针对云上身份管理不全面所产生的风险究竟又哪些?又应当如何应对?本文将结合案例和最佳实践与您分享。

从员工入职到离职,进行账号的全生命周期管理

典型场景一

员工离职是一个典型的身份管理场景, 员工离职后,企业没有回收或清理员工对于账号的访问,离职的员工依然可以持续访问和管控企业在云上的资源和数据。将直接导致企业的数据泄漏;如果离职员工蓄意破坏,将直接导致企业的服务中断,造成企业形象、经济损失。

如何回收离职员工的访问权限?遵循「先禁用,后删除」原则

1. 禁用离职员工账号的控制台登录。

禁用控制台登录会较快的将共用账号的问题暴露出来。如果存在共用的情况,首先重置密码止血,再为共用的员工分配新账号。

2. 查看离职员工账号下是否持有永久AK。

如果有,则先冻结AK的访问。员工的账号中的AK是不能用在生产系统中。如果不确定员工账号下的AK是否有在生产系统中使用,可以在用户的AK列表中查看最近使用时间。如果某把AK最近访问时间至今已经有一段时间,则可以放心禁用。如果上一次访问之间至今时间较短。则可以配合ActionTrail的能力,排查访问的服务,以确认是否有使用在生产系统中。如果有使用,则尽快做轮转。

3. 先禁用再删除。

在禁用完离职员工账号访问控制台以及API的访问能力后,通过ActionTrail服务的能力,持续监控一段时间是否有活跃,如果在一段时间内没有活跃动作(登录或API调用),则可将用户及其密钥删除。

典型场景二

企业员工在使用阿里云RAM用户的时候,会设置用户的密码作为登录控制台的凭证。可能由于密码保存不当,共享密码、被钓鱼等方式造成泄漏。通过审计的方式发现有异常登录的情况,或者发现有不熟悉的IAM账号,非自己创建的资源等。均有可能是密码泄漏导致。密码泄漏的问题可导致攻击者冒充员工身份进行资源创建和删除操作,数据读取等操作。造成数据泄漏,服务中断等影响。

如何处置员工密码泄漏?两步快速止血

1. 通过重置用户的密码进行登录阻断,防止攻击者使用已经泄漏的密码进一步登录。

2. 通过审计日志检查是否有新创建的账号或AK。如果有,则对新生成的账号禁用登录,并禁用AK。

如何防止密码泄漏?三招降低风险

1. 加强密码本身保护是重中之重,从创建用户那刻开始:

-设置足够的密码强度,设置密码复用的限制。减少弱密码或旧密码的时候

-设置密码的过期时间,定期更换密码。

-对于登录密码错误设置严格的阻断策略。一段时间内密码错误次数过多将冻结登录。

2. 登录保护,启用MFA:

MFA为除密码以外的新的认证因素。当用户密码严重通过后,还需要输入正确的MFA Code才可以验证通过。阿里云的MFA是基于TOTP协议的动态口令,每30秒生成一个新的6位数口令。当密码泄漏被攻击者使用,攻击者无法获取MFA动态口令也将导致登录失败。

3. 审计异常的登录行为:

通过ActionTrail中的登录成功和失败的日志,通过UA,IP等方式定位疑似异常登录行为的用户。并通过重置密码,启用MFA等方式进行保护。

在阿里云,进行员工入职,离职场景身份管理的最佳实践

一家企业的员工入职和离职,涉及到分配云平台的账号的时候。云上的账号身份的生命周期管理需要和本地的员工的身份管理统一处理。

用户入职

-分配新账号:通过阿里云控制台或集成IMS OpenAPI同步创建用户,不要与其他用户共用,否则将导致不可审计,无法回收权限的问题。

-为账号分配密码:在目录级别配置密码强度及合适的密码生命周期,为用户创建合适的密码,开启MFA,配置合适的登录策略

-为账号分配密钥:区分员工使用的账号和服务使用的账号,员工使用的账号开启永久AK,使用CloudShell替代。服务使用的账号保护好AK Secret,有条件定期做轮转。

员工离职

-遵循先禁用,后删除的原则,禁用用户的控制台登录,禁用用户的AK,有问题可及时回滚配置。

-通过OpenAPI的方式集成在本地IDP,或通过控制台的方式进行关联操作。

-离职员工删除:人员离职一段时间后,通过CredentialReport和ActionTrail的审计日志确认不活跃后,删除不活跃的账号和AK。

生命周期内定期审计

使用ActionTrail和CredentialReport,对员工的账号活跃度以及操作记录做持续审计,发现不活跃的账号并及时整改。

一劳永逸的解决身份管理和认证的统一问题

通常在企业内,分配和回收员工的工作由HR的系统触发,(或企业自己的云管平台触发),上云账号的管理员/系统接受到了这个事件后,人肉/系统自动分配或回收用户的登录权限。但是这里可能要依赖人肉管理,或依赖企业开发系统去实现。因此也给企业的管理带来了额外的管理和研发审计的成本。一旦忘记操作或系统存在bug,将给企业的数据安全和生产稳定性带来风险。

那么,有没有更好的办法,不额外给员工颁发阿里云RAM用户的登录密码,将登录认证集中在企业本地的员工系统?答案是有的,企业可以通过使用以下两种方式将身份管理和身份认证统一到本地IDP进行集中管理:

方案一:使用SSO将身份认证统一到本地IDP。

阿里云作为SP(Service provider),支持SAML协议。企业本地身份系统可以使用SAML 协议,打通本地到云上的控制台访问。无需在云上额外的为用户配置访问控制台的认证方式。

企业的管理员首先配置好企业本地IDP和阿里云账号的信任关系,用户在企业本地IDP认证完成后,企业IDP向阿里云发起SAML SSO。基于配置好的信任关系,阿里云侧按照SAML SSO中描述的身份信息和session信息生成登录态。完成了指定身份的登录。目前登录行为包含两种方式:

1)基于RAM用户的SAML SSO

企业用户通过OpenAPI或SCIM将企业员工的信息同步到云上,通过SAML Response中指定的用户确定阿里云RAM的用户,以指定用户的身份登录到阿里云上。好处是以RAM用户的身份登录到阿里云的控制台,权限可以根据用户做定制。

2)基于RAM角色的SAML SSO

企业通过OpenAPI或控制台创建角色并授予权限,通过SAML Response中指定的角色确定阿里云的RAM的角色,以指定角色的身份登录到阿里云上。好处是以RAM角色的身份登录到阿里云的控制台,无需配置额外的身份,企业员工可以共用角色。

企业基于这两种方式SSO到阿里云控制台,只需在本地的IDP维护认证信息,无需为员工在阿里云的RAM账号上创建密码。员工只需要保管好自己在企业IDP中的密码即可。同时当员工发生离职后,企业只需要回收本地员工的账号,员工无法直接访问云端的账号。

方案二:使用IMS OpenAPI/SCIM将员工身份管理统一到本地IDP

  • IMS 提供OpenAPI供企业管理系统集成,当本地员工发生入职,离职或调岗的时候,可以通过IMS 的OpenAPI在云端进行异步的管理动作。
  • 企业服务如果支持SCIM,可以通过RAM提供的SCIM接口,自动的管理用户的新增和删除操作。(员工对应的账号的AK不要用于生产系统,如果企业员工发生离职或者调岗,触发了云端账号的删除动作,将直接删除账号。对应的AK一并删除。如果员工账号的AK用于生产系统,可能直接导致故障)。

总结

阿里云企业IT治理身份管理高级技术专家冬山结合产品研发和客户服务的经验总结了核心原则:“对于身份管理的最佳实践,核心是『统一管理身份和认证』,并『进行定期的用户认证审计』。”

原文链接​​​​​​​

本文为阿里云原创内容,未经允许不得转载

谈身份管理之进阶篇 - 快速了解从管理到治理的最佳方案相关推荐

  1. 《钻哥学管理之开启篇:技术+业务+管理》(Yanlz+Unity+SteamVR+云技术+5G+AI=VR云游戏=技术+业务+管理+使命必达+DF17+立钻哥哥+==)

    <钻哥学管理之开启篇:技术+业务+管理> <钻哥学管理之开启篇:技术+业务+管理> 版本 作者 参与者 完成日期 备注 YanlzManager_Open_V01_1.0 严立 ...

  2. SELinux进阶篇 应用目标策略管理非限制进程和用户

    原文请见:http://netsecurity.51cto.com/art/201110/298841.htm 非限制的进程运行在非限制域中.比如,init进程运行在非限制的initrc_t域中,非限 ...

  3. phpcmsV9 QQ接入 - 线下phpsso应用管理 - 踩坑篇

    phpcmsV9 QQ接入 - 线下phpsso应用管理 - 踩坑篇 对于"phpsso"–> "应用管理"–> 无法登录和设置. 发现1: 本地的 ...

  4. Linux进阶篇--磁盘分区管理

    Linux进阶篇–磁盘分区管理 11.1 磁盘基础介绍 设备文件 * I/O Ports:I/O设备地址 * 设备类型:   块设备:block,存取单位"块",来自于磁盘   字 ...

  5. 快速、灵活的文件同步复制工具—rsync(进阶篇)

    一.自述 前一篇文档讲解了rsync的安装与配置以及应用实例(http://cfwlxf.blog.51cto.com/3966339/1406364),看过前一篇的文档朋友,尽管你还未曾在线上环境使 ...

  6. 程序员C语言快速上手——进阶篇(八)

    文章目录 进阶篇 程序结构与作用域 局部变量 全局变量 static关键字 extern关键字 模块化开发的补充 头文件的嵌套包含 头文件的保护 欢迎关注我的公众号:编程之路从0到1 进阶篇 程序结构 ...

  7. Java面试题-进阶篇(2022.4最新汇总)

    Java面试题-进阶篇 1. 基础篇 1.1 基本数据类型和包装类 1.2 Double转Bigdecimal可能会出现哪些问题?怎么解决? 1.3 equals 与 == 的区别? 1.4 Java ...

  8. 【备战春招/秋招系列】美团Java面经总结进阶篇 (附详解答案)

    <!-- MarkdownTOC --> 一 消息队列MQ的套路 1.1 介绍一下消息队列MQ的应用场景/使用消息队列的好处 ①.通过异步处理提高系统性能 ②.降低系统耦合性 1.2 那么 ...

  9. Netty系列进阶篇一:阻塞和多路复用到底是个啥?

    文章目录 一.进阶篇:Netty封装了什么? 二.刨根问底:到底什么是阻塞?什么是多路复用器? 1.操作系统基础 1-1 用户态与内核态 1-2 系统调用 1-3 File Descriptor 文件 ...

最新文章

  1. mac git命令按tab键自动补全
  2. SQL Server 2008 复习(一)
  3. python 爬虫爬不出来_爬虫爬不进下一页了,怎么办
  4. *[topcoder]JumpFurther
  5. 广西工学院c语言试题答案,广西工学院的C语言考试试题
  6. java怎么写事件listener_java 事件监听器ActionListener
  7. python 登陆微博 被删除 token_爬取微博信息,使用了cookie仍然无法登录微博
  8. [Luogu 2486] SDOI2011 染色
  9. 支持蓝牙的模拟器_PM 2032电池模拟器展会现场演示
  10. 324. Wiggle Sort II
  11. Retrofit2设置返回类型是字符串(String)类型
  12. FastReport studio 动态加载数据集 (zhuan)
  13. linux安装软件统一格式化,Ubuntu 14.04安装格式转换软件Format Junkie 1.07
  14. Windows桌面便签小工具帮你打造高效桌面
  15. 关于约束多目标MOEA/D-DAE
  16. matlab入门——矩阵(运算、编辑、高维矩阵、对角矩阵)
  17. 【自动驾驶】RTK(高精度的GPS测量)
  18. 数独问题(java)
  19. Unity mesh换装
  20. Proteus,keil5仿真运行stm32程序,流水灯详细教程

热门文章

  1. 程序员肚子越来越大_肚子越来越大,除了肥胖还可能是疾病信号!腰间搓一搓,排出痰浊,消脂防病~...
  2. 禁用计算机组策略和管理,计算机正在使用时,禁用或关闭组策略刷新 | MOS86
  3. mysql操作json优点和缺点_SQL-mysql操作json
  4. linux下openldap版本查询,用openldap进行linux认证
  5. 六本JAVA架构书,构建科学得架构知识体系
  6. java substring 越界_我在java中用substrng()提取某一字符串的子串是老是出现越界的问题,求指教~~~...
  7. css3弧形跑道效果_Css 实现漂亮弧形
  8. 捷波朗STORM耳机设置中文_2020年 除了Airpods pro以外无线降噪蓝牙耳机如何选?五款热门入耳式蓝牙降噪耳机推荐...
  9. 【学习笔记】路由算法与路由协议:RIP协议与距离向量算法、OSPF协议与链路状态算法、BGP协议
  10. 计算思维c语言软件,C语言编程入门与计算思维