

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 安全 Lightsail 对象存储桶
<a name="amazon-lightsail-bucket-security-best-practices"></a>

Amazon Lightsail 对象存储提供了许多安全功能，供您在制定和实施自己的安全策略时考虑。以下最佳实践是一般指导原则，并不代表完整安全解决方案。这些最佳实践可能不适合环境或不满足环境要求，请将其视为有用的考虑因素而不是惯例。

**Contents**
+ [预防性安全最佳实践](#bucket-security-best-practices-preventative-practices)
  + [实施最低权限访问](#bucket-security-best-practices-least-privilege-access)
  + [确认您的 Lightsail 存储桶不可公开访问](#bucket-security-best-practices-verify-bucket-permissions)
  + [在 Amazon S3 中启用屏蔽公共访问权限](#bucket-security-best-practices-block-public-access)
  + [将实例附加到存储桶，以授予完全编程访问](#bucket-security-best-practices-attach-instances)
  + [轮换存储桶访问密钥](#bucket-security-best-practices-rotate-bucket-access-keys)
  + [使用跨账户访问权限向其他 AWS 账户授予对存储桶中对象的访问权限](#bucket-security-best-practices-cross-account-access)
  + [数据加密](#bucket-security-best-practices-data-encryption)
  + [启用版本控制](#bucket-security-best-practices-enable-versioning)
+ [监测和审计最佳实践](#bucket-security-best-practices-monitoring-auditing)
  + [启用访问日志记录并定期执行安全和访问审计](#bucket-security-best-practices-enable-access-logging)
  + [识别、标记和审核您的 Lightsail 存储桶](#bucket-security-best-practices-identify-tag)
  + [使用监控工具实施 AWS 监控](#bucket-security-best-practices-monitoring-tools)
  + [使用 AWS CloudTrail](#bucket-security-best-practices-cloudtrail)
  + [监控 AWS 安全公告](#bucket-security-best-practices-security-advisories)

## 预防性安全最佳实践
<a name="bucket-security-best-practices-preventative-practices"></a>

以下最佳做法可以帮助防止 Lightsail 存储桶发生安全事件。

### 实施最低权限访问
<a name="bucket-security-best-practices-least-privilege-access"></a>

在授予权限时，您可以决定谁将获得哪些 Lightsail 资源的权限。您可以对这些资源启用希望允许的特定操作。因此，您应仅授予执行任务所需的权限。实施最低权限访问对于减小安全风险以及可能由错误或恶意意图造成的影响至关重要。

有关创建 IAM policy 来管理存储桶的更多信息，请参阅[用于管理存储桶的 IAM policy](amazon-lightsail-bucket-management-policies.md)。有关 Lightsail 存储桶支持的 Amazon S3 操作的更多信息，请参阅 Ama *z* on Lightsail API 参考中的[对象存储操作](https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_Amazon_S3.html)。

### 确认您的 Lightsail 存储桶不可公开访问
<a name="bucket-security-best-practices-verify-bucket-permissions"></a>

默认情况下，存储桶和对象都是私有的。通过将存储桶访问权限设置为 **All objects are private**（所有存储桶均为私有）使存储桶保持私有。对于大多数用例，您无需将存储桶或单个对象设为公有。有关更多信息，请参阅[配置存储桶中个别对象的访问权限](amazon-lightsail-configuring-individual-object-access.md)。

![\[Lightsail 控制台中的存储桶访问权限\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-permission-all-objects-private.png)


但是，如果您使用存储桶托管网站或应用程序的媒体，在某些情况下，可能需要将存储桶或单个对象设为公有。您可以配置以下选项之一，以将存储桶或单个对象设为公有：
+ 如果存储桶中的某些对象需要对互联网上的任何人公开（只读），请将存储桶访问权限更改为 **Individual objects can be made public and read-only**（单个对象可设为公有且只读），并且仅将需要设为公有的对象更改为 **Public (read-only)**（公有（只读））。此选项会将存储桶设为私有，但允许您选择将单个对象设为公有。如果单个对象包含您不希望可公有访问的敏感或机密信息，则不要将其设为公有。如果您将单个对象设为公有，则应定期验证各个对象的公共可访问性。  
![\[Lightsail 控制台中的存储桶访问权限\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-permission-individual-objects-public.png)
+ 如果存储桶中的所有对象都需要对互联网上的任何人公开（只读），请将存储桶访问权限更改为 **All objects are public and read-only**（所有对象均为公有且只读）。如果存储桶中的任何对象包含敏感或机密信息，请勿使用此选项。  
![\[Lightsail 控制台中的存储桶访问权限\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-permission-all-objects-public.png)
+ 如果您之前已将存储桶更改为公有，或者将单个对象更改为公有，则可以通过将存储桶访问权限更改为 **All objects are private**（所有对象均为私有）来快速将存储桶及其所有对象更改为私有。  
![\[Lightsail 控制台中的存储桶访问权限\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-permission-all-objects-private.png)

### 在 Amazon S3 中启用屏蔽公共访问权限
<a name="bucket-security-best-practices-block-public-access"></a>

在允许或拒绝公开访问时，Lightsail 对象存储资源会同时考虑 Lightsail 存储桶访问权限和 Amazon S3 账户级别的封禁公共访问配置。借助 Amazon S3 账户级别的封禁公共访问权限，账户管理员和存储桶拥有者可以集中限制公众对其的 Amazon S3 和 Lightsail 存储桶的访问权限。封锁公有访问可以将所有 Amazon S3 和 Lightsail 存储桶设为私有，无论资源是如何创建的，也无论可能配置了哪个存储桶和对象权限。有关更多信息，请参阅[屏蔽对存储桶的公共访问权限](amazon-lightsail-block-public-access-for-buckets.md)。

### 将实例附加到存储桶，以授予完全编程访问
<a name="bucket-security-best-practices-attach-instances"></a>

将实例附加到 Lightsail 对象存储桶是提供对存储桶的访问权限的最安全的方式。**资源访问**功能（将实例附加到存储桶的方式）可以授予实例对存储桶的完全编程访问权限。使用此方法，您不必将存储桶凭证直接存储在实例或应用程序中，也不必定期轮换凭证。例如，某些 WordPress 插件可以访问实例有权访问的存储桶。有关更多信息，请参阅[配置存储桶的资源访问权限](amazon-lightsail-configuring-bucket-resource-access.md)和[教程：将存储桶连接到您的 WordPress 实例](amazon-lightsail-connecting-buckets-to-wordpress.md)。

![\[在 Lightsail 控制台中访问存储桶资源\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-resource-access-attached.png)


但是，如果应用程序不在 Lightsail 实例上，则可以创建和配置存储桶访问密钥。存储桶访问密钥是长期凭证，不会自动轮换。有关更多信息，请参阅 [创建 Lightsail 对象存储桶访问密钥](amazon-lightsail-creating-bucket-access-keys.md)。

![\[Lightsail 控制台中的存储桶访问密钥\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-access-keys.png)


### 轮换存储桶访问密钥
<a name="bucket-security-best-practices-rotate-bucket-access-keys"></a>

每个存储桶最多可以有两个访问密钥。虽然您可以同时拥有两个不同的访问密钥，但我们建议您在密钥轮换时间之外，每次仅为存储桶创建一个访问密钥。这种做法可确保您随时创建新的存储桶访问密钥时，该密钥不会处于使用状态。例如，如果您现有的秘密访问密钥被复制、丢失或泄露，并且需要轮换现有访问密钥，则创建第二个访问密钥进行轮换会很有帮助。

如果您在存储桶中使用访问密钥，则应定期轮换密钥，并清点现有密钥。请确认上次使用访问密钥的日期以及使用访问密钥的 AWS 区域 与您对该密钥的使用方式期望相符。上次使用访问密钥的日期显示在 Lightsail 控制台的存储分区管理页面 “**权限**” 选项卡的 “**访问密钥**” 部分中。删除未使用的访问密钥。

要轮换访问密钥，您需要创建一个新的访问密钥，在软件上对其进行配置并测试，然后删除之前使用过的访问密钥。在您删除访问密钥后，该密钥将永久消失且无法恢复。您只能将其替换为新的访问密钥。有关更多信息，请参阅[创建 Lightsail 对象存储桶访问密钥](amazon-lightsail-creating-bucket-access-keys.md)和[删除 Lightsail 对象存储桶的访问密钥](amazon-lightsail-deleting-bucket-access-keys.md)。

### 使用跨账户访问权限向其他 AWS 账户授予对存储桶中对象的访问权限
<a name="bucket-security-best-practices-cross-account-access"></a>

您可以使用跨账户访问权限使拥有 AWS 账户的特定个人可以访问存储桶中的对象，而无需将存储桶及其对象公开。如果您配置了跨账户访问权限，请确保 IDs 列出的账户是您想要授予对存储桶中对象的访问权限的正确账户。有关更多信息，请参阅[为存储桶配置跨账户存取](amazon-lightsail-configuring-bucket-cross-account-access.md)。

![\[Lightsail 控制台中的存储桶跨账户访问权限\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bucket-cross-account-access.png)


### 数据加密
<a name="bucket-security-best-practices-data-encryption"></a>

Lightsail 使用亚马逊托管密钥执行服务器端加密，并通过强制执行 HTTPS (TLS) 对传输中的数据进行加密。服务器端加密通过单独服务中存储的密钥对数据进行加密，有助于降低数据风险。此外，对传输中的数据进行加密有助于防止潜在的攻击者使用 person-in-the-middle或类似的攻击窃听或操纵网络流量。

### 启用版本控制
<a name="bucket-security-best-practices-enable-versioning"></a>

版本控制是在相同的桶中保留对象的多个变量的方法。您可以使用版本控制来保存、检索和还原存储在 Lightsail 存储桶中的每个对象的每个版本。使用版本控制能够轻松从用户意外操作和应用程序故障中恢复数据。有关更多信息，请参阅[启用和暂停存储桶对象版本控制](amazon-lightsail-managing-bucket-object-versioning.md)。

## 监测和审计最佳实践
<a name="bucket-security-best-practices-monitoring-auditing"></a>

以下最佳做法可以帮助检测 Lightsail 存储桶的潜在安全漏洞和事件。

### 启用访问日志记录并定期执行安全和访问审计
<a name="bucket-security-best-practices-enable-access-logging"></a>

访问日志记录详细地记录对存储桶做出的各种请求。这些信息可能包括请求类型（`GET`、`PUT`）、请求中指定的资源以及处理请求的时间和日期。为存储桶启用访问日志记录，并定期执行安全和访问审计，以确定正在访问存储桶的实体。默认情况下，Lightsail 不会收集存储桶的访问日志。您必须手动启用访问日志记录。有关更多信息，请参阅[存储桶访问日志](amazon-lightsail-enabling-bucket-access-logs.md)和[启用存储桶访问日志记录](amazon-lightsail-enabling-bucket-access-logs.md)。

### 识别、标记和审核您的 Lightsail 存储桶
<a name="bucket-security-best-practices-identify-tag"></a>

确定您的 IT 资产是监管和安全性的一个至关重要的方面。您需要查看所有 Lightsail 存储桶，以评估其安全态势并对潜在的薄弱环节采取措施。

使用标签确定安全性敏感或审计敏感资源，然后在您需要搜索这些资源时使用这些标签。有关更多信息，请参阅[标签](amazon-lightsail-tags.md)。

### 使用监控工具实施 AWS 监控
<a name="bucket-security-best-practices-monitoring-tools"></a>

监控是维护 Lightsail 存储桶和其他资源的可靠性、安全性、可用性和性能的重要组成部分。您可以在 Lightsail 中监控**存储桶大小** (`BucketSizeBytes`) 和 `Number of objects` (**NumberOfObjects**) 存储桶指标并创建通知警报。例如，当存储桶的大小增加或减少到特定大小时，或者当存储桶中的对象数量上升或下降到特定数量时，您可能希望收到通知。有关更多信息，请参阅[创建存储桶指标警报](amazon-lightsail-adding-bucket-metric-alarms.md)。

### 使用 AWS CloudTrail
<a name="bucket-security-best-practices-cloudtrail"></a>

AWS CloudTrail 提供用户、角色或 AWS 服务在 Lightsail 中执行的操作的记录。您可以使用收集的信息 CloudTrail 来确定向 Lightsail 发出的请求、发出请求的 IP 地址、谁发出了请求、何时发出请求以及其他详细信息。例如，您可以识别影响数据访问的操作 CloudTrail条目，特别是`CreateBucketAccessKey``GetBucketAccessKeys`、`DeleteBucketAccessKey``SetResourceAccessForBucket`、和`UpdateBucket`。在您设置 AWS 账户时，默认 CloudTrail 处于启用状态。您可以在 CloudTrail 控制台中查看最近的事件。要为您的 Lightsail 存储桶创建持续的活动和事件记录，您可以在控制台中创建跟踪。 CloudTrail 有关更多信息，请参阅 *AWS CloudTrail 用户指南*中的[记录数据事件以便跟踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)。

### 监控 AWS 安全公告
<a name="bucket-security-best-practices-security-advisories"></a>

主动监控注册到 AWS 账户的主电子邮件地址。 AWS 将使用此电子邮件地址就可能影响您的新出现的安全问题与您联系。

AWS 具有广泛影响的运营问题发布在 S [AWS ervice Health Das](https://status.aws.amazon.com/) hboard 上。操作性问题也会通过 Personal Health Dashboard 发布给个人账户。有关更多信息，请参阅 [AWS Health 文档](https://docs.aws.amazon.com/health/)。