当前位置:首页 » 云服务器 » 亚马逊云服务器怎么用密钥登录

亚马逊云服务器怎么用密钥登录

发布时间: 2024-09-13 16:50:57

⑴ 如何实现用户认证授权系统

1、首先打开I电脑桌面,单击此电脑右键选择属性按钮。

⑵ 亚马逊云科技防火墙管理系统的优势是什么

在安全与数据稳私保护方面,亚马逊云科技一直秉承客户拥有和控制数据的理念,由客户来控制自己的数据,并且提供复杂的技术和物理措施来防止未经授权的访问。此外,亚马逊云科技还坚持安全责任共担,亚马逊云科技负责主机操作系统、虚拟化层、物理基础设施的安全,客户负责上层操作系统以及相关应用程序的安全,负责配置亚马逊云科技提供的安全组防火墙,通过安全责任共担,集合多方面的力量,共同应对云安全威胁。亚马逊云科技的云安全五大优势可以帮助用户有效应对愈加复杂且严峻的云安全挑战。
(一)打造云端深度可视化和控制力,实现扩展安全
在每一个IT环境内,可视化是确保安全性的关键所在。亚马逊云科技用户可以控制数据的存储位置、有权访问用户在任何给定时刻消耗的资源。如每一位亚马逊云科技用户都有一个用于确保亚马逊云科技账户安全性的秘密访问密钥和访问密钥ID,使用一个亚马逊云科技安全令牌服务就可以向一个账号授予临时访问权限。另外,亚马逊云科技身份和访问管理服务还提供了基于角色的访问,用户和应用程序都被赋予了预定义的角色,非常有助于控制对特定资源和应用程序的访问。
亚马逊云科技还提供多元的身份验证选项,还可实现合规性检查的自动化,可以捕获资源的当前状态和跟踪变更,然后向用户警告那些不符合亚马逊云科技安全性最佳实践的变更。通过使用安全自动化和活动监控服务,来检测整个生态系统中的可疑安全事件,从而实现扩展安全。
(二)通过深度集成的服务实现自动化并降低风险
众所周知,云端自动化部署服务一直深受用户欢迎,创建一个自动化和可重复的部署流程能够提升业务配置效率,并且有效地扩展和升级。执行安全任务的流程也是如此,实现自动化可以通过减少人工配置错误,将工作人员从日常繁琐的工作和加班中解放出来,从而有更多的精力和时间投入到安全业务的创新之中。亚马逊云科技为各种应用场景提供了不同的解决方案,针对的应用场景不同,这些服务的关注点也不同。用户可以从各种深度集成的解决方案中进行选择然后重新组合,让其以新颖的方式自动执行任务,从而加强安全团队与其他团队密切合作,以便更高效安全地完成工作。
以机器学习为例,在传统的机器学习中,用户通过自己搭建模型训练数据需要耗费大量的时间成本和人力成本,而通过亚马逊云科技控制台,开发人员只需要将训练所需的数据上传,便能自动以几十种不同的训练模型建立机器学习任务自动训练,还可以自动连续地发现、分类和保护亚马逊云科技中的敏感数据,并给出可视化结果,节省了大量的开发成本,并且迅速提升了数据保护能力。
(三)以最高的隐私和数据安全标准进行构建
数据不仅是数字经济的关键要素,也是信息时代重要的生产要素,数据安全更是被上升为与国家安全同等重要的地位。对于企业而言,数据安全也是其持续发展的基础。大量企业的数据存在云端,数据安全面临着十分严峻的挑战。亚马逊云科技针对用户对数据安全的担忧,组建了一支世界一流的安全专家团队,并构建了全天候监控系统。此外,亚马逊云科技还拥有全球云基础设施,这个高安全性、高扩展性和高可靠性的云平台可提供来自全球数据中心的175 多种功能全面的服务,用户可以在平台上加密、移动以及管理保留自己的数据。另外,在数据中心和区域互连的亚马逊云科技全球网络中,所有的数据流动在离开亚马逊云科技的安全设施之前,都经过物理层自动加密。
另外,亚马逊云科技全球基础设施可以让用户完全控制数据实际所在的区域。比如亚马逊云科技将物理数据中心分为多个逻辑单元,这些逻辑单元称为“可用区”,把可用区想象成一个逻辑数据中心。数据中心通过完全冗余的专用低延迟连接相互连接,然后把多个可用区域组成一个亚马逊云科技区域,但是它们在物理上是彼此分开并相互隔离的,因此,如果一个可用区出现故障,其他可用区不会受到影响,从而确保了数据安全性,并满足了用户数据驻留要求。
(四)更繁荣的安全合作伙伴和解决方案生态系统
当前,越来越多的企业需要在云上构建更敏捷、更弹性和更安全的企业IT系统。为了更好的提升用户的体验,解决用户上云的安全担忧,亚马逊云科技通过使用用户了解和信任的熟悉解决方案提供商提供的安全技术和咨询服务来扩展自身的优势。因此,亚马逊云科技在逐步壮大合作伙伴生态系统,与百家APN合作伙伴开展联合解决方案,重点覆盖了金融、制造、汽车、零售与电商、医疗与生命科学、媒体、教育、游戏、能源与电力九大行业。尤其在安全领域,亚马逊云科技精心挑选了具有深厚专业知识和经过证实的成功经验的提供商,构建了端到端的解决方案和服务,以确保云采用的每个阶段的安全及合规。亚马逊云科技的APN合作伙伴提供了几百个工具和功能,涵盖网络安全、配置管理、访问控制和数据加密的方方面面,以帮助亚马逊云科技用户实现安全目的。
(五)继承最为全面的安全性与合规性控制
云计算作为一种新兴服务模式,已经成为企业发展的关键因素,使用云计算,可以让其摆脱数据中心、节省成本、加快迁移速度,并且享受云上的无限资源,但是在此过程中,面临着一个重要问题就是要满足安全合规要求。为了帮助用户实现合规,亚马逊云科技会定期对数千个全球合规性要求进行第三方验证,并进行持续监控,同时还不断加强用户自己的合规性和认证计划。亚马逊云科技支持数十种安全标准和合规性认证,满足全球几乎所有监管机构的合规性要求。

⑶ 深入理解Spring Cloud Security OAuth2及JWT

OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该令牌在 限定时间 限定范围 访问指定资源。主要涉及的RFC规范有 RFC6749 (整体授权框架), RFC6750 (令牌使用), RFC6819 (威胁模型)这几个,一般我们需要了解的就是 RFC6749 。获取令牌的方式主要有四种,分别是 授权码模式 , 简单模式 , 密码模式 和 客户端模式 ,如何获取token不在本篇文章的讨论范围,我们这里假定客户端已经通过某种方式获取到了access_token,想了解具体的oauth2授权步骤可以移步阮一峰老师的 理解OAuth 2.0 ,里面有非常详细的说明。

这里要先明确几个OAuth2中的几个重要概念:

明确概念后,就可以看OAuth2的协议握手流程,摘自RFC6749

Spring Security是一套安全框架,可以基于RBAC(基于角色的权限控制)对用户的访问权限进行控制,核心思想是通过一系列的filter chain来进行拦截过滤,以下是ss中默认的内置过滤器列表,当然你也可以通过 custom-filter 来自定义扩展filter chain列表

这里面最核心的就是 FILTER_SECURITY_INTERCEPTOR ,通过 来进行资源权限的匹配, AccessDecisionManager 来执行访问策略。

一般意义来说的应用访问安全性,都是围绕认证(Authentication)和授权(Authorization)这两个核心概念来展开的。即首先需要确定用户身份,在确定这个用户是否有访问指定资源的权限。认证这块的解决方案很多,主流的有 CAS 、 SAML2 、 OAUTH2 等(不巧这几个都用过-_-),我们常说的单点登录方案(SSO)说的就是这块,授权的话主流的就是spring security和shiro。shiro我没用过,据说是比较轻量级,相比较而言spring security确实架构比较复杂。

将OAuth2和Spring Security集成,就可以得到一套完整的安全解决方案。

为了便于理解,现在假设有一个名叫“脸盆网”的社交网站,用户在首次登陆时会要求导入用户在facebook的好友列表,以便于快速建立社交关系。具体的授权流程如下:

不难看出,这个假设的场景中,脸盆网就是第三方应用(client),而facebook既充当了认证服务器,又充当了资源服务器。这个流程里面有几个比较重要的关键点,我需要重点说一下,而这也是其他的涉及spring security与OAuth2整合的文章中很少提及的,很容易云里雾里的地方。

细心的同学应该发现了,其实在标准的OAuth2授权过程中,5、6、8这几步都不是必须的,从上面贴的 RFC6749 规范来看,只要有1、2、3、4、7这几步,就完成了被保护资源访问的整个过程。事实上, RFC6749 协议规范本身也并不关心用户身份的部分,它只关心token如何颁发,如何续签,如何用token访问被保护资源(facebook只要保证返回给脸盆网的就是当前用户的好友,至于当前用户是谁脸盆网不需要关心)。那为什么spring security还要做5、6这两步呢?这是因为spring security是一套完整的安全框架,它必须关心用户身份!在实际的使用场景中,OAuth2一般不仅仅用来进行被保护资源的访问,还会被用来做单点登陆(SSO)。在SSO的场景中,用户身份无疑就是核心,而token本身是不携带用户信息的,这样client就没法知道认证服务器发的token到底对应的是哪个用户。设想一下这个场景,脸盆网不想自建用户体系了,想直接用facebook的用户体系,facebook的用户和脸盆网的用户一一对应(其实在很多中小网站现在都是这种模式,可以选择使用微信、QQ、微博等网站的用户直接登陆),这种情况下,脸盆网在通过OAuth2的认证后,就希望拿到用户信息了。所以现在一般主流的OAuth2认证实现,都会预留一个用户信息获取接口,就是上面提到的 https://api.facebook.com/user (虽然这不是OAuth2授权流程中必须的),这样client在拿到token后,就可以携带token通过这个接口获取用户信息,完成SSO的整个过程。另外从用户体验的角度来说,如果获取不到用户信息,则意味者每次要从脸盆网访问facebook的资源,都需要重定向一次进行认证,用户体验也不好。

首先要明确一点, OAuth2并不是一个SSO框架,但可以实现SSO功能 。以下是一个使用github作为OAuth2认证服务器的配置文件

可以看到 accessTokenUri 和 userAuthorizationUri 都是为了完成OAuth2的授权流程所必须的配置,而 userInfoUri 则是spring security框架为了完成SSO所必须要的。所以总结一下就是: 通过将用户信息这个资源设置为被保护资源,可以使用OAuth2技术实现单点登陆(SSO),而Spring Security OAuth2就是这种OAuth2 SSO方案的一个实现。

Spring Security在调用user接口成功后,会构造一个 OAuth2Authentication 对象,这个对象是我们通常使用的 对象的一个超集,里面封装了一个标准的 ,同时在 detail 中还携带了OAuth2认证中需要用到的一些关键信息(比如 tokenValue , tokenType 等),这时候就完成了SSO的登陆认证过程。后续用户如果再想访问被保护资源,spring security只需要从principal中取出这个用户的token,再去访问资源服务器就行了,而不需要每次进行用户授权。这里要注意的一点是 此时浏览器与client之间仍然是通过传统的cookie-session机制来保持会话,而非通过token。实际上在SSO的过程中,使用到token访问的只有client与resource server之间获取user信息那一次,token的信息是保存在client的session中的,而不是在用户本地 。这也是之前我没搞清楚的地方,以为浏览器和client之间也是使用token,绕了不少弯路,对于Spring Security来说, 不管是用cas、saml2还是Oauth2来实现SSO,最后和用户建立会话保持的方式都是一样的

根据前面所说,大家不难看出,OAuth2的SSO方案和CAS、SAML2这样的纯SSO框架是有本质区别的。在CAS和SAML2中,没有资源服务器的概念,只有认证客户端(需要验证客户信息的应用)和认证服务器(提供认证服务的应用)的概念。在CAS中这叫做 cas-client 和 cas-server ,SAML2中这叫做 Service Providers 和 Identity Provider ,可以看出CAS、SAML2规范天生就是为SSO设计的,在报文结构上都考虑到了用户信息的问题(SAML2规范甚至还带了权限信息),而OAuth2本身不是专门为SSO设计的,主要是为了解决资源第三方授权访问的问题,所以在用户信息方面,还需要额外提供一个接口。

脸盆网的这个例子中,我们看到资源服务器和认证服务器是在一起的(都是facebook),在互联网场景下一般你很难找到一个独立的、权威的、第三方的认证中心(你很难想象腾讯的QQ空间通过支付宝的认证中心去授权,也很难想象使用谷歌服务要通过亚马逊去授权)。但是如果是在公司内部,这种场景其实是很多的,尤其在微服务架构下,有大量服务会对外提供资源访问,他们都需要做权限控制。那么最合理的当然就是建立一个统一的认证中心,而不是每个服务都做一个认证中心。我们前面也介绍了,token本身是不携带用户信息的,在分离后resouce server在收到请求后,如何检验token的真实性?又如何从token中获取对应的用户信息?这部分的介绍网上其实非常少,幸好我们可以直接从官方文档获取相关的蛛丝马迹,官方文档对于resouce server的配置是这样描述的:

寥寥数语,但已经足够我们分析了。从这个配置可以看出,client在访问resource server的被保护资源时,如果没有携带token,则资源服务器直接返回一个401未认证的错误

如果携带了token,则资源服务器会使用这个token向认证服务器发起一个用户查询的请求,若token错误或已经失效,则会返回

若token验证成功,则认证服务器向资源服务器返回对应的用户信息,此时resource server的spring security安全框架就可以按照标准的授权流程进行访问权限控制了。

从这个流程中我们可以看出,通过OAuth2进行SSO认证,有一个好处是做到了 认证与授权的解耦 。从日常的使用场景来说,认证比较容易做到统一和抽象,毕竟你就是你,走到哪里都是你,但是你在不同系统里面的角色,却可能千差万别(家里你是父亲,单位里你是员工,父母那里你是子女)。同时角色的设计,又是和资源服务器的设计强相关的。从前面的配置中不难发现,如果希望获得为不同资源服务器设计的角色,你只需要替换 https://api.facebook.com/user 这个配置就行了,这为我们的权限控制带来了更大的灵活性,而这是传统的比如SAML2这样的SSO框架做不到的。

终于来到了着名的JWT部分了,JWT全称为Json Web Token,最近随着微服务架构的流行而越来越火,号称新一代的认证技术。今天我们就来看一下,jwt的本质到底是什么。

我们先来看一下OAuth2的token技术有没有什么痛点,相信从之前的介绍中你也发现了,token技术最大的问题是 不携带用户信息 ,且资源服务器无法进行本地验证,每次对于资源的访问,资源服务器都需要向认证服务器发起请求,一是验证token的有效性,二是获取token对应的用户信息。如果有大量的此类请求,无疑处理效率是很低的,且认证服务器会变成一个中心节点,对于SLA和处理性能等均有很高的要求,这在分布式架构下是很要命的。

JWT就是在这样的背景下诞生的,从本质上来说,jwt就是一种 特殊格式 的token。普通的oauth2颁发的就是一串随机hash字符串,本身无意义,而jwt格式的token是有特定含义的,分为三部分:

这三部分均用base64进行编码,当中用 . 进行分隔,一个典型的jwt格式的token类似 xxxxx.yyyyy.zzzzz 。关于jwt格式的更多具体说明,不是本文讨论的重点,大家可以直接去官网查看 官方文档 ,这里不过多赘述。

相信看到签名大家都很熟悉了,没错,jwt其实并不是什么高深莫测的技术,相反非常简单。认证服务器通过对称或非对称的加密方式利用 payload 生成 signature ,并在 header 中申明签名方式,仅此而已。通过这种本质上极其传统的方式,jwt可以实现 分布式的token验证功能 ,即资源服务器通过事先维护好的对称或者非对称密钥(非对称的话就是认证服务器提供的公钥),直接在本地验证token,这种去中心化的验证机制无疑很对现在分布式架构的胃口。jwt相对于传统的token来说,解决以下两个痛点:

在上面的那个资源服务器和认证服务器分离的例子中,如果认证服务器颁发的是jwt格式的token,那么资源服务器就可以直接自己验证token的有效性并绑定用户,这无疑大大提升了处理效率且减少了单点隐患。

就像布鲁克斯在《人月神话》中所说的名言一样:“没有银弹”。JWT的使用上现在也有一种误区,认为传统的认证方式都应该被jwt取代。事实上,jwt也不能解决一切问题,它也有适用场景和不适用场景。

适用场景:

这些场景能充分发挥jwt无状态以及分布式验证的优势

不适用的场景:

不要试图用jwt去代替session。 这种模式下其实传统的session+cookie机制工作的更好,jwt因为其无状态和分布式,事实上只要在有效期内,是无法作废的,用户的签退更多是一个客户端的签退,服务端token仍然有效,你只要使用这个token,仍然可以登陆系统。另外一个问题是续签问题,使用token,无疑令续签变得十分麻烦,当然你也可以通过redis去记录token状态,并在用户访问后更新这个状态,但这就是硬生生把jwt的无状态搞成有状态了,而这些在传统的session+cookie机制中都是不需要去考虑的。这种场景下,考虑高可用,我更加推荐采用分布式的session机制,现在已经有很多的成熟框架可供选择了(比如spring session)。

热点内容
什么是服务器机箱批发 发布:2024-09-18 10:26:10 浏览:195
sqlserver查看表结构 发布:2024-09-18 09:56:18 浏览:37
服务器生成错误是什么意思 发布:2024-09-18 09:55:37 浏览:772
万能钥匙怎么解密码 发布:2024-09-18 09:17:12 浏览:382
麦块和快吧电脑版里服务器一样吗 发布:2024-09-18 09:14:05 浏览:201
phpmysql报错 发布:2024-09-18 09:13:43 浏览:914
python数据保存 发布:2024-09-18 08:52:35 浏览:911
海康网络视频服务器原始ip 发布:2024-09-18 08:19:01 浏览:488
java教程视频马士兵 发布:2024-09-18 08:05:31 浏览:212
安卓耳机入耳安卓怎么关闭 发布:2024-09-18 07:25:45 浏览:952