第 4 章 身份和访问管理 身份和访问管理
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
身份和访问管理(IAM)也许是最重要的一套安全控制措施。在涉及网络应用程序的入侵事件中,丢失或被盗凭据已连续数年成为攻击者最常用的工具。1 如果攻击者拥有登录系统的有效凭证,那么世界上所有的补丁和防火墙都无法阻止他们!
身份和访问管理经常被放在一起讨论,但重要的是要明白它们是不同的概念:
-
身份是一个人(或自动化)在系统中的表现形式。2验证提出请求的实体是否真的是身份所有者的过程称为身份验证(通常缩写为 "authn")。
-
访问管理就是允许身份执行其需要执行的任务(在最小权限环境中,只允许执行其需要执行的任务)。 检查身份应拥有哪些权限的过程称为授权(通常缩写为 "authz")。
身份验证就是证明你就是你所说的那个人。 在物理世界中,这可能采取出示身份证的形式,身份证由可信机构颁发,上面有你的照片。 任何人都可以检查该证件,看看你,然后决定是否相信你就是你所说的那个人。 举个例子,如果你开车到一个军事基地,出示你的驾照,你就在试图向警卫证明自己的身份。 警卫可能会选择相信你,也可能认为你提供的是别人的驾照或驾照是伪造的,或者告诉你基地只接受军人证,不接受驾照。
授权指的是执行某种操作的能力,一般首先取决于身份验证(知道某人的身份)。 例如,基地的警卫可能会说:"是的,我相信你就是你所说的那个人,但你不能进入这个基地。或者,你可能被允许进入,但进入后却不能进入大部分建筑。
在 IT 安全中,我们经常混淆这两个概念。 例如,我们可能会为某人创建一个身份(带有密码等相关凭证),然后默许任何拥有有效身份的人访问系统中的所有数据。或者,我们可以通过删除某人的身份来取消他的访问权--这也行得通,但就像撕毁他的驾照,而不是直接拒绝他的访问权。虽然这些解决方案在某些情况下可能是合适的,但重要的是要理解其中的区别。授权每个用户完全访问系统真的合适吗?如果你必须给组织外的某个人一个身份,才能允许他访问系统的其他区域,那么这个用户是否也会自动获得访问内部资源的权限?
请注意,这些概念(和类比)很快就会变得复杂。例如,想象一下这样一个系统:你不用到处出示你的驾照,而是领取一个你向其他人出示的出入证,以及一个你只需向证件发放者出示的刷新证。 访问胸卡可以向所有人验证你的身份,但只能使用一天,之后你必须去胸卡办公室出示刷新胸卡,才能获得新的访问胸卡。你出示出入证的每个场所都会验证上面的签名,以确保其有效,然后致电中央管理机构,询问你是否在该资源的访问名单上。这与某些 IT 访问系统的工作方式类似,不过幸运的是,你的浏览器和为你提供服务的系统会为你处理这些细节!
身份和访问管理以及其他安全领域的一个重要原则是,尽量减少必须信任的组织和人员的数量。 举例来说,除了零知识加密能起作用的情况外、3您必须信任云提供商的身份验证和授权流程,以防止您的数据被未经授权的人看到。 您必须接受这样的风险:如果您的提供商完全受到威胁,您的数据也会受到威胁。但是,既然您已经决定信任云提供商,那么如果您可以利用现有的信任而不承担额外的风险,您就希望避免信任任何其他人或组织。4就像支付入场费一样;一旦您支付了信任特定组织的 "费用",您就应该充分利用它的价值,避免给系统带来额外风险。
与传统 IT 的区别
在传统的 IT 环境中,访问管理通常部分由物理访问控制(谁可以进入大楼)或网络访问控制(谁可以远程连接网络)来执行。 举例来说,如果你解雇了一名管理员,却忘记取消他对某台服务器的访问权限,你可以依靠外围防火墙作为第二层保护。 ...