问:如何控制对我存储在 Amazon S3 上的数据的访问?
客户可以使用四种机制来控制对 Amazon S3 资源的访问:Identity and Access Management (IAM) 策略、存储桶策略、访问控制列表 (ACL) 和查询字符串身份验证。IAM 让拥有多名员工的组织能够在一个 AWS 账户下创建和管理多个用户。通过 IAM 策略,公司可为 IAM 用户授予对 Amazon S3 存储桶或数据对象的细化控制权限,同时保留对用户执行的所有操作的完全控制。通过存储桶策略,公司可以定义广泛适用于所有 Amazon S3 资源请求的规则,例如授予对一部分 Amazon S3 资源的写入权限。客户还可以基于请求的某种特征(例如 HTTP 引用站点和 IP 地址)来限制访问。通过 ACL,客户可为特定用户授予对单个存储桶或数据对象的特定权限(例如读取、写入、完全控制)。通过查询字符串身份验证,客户可创建指向某个 Amazon S3 数据对象的 URL,仅在限定时间内有效。有关 Amazon S3 中的各种可用访问控制策略的更多信息,请参阅 Amazon S3 开发人员指南中的访问控制主题。
问:Amazon S3 是否支持数据访问审核?
是的。客户可以选择配置 Amazon S3 存储桶,为针对它的所有请求创建访问日志记录。这些访问日志记录可用于审核用途,包含有关请求的详细信息,例如请求类型、在请求中指定的资源、处理请求的时间和日期。
问:对存储在 Amazon S3 上的数据加密时,可以使用哪些选项?
您可以选择使用服务器端加密 (SSE),或者使用 Amazon S3 加密客户端等 客户端库,加密您在 Amazon S3 中的数据。两种方法都可以保护存储在 Amazon S3 上的敏感数据。如果使用客户端库,您可以保持对用于加密的密钥的控制。有些客户希望获得对密钥的更多控制;而其他客户则不希望产生管理和保护这些密钥所需 的开销。如果使用 SSE,AWS 将为您处理密钥管理和密钥保护。如果您希望 AWS 管理密钥,应该选择使用 SSE。SSE 使用了一种最强大的分组加密技术:256 位高级加密标准 (AES-256)。256 位是为 AES 定义的最大密钥大小。对于存储在标准存储和低冗余存储 (RRS) 中的数据对象,可以同时支持客户端加密和服务器端加密。有关使用 Amazon S3 服务器端加密的更多信息,请参阅 Amazon S3 开发人员指南中的使用服务器端加密上的主题。
数据保护
问:Amazon S3 的耐用性如何?
Amazon S3 可在一年内提供 99.999999999% 的数据对象耐久性。这种耐久性级别相当于每年平均有 0.000000001% 的数据对象丢失。例如,如果您使用 Amazon S3 存储 10000 个数据对象,则平均每 10000000 年会发生一次单个数据对象丢失。
问:Amazon S3 的设计如何达到 99.999999999% 的持久性?
Amazon S3 将您的数据对象冗余存储在分布于 Amazon S3 中国(北京)区域的多个设施的多台设备上。该服务可以快速检测和修复任何丢失冗余,从而抵御同时发生的设备故障。在处理对存储数据的请求时,该服务会在返回 SUCCESS 之前,将您的数据对象冗余存储于多个设施。Amazon S3 还定期使用校验和来验证您的数据完整性。
问:Amazon S3 使用哪些校验和来检测数据损坏?
Amazon S3 结合使用内容-MD5 校验和及循环冗余检验 (CRC) 来检测数据损坏。Amazon S3 在空闲时对数据执行这些检验和检测,并使用冗余数据修复任何损坏。此外,在存储或提取数据时,该服务还对所有网络流量计算校验,以检测数据包损坏。
问:什么是版本控制?
通过版本控制,您可以保留、提取和恢复存储在 Amazon S3 存储桶中的每个数据对象的每个版本。一旦您为存储桶启用版本控制,Amazon S3 将在您每次执行 PUT、POST、COPY 或 DELETE 操作时保留现有数据对象。默认情况下,GET 请求将提取最近写入的版本。可通过在请求中指定版本,提取已覆盖数据对象或已删除数据对象的旧版本。
问:为什么应该使用版本控制?
Amazon S3 为客户提供具有很高耐久性的存储基础设施。版本控制可在客户意外覆盖或删除数据对象的情况下提供一种恢复手段,从而提供另一层保护。这使您能够从无意用户操作或应用程序故障中轻松恢复。您还可将版本控制用于数据保留和存档。
问:如何开始使用版本控制?
您可以通过在 Amazon S3 存储桶上启用相应设置,来开始使用版本控制。有关如何启用版本控制的更多信息,请参阅 Amazon S3 技术文档。