亚马逊AWS官方博客

使用 Amazon S3 接入点轻松管理共享数据集

安全、可扩展、持久且高度可用的存储是云计算的基本组件。这就是 AWS 早在 2006 年将 Amazon Simple Storage Service (S3) 作为首项服务推出的原因。在 AWS 目前提供的超过 175 种服务中,它已成为许多服务的基础组件。随着我们即将迈入一个新的十年,Amazon RedshiftAmazon AthenaAmazon EMR 和 等功能使 S3 不仅成为存储对象的方式,也成为将数据转化为见解的引擎。这些功能意味着访问模式和对存储桶中存储的数据的要求已经发生了变化。

今天,我们推出了一种规模化管理 S3 中共享数据集的数据访问的新方式:Amazon S3 接入点S3 接入点是唯一具有的专用访问策略的主机名,此策略描述了如何使用该终端节点访问数据。在 S3 接入点之前,对数据的共享访问意味着管理存储桶中的单个策略文档。这些策略可以代表数百个不同权限的应用程序,进行审计,并更新影响许多系统的潜在瓶颈。

借助 S3 接入点,您可以在添加其他应用程序或团队时添加接入点,从而使策略保持特定性和易于管理。存储桶可以具有多个接入点,并且每个接入点都具有自己的 AWS Identity and Access Management (IAM) 策略。接入点策略类似于存储桶策略,但与接入点关联。S3 接入点也可以被限制为仅允许从 Amazon Virtual Private Cloud 内部进行访问。而且,由于每个接入点具有唯一的 DNS 名称,因此现在可以使用您的 AWS 帐户和区域内唯一的任何名称来对存储桶进行寻址。

创建 S3 接入点

让我们使用 S3 控制台将接入点添加到存储桶中。您还可以使用 AWS 命令行界面 (CLI)AWS 开发工具包或通过 API 创建和管理 S3 接入点。我选择了一个包含由 AWS Lambda 函数生成的工件的存储桶,然后单击接入点选项卡。

S3 控制台中的“接入点”选项卡

让我们创建一个新的接入点。我想授予 IAM 用户 Alice 对前缀为 AliceGETPUT 对象的权限。我将此接入点命名为 alices-access-point。有一些选项可用于限制对 Virtual Private Cloud 的访问,仅需要一个 Virtual Private Cloud ID。在本例中,我也希望允许从 VPC 外部进行访问,因此,在获取了此屏幕截图之后,我选择了互联网,然后转到下一步。

创建接入点

S3 接入点可轻松阻止公共访问。我将阻止该接入点的所有公共访问。

公共访问设置

现在,我可以附加策略。在此策略中,我们的委托人是我们的用户 Alice,而资源是并与每个带有 /Alice 前缀的对象组合在一起的接入点。有关您可能希望附加到 S3 接入点的策略类型的更多示例,请查看相关文档

创建接入点策略

创建接入点后,可通过使用格式 https://[access_point_name]-[accountID].s3-accesspoint.[region].amazonaws.com 的主机名进行访问。将存储桶更新至最新版本后,即可以通过开发工具包CLI,像使用存储桶一样使用接入点。例如,假设我已通过 Alice 的身份验证,则可以执行以下操作:

$ aws s3api get-object --key /Alice/object.zip --bucket arn:aws:s3:us-east-1:[my-account-id]:alices-access-point download.zip

也可以通过 S3 控制台使用不限于 VPC 的接入点。

注意事项

在软件设计方面,保持范围较小并专注于特定任务几乎始终是不错的决定。使用 S3 接入点,您可以为需要访问共享数据集的任何用户或应用程序自定义主机名和权限。请告诉我们您对这项新功能的满意程度,并祝您构建愉快!

— Brandon