11月29日,云络在线研讨会进行了AMA(Ask Me Anything)有问必答的主题活动,不少童鞋踊跃参与,也有内行的观众问出了价值很高的问题。云络AWS大神Erwen,用多年的实战经验给于了他的回答,六位提出与主题相符的观众也都获得了精美礼品!下面就让我们言归正传,以下是这六位观众的提问和大神的解疑:

 

  1. 如何处理root API访问密钥?

Erwen:这个其实是很简单的,对于Root API就是三点:不要用;不要用;不要用!从拿到账号开始立马建一个Admin账号,因为它的权限实在是太大了,我们坚决不能用。如果这位同学还不太清楚的话,可以看我上期的《AWS运维杂谈》,其中就有提到过这个问题。

 

  1. AWS本身内置防火墙,但是也有第三方的防火墙,它们之间的差异在哪里,从实施的时间、成本等考虑,它们之间该如何取舍?

Erwen:首先,介绍一下AWS防火墙的策略吧:它有一个Secret Group,在它外层有一个ACL,AWS内置的防火墙主要针对四层协议,对端口、IP等进行过滤。但对七层的比如像你HTTP里协议之类的是无效的。它没有办法达到平常WAF类产品的功能,如果你对代码层的渗透等功能有需求的话,此时就必须要购买一些WAF等第三方防火墙了。如果,你的业务只需要四层,去防护一些IP或者是一些端口的扫描侵入,AWS本身的功能是可以胜任的。当然了, AWS本身的防护措施从操作来说也是很简单的。所以,我建议,如果只是在服务器层面的,AWS本身的防火墙已经足够了,像Linux内部的iptables是不需要开的,但是如果你考虑到代码层的安全,像渗透方面的,就比如说对之前shell的漏洞、bash的漏洞等等要进行防范的话,是需要第三方的WAF设备的。

 

  1. 在何时开启MFA令牌?

Erwen:我的建议是所有的情况,只要您登录AWS账号,都要开。如果说你是Console 端的重度用户,还不想使用MFA令牌的话,建议你建一个只读的用户。根据需求设置成只可以上AWS去浏览EC2、ELB等的信息。但是可写权限的用户,尤其是Admin账号,一定要开MFA令牌,包括Root用户和Root账号,这都是一定要开的。也是我们八年安全最佳实践的经验之谈。

 

  1. 怎样管理IAM用户?

Erwen:这个问题,我们就从一个最佳实践说起。我们要遵循AWS的一个最佳实践 ,就是“权限最小化”的原则。顾名思义,不需要的权限就不要给。举个例子,你需要设一个S3的权限,为了简单可以直接用Admin账号建一个,这样的确是可以实现功能的,但是这个权限是非常大的,也是非常不安全的。我们需要做得更细致,比如只给某个该S3需要的bucket,而不给其余的bucket。刚开始操作的时候,这样可能会麻烦一点,但为了以后安全方面的考虑,这些麻烦还是值得的。此外,在加IAM用户时,都需要设置密码安全策略,比如一个月至少改一次密码,密码的强度等也是要做上的。

 

  1. EC2的Roles功能能做什么?

Erwen:这个就是比较强大的了。比如说第三方的服务,比如AWS官方所说的Twitter、Facebook等第三方安全认证。比较常用的功能是搭配EC2实例来使用,举例来说,你想访问S3或者EC2,并需要调用它的邮件符SNS,这时就可以把角色赋予EC2的实例。这样做有什么好处呢?就是不需要创建Access key 和 Access ID了,符合了安全最佳实践。

你可能会问为什么没有Access key和ID反而更安全了。因为,就好比我们把普通的钥匙门撤了,换成了一队训练有素的保安日夜巡逻,显然比单纯的钥匙更安全。举个例子,你的EC2被黑客通过扫描端口暴力破解了,黑客拿到了Access Key和Access ID,此时即使你Shutdown了服务器,黑客也可以远程对你的数据进行任何操作。

 

  1. 如何设置 S3 bucket策略?

Erwen:关于这个应用方面的问题,主要强调:尽可能地不要给S3 bucket开公共读,当然,做静态网页托管另当别论。原因很简单,S3 bucket公共读开了之后就收不住。一旦打开了之后,你就会不知道哪台服务器和应用是需要使用S3的,到那时再想收回权限,就会非常麻烦。所以,S3 bucket的策略是像之前那个问题一样,就是坚持权限最小化策略,必须设的细一点。此外,还可以在S3 bucket上加IAM,EC2的角色,进行精确的控制。

在此只列出Erwen与大家聊的与主题相关的问题,这些问题有你想问的吗?云络很高兴能与大家分享八年的最佳实践经验。如果你错过了该在线研讨会活动,你可以前往云络网站的视频栏目中观看。