目录存储桶的安全最佳实践 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

目录存储桶的安全最佳实践

Amazon S3 提供了大量安全功能,您在开发和实施自己的安全策略时可以考虑使用。以下最佳实操是一般准则,并不代表完整的安全解决方案。这些最佳实践可能不适合您的环境或不满足您的环境要求,请将其视为有用的建议而不是惯例。

默认屏蔽公共访问权限和对象所有权设置

要使用 S3 Express One Zone 存储类,您必须使用 S3 目录存储桶。目录存储桶支持 S3 屏蔽公共访问权限和 S3 对象所有权。这些 S3 功能用于审计和管理对存储桶及对象的访问。

默认情况下,所有的目录存储桶都启用了屏蔽公共访问权限设置。此外,对象所有权设置为强制存储桶拥有者,这意味着访问控制列表(ACL)已禁用。无法修改这些设置。有关使用这些功能的更多信息,请参阅阻止对您的 Amazon S3 存储的公有访问为您的存储桶控制对象所有权和禁用 ACL。

注意

您无法授予对存储在目录存储桶中的对象的访问权限。您只能授予对目录存储桶的访问权限。S3 Express One Zone 的授权模式与 Amazon S3 的授权模式不同。有关更多信息,请参阅 使用 CreateSession 对可用区端点 API 操作进行授权

身份验证和授权

根据您是向可用区端点 API 操作发出请求还是向区域端点 API 操作发出请求,S3 Express One Zone 的身份验证和授权机制会有所不同。可用区 API 操作是对象级(数据面板)操作。区域 API 操作是存储桶级(控制面板)操作。

借助 S3 Express One Zone,您可以通过基于会话的全新机制,对针对可用区端点 API 操作的请求进行身份验证和授权,该机制经过优化,可提供极低的延迟。通过基于会话的身份验证,Amazon SDK 使用 CreateSession API 操作来请求临时凭证,以提供对目录存储桶的低延迟访问。这些临时凭证的作用范围限制为特定的目录存储桶,并在 5 分钟后过期。您可以使用这些临时凭证对可用区(对象级)API 调用签名。有关更多信息,请参阅 使用 CreateSession 对可用区端点 API 操作进行授权

使用 S3 Express One Zone 凭证对请求签名

您可以通过您的 S3 Express One Zone 凭证,使用 Amazon 签名版本 4 并将 s3express 作为服务名称,对可用区端点(对象级)API 请求进行签名。在对请求签名时,请使用从 CreateSession 返回的密钥,还要通过 x-amzn-s3session-token header 提供会话令牌。有关更多信息,请参阅 CreateSession

适用于 S3 Express One Zone 类的支持的 Amazon SDK 负责管理凭证和签名事宜。我们建议使用适用于 S3 Express One Zone 的 Amazon SDK 来刷新凭证并为您签名请求。

使用 IAM 凭证对请求签名

所有区域(存储桶级)API 调用都必须通过 Amazon Identity and Access Management(IAM)凭证(而不是临时会话凭证)进行身份验证和签名。IAM 凭证由 IAM 身份的访问密钥 ID 和秘密访问密钥组成。所有 CopyObjectHeadBucket 请求还必须使用 IAM 凭证进行身份验证和签名。

为了尽可能减少可用区(对象级)操作调用的延迟,我们建议使用通过调用 CreateSession 获得的 S3 Express One Zone 凭证来对您的请求签名,但 CopyObjectHeadBucket 的请求除外。

使用 Amazon CloudTrail

Amazon CloudTrail 提供用户、角色或 Amazon Web Services 服务在 Amazon S3 中执行的操作的记录。您可以使用 CloudTrail 收集的信息确定以下事项:

  • 向 Amazon S3 发出的请求

  • 发出请求的 IP 地址

  • 谁发出了请求

  • 发出请求的时间

  • 有关该请求的其他详细信息

当您设置 Amazon Web Services 账户时,CloudTrail 管理事件默认处于启用状态。以下区域端点 API 操作(存储桶级或控制面板 API 操作)将记录到 CloudTrail 中。

注意

ListMultipartUploads 是可用区端点 API 操作。但是,它会作为管理事件记录到 CloudTrail 中。有关更多信息,请参阅《Amazon Simple Storage Service API 参考》中的 ListMultipartUploads

默认情况下,CloudTrail 跟踪不记录数据事件,但您可以将跟踪配置为记录您指定的目录存储桶的数据事件,或记录您的 Amazon 账户中所有目录存储桶的数据事件。以下可用区端点 API 操作(对象级或数据面板 API 操作)将记录到 CloudTrail 中。

有关将 Amazon CloudTrail 与 S3 Express One Zone 结合使用的更多信息,请参阅使用 Amazon CloudTrail 为 S3 Express One Zone 记录日志

使用 Amazon 监控工具实施监控

监控是保持 Amazon S3 和您的 Amazon 解决方案的可靠性、安全性、可用性和性能的重要部分。Amazon 提供了一些可用来监控 Amazon S3 和您的其他 Amazon Web Services 服务的工具和服务。例如,您可以监控 Amazon S3 的 Amazon CloudWatch 指标,特别是 BucketSizeBytesNumberOfObjects 存储指标。

存储在 S3 Express One Zone 存储类中的对象不会反映在 Amazon S3 的 BucketSizeBytesNumberOfObjects 存储指标中。但是,S3 Express One Zone 支持 BucketSizeBytesNumberOfObjects 存储指标。要查看您选择的指标,您可以通过指定 StorageType 维度来区分 Amazon S3 存储类和 S3 Express One Zone 存储类。有关更多信息,请参阅 使用 Amazon CloudWatch 监控指标

有关更多信息,请参阅使用 Amazon CloudWatch 监控指标Amazon S3 中的日志记录和监控