创建桶
要向 Amazon S3 上载数据,您必须首先在其中一个 Amazon Web Services 区域 中创建 Amazon S3 桶。创建桶时,您必须选择桶名称和区域。您可以选择为桶选择其他存储管理选项。创建桶后,无法更改桶名称或区域。有关如何命名桶的信息,请参阅存储桶命名规则。
创建桶的 Amazon Web Services 账户 拥有该桶。您可以将任何数量的对象上载到该桶。默认情况下,您可以在每个 Amazon Web Services 账户中创建多达 100 个桶。如果您需要更多桶,则可以通过提交服务限制提高请求将账户的桶限制提高至最多 1,000 个桶。要了解如何提交桶限制提升,请参阅《Amazon 一般参考》中的 Amazon Web Service限额。一个桶中可以存储任意数量的对象。
S3 对象所有权是 Amazon S3 桶级别的设置,您可以使用该设置来控制上传到桶的对象的所有权,并禁用或启用访问控制列表(ACL)。原定设置情况下,对象所有权设为强制桶拥有者设置,并且所有 ACL 均处于禁用状态。禁用 ACL 后,桶所有者拥有桶中的每个对象,并使用策略专门管理对数据的访问权限。
有关更多信息,请参阅为您的桶控制对象所有权和禁用 ACL。。
具有 Amazon S3 托管式密钥的服务器端加密(SSE-S3)是 Amazon S3 中每个桶的基本加密配置级别。上传到 S3 桶的所有新对象都将使用 SSE-S3 作为基本加密级别设置自动进行加密。如果您想使用其他类型的原定设置加密,也可以指定具有 Amazon Key Management Service(Amazon KMS)密钥(SSE-KMS)或客户提供的密钥(SSE-C)的服务器端加密来加密数据。有关更多信息,请参阅为 Amazon S3 桶设置原定设置服务器端加密行为。
您可以使用 Amazon S3 控制台、Amazon S3 API、Amazon CLI 或 Amazon 软件开发工具包创建存储桶。有关创建桶所需权限的更多信息,请参阅 Amazon Simple Storage Service API 参考中的 CreateBucket。
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择桶。
-
选择创建桶。
此时将打开创建桶页面。
-
对于存储桶名称,请输入存储桶的名称。
桶名称必须满足以下要求:
-
在分区中是唯一的。分区是一组区域。Amazon 目前有三个分区:
aws
(标准区域)、aws-cn
(中国区域)和aws-us-gov
(Amazon GovCloud (US) Regions)。 -
长度必须介于 3 到 63 个字符之间。
-
只能由小写字母、数字、句点(.)和连字符(-)组成。为了获得最佳兼容性,我们建议您避免在存储桶名称中使用句点 (.),但仅用于静态网站托管的存储桶除外。
-
以字母或数字开头和结尾。
创建桶后,便无法再更改其名称。有关给桶命名的更多信息,请参阅存储桶命名规则。
重要
避免在存储桶名称中包含敏感信息,如账号。桶名称会显示在指向桶中的对象的 URL 中。
-
-
对于区域,选择要放置桶的位置 Amazon Web Services 区域。
要最大程度地减少延迟和成本以及满足法规要求,请选择一个靠近您的区域。在某一地区存储的对象将一直留在该地区,除非您特意将其转移到其他地区。有关 Amazon S3 Amazon Web Services 区域的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon Web Service 端点。
-
在 Object Ownership(对象所有权)下方,要禁用或启用 ACL,并控制上载到桶中的对象的所有权,请选择以下设置之一:
已禁用 ACL
-
强制桶拥有者(原定设置)– ACL 已禁用,桶拥有者自动拥有并完全控制桶中的每个对象。ACL 不再影响对 S3 桶中数据的访问权限。存储桶专门使用策略来定义访问控制。
原定设置情况下,ACL 处于禁用状态。Amazon S3 中的大多数现代使用案例不再需要使用 ACL。我们建议您将 ACL 保持为禁用状态,除非有必须单独控制每个对象的访问权限的特殊情况。有关更多信息,请参阅为您的桶控制对象所有权和禁用 ACL。。
已启用 ACL
-
Bucket owner preferred(首选桶拥有者)— 桶拥有者拥有并完全控制其他账户使用
bucket-owner-full-control
标准 ACL 写入桶的新对象。如果应用首选桶拥有者设置,以要求所有 Amazon S3 上传都包含
bucket-owner-full-control
标准 ACL,则可以添加桶策略,该策略只允许使用此 ACL 上传对象。 -
对象写入器— 该 Amazon Web Services 账户 上载对象拥有该对象,对其拥有完全控制权,并且可以通过 ACL 授予其他用户访问该对象的权限。
注意
原定设置为强制桶拥有者。要应用原定设置并将 ACL 保持为禁用状态,只需要
s3:CreateBucket
权限。要启用 ACL,您必须具有s3:PutBucketOwnershipControls
权限。 -
-
在此桶的屏蔽公共访问权限设置中,请选择要应用于桶的屏蔽公共访问权限设置。
原定设置情况下,启用所有四个“屏蔽公共访问权限”设置。我们建议您将所有设置保持为启用状态,除非您知道您需要为您的特定使用案例关闭其中一个或多个设置。有关阻止公有访问的更多信息,请参阅 阻止对您的 Amazon S3 存储的公有访问。
注意
要启用所有“屏蔽公共访问权限”设置,只需要
s3:CreateBucket
权限。要关闭任何“屏蔽公共访问权限”设置,您必须拥有s3:PutBucketPublicAccessBlock
权限。 -
(可选)在 Bucket Versioning(桶版本控制)下,您可以选择是否要在桶中保留对象的变体。有关版本控制的更多信息,请参阅 在 S3 桶中使用版本控制。
要在桶上禁用或启用版本控制,请选择 Disable(禁用)或 Enable(启用)。
-
(可选)在 Tags(标签)下,您可以选择向桶添加标签。标签是用于对存储进行分类的键/值对。
要添加桶标签,请输入 Key(键),并(可选)输入 Value(值),然后选择 Add Tag(添加标签)。
-
在原定设置加密下,请选择编辑。
-
要配置原定设置加密,请在加密类型下,选择以下选项之一:
-
Amazon S3 托管式密钥(SSE-S3)
-
Amazon Key Management Service 密钥(SSE-KMS)
重要
如果您将 SSE-KMS 选项用于原定设置加密配置,则您将受到 Amazon KMS 的每秒请求数(RPS)限额限制。有关 Amazon KMS 限额以及如何请求增加限额的更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的限额。
桶和新对象使用具有 Amazon S3 托管式密钥的服务器端加密进行加密,作为加密配置的基本级别。有关原定设置加密的更多信息,请参阅为 Amazon S3 桶设置原定设置服务器端加密行为。
有关使用 Amazon S3 服务器端加密对数据进行加密的更多信息,请参阅 使用具有 Amazon S3 托管式密钥的服务器端加密(SSE-S3)。
-
-
如果选择了 Amazon Key Management Service 密钥(SSE-KMS),则执行以下操作:
-
在 Amazon KMS 密钥下,通过以下方式之一指定您的 KMS 密钥:
-
要从可用的 KMS 密钥列表中进行选择,请选择从您的 Amazon KMS keys 密钥中进行选择,并从可用密钥的列表中选择您的 KMS 密钥。
Amazon 托管式密钥(
aws/s3
)和您的客户自主管理型密钥都显示在此列表中。有关客户自主管理型密钥的更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的客户密钥和 Amazon 密钥。 -
要输入 KMS 密钥 ARN,请选择输入 Amazon KMS key ARN,然后在显示的字段中输入您的 KMS 密钥 ARN。
-
要在 Amazon KMS 控制台中创建新的客户自主管理型密钥,请选择创建 KMS 密钥。
有关创建 Amazon KMS key 的更多信息,请参阅 Amazon Key Management Service 开发人员指南中的创建密钥。
重要
您只能使用与桶所在相同的 Amazon Web Services 区域中可用的 KMS 密钥。Amazon S3 控制台仅列出与桶位于同一区域中的前 100 个 KMS 密钥。要使用未列出的 KMS 密钥,您必须输入 KMS 密钥 ARN。如果您希望使用其他账户拥有的 KMS 密钥,则必须首先有权使用该密钥,然后必须输入相应的 KMS 密钥 ARN。有关 KMS 密钥的跨账户权限的更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的创建其他账户可以使用的 KMS 密钥。有关 SSE-KMS 的更多信息,请参阅使用 Amazon KMS (SSE-KMS) 指定服务器端加密。
在 Amazon S3 中使用 Amazon KMS key 进行服务器端加密时,您必须选择对称加密 KMS 密钥。Amazon S3 仅支持对称加密 KMS 密钥,而不支持非对称 KMS 密钥。有关更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的确定对称和非对称 KMS 密钥。
有关创建 Amazon KMS key 的更多信息,请参阅 Amazon Key Management Service 开发人员指南中的创建密钥。有关将 Amazon KMS 与 Amazon S3 结合使用的更多信息,请参阅 使用具有 Amazon KMS 密钥的服务器端加密(SSE-KMS)。
-
-
将桶配置为使用 SSE-KMS 进行原定设置加密时,您还可以启用 S3 桶密钥。S3 桶密钥可通过减少从 Amazon S3 到 Amazon KMS 的请求流量,降低加密成本。有关更多信息,请参阅使用 Amazon S3 桶密钥降低 SSE-KMS 的成本。
要使用 S3 Bucket 密钥,请在 Bucket Key(桶密钥)下,选择 Enable(启用)。
-
-
(可选)如果要启用 S3 对象锁定,请执行以下操作:
-
选择 Advanced Settings(高级设置)。
重要
您只能在创建桶时为其启用对象锁定,且之后无法禁用它。启用对象锁定还会启用桶的版本控制。启用后,必须配置对象锁定原定设置保留和法律保留设置,以保护新对象不被删除或覆盖。
-
如果要启用对象锁定,请选择 Enable(启用),阅读出现的警告,并予以确认。
有关更多信息,请参阅使用 S3 对象锁定。
注意
要创建启用对象锁定的桶,您必须具有以下权限:
s3:CreateBucket
、s3:PutBucketVersioning
和s3:PutBucketObjectLockConfiguration
。 -
-
请选择 Create bucket(创建桶)。
使用 Amazon 软件开发工具包创建桶时,您必须先创建一个客户端,然后使用该客户端发送创建桶的请求。作为最佳做法,您应在同一 Amazon Web Services 区域 中创建客户端和桶。如果您在创建客户端或桶时未指定区域,Amazon S3 将使用原定设置区域,即美国东部(弗吉尼亚州北部)。
要创建客户端来访问双堆栈终端节点,则必须指定 Amazon Web Services 区域。有关更多信息,请参阅双堆栈终端节点。有关可用 Amazon Web Services 区域的列表,请参阅《Amazon Web Services 一般参考》中的区域和端点。
创建客户端时,区域映射到特定于区域的终端节点。客户端使用此终端节点与 Amazon S3 进行通信:s3.
。如果您的区域是在 2019 年 3 月 20 日之后启动的,则您的客户端和桶必须位于同一区域。不过,您可以使用美国东部(弗吉尼亚北部)区域中的客户端在 2019 年 3 月 20 日之前启动的任何区域中创建桶。有关更多信息,请参阅 传统终端节点。region
.amazonaws.com
这些 Amazon 软件开发工具包代码示例执行以下任务:
-
通过显式指定 Amazon Web Services 区域创建客户端 – 在本例中,客户端使用
s3.us-west-2.amazonaws.com
端点与 Amazon S3 通信。您可以指定任意 Amazon Web Services 区域。有关 Amazon Web Services 区域 的列表,请参阅《Amazon 一般参考》中的区域和终端节点。 -
通过仅指定桶名称来发送创建桶请求 – 客户端向 Amazon S3 发送请求,请求在您创建客户端的区域中创建桶。
-
检索有关桶位置的信息 – Amazon S3 将桶位置信息存储在与桶关联的位置子资源中。
您也可以使用Amazon Command Line Interface(Amazon CLI)创建 S3 桶。有关更多信息,请参阅《Amazon CLI 命令参考》中的 create-bucket
有关 Amazon CLI 的更多信息,请参阅《Amazon Command Line Interface 用户指南》中的什么是 Amazon Command Line Interface?。