对您的 S3 存储桶的基本保护

发布: (2026年1月9日 GMT+8 04:12)
7 min read
原文: Dev.to

Source: Dev.to

Source:

加密

加密将可读信息(例如,机密的总体计划)转换为不可读的格式,以便只有授权方能够访问。具体细节此处并不重要——只需了解加密是必不可少的。

大多数你会遇到的加密分为两类:

类别保护对象
静止时处于存储中、未被使用的数据
传输中在服务或设备之间移动的数据

“使用中的加密” 是另一个主题,本文不涉及。

静止时加密

静止时加密保护闲置在存储中的数据。可以把它想象成一个装有绝密笔记本的保险箱;只有知道组合的人才能打开。

在 Amazon S3 中,加密对象主要有两种方式:

方法描述
服务器端AWS 在写入磁盘之前对数据进行加密。
客户端在将数据上传到 S3 之前自行加密。

好消息: 存储桶默认已启用静止时加密。你上传的所有对象都会自动使用 服务器端加密(SSE‑S3),即 Amazon S3 管理的密钥 进行保护。这是透明的,不会产生额外费用。

  • 对于大多数使用场景,SSE‑S3 已足够。
  • 如果需要更细粒度的控制,可以使用 KMS 管理的密钥(SSE‑KMS)或在客户端加密。

传输中加密

传输中加密在数据传输过程中提供保护——例如,当文件从 S3 下载到你的设备时。如果没有加密,任何拦截流量的人都可以读取数据。

这通过 非对称加密(公钥/私钥对)实现,用于建立安全通道:

  • 公钥 – 类似邮箱投递口:任何人都可以投信(加密数据)。
  • 私钥 – 类似打开邮箱的钥匙:只有所有者才能读取信件(解密数据)。

S3 存储桶可以通过以下方式访问:

  • HTTP – 未加密(不推荐)
  • HTTPS – 加密(推荐)

建议: 仅允许通过 HTTPS 访问。使用存储桶策略拒绝非 TLS 请求:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "RestrictToTLSRequestsOnly",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::your-bucket-name",
        "arn:aws:s3:::your-bucket-name/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}

your-bucket-name 替换为实际的存储桶标识符。此策略确保任何通过普通 HTTP 发出的请求都会被拒绝,从而保证所有数据传输都使用 TLS 加密。

公共与私有存储桶

在 AWS 中有两种存储桶访问类型:

访问类型描述
公共任何互联网用户都可以访问。
私有只能由授权身份访问。

注意: 新建的存储桶默认是 私有 的。必须采取明确的步骤才能将存储桶设为公共,而且很容易出错。采用分层防御有助于防止意外泄露。

阻止公共访问

阻止公共访问 功能可防止意外的公共暴露。它可以在三个范围内应用:

范围效果
存储桶阻止对特定存储桶的公共访问(在新建私有存储桶上默认启用)。
账户阻止对账户中 所有 存储桶的公共访问。
组织阻止对 AWS 组织中每个存储桶的公共访问。

最小特权

最小特权原则指出,您应仅授予实体(人员、应用程序或服务账户)执行特定任务所需的最少权限——不能多于此。

遵循此原则可降低意外误用或恶意活动的风险。要保护您的 S3 数据:

  • 仔细限定 IAM 权限,使用户和服务只能访问他们真正需要的存储桶和操作。
  • **示例:**如果某个存储桶存放营销信息,则只有营销团队应拥有访问权限。

**注意:**最小特权 不是一次性工作。随着职责变化、团队重组或访问需求演变,需要持续维护并定期审计。

版本控制和 MFA 删除

继续此处的文章…

版本控制

当在存储桶上启用版本控制时,S3 会保留对象的多个版本,而不是永久替换或删除它。这使您能够在文件被误删或误修改时恢复其先前的版本。

注意: 此功能一旦在存储桶上启用就无法关闭,并且由于存储了额外的版本会产生额外费用。

MFA Delete

启用 MFA Delete 为您的 S3 存储桶添加额外的保护措施。当启用 MFA Delete 时,用户必须在提供正常凭证的基础上 额外提供 有效的多因素认证(MFA)令牌,才能执行敏感操作,例如:

  • 永久删除对象版本
  • 暂停存储桶的版本控制

此额外步骤确保即使攻击者获取了用户的凭证,若没有对 MFA 设备的物理访问,也无法执行破坏性操作。

摘要

版本控制和 MFA 删除共同提供了一种有效的防护措施,以防止因人为错误或恶意行为导致的数据丢失。

提示: 在您的 S3 存储桶上启用版本控制和 MFA 删除,以防止意外或恶意删除。

Back to Blog

相关文章

阅读更多 »

了解 AWS IAM 标识符

在使用 AWS 安全时,初学者经常感到困惑的一件事是 IAM 标识符。你可能已经看到过 ARN、UserID、RoleID 和 FriendlyName 等术语……