带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(1)

本文涉及的产品
无影云电脑企业版,4核8GB 120小时 1个月
无影云电脑企业版,4核8GB 120小时 1个月
无影云电脑个人版,黄金款:40核时/1个月有效
简介: 带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(1)

引言:本文整理自【弹性计算技术公开课——ECS安全季】系列课程中,阿里云弹性计算高级技术专家张振华带来的课程《如何安全访问和管理ECS资源》一节。

 

image.png

一、身份与访问控制的基本概念

首先给大家介绍一下关于身份与访问控制的一些基本概念。

 

身份与访问控制是为了实现集中管理阿里云上的用户身份,只有通过这个身份的认证,并且满足了特定权限授权条件下的用户才能够访问或者操作您所指定的阿里云资源,避免您的云资源被未经授权的用户恶意访问,所以这里会涉及到三个管理系统,分别是身份管理、权限管理以及资源管理。

  

image.png

 

所谓身份管理,就是您如何管理您的企业员工或者应用的身份。权限管理是您要怎样分配权限,比如管理员可以拥有全部的访问权限,而研发人员根据自己的职责范围,只能在特定的网络环境下操作有限的云资源,一般建议遵循最小够用的原则来给员工进行授权。

 

资源管理是您要怎样管理云上的资源,建立的管理方式是按照部门或者是业务线划分到不同的资源组,只有被授权可以访问资源组的用户身份,才可以操作对应的云资源。这里的云资源,不仅仅是ECS的资源,也包括网络资源,比如VPC,也包括存储资源,比如OSS、对象存储以及日志服务,同样也包括像数据库、云原生的容器等各种各样的云资源。

 

在阿里云上面,我们统一负责用户身份管理和访问控制的服务,称为RAM,它的全称是Resource Access Manager,即资源访问控制。


image.png

 

RAM有主账号和子用户RAM账号这两个概念,这两种账号,都可以通过用户名、密码登录到阿里云的控制台,并对其云上的资源进行操作。用户在访问阿里云账号时,使用的是主账号,主账号的密码规范、登录安全的风险控制策略是由阿里云统一管理的。在主账号下的子用户,即通常所说的RAM用户,它的密码策略则可以由客户自己设定,比如密码字符的组合规范、重试登录次数、密码轮转周期等策略。

管理员可以通过RAM控制台为RAM用户创建密码策略,来保证各个子用户都可以使用定期轮转的强密码,从而提高整体账户的安全性。RAM服务使得一个阿里云主账号可以拥有多个独立的RAM用户,从而避免与其他用户共享云账号的密钥,并可以根据最小权限的原则为不同用户分配最小的工作权限,从而降低用户的信息安全的管理风险。

RAM的策略可以细化到针对某一个APIAction或者Resource ID等最细粒度的授权,还可以支持多种的限制条件,比如像限制来源IP的访问范围,安全访问的通道,比如必须要通过SSL或者TLS,还有访问的时间段或者是MFA的多因素的认证等等。

RAM是阿里云账号安全管理和安全运维的基础,通过RAM可以为每个RAM用户分配不同的密码或API访问密钥(Access Key),消除云账号共享带来的安全风险;同时可为不同的RAM用户分配不同的工作权限,大大降低了因用户权限过大带来的风险。

一般来说,企业的管理者或者运维主管往往会成为阿里云上的主账号拥有者,也就是超级管理员。

∙        我们建议由超级管理员根据组织实体或业务场景,创建不同的RAM用户、RAM用户组,并为每个用户分配唯一的安全凭证AK

∙        控制授予每个用户、用户组对ECS资源授予不同的操作权限,根据最小权限原则,分权管理不同的资源,降低信息泄露风险。

∙        更进一步,可以将RAM角色关联到ECS实例上,不同的实例赋予不同授权策略,这样就无需在实例中保存Access Key,使它们对不同的云资源具有不同的访问权限,实现更精细粒度的权限控制。

 

接下来展开介绍一下ECS的身份管理、权限管理以及如何避免显示的AK配置的一个最佳实践。

二、身份管理的安全治理原则与验证手段

首先介绍一下身份管理中的安全治理原则和验证手段,以及基本概念,并且分别介绍RAM用户和RAM角色的相同点和不同点,接下来是关于身份管理安全的治理原则,还有安全的验证手段。

 

什么是身份认证?身份认证指的是通过凭证信息来认证用户的真实身份。

 

image.png

 

它通常是指通过登陆密码或访问密钥,也就是AccessKey机制来进行身份认证。请注意,用于身份认证的凭证信息对于用户来说是敏感的秘密信息,用户必须妥善保护好身份凭证信息的安全。

阿里云提供多种多样的身份认证能力,总体上可以分成是面向用户或企业员工的认证手段,还有面向应用程序的认证手段这两大类。

第一大类是面向用户的认证方式有,账号密码认证、SSH密码认证、基于MFA验证码的认证(比如人脸、短信、短时口令等)和SSO单点登录认证。

账号密码认证相信大家都不陌生:用户可以使用其云账号(即主账号)或其云账号下RAM用户的密码登录阿里云控制台并对其云上资源进行操作。阿里云的账号密码规范、登录安全风控策略由阿里云统一管理。云账号下子用户(RAM用户)的密码策略则可以由客户自己设定,如密码字符组合规范、重试登录次数、密码轮转周期等策略。例如,用户可以通过RAM控制台为RAM用户创建密码策略,以保证各个子用户都使用定期轮转的强密码从而提高整体账户的安全性。

SSH密码认证也是常用的非对称密钥认证机制。针对ECS Linux实例,如果用户已经将SSH公钥配置在Linux实例中,那么在本地或者另外一个实例中,用户可以使用SSH私钥通过SSH命令或相关工具登录之前有公钥配置的实例,而不需要输入密码。SSH密钥对默认采用RSA 2048位的加密方式,相较于传统的用户名和密码认证方式,SSH密钥对登录认证更为安全可靠,同时便于远程登录大量Linux实例。同时,阿里云容器服务也支持通过 SSH 密钥对的方式远程登录集群。

MFA是一种简单有效的最佳安全实践方法,它能够在用户名和密码之外再额外增加一层安全保护。启用MFA后,用户登录阿里云时,系统将要求输入用户名和密码(第一安全要素),然后要求输入来自其MFA设备的可变验证码(第二安全要素)。这些多重要素结合起来将为用户的账户提供更高的安全保护。阿里云可以支持基于软件的虚拟MFA设备。虚拟MFA设备是产生一个6位数字认证码的应用程序,它遵循基于时间的一次性密码(TOTP)标准(RFC6238)。

同时,阿里云也支持基于SAML 2.0的单点登录(Single Sign On,简称SSO),可以支持企业客户使用企业自有身份系统的登录服务登录访问阿里云。为了满足不同企业客户的登录场景需求,阿里云提供了以下两种基于SAML 2.0协议的SSO机制:

∙        用户SSO:阿里云通过身份提供商IdP颁发的SAML 断言(SAML Assertion)确定企业用户与阿里云RAM用户的对应关系。企业用户登录后,使用该RAM用户访问阿里云资源,对应的访问权限由RAM用户的授权策略所限制。

∙        角色SSO:阿里云通过身份提供商IdP颁发的SAML断言(SAML Assertion)确定企业用户在阿里云上可以使用的RAM角色。企业用户登录后,使用SAML断言中指定的RAM角色访问阿里云资源,对应的访问权限由RAM角色的授权策略所限制。


第二大类是面向应用程序的认证方式,主要有AccessKey认证和STS认证两种。其中AccessKey是用户调用云服务API的身份凭证,用于在用户通过API访问阿里云资源时对用户身份进行认证。API凭证相当于登录密码,只是使用场景不同。前者用于程序方式调用云服务API,而后者用于登录控制台。

Access Key包括访问密钥IDAK ID)和秘密访问密钥(AK Secret)。AK ID用于标识用户,而AK Secret用来验证用户身份的合法性。用户在调用资源时会传入AK ID,并使用AK Secret对请求进行签名(HMAC-SHA1算法)。用户可以登录阿里云用户中心或RAM控制台来管理Access Key,包括创建、冻结、激活和删除操作。Access Key是可以长期使用的API访问密钥,建议用户在使用时要考虑对Access Key的周期性轮转。

请注意,出于有效权限分割和降低风险的考虑,云上最佳安全实践中不建议用户为其云账号(即主账号)创建AK凭证,而建议为其下属的RAM用户各自创建AK凭证。建议RAM用户更多的使用STS临时token,而不是使用长期使用的永久AK

阿里云Security Token ServiceSTS)是为RAM用户、阿里云服务、身份提供商等受信实体提供短期访问资源的权限凭证的云服务。

有时存在一些用户(人或应用程序),他们并不经常访问客户云账号下的云资源,只是偶尔需要访问一次,这些用户可以被称为临时用户;还有些用户,例如运行在不可信移动设备上的App,由于自身安全性不可控,不适合颁发长期有效的访问密钥。这些情况下,可以通过STS来为这些用户颁发临时权限凭证。颁发令牌时,管理员可以根据需要来定义令牌的权限和自动过期时间(默认为1小时过期)。

STS访问令牌是一个三元组,它包括一个安全令牌(Security Token)、一个访问密钥 ID Access Key ID) 和一个秘密访问密钥 (Access Key Secret)。用户在调用资源API时传入安全令牌和访问密钥ID,并使用秘密访问密钥对请求进行签名(和上述AK签名机制相同)。

在通过身份认证后,RAM实际上会生成两类的身份,一类是实体身份,比如RAM用户、RAM用户组,另一类是虚拟身份,也就是RAM角色,那这两者有什么相同和不同点呢?

image.png


首先,RAM用户和RAM角色都是RAM中定义的身份,前者是实体身份,代表人或者程序,而后者是一种虚拟身份,往往需要被实体用户扮演才能生效。无论是RAM用户和RAM角色在被授予权限后都可以直接访问资源,也可以通过 SSO 和企业 IdP 互联。

不同点在于:

 

∙        RAM用户有确定的登录密码和访问密钥,可以支持控制台登录,享有登录凭证;

∙        RAM用户可以被加入RAM用户组,从而继承用户组的权限,RAM用户组就是用来划分一组职责相同的RAM用户,因此可以被赋予一组同样的权限策略;

∙        RAM用户可以对应企业内的人员、应用等,在需要协同使用资源的场景中,避免直接共享阿里云账号的密码等机密信息,缩小机密信息的可见范围,并为RAM用户和RAM用户组赋予最小权限,即使不慎泄露机密信息,也不会危及阿里云账号下的所有资源。

RAM角色虽然有确定的虚拟身份,也可以被赋予一组权限策略,但是没有确定的登录密码或访问密钥。RAM角色需要由一个受信的实体扮演,该实体在扮演RAM角色时即获得RAM角色的权限。在云产品通信的场景中,为受信的实体(例如ECS实例)绑定RAM角色后,该实体可以基于STSSecurity Token Service)临时凭证访问其他云产品的API,避免将AccessKey写在配置文件中等高危操作,保证AccessKey的安全。

image.png

企业在云上的身份和AK的管理中,常见的风险往往是因为账号或者是AK的管理或使用不善,会导致AK的安全的风险敞口会变大,甚至是AK的泄露,从而导致了一些安全的隐患,因为用户名的密码的泄露或者是AK泄露所造成的危害,也备受企业的关注,这里列举了一些常见的安全风险,这里可以分成两类。

第一类是人员管理上的风险,第二类是AK管理上的风险。

在人员的管理上常见的风险,第一是使用了主账号进行日常运维和管理的操作,第二是存在多人共享一个RAM用户,这样会影响审计信息,第三是控制台的用户,没有和企业的账号打通,由于员工的离职之后,一些数据没有和企业内部账号的信息进行同步,第四种是高权限的用户且没有配置好MFA,登录的IP的白名单等安全的设置,会有一些高危的用户登录的风险,最后一种,是存在长期不使用的僵尸用户,扩大了风险的敞口。

AK管理的风险主要有,一般是经常会使用主账号的AK,在主账号AK如果一旦泄露了,止血的成本就非常的高昂。第二类是在代码中的硬编码的AK,从而容易从ECS的镜像OSS文件或者是一些外部的公开的渠道上面把AK泄露出去,第三种是存在的人和程序混用RAM用户而造成了AK被误删的这种场景,第四种是存在AK长期不轮转,造成了风险的累积。还有一种是客户端的代码中包含了永久AK,这也是非常容易泄露的。

image.png

 

为此我们给出了五个身份安全治理的原则和建议:

∙        原则一是不推荐您使用主账号的AK。因为主账号AK拥有的是超级权限,一旦泄漏后的风险极高,而且主账号AK不支持精细化的授权,也不支持临时授权和白名单控制。我们推荐您开启主账号MFA的多因子认证来增强主账号的安全性,通过云安全中心提供的AK泄漏扫描能力来检查自身环境是否使用了主账号AK

∙        原则二是区分人员和程序的RAM身份。人员不应启用AK,控制台子用户不应该拿到AK,可以使用SSO实现统一认证登录。而程序应该与子AK一一对应,并且关闭程序子AK的控制台登录能力。

∙        原则三是合理的授权,比如客户端或测试开发环境使用临时Token,而不是永久AK,定期清理长期不使用RAM子用户。

∙        原则四是安全合理的使用永久AK,至少可以定期巡检&报警,开启AK白名单、限制白名单访问来源IP,避免明文编码AK,避免将AK暴露到外部公共平台上,以及实现AK加密和集中化管理。

∙        原则五是尽可能的实现无AK的使用,比如我们可以定义ECS实例的RAM角色,授权给某个ECS,实现权限精细化控制和管理,并且过程中无需明文的保存AK信息。

image.png

RAM访问控制服务允许企业对主账号内的身份安全做整体性的安全控制,比如密码强度的设置策略会对主账号下所有的RAM用户生效,用户的安全设置也允许设置MFA的多因素的认证与设置允许控制台登录的来源的IP的掩码,以及是否允许RAM用户自主管理密码和MFA的设备等等。


image.png


这里推荐您免费开通RAM访问控制服务提供的身份权限治理服务,当您开通了身份权限治理服务功能之后,RAM会持续的检测阿里云账号及其下的RAM用户是否存在身份权限的安全风险,帮助您及时发现治理上的缺失,并提供友好的治理引导,帮助您完善云上身份权限治理的配置,身份权限治理服务的检测项,包含了AccessKey管理检测,RAM用户管理检测,密码强度和MFA管理检测,安全使用的建议,以及高危权限的管理,还有细粒度的权限管理和授权效率的建议等等。

具体来说,您需要使用阿里云的账号或者是具有管理权限的RAM用户登录到RAM的控制台,在左侧的导航栏中点击概览,在概览页的标签页下面选择治理检测,可以查看身份权限的治理的检测数据。单击下载报告,可以下载检测的数据到本地进行查看,可以按照报告中介绍的治理方案,在控制台完成身份权限的治理。

image.png


小结:在身份管理这一部分,我们介绍了什么是身份认证,阿里云提供了多种多样的面向用户和应用程序的认证手段,在通过身份认证之后,RAM其实会生成两类的身份,一类是实体身份,我们称为RAM用户,另一类的是虚拟身份,也就是RAM角色。

我们对比了两者的相同点和不同点,介绍了在身份管理里面的一些安全的风险,安全治理的原则以及阿里云建议的一些最佳实践。

您通过RAM访问控制服务来设置企业用户整体的安全性是最常见的治理手段,另外也建议您开通免费的身份权限治理服务,阿里云可以帮助您及时发现治理缺失的漏洞,并提供友好的治理引导,帮助您完善云上的身份权限治理的配置。


带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(2):https://developer.aliyun.com/article/1441585

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
存储 关系型数据库 API
深入理解后端技术:构建高效、可扩展的服务器端应用
本文将探讨后端开发的核心概念和技术,包括服务器端编程、数据库管理、API设计和安全性等方面。通过深入浅出的方式,让读者了解如何构建高效、可扩展的后端系统。我们将从基本的后端框架开始,逐步深入到高级主题,如微服务架构和容器化部署。无论您是初学者还是有经验的开发人员,都能在本文中找到有价值的信息和实用的建议。
|
16天前
|
弹性计算 人工智能 安全
阿里云推出第九代ECS实例,最高提升30%性能
阿里云推出第九代ECS实例,最高提升30%性能
123 14
|
14天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
16天前
|
Kubernetes Java Maven
揭秘无服务器革命:Quarkus如何让Java应用在云端“零”负担起飞?
本文介绍如何使用Quarkus从零开始开发无服务器应用,通过示例代码和详细步骤引导读者掌握这一技术。无服务器架构让开发者无需管理服务器,具有自动扩展和成本效益等优势。Quarkus作为Kubernetes Native Java框架,优化了Java应用的启动速度和内存使用,适合无服务器环境。文章涵盖环境搭建、项目创建及部署全流程,并介绍了Quarkus的扩展性和监控工具,助力高效开发与应用性能提升。
24 9
|
13天前
|
存储 缓存 前端开发
优化 SSR 应用以减少服务器压力
优化 SSR 应用以减少服务器压力
|
16天前
|
监控 JavaScript Java
部署应用程序到服务器
部署应用程序到服务器
34 3
|
16天前
|
人工智能 运维 Cloud Native
专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
AI智算时代,服务器操作系统面临的挑战与机遇有哪些?
专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
|
26天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
23天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
|
22天前
|
弹性计算 运维 安全
阿里云轻量应用服务器和经济型e实例区别及选择参考
目前在阿里云的活动中,轻量应用服务器2核2G3M带宽价格为82元1年,2核2G3M带宽的经济型e实例云服务器价格99元1年,对于云服务器配置和性能要求不是很高的阿里云用户来说,这两款服务器配置和价格都差不多,阿里云轻量应用服务器和ECS云服务器让用户二选一,很多用户不清楚如何选择,本文来说说轻量应用服务器和经济型e实例的区别及选择参考。
阿里云轻量应用服务器和经济型e实例区别及选择参考

相关产品

  • 云服务器 ECS
  • 下一篇
    无影云桌面