限制对 Lightsail 存储桶和对象的公有访问
Amazon Simple Storage Service(Amazon S3)是一种可让客户存储和保护数据的对象存储服务。Amazon Lightsail 对象存储服务基于 Amazon S3 技术。Amazon S3 提供账户级屏蔽公共访问权限,您可以使用它来限制对 AWS 账户 中所有 S3 存储桶的公共访问权限。账户级阻止公有访问可以将所有 S3 存储桶设为 AWS 账户 私有,而不管现有单个存储桶和对象权限如何。
当允许或拒绝公有访问时,Lightsail 对象存储桶考虑以下因素:
-
Lightsail 存储桶访问权限。有关更多信息,请参阅存储桶的权限。
-
Amazon S3 账户级屏蔽公共访问权限配置,其会覆盖 Lightsail 存储桶访问权限。
如果您在 Amazon S3 中启用账户级阻止所有公有访问,您的公有 Lightsail 存储桶和对象将变为私有且不再能够公开访问。
为您的账户配置屏蔽公共访问权限设置
您可以使用 Amazon S3 控制台、AWS Command Line Interface(AWS CLI)、AWS SDK 和 REST API 来配置屏蔽公共访问权限设置。您可以在 Amazon S3 控制台的导航窗格中访问账户级屏蔽公共访问权限功能,如以下示例所示。
Amazon S3 控制台提供的设置可以屏蔽所有公共访问权限,屏蔽通过新的或任何访问控制列表授予的公共访问权限,以及屏蔽通过新的或任何公有存储桶或接入点策略授予的对存储桶和对象的公共访问权限。
您可以在 Amazon S3 控制台中打开或关闭每个设置。在 API 中,相应的设置为 TRUE
(打开)或 FALSE
(关闭)。以下部分介绍了每个设置对 S3 存储桶和 Lightsail 存储桶的影响。
注意
以下部分提到访问控制列表 (ACL)。ACL 定义拥有或有权访问存储桶或单个对象的用户。有关更多信息,请参阅《Amazon S3 用户指南》中的访问控制列表概述。
-
阻止所有公有访问:启用此设置以阻止对您的 S3 存储桶、Lightsail 存储桶及其对应对象的所有公有访问。此设置包含以下所有设置。启用此设置后,只有您(存储桶所有者)和授权用户可以访问您的存储桶及其对象。您只能在 Amazon S3 控制台中启用此设置。它不适用于 AWS CLI、Amazon S3 API 或 AWS SDK。
-
屏蔽通过新访问控制列表(ACL)授予的对存储桶和对象的公共访问权限:启用此设置以屏蔽将公有 ACL 放在存储桶和对象上。此设置不会影响现有 ACL。因此,已有公有 ACL 的对象仍然是公有的。由于存储桶访问权限设置为 All objects are public and read-only(所有对象均为公有且只读),因此此设置对公有对象也没有影响。此设置在 Amazon S3 API 中被标记为
BlockPublicAcls
。注意
将媒体放入 Lightsail 存储桶的 WordPress 插件(例如 Offload Media Light 插件)可能会在此设置启用时停止工作。这是因为大多数 WordPress 插件在对象上配置公有读取 ACL。切换对象 ACL 的 WordPress 插件也可能会停止工作。
-
屏蔽通过任何访问控制列表(ACL)授予的对存储桶和对象的公共访问权限:启用此设置以忽略公有 ACL 并屏蔽对存储桶和对象的公共访问权限。此设置允许将公有 ACL 放在存储桶和对象上,但在授予访问权限时会忽略它们。对于 Lightsail 存储桶,将存储桶的访问权限设置为 All objects are public and read-only(所有对象均为公有且只读),或者将单个对象的权限设置为 Public (read-only)(公有(只读)),相当于设置了公有 ACL。此设置在 Amazon S3 API 中被标记为
IgnorePublicAcls
。 -
屏蔽通过新的公有存储桶或接入点策略授予的对存储桶和对象的公共访问权限:启用此设置以屏蔽在您的 Lightsail 存储桶上配置所有对象均为公有且只读存储桶访问权限。此设置不影响已配置 All objects are public and read-only(所有对象均为公有且只读)存储桶访问权限的存储桶。此设置在 Amazon S3 API 中被标记为
BlockPublicPolicy
。 -
阻止通过任何公有存储桶或接入点策略对存储桶和对象的公有和跨账户存取:启用此设置可将您的所有 Lightsail 存储桶设为私有。这会使所有 Lightsail 存储桶成为私有,即使它们配置了 All objects are public and read-only(所有对象均为公有且只读)存储桶访问权限。此设置在 Amazon S3 API 中被标记为
RestrictPublicBuckets
。重要
此设置还会阻止 Lightsail 存储桶上配置的跨账户存取,该存储桶也在 Lightsail 中配置了 All objects are public and read-only(所有对象均为公有且只读)存储桶访问权限。要继续允许跨账户存取,请务必先在 Lightsail 中为 Lightsail 存储桶配置所有对象均私有存储桶访问权限,然后再在 Amazon S3 中启用阻止通过任何公有存储桶或接入点策略对存储桶和对象的公有和跨账户存取设置。
-
有关屏蔽公共访问权限以及如何对其进行配置的更多信息,请参阅《Amazon S3 用户指南》中的以下资源:
使用 Lightsail 控制台、AWS CLI、AWS SDK 和 REST API 来配置 Lightsail 存储桶的访问权限。有关更多信息,请参阅存储桶的权限。
注意
Lightsail 使用服务相关角色来获取 Amazon S3 中的当前账户级别屏蔽公共访问权限配置,然后将其应用于 Lightsail 对象存储资源。在 Amazon S3 中配置屏蔽公共访问权限后,请等待至少一小时,以便配置在 Lightsail 中生效。有关更多信息,请参阅服务相关角色。
管理存储桶和对象
以下是管理 Lightsail 对象存储桶的一般步骤:
-
了解 Amazon Lightsail 对象存储服务中的对象和存储桶。有关更多信息,请参阅 Amazon Lightsail 中的对象存储。
-
了解可以在 Amazon Lightsail 中为存储桶起的名称。有关更多信息,请参阅 Amazon Lightsail 中的存储桶命名规则。
-
通过创建存储桶开始使用 Lightsail 对象存储服务。有关更多信息,请参阅在 Amazon Lightsail 中创建存储桶。
-
了解存储桶的安全最佳实践以及您可以为存储桶配置的访问权限。您可以将存储桶中的所有对象设为公开或私有,也可以选择将单个对象设为公开。通过创建访问密钥、将实例附加到存储桶,以及向其他亚马逊云科技账户授予访问权限,还可以授予对存储桶的访问权限。有关更多信息,请参阅 Amazon Lightsail 对象存储的安全最佳实践和了解 Amazon Lightsail 中的存储桶权限。
了解存储桶访问权限后,请参阅以下指南,授予对存储桶的访问权限:
-
了解如何为存储桶启用访问日志记录,以及如何使用访问日志来审计存储桶的安全性。有关更多信息,请参阅以下指南。
-
创建 IAM policy,赋予用户管理 Lightsail 中存储桶的能力。有关更多信息,请参阅用于管理 Amazon Lightsail 中存储桶的 IAM policy。
-
了解存储桶中对象的标记和识别方式。有关更多信息,请参阅了解 Amazon Lightsail 中的对象键名称。
-
了解如何上传文件和管理存储桶中的对象。有关更多信息,请参阅以下指南。
-
启用对象版本控制,可保留、检索和还原存储桶中存储的每个对象的各个版本。有关更多信息,请参阅在 Amazon Lightsail 中启用和暂停存储桶中的对象版本控制。
-
启用对象版本控制后,您可以还原存储桶中对象的先前版本。有关更多信息,请参阅在 Amazon Lightsail 中还原存储桶中对象的先前版本。
-
监控存储桶的利用率。有关更多信息,请参阅查看 Amazon Lightsail 中的存储桶指标。
-
配置存储桶指标的警报,以便在存储桶的利用率超过阈值时收到通知。有关更多信息,请参阅在 Amazon Lightsail 中创建存储桶指标警报。
-
如果存储桶的存储和网络传输不足,请更改存储桶的存储套餐。有关更多信息,请参阅更改 Amazon Lightsail 存储桶的计划。
-
了解如何将您的存储桶连接到其他资源。有关更多信息,请参阅以下教程。
-
如果您不再使用存储桶,则将其删除。有关更多信息,请参阅在 Amazon Lightsail 中删除存储桶。