本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
保护 Lightsail 对象存储桶
Amazon Lightsail 对象服务提供了在您开发和实施自己的安全策略时需要考虑的大量安全功能。以下最佳实践是一般指导原则,并不代表完整安全解决方案。这些最佳实践可能不适合环境或不满足环境要求,请将其视为有用的考虑因素而不是惯例。
目录
预防性安全最佳实践
以下最佳实践可以帮助防止 Lightsail 存储桶中出现安全事故。
实施最低权限访问
在授予权限时,您可以决定谁获得哪些 Lightsail 资源的哪些权限。您可以对这些资源启用希望允许的特定操作。因此,您应仅授予执行任务所需的权限。实施最低权限访问对于减小安全风险以及可能由错误或恶意意图造成的影响至关重要。
有关创建 IAM policy 来管理存储桶的更多信息,请参阅用于管理存储桶的 IAM policy。有关 Lightsail 存储桶支持的 Amazon S3 操作的更多信息,请参阅 Amazon LightsailAPI 参考中的对象存储操作。
验证您的 Lightsail 存储桶不可公开访问
默认情况下,存储桶和对象都是私有的。通过将存储桶访问权限设置为 All objects are private(所有存储桶均为私有)使存储桶保持私有。对于大多数用例,您无需将存储桶或单个对象设为公有。有关更多信息,请参阅配置存储桶中个别对象的访问权限。
但是,如果您使用存储桶托管网站或应用程序的媒体,在某些情况下,可能需要将存储桶或单个对象设为公有。您可以配置以下选项之一,以将存储桶或单个对象设为公有:
-
如果存储桶中的某些对象需要对互联网上的任何人公开(只读),请将存储桶访问权限更改为 Individual objects can be made public and read-only(单个对象可设为公有且只读),并且仅将需要设为公有的对象更改为 Public (read-only)(公有(只读))。此选项会将存储桶设为私有,但允许您选择将单个对象设为公有。如果单个对象包含您不希望可公有访问的敏感或机密信息,则不要将其设为公有。如果您将单个对象设为公有,则应定期验证各个对象的公共可访问性。
-
如果存储桶中的所有对象都需要对互联网上的任何人公开(只读),请将存储桶访问权限更改为 All objects are public and read-only(所有对象均为公有且只读)。如果存储桶中的任何对象包含敏感或机密信息,请勿使用此选项。
-
如果您之前已将存储桶更改为公有,或者将单个对象更改为公有,则可以通过将存储桶访问权限更改为 All objects are private(所有对象均为私有)来快速将存储桶及其所有对象更改为私有。
在 Amazon S3 中启用屏蔽公共访问权限
Lightsail 对象存储资源在允许或拒绝公共访问权限权限时会同时考虑 Lightsail 存储桶访问权限和 Amazon S3 账户级别屏蔽公共访问权限配置。借助 Amazon S3 账户级别屏蔽公共访问权限功能,账户管理员和存储桶拥有者可以集中限制对其 Amazon S3 和 Lightsail 存储桶的公共访问权限。启用屏蔽公共访问权限后,可以将所有 Amazon S3 和 Lightsail 存储桶设置为私有,无论资源是如何创建的,也无论单个存储桶和对象权限是如何配置的。有关更多信息,请参阅屏蔽对存储桶的公共访问权限。
将实例附加到存储桶,以授予完全编程访问
将实例附加到 Lightsail 对象存储桶是提供对存储桶的访问的最安全方式。资源访问功能(将实例附加到存储桶的方式)可以授予实例对存储桶的完全编程访问权限。使用此方法,您不必将存储桶凭证直接存储在实例或应用程序中,也不必定期轮换凭证。例如,某些 WordPress 插件可以访问实例有权访问的存储桶。有关更多信息,请参阅配置存储桶的资源访问权限和教程:将存储桶连接到 WordPress 实例。
但是,如果应用程序不是位于 Lightsail 实例上,则您可以创建和配置存储桶访问密钥。存储桶访问密钥是长期凭证,不会自动轮换。有关更多信息,请参阅 创建 Lightsail 对象存储桶访问密钥。
轮换存储桶访问密钥
每个存储桶最多可以有两个访问密钥。虽然您可以同时拥有两个不同的访问密钥,但我们建议您在密钥轮换时间之外,每次仅为存储桶创建一个访问密钥。这种做法可确保您随时创建新的存储桶访问密钥时,该密钥不会处于使用状态。例如,如果您现有的秘密访问密钥被复制、丢失或泄露,并且需要轮换现有访问密钥,则创建第二个访问密钥进行轮换会很有帮助。
如果您在存储桶中使用访问密钥,则应定期轮换密钥,并清点现有密钥。请确认上次使用访问密钥的日期以及使用访问密钥的 AWS 区域 与您对该密钥的使用方式期望相符。上次使用访问密钥的日期显示在 Lightsail 控制台中的存储桶管理页面的 Permissions(权限)选项卡的 Access keys(访问密钥)部分。删除未使用的访问密钥。
要轮换访问密钥,您需要创建一个新的访问密钥,在软件上对其进行配置并测试,然后删除之前使用过的访问密钥。在您删除访问密钥后,该密钥将永久消失且无法恢复。您只能将其替换为新的访问密钥。有关更多信息,请参阅创建 Lightsail 对象存储桶访问密钥和删除 Lightsail 对象存储桶的访问密钥。
使用跨账户存取授予其他 AWS 账户对存储桶中对象的访问权限
您可以使用跨账户存取使拥有 AWS 账户的特定个人可以访问存储桶中的对象,而无需将存储桶及其对象设为公有。如果您已配置跨账户访问,请确保列出的账户 ID 是您想要授予其对存储桶中对象的访问权限的正确账户。有关更多信息,请参阅为存储桶配置跨账户存取。
数据加密
Lightsail 使用 Amazon 托管密钥执行服务器端加密,并通过强制执行 HTTPS (TLS) 对传输中的数据进行加密。服务器端加密通过单独服务中存储的密钥对数据进行加密,有助于降低数据风险。此外,传输中的数据加密有助于防止潜在攻击者使用中间人或类似攻击来窃听或操纵网络流量。
启用版本控制
版本控制是在相同的桶中保留对象的多个变量的方法。对于 Lightsail 存储桶中存储的每个对象,您可以使用版本控制功能来保留、检索和还原它们的各个版本。使用版本控制能够轻松从用户意外操作和应用程序故障中恢复数据。有关更多信息,请参阅启用和暂停存储桶对象版本控制。
监测和审计最佳实践
以下最佳实践可以帮助检测 Lightsail 存储桶中的潜在安全弱点和事故。
启用访问日志记录并定期执行安全和访问审计
访问日志记录详细地记录对存储桶做出的各种请求。这些信息可能包括请求类型(GET、PUT)、请求中指定的资源以及处理请求的时间和日期。为存储桶启用访问日志记录,并定期执行安全和访问审计,以确定正在访问存储桶的实体。默认情况下,Lightsail 不会收集存储桶的访问日志。您必须手动启用访问日志记录。有关更多信息,请参阅存储桶访问日志和启用存储桶访问日志记录。
识别、标记和审核您的 Lightsail 存储桶
确定您的 IT 资产是监管和安全性的一个至关重要的方面。您需要了解您的所有 Lightsail 存储桶,以评估它们的安保状况并对潜在的薄弱领域采取措施。
使用标签确定安全性敏感或审计敏感资源,然后在您需要搜索这些资源时使用这些标签。有关更多信息,请参阅标签。
使用 AWS 监控工具实施监控
监控是保持 Lightsail 存储桶和其他资源的可靠性、安全性、可用性和性能的重要环节。您可以监控 Lightsail 中的存储桶大小 (BucketSizeBytes) 和 Number of objects (NumberOfObjects) 存储桶指标,并创建通知警报。例如,当存储桶的大小增加或减少到特定大小时,或者当存储桶中的对象数量上升或下降到特定数量时,您可能希望收到通知。有关更多信息,请参阅创建存储桶指标警报。
使用 AWS CloudTrail。
AWS CloudTrail 提供用户、角色或 AWS 服务在 Lightsail 中执行的操作的记录。您可以使用 CloudTrail 收集的信息来确定向 Lightsail 发出了什么请求、发出请求的 IP 地址、何人发出的请求、请求的发出时间以及其他详细信息。例如,您可以确定影响数据访问的操作的 CloudTrail 实体,尤其是 CreateBucketAccessKey、GetBucketAccessKeys、DeleteBucketAccessKey、SetResourceAccessForBucket 和 UpdateBucket。当您设置 AWS 账户时,CloudTrail 默认处于启用状态。您可以在 CloudTrail 控制台中查看最近的事件。要为 Lightsail 存储桶创建活动和事件的持续记录,您可以在 CloudTrail 控制台中创建跟踪。有关更多信息,请参阅 AWS CloudTrail 用户指南中的记录数据事件以便跟踪。
监控 AWS 安全公告
主动监控向您的 AWS 账户注册的主电子邮件地址。AWS 将使用该邮箱地址就可能影响您的紧急安全事件与您联系。
具有广泛影响的 AWS 操作性问题将在 AWS Service Health Dashboard