针对S3存储的勒索攻击的防护以及关闭SSE-C的方法

一、针对S3存储的勒索攻击事件背景

近期有一片文章《亚马逊安全机制被用于勒索攻击,全球数千家机构已成为攻击目标》,原文在这里。引用部分文字如下:

据报道,勒索组织已经开始加密全球数千家机构在亚马逊云存储的数据。
与传统的勒索软件攻击不同,此次攻击没有利用任何系统漏洞,
而是利用了亚马逊云服务本身的安全机制,制造了一个几乎无法破解的困境,
迫使受害者不得不选择支付赎金。

勒索组织首先获取了受害者的亚马逊账户凭证,
这些凭证具有读取存储数据和写入加密工具的权限。
随后,他们利用亚马逊的服务器端加密工具(SSE-C)将客户的数据重新加密,
使用户无法正常访问,并向要求受害者在七天内支付赎金,
否则将永久删除所有加密文件。

这篇文章对整个攻击事件过程描述的比较模糊,文中提到“勒索组织首先获取了受害者的亚马逊账户凭证”,但转而又提到“此次攻击没有利用任何系统漏洞,而是利用了亚马逊云服务本身的安全机制”。这两句前后矛盾的表述让许多人感到困惑,并担心自身系统安全。

为此,AWS官方也有一篇博客针对类似攻击事件给出了一些信息,英文原文在这里。基于这两篇文章,本文介绍下类似勒索攻击的由来,以及类似的防护方法。

Continue reading “针对S3存储的勒索攻击的防护以及关闭SSE-C的方法”

使用S3存储的SSE-C方式加密数据

一、背景

在一些对数据安全有较高要求的场景中,需要对S3上的数据进行加密。有时候可能会遇到以下需求:

  • 合规要求,必须加密
  • 强度要高,例如AES256
  • 加密要简单,最好是对称密钥,加密和解密都是同一个密码
  • 与IDC、多云等兼容性问题,不能使用AWS KMS服务来管理密钥,用户自管理密钥
  • 不希望编写加密代码
  • 不希望应用层承担加密运算的开销

在以上情况下,可使用S3服务的SSE-C功能来满足以上加密需求。

此时可能有同学有疑问,在创建S3存储桶界面上选择加密算法的位置,并没有SSE-C加密方式的选项,那么它是如何运作的?这要从S3的几种加密方式说起。

Continue reading “使用S3存储的SSE-C方式加密数据”

使用S3 Lifecycle policy将标准层存储转换为INT智能分层以降低存储成本

一、背景

在过往的博客中,有几篇是S3成本优化相关,可参考如下:

在开启了S3 Storage Lens的Dashboard后,可以看到所有存储桶的使用的存储类型。如果看到有大量的Standard分类,且平均大小是在1MB或者以上,那么就很适合开启INT智能分层来优化存储成本。

注意:S3 INT智能分层对于小于128KB的对象无效。即使开启了INT智能分层,小于128KB的文件将使用保存在S3 Standard标准层、且计费也是按照标准层。因此对象平均大小是决定是否使用S3智能分层的关键。

基于以上几篇的信息,本文介绍来介绍S3服务的生命周期转换功能。

Continue reading “使用S3 Lifecycle policy将标准层存储转换为INT智能分层以降低存储成本”

S3版本管理101: 使用版本管理用于文件恢复和反删除

一、背景

S3服务具有文件版本管理功能,这允许您不改变对象目标的文件名而保留多个历史版本。例如在上传时候看起来文件名相同是覆盖了,其实是将新上传的文件保存为当前最新版本(Latest版本),原来的文件变成历史版本。被删除的对象,如果是在一个打开了历史版本的存储桶,那么是可以反删除。当然如果所有历史版本都被删除了,那么这个文件无法找回了。

因此正确使用版本管理功能,可解决许多业务场景问题,通过反删除也可以增加业务上的保护,而了解版本管理的机制,可实现彻底永久删除,实现更好的数据隐私保护。

Continue reading “S3版本管理101: 使用版本管理用于文件恢复和反删除”

安全改进解读:S3将阻止Public公开访问和禁用文件ACL两项功能作为新创建存储桶时候的默认设置

摘要:本文介绍了2023年以来S3将阻止Public公开访问和禁用文件ACL两项功能作为新创建存储桶时候的默认设置这一变化由此带来的安全方面的改进。同时,介绍了在此场景下如何配置存储桶公开对外发布数据。

一、背景

在S3控制台上,可以看到如下信息:

The S3 Block Public Access and S3 Object Ownership features provide settings to manage public access and object ownership for your Amazon S3 resources. All Block Public Access settings are enabled by default, and all new buckets, access points, and objects do not allow public access. By default, Object Ownership is set to bucket owner enforced, which disables the use of access control lists (ACLs).

These default settings have been in place in the S3 console since 2018 and 2021, respectively, and are recommended security best practices. Since April 2023, these default settings apply to all new buckets, regardless of how they are created. If you require public access, you can edit the Block Public Access settings, and grant access by using bucket policies. Unless you need to control access for each object individually, using ACLs to grant access isn't recommended. For more information, see Access control best practices.

以上两项功能,分别推出与2018年和2021年,之前是可选配置,目前成为了新建存储桶Bucket时候的默认配置。本文对这两个功能的使用进行介绍。

Continue reading “安全改进解读:S3将阻止Public公开访问和禁用文件ACL两项功能作为新创建存储桶时候的默认设置”

使用Python Boto3从CloudWatch获取S3存储桶大小的Metric值

一、背景

对象式存储S3是用于存储海量文件的,当文件达到百万、千万、上亿的时候,S3可正常响应查询、写入的请求,而普通OS上的文件系统在这个数量级必须引入目录散列,并且伴随着性能下降,且如果是虚拟机本地盘还可能出现inodes使用满的情况。这种场景下,S3对象存储针对海量文件是非常友好的。因此使用S3是很有必要的。

S3也有不方便的地方,例如统计文件大小。传统的文件系统方式是做遍历后求和。那么S3上数百万个文件做一次遍历,开销极其巨大,而且产生了巨大的读取费用(List也算读取,参考S3收费文档)。由此,S3有个功能是S3 Inventory,即每天一次生成文件清单,并可通过Athena做进一步查询文件名称和大小。此外,还可以通过S3 Storage Lens查看各存储桶的总数据量和类型。

Continue reading “使用Python Boto3从CloudWatch获取S3存储桶大小的Metric值”

优化S3存储成本:S3智能分层配合S3 Glacier即时检索获得成本节约

一、背景

S3 Glacier Instant Retrieval(S3 GIR)存储类型是2021年re-Invent新发布的存储类型,原有的异步方式取回数据的Glacier存储类型则改名为S3 Glacier Flexible Retrieval。新发布的S3 Glacier Instant Retrieval的存储费用与S3 Glacier Flexible Retrieval相近,在此基础上提供了立刻可取的性能,适合每年访问2-3次数据场景下的海量数据存储。

Continue reading “优化S3存储成本:S3智能分层配合S3 Glacier即时检索获得成本节约”

在EC2内为自己的EBS磁盘扩容

在EC2内可为自己的EBS磁盘扩容,而不需要通过AWS Console网页界面控制台。前提是:

  • 本机是Cloud9云端IDC开发环境,内置有关权限和role
  • 本EC2已经安装AWSCLI并且配置了AKSK,且AKSK对应的IAM User是具有本Region EC2服务修改配置的权限
  • 本EC2挂载了EC2 Profile对应了一个IAM Role,这个IAM Role具有操作EC2服务修改配置的权限
Continue reading “在EC2内为自己的EBS磁盘扩容”

使用S3 Access Point访问S3存储桶

一、背景

S3提供Access Point用于数据分享、访问授权,可用于对外隐藏真实的存储桶名称的同时实施权限控制。S3 Access Point有两种类型:从Internet互联网访问类型,以及仅能从特定VPC访问的类型。此外S3 Access Point也支持跨账户访问。

下面分别进行两种配置。

Continue reading “使用S3 Access Point访问S3存储桶”

在Amazon Linux(CentOS)和Ubuntu系统的EC2上使用EFS服务

2年前写过一篇EFS挂载使用说明,一晃2年过去。EFS界面已经大幅优化,挂载命令对中国区支持也更加友好,不需要以前步骤的人工修改挂载点了。因此重新编写了本文档。

新版EFS操作界面简化了创建过程,可实现几次点击即可配置好EFS。本文描述如何创建EFS服务,并在Amazon Linux(CentOS)和Ubuntu系统的EC2挂载使用。

Continue reading “在Amazon Linux(CentOS)和Ubuntu系统的EC2上使用EFS服务”

为IDC或私有VPC内的Storage Gateway使用VPC Endpoint访问S3

之前写过Blog视频谈到了在内网环境的Storage Gateway的激活,在2021年Storage Gatway升级后,内网的激活流程和向导作出了改进,激活更为方便。

此外,如果安全上有需求要求所有流量在内网不能出现在公网,可以搭配专线或Site-to-site VPN,然后将所有流量发送到Interface类型的VPC Endpoint,即可实现所有流量处于内网的私密状态。

Continue reading “为IDC或私有VPC内的Storage Gateway使用VPC Endpoint访问S3”