对您的 S3 存储桶的基本保护
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 删除,以防止意外或恶意删除。