如何保障微服务安全? 从这两点开始

发布时间:2023-05-18 04:15:37 作者:Smile~淡忘 阅读量:7613

如何保护微服务,确保微服务的安全,作者从保护应用程序安全和保护容器的安全两个方面进行了阐述,以下是译文

  如何保护微服务,确保微服务的安全,作者从保护应用程序安全和保护容器的安全两个方面进行了阐述,以下是译文

  保护微服务

  实现一个微服务很难。部署一个微服务应用程序复杂性也很高。保护微服务的安全就更难更复杂。从哪里开始呢?脑海中首先出现的一些词是身份验证和授权、防火墙、授信、会话、令牌。我们需要保护应用程序的安全,也需要保护容器的安全。

  保护应用程序

  一种方法是构建一个单点登录(SSO)网关,像普通的网关一样,它位于应用程序的前端,但需要考虑到其与SSO服务器的握手,并执行URL重定向操作。可以用http报文头传送授权和认证信息给服务。但是除非使用https,否则这样做是不安全的。但是我们知道https有证书,维护多个微服务的证书可能会成为问题,尤其是需要补发或撤销这些证书的时候,复杂性将进一步增加,我们尽量避免这种情况。

  另一种方法是用HMAC(基于哈希的消息代码)。这个请求的主体带有哈希私钥,结果是随着请求发送的。然后,服务器通过使用其私钥和请求主体的副本重新创建哈希,并将其与接收到的哈希进行比较。如果一切都匹配,那就意味着消息没有被篡改,请求可以通过。这种模式由JWT(Json Web Tokens)实现。但是,事实上网络侦听器仍然可以看到数据。

  Twitter,Google等使用API密钥。使用API密钥,服务可以识别谁在调用,并可以对其设置限制。密钥是成对的(公钥和私钥),它们必须集中管理。

  假定一切都准备就绪了,但是还是有一个问题,如何确保用户无法访问其他用户的数据呢?那就需要做更多的限制,可以通过限定用户只能访问他自己的数据来保护我们的服务,但是将导致在许多地方产生大量的样板代码。不幸的是,没有更好的办法。微服务意味着复杂性和一些重复预期会被减少。

  还是没有解决嗅探器(sniffer,也叫数据抓包软件)的问题。怎样才能确保sniffer看不到数据呢。答案是加密。先加密,然后根据需要进行解密。这就是微服务复杂系统的另一个组件:密钥服务。

  有很多库可以用,最好的选择是使用成熟的库,如OAuth或SAML。

  服务可以有状态参数。为网关中初始化的所有服务保持一个全局会话,并将其传播到所有其它服务。会话可以从像KeyCloak这样的中央认证和授权服务器(SSO)获得。

  我们更希望服务没有状态参数。这意味着需要将状态从服务器转移到客户端。Json的 Web令牌(JWT)非常符合这种需求。这是一种在双方之间转移声明的安全方式。基本上它的一个json作为Json Web签名(JWS)的主体或Json Web加密(JWE)的明文传递。声明可以进行数字签名,并包含发行者,用户的身份,到期时间,还可以包含自定义属性。

  举一个例子,流程看起来如下图:

  客户端应用程序将与 UAA (用户认证和授权)服务器进行交互。它为包含一个JWT令牌的重定向URL交换其证书。令牌将提交到 网关 ,在UAA服务器进行验证。如果一切正常,它会将该JWT令牌转发到所请求的服务,将会解码它并授予其对所请求资源的访问权限。

  保护容器

  现在已经知道如何保护应用程序了,是时候关注容器的安全了。Docker是一个广泛使用的容器。可以做些什么来保护它们呢?

  答案是深度防御。这意味着需要防火墙;这意味着需要小心记录在日志中的信息(被攻击后,日志有助于快速恢复系统);这意味着需要监视集群的可疑行为(入侵检测系统和入侵防御系统);这意味着需要将服务分开并将它们放在不同的位置(虚拟私有云),并创建一组规则,确保它们仍然能够相互通信;这意味着保持操作系统更新(特别是安全更新)。

  Aaron Grattafiori在Docker Con 2016年的演讲中谈到三个原则:

  最小权限 原则,这意味着不以root身份运行应用程序

  最小意外 原则

  最小访问 原则,这意味着每个模块只能访问与其相关的数据

  假设已经遵循了上述三原则,想到的下一个问题是:使用的Docker图像安全吗?怎么知道它们没有包含恶意代码呢?幸运的是,在Docker 1.8中引入了 Docker Content Trust ,与此同时,Docker图像的发布者在将其推送到注册表之前进行了验证。

  保护Docker安全的一个有用的工具是 Calico 。每个Docker网络都有Calico配置文件,必须设置规则和策略以控制流量。更多相关内容看 这里 。

  现在你应该有足够的信息来启动你的微服务安全保护了。

  

***本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

我要评论

网友评论


评论时间:2024-04-11 06:25:02

根据赛迪顾问统计数据表明,2014年中国IDC业务整体市场规模达723.4亿元人民币,同比增长29.2%;预计到2017年,我国IDC业务总市场规模有阿里云主机解析域名 望突破千亿美元大关,达到1641.3亿人民币,复合增长率高达24.7%服务器机箱的宽度不超过多少mm 民币,同比增长29.2%;预计到2017年,我国IDC业务总市场规模有望突破千亿美元大关,达到1641.3亿人民币,复合增长率高达24.7%


评论时间:2023-07-23 06:51:22

16.10元云主机 重网站虚拟主机购买 6.重装游戏

最新文章

 2023-12-25 22:44:35   admin

活动发布区版规

 2023-05-27 22:03:52   御风而行

容器、无服务器、虚拟机:安全性差...

 2023-05-27 19:08:41   小绵羊0123

科技巨头布局云端 服务器 网络硬...

 2023-05-27 18:17:46   姐姐的跟屁虫

钉钉因系统访问流量激增,宕机1小...

热门阅读

 2022-07-23 00:34:02   freeatom

常见ftp命令 FTP命令使用详...

 2022-07-21 02:17:02   ares

双硬盘组建Raid0磁盘阵列图文...

 2022-07-20 06:17:02   mankeung123

用友软件客户端连接不上服务器的解...

 2022-07-23 00:51:02   antonfxb

WebService实例

 2022-07-13 05:38:02   苯小孩

开发、运维不可不看的Linux调...

 2022-07-20 18:51:02   nightstone

如何使用Charles抓取Web...

随机文章

 2022-02-21 05:38:02   龍捲風暴

Windows 2003服务器安...

 2022-07-19 02:00:05   zldxgz8888

智慧医疗是什么,未来智慧医疗的新...

 2022-07-19 13:17:03   wcloud

linux系统安装教程

 2022-07-20 05:00:04   dddaaa

linux下如何使用swap分区

 2022-07-20 07:00:04   圣徒

Linux下怎样用fdisk命令...

 2022-07-20 11:17:02   yuhaonan

震惊!好多人都不懂服务器硬件管理...

热评文章

 2022-07-19 20:17:02   dengyu0429

linux vi使用及详细介绍

 2022-07-20 01:00:05   激动的舌头

Linux视频教程:用户管理命令...

 2022-07-21 20:51:02   jessica-an

创建本地FTP站点

 2022-02-07 05:38:03   jasonkidd

WEB服务器配置详解

 2022-07-20 04:51:02   wolfssss

ACL权限-默认与递归(4)

 2022-07-22 15:00:05   淡水珊瑚

Linux下 Samba Ser...
全球云服务器
Catfish(鲶鱼) Blog V 4.7.3