Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

创建请求

Amazon S3 是 REST 服务。可以使用 REST API 或是打包底层 Amazon S3 REST API 以简化编程任务的 AWS 开发工具包 (请参阅示例代码和库) 包装程序库,向 Amazon S3 发送请求。

与 Amazon S3 的每一次交互都是经身份验证的或匿名的。身份验证是对尝试访问 Amazon Web Services (AWS) 产品的请求者身份进行验证的过程。经身份验证的请求必须包含可验证请求发送者的签名值。签名值的一部分是从请求者的 AWS 访问密钥 (访问密钥 ID 和秘密访问密钥) 生成的。有关创建访问密钥的更多信息,请参阅如何获取安全凭证? (在 AWS General Reference 中)。

如果您使用 AWS 开发工具包,则库将通过您提供的密钥计算签名。然而,如果您在应用程序中直接调用 REST API,您必须编写代码来计算签名并将它添加到请求中。

关于访问密钥

下面各部分将回顾您可以用于进行经身份验证的请求的访问密钥类型。

AWS 账户访问密钥

账户访问密钥提供对账户拥有的 AWS 资源的完全访问权限。以下是访问密钥示例:

  • 访问密钥 ID (20 个字符的字母数字字符串)。例如:AKIAIOSFODNN7EXAMPLE

  • 秘密访问密钥 (40 个字符的字符串)。例如:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

访问密钥 ID 可唯一标识 AWS 账户。可以使用这些访问密钥向 Amazon S3 发送经身份验证的请求。

IAM 用户访问密钥

您可以为公司创建一个 AWS 账户;但组织中可能有多个员工需要访问组织的 AWS 资源。共享您的 AWS 账户访问密钥会降低安全性,但为每个员工创建单独的 AWS 账户可能也不太实际。此外,您也可能无法轻松地共享资源 (例如,存储桶和对象),因为它们由不同账户所拥有。要共享资源,您必须授予许可,这意味着需要额外的工作。

在这些情况中,您可以使用 AWS Identity and Access Management (IAM) 在您的 AWS 账户下创建具有其自己的访问密钥的用户,然后附加 IAM 用户策略以授予这些用户合适的资源访问许可。为了更好地管理这些用户,IAM 允许您创建用户组并授予适用于组中所有用户的组级许可。

这些用户被称为 IAM 用户,您可以在 AWS 内创建和管理这些用户。父账户将控制用户访问 AWS 的权限。父 AWS 账户负责控制和支付 IAM 用户创建的任何资源。这些 IAM 用户可以使用自己的安全凭证,向 Amazon S3 发送经身份验证的请求。有关在 AWS 账户下创建和管理用户的更多信息,请参阅 AWS Identity and Access Management 产品详细信息页面

临时安全凭证

除了创建具有自己的访问密钥的 IAM 用户之外,IAM 还允许您向任何 IAM 用户授予临时安全凭证 (临时访问密钥和安全令牌),以便这些用户可以访问您的 AWS 服务和资源。您也可以在 AWS 之外的系统中管理用户。他们被称为联合用户。此外,用户还可以是您创建的能访问您的 AWS 资源的应用程序。

IAM 提供了 AWS Security Token Service API,供您用于请求临时安全凭证。您可以使用 AWS STS API 或 AWS 开发工具包来请求这些凭证。API 将返回临时安全凭证 (访问密钥 ID 和秘密访问密钥) 和安全令牌。这些凭证仅在您请求它们时指定的持续时间内有效。使用访问密钥 ID 和私有密钥的方法与您在使用 AWS 账户或 IAM 用户访问密钥发送请求时使用它们的方法相同。此外,您还必须在每个发送至 Amazon S3 的请求中包含令牌。

IAM 用户可以请求这些临时安全凭证以供自己使用,也可以分发给联合用户或应用程序使用。请求适用于联合用户的临时安全凭证时,您必须提供用户名称和 IAM 策略 (定义需要与这些临时安全凭证关联的许可)。联合用户可获取的许可不能超过请求临时凭证的父 IAM 用户的许可。

您可以使用上述临时安全凭证对 Amazon S3 发出请求。API 库会使用这些凭证计算必要的签名值,以便对您的请求进行身份验证。如果您使用过期凭证发送请求,Amazon S3 会拒绝该请求。

有关在您的 REST API 请求中使用临时安全凭证对请求进行签名的信息,请参阅 签署和对 REST 请求进行身份验证。有关使用 AWS 开发工具包发送请求的信息,请参阅 使用 AWS 开发工具包创建请求

有关 IAM 对临时安全凭证的支持的更多信息,请参阅 IAM 用户指南 中的临时安全凭证

为了提高安全性,您可以通过配置存储桶策略,要求在访问您的 Amazon S3 资源时进行多因素身份验证 (MFA)。有关信息,请参阅 添加存储桶策略以要求进行 MFA 身份验证。在要求进行 MFA 才能访问您的 Amazon S3 资源之后,访问这些资源的唯一方式是提供使用 MFA 密钥创建的临时凭证。有关更多信息,请参阅 IAM 用户指南 中的 AWS Multi-Factor Authentication 详细信息页面和配置受 MFA 保护的 API 访问

请求终端节点

您可以向服务的预定义终端节点发送 REST 请求。有关所有 AWS 服务及其相应终端节点的列表,请参阅 AWS General Reference 中的区域和终端节点