欢迎使用新的 Amazon S3 用户指南! Amazon S3 用户指南结合了以下三个已停用的指南中的信息和说明:Amazon S3 开发人员指南、Amazon S3 控制台用户指南和 Amazon S3 入门指南。
指定 Amazon S3 加密
创建对象时,您可以指定使用具有 Amazon S3 托管加密密钥的服务器端加密来加密您的数据。当您要上传新对象或复制现有对象时,也是这种情况。这种加密称为 SSE-S3。
您可以使用 S3 控制台、REST API、AWS 开发工具包和 AWS CLI 指定 SSE-S3。有关更多信息,请参阅以下主题。
本主题描述如何使用 AWS 管理控制台设置或更改对象的加密类型。使用控制台复制对象时,控制台将按原样复制对象。如果源被加密,则目标对象也会被加密。控制台还允许您添加或更改对象的加密。
如果更改对象的加密,则会创建一个新对象来替换旧对象。如果启用 S3 版本控制,则会创建对象的新版本,而现有对象将变为旧版本。更改属性的角色也会成为新对象或(对象版本)的拥有者。
添加或更改对象的加密
-
登录 AWS 管理控制台,并通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在 Bucket (存储桶) 列表中,选择包含对象的存储桶的名称。
-
在 Objects (对象) 列表中,选择要为其添加或更改加密的对象的名称。
Object overview (对象概述) 随即打开,其中显示对象的属性。
-
在 Server-side encryption settings (服务器端加密设置) 下,选择 Edit (编辑)。
Edit server-side encryption (编辑服务器端加密) 页面随即打开。
-
要为对象启用服务器端加密,请在 Server-side encryption (服务器端加密) 下选择 Enable (启用)。
-
要使用 Amazon S3 托管密钥启用服务器端加密,请在 Encryption key type (加密密钥类型) 下,选择 Amazon S3 key (SSE-S3) (Amazon S3 密钥 (SSE-S3))。
有关使用 Amazon S3 服务器端加密对数据进行加密的更多信息,请参阅 使用具有 Amazon S3 托管加密密钥的服务器端加密 (SSE-S3) 保护数据。
-
选择保存更改。
此操作将加密应用于所有指定的对象。加密文件夹时,请等待保存操作完成,然后再将新对象添加到文件夹。
创建对象时(即,上传新对象或复制现有对象时),您可以通过为请求添加 x-amz-server-side-encryption
标头来指定您是否希望 Amazon S3 加密您的数据。将标头的值是设置为 Amazon S3 支持的加密算法 AES256
。通过返回响应标头 x-amz-server-side-encryption
,Amazon S3 确认已使用服务器端加密存储了您的数据元。
以下 REST 上传 API 接受 x-amz-server-side-encryption
请求标题。
使用分段上传 API 上传大型对象时,您可以通过为启动分段上传请求添加 x-amz-server-side-encryption
标头来指定服务器端加密。复制现有对象时,不论源对象是否已经加密,都不会加密目标对象,除非您显式请求服务器端加密。
使用服务器端加密存储对象后,以下 REST API 的响应标头将返回 x-amz-server-side-encryption
标头。
如果对象使用 SSE-S3,则不应对 GET
请求和 HEAD
请求发送加密请求标头,否则将出现 HTTP 400 BadRequest 错误。
使用 AWS 开发工具包时,您可以请求 Amazon S3 使用 Amazon S3 托管的加密密钥。本节提供了以多种语言使用 AWS 开发工具包的示例。有关其他软件开发工具包的信息,请转到示例代码和库
有关使用 AWS CloudFormation 设置加密的示例,请参阅 AWS CloudFormation 用户指南中的使用默认加密创建存储桶和通过 AWS KMS 服务器端加密使用 S3 存储桶密钥创建存储桶。
有关如何复制未加密对象的示例,请参阅 复制对象。