Author: Localization Team


使用 Amazon Rekognition 和图形数据库来了解电影明星的社交网络

Amazon Rekognition 是一种让您能够向应用程序中轻松添加图像分析功能的 AWS 服务。由深度学习提供技术支持的此计算机视觉 API 中增加的最新功能为名人识别。这项简单易用的功能能够检测并识别出各领域数以千计的著名、值得注意或广为人知的人士。用户可以利用该工具根据任何特定兴趣对名人的数字图像库编制索引和进行搜索。

我们看到客户存储个人相关数据的一种常见方式是使用图形数据库。在之前的博文中我们曾仔细讨论过,像 Facebook、LinkedIn 和 Twitter 这样的公司已凭借其对庞大关系网络的管理能力,让整个社会的互动方式发生了彻底变革。本博文的目的就是展示将 Rekognition 的名人及人脸识别功能与图形数据库中存储的关系信息进行配对是多么简单。

这些技术的配对让客户只需要一张图片就能够知道图片中的人物与另一位相关人物的关系。用户甚至可以提交两张图片,然后快速确定这两张不同图片中的两个人之间可能存在怎样的相互关系。这种关系映射的一个有趣例子就是著名的 Kevin Bacon 六度分割游戏。然而,此类应用存在巨大商业价值。执法机构可以从两张图片入手,先使用 Rekognition 来识别当事人,然后再通过查询图形数据库来判断两名当事人是否彼此相识。同样地,酒店类公司也可以使用 Rekognition 和图形数据库来快速识别酒店内的任何名人,以及了解有哪些他们可能认识的其他名人在附近住宿。

在本博文中,我们将展示如何将 Rekognition 与图形数据库(我们将使用Neo4j 社区版)和使用 D3.js 库的 Jupyter Notebook 结合使用。

设置

要开始使用这项令人兴奋的组合技术,首先要从 AWS 实验室 Github 存储库获得一份项目副本。该项目结构主要包含两个方面:

  • <project root> – 这是实际的 Jupyter Notebook 及所有依赖项所在的位置。
  • <project root>/cft – AWS CloudFormation 模板、示例属性,以及创建基础设施的示例命令。

您将需要添加一个新的或现有的 SSH 密钥。AWS CloudFormation 模板会安装 Neo4j 社区版,下载来自 AWS 实验室的 Jupyter Notebook (其中包含用于与 Rekognition 交互的 Python 示例代码),并配置几个快速开始操作所需的其他 Amazon EC2 设置。Cloud Formation 模板还会自动下载要通过 Neo4j 浏览器或 Jupyter Notebook 对其进行查询的常用电影图形数据库

(more…)

Amazon EC2 更新 – X1e 实例新增五种大小并增强了 SLA

今年早些时候,我们在四个 AWS 区域推出了内存为 4 TB 的 x1e.32xlarge 实例。现在距上次推出已过去两个月,客户正在使用这些实例运行高性能的关系数据库、NoSQL 数据库、内存数据库以及能够利用大量内存的其他企业应用程序。

新增五种大小的 X1e
我很高兴地宣布我们扩展了内存优化 X1e 系列,增加了五种实例大小。它们是:

型号 vCPU 内存 (GiB) SSD 存储 (GB) 联网性能
x1e.xlarge 4 122 120 最高 10 Gbps
x1e.2xlarge 8 244 240 最高 10 Gbps
x1e.4xlarge 16 488 480 最高 10 Gbps
x1e.8xlarge 32 976 960 最高 10 Gbps
x1e.16xlarge 64 1,952 1,920 10 Gbps
x1e.32xlarge 128 3,904 3,840 25 Gbps

这些实例由配备大型 L3 缓存和充足内存带宽的 2.3 GHz 四路 Intel® Xeon® E7 8880 处理器提供支持。ENA 联网和 EBS 优化是标配,到 EBS 的专用吞吐量高达 14 Gbps (具体取决于实例大小)。

作为今日发布活动的一部分,我们还将在亚太地区 (悉尼) 区域提供所有大小的 X1e。这意味着您现在可以在美国东部 (弗吉尼亚北部)美国西部 (俄勒冈)欧洲 (爱尔兰)亚太地区 (东京)亚太地区 (悉尼) 区域以按需和预留实例的形式来启动它们。

更强大的 EC2 SLA
我还有另外一条好消息!

我们将为所有区域和所有 AWS 客户,将 EC2 和 EBS 的 EC2 服务等级协议 (SLA) 同时提高到 99.99%,立即生效。我们不断地对基础设施和服务质量进行投资以及我们对卓越运营的关注使这一变化成为可能。

Jeff

Amazon Polly 增加 9 个 AWS 区域、Korean 语音支持和新的印度英语语音

Amazon Polly 是一种可将文本转换为逼真语音的 AWS 服务。今天,我们非常激动地宣布 Amazon Polly 的可用区域又增加了九个,现在 Polly 可用区域的总数已增加到 14 个。我们还非常激动地宣布推出韩语支持,并且我们向文本转语音产品组合中新增了印度英语语音。我们很高兴地推出了新的韩语女声 Seoyeon 和新的印度英语女声 Aditi。

Amazon Polly 现已在以下 14 个 AWS 区域推出,致力于为全球所有客户带来最高稳定性和最低延迟:亚太地区 (孟买)、亚太地区 (首尔)、亚太地区 (新加坡)、亚太地区 (悉尼)、亚太地区 (东京)、加拿大 (中部)、欧洲 (法兰克福)、欧洲 (爱尔兰)、欧洲 (伦敦)、南美洲 (圣保罗)、美国东部 (弗吉尼亚北部)、美国东部 (俄亥俄)、美国西部 (加利福尼亚北部) 和美国西部 (俄勒冈)。

自从 Amazon Polly 在 2016 年 re:Invent 大会上推出后,我们收到的其中一个最常见的要求是提供更多语言支持。在客户请求的众多语言中,韩语是请求频率最高的语言之一。为了响应客户的需求,我们非常高兴地宣布推出第一套韩语语音 Seoyeon。

(more…)

《制作无人驾驶车辆》第 3 部分:连接您的无人驾驶车辆

在我们无人驾驶车辆系列的第一篇博客文章中,您制作了一辆 Donkey 车并将导航服务器部署到 Amazon EC2 实例上。在第二篇博客文章中,您学习了如何驾驶 Donkey 车辆,Donkey 车辆也学习了如何自行驾驶。在这篇博客文章中,我们将介绍将 Donkey 车辆的遥测数据流式传输到 AWS 的过程。all我们将使用 AWS IoT 服务,因为该服务提供了一组可扩展、可靠并且功能丰富的服务,这些服务可用于所有种类的互连设备,包括我们的互联车辆。


1) 在 AWS 上制造一辆无人驾驶车辆,并参加 re:Invent 机器人车拉力赛
2) 《制作无人驾驶车辆》第 2 部分:驾驶您的车辆
3) 《制作无人驾驶车辆》第 3 部分:连接您的无人驾驶车辆
4) 即将推出


AWS IoT 设置

无人驾驶车辆在驾驶过程中会生成持续的遥测数据流。车辆不在驾驶状态时,没有遥测数据可收集,所以我们不希望耗用任何资源,避免浪费。为适应工作负载的变化,我们计划依靠无服务器技术为整个架构提供支持。首先,我们将使用 AWS IoT 设计一项车队监控服务。它可以使用同一基础架构为任意数量的车辆提供服务。下图显示了该车队监控服务的架构。

此解决方案的组件按逻辑功能 (和 AWS 服务) 进行颜色编码,以展示解决方案每个组件的安全性、可扩展性和完全基于使用量的特点。这种运营模型适合很多业务模式,对任何规模的客户都有用。无论是要跟踪和比较圈速的无人驾驶车辆业余爱好者,还是希望开发其自己的互联车辆平台的无人驾驶汽车制造商,都可以使用 AWS IoT 提供的安全、可扩展且基于使用量的成本结构。

此解决方案以 Donkey 车辆 (绿色阴影所示) 开始。接下来数据通过 IoT 服务传递到粉色部分,在 DynamoDB 中进行短期存储,然后传递到蓝色部分,在 S3 中长期存储。此外,AWS IoT 主题中的数据也可以实时查询并 (如下所示) 用于驱动控制面板。

(more…)

使用新的声道 SSML 功能修改 Amazon Polly 语音的音品

今天,Amazon Polly 团队很高兴地宣布推出一项新的语音合成标记语言 (SSML) 功能,该功能使得开发人员可以修改任意文本到语音转换 (TTS) 声音的音品。这是一项极具吸引力的功能,适合希望在 Amazon Polly 产品组合中自定义现有语音的客户,使得声音更加贴近在其使用案例中所塑造的特定角色。客户在场景中需要使用多个不同的声音时,该功能尤为有用,因为音品功能使得客户可以轻松地从可用的各个 Amazon Polly 语音自定义多个声音形象。

什么是音品?

音品 描述了人们所感受到的音色或音质,这与音高或音量无关。它经常用于音乐中,例如用于区分铜管乐器和弦乐器,或者用于描述中提琴与小提琴的细微差别。音品是一种可用于区分各种乐器的感知属性,即使这些乐器都在以相同的音量演奏相同的调子。与此类似,在具体的语音场景中,音品是一个声音与另一个声音的区别,即使这些声音具有相同的音高 (即其基本频率) 和音量 (振幅)。

每个人的声音都是独一无二的,这是由于多种因素造成的,包括人的生理机能以及发出声音的方式。每个人的声带、声道的大小和形状甚至整个身体的大小和形状,在决定其正常的语音品质方面都起到了重要的作用。有一些方法,例如个人控制舌头的位置、收紧或松弛肌肉或者施加气压,都可以改变语音的音高、音量和音品。经过专业训练的演员可以学习控制这些动作,甚至能够改变自己的声音来模仿他人的声音。

声道与音高

影响到语音音品的一项重要生理特征是声道,这是从声带顶部直到嘴唇边缘的一个空气腔体。有多块肌肉可以用于改变声道腔体的形状,可以让它变长、变短、变宽或变窄。这些改变的效果是导致放大或过滤掉语音。

音高 是一项听觉属性,影响感受到的声音是高还是低。在发出语音的具体过程中,音高由声带振动的频率决定。相比男性,女性通常具有较短的声带,振动频率较高 (每秒约 180 到 200 个周期)。平均而言,男性具有较长的声带,振动更慢 (每秒约 110 个周期)。与此类似,女性的平均声道长度比男性要短 (分别为约 14 厘米与约 17 厘米)。

声带长度和声道长度具有内在的关联,也就是说,其中一个更长,另一个也倾向于随之更长。利用音品功能,开发人员可以在保留控制音高能力的同时更改声道的大小。

声道和语音合成

使用 vocal-tract-length SSML 标记,您可以通过更改发言者的声道来控制输入语音的音品。这听上去像是更改了发言者的身体大小。当您增加 vocal-tract-length 时,发言者的声音听上去像是他们的个子更大。减小时,听上去像是个子更小。此标记可用于 Amazon Polly 文本到语音转换产品组合中的任何语音。

下面说明了如何修改发言者声道的长度:

  • +n% 或 -n%:按当前语音的相对百分比进行更改,来调整声道长度。例如,+4% 或 -2%。
  • n%:按当前语音的绝对百分比值来调整声道长度。例如,104% 或 98%。
  • 声道长度最多可以增加 100% 和减少 50%。
  • 要将声道长度重置为当前语音的默认值,请使用 <amazon:effect vocal-tract-length=“100%”>

下面的示例说明如何修改声道长度,使用的是 Joanna 的语音:

<speak>
This is my original voice, without any modifications. <amazon:effect vocal-tract-length="+15%"> Now, imagine that I am much bigger. </amazon:effect> <amazon:effect vocal-tract-length="-15%"> 
Or, perhaps you prefer my voice when I'm very small? </amazon:effect> You can also control the 
timbre of my voice by making more minor adjustments. <amazon:effect vocal-tract-length="+10%"> For example, by making me sound just a little bigger. </amazon:effect> <amazon:effect vocal-tract-length="-10%"> Or instead, making me sound only somewhat smaller. </amazon:effect> 
</speak> 
立即收听

语音由 Amazon Polly 提供

(more…)

Amazon ElastiCache 更新 – 在线调整 Redis 集群大小

使用 Amazon ElastiCache,您可以轻松设置快速的内存数据存储和缓存。由于支持两款最流行的开源产品 (Redis 和 Memcached),ElastiCache 能够满足游戏排行榜、内存分析和大规模消息收发的严格要求。

今天,我准备为大家介绍 Amazon ElastiCache for Redis 的一项重要补充。您已经可以创建拥有多达 15 个分片的集群,每个分片负责为一组特定的槽存储键和值 (每个集群拥有整整 16,384 个槽)。一个集群可扩展至存储 3.55 TB 的内存数据,同时每秒支持多达 2,000 万次读取和 450 万次写入。

现在可以在线调整大小
您现在可以调整正在运行的 ElastiCache for Redis 集群中的分片数量,而该集群仍可保持在线状态并响应请求。这样一来,您便可对流量和数据量的变更作出反应,而无需使集群脱机或从空缓存开始。您也可以重新平衡正在运行的集群,以便均匀地重新分配槽空间,而不更改分片数量。

启动重新分片或重新平衡操作时,ElastiCache for Redis 首先会准备一个计划,确保槽在集群的分片中均匀分配。然后,它在分片之间转移槽,并行移动许多槽以提高效率。这都是在集群继续响应请求期间发生,对写入移动中的槽时的写入吞吐量的影响较小。迁移率取决于实例类型、网络速度、槽的读/写流量,通常约为 1 GB/分钟。

重新分片和重新平衡操作适用于在启用集群模式的情况下创建的 Redis 集群:

对集群重新分片
通常,当开始面临巨大的内存压力或各个节点日益成为瓶颈时,您就知道是时候通过重新分片来扩展集群了。您可以观察集群的 CloudWatch 指标以识别每种情况:

Memory Pressure – 可用内存、交换分区使用情况、用于缓存项目的字节数。

CPU Bottleneck – CPU 利用率、当前连接、新连接。

Network Bottleneck – 网络输入字节数、网络输出字节数。

您可以使用 CloudWatch 控制面板来监控这些指标,并使用 CloudWatch 警报来自动执行重新分片流程。

要从 ElastiCache 控制面板对 Redis 集群执行重新分片,请单击该集群以访问详细信息页面,然后单击 Add shards 按钮:

输入要添加的分片数量和 (可选) 所需的可用区数量,然后单击 Add

集群的状态将变为正在修改,且重新分片流程将启动。时间从几分钟到几小时不等,如上文所述。您可以在详细信息页面上跟踪该集群的进度:

您可以看到槽在分片之间移动:

您还可以观察该集群的事件:

重新分片期间,您应避免使用 KEYSSMEMBERS 命令,以及计算密集型 Lua 脚本,以便减轻集群分片上的负载。您应完全避免 FLUSHDBFLUSHALL 命令;使用这些命令会中断然后中止重新分片流程。

当该流程完成时,每个分片的状态都将返回至 available

删除分片时会发生同样的流程。

槽重新平衡
您可以通过转至集群的详细信息页面并单击 Rebalance Slot Distribution 来执行此操作:

需知信息
下面是需要牢记的关于此新功能的一些事项:

Engine Version – 您的集群必须运行 3.2.10 版 Redis 引擎。

Migration Size – 不会迁移序列化后包含大于 256 MB 的项目的槽。

Cluster Endpoint – 集群终端节点不会因为重新分片或重新平衡而更改。

现已推出
此功能现已推出,您可以立即开始使用。

Jeff

Matrix Analytics 在 AWS 上使用深度学习来改善早期癌症检测

Matrix Analytics 致力于帮助拯救生命。这家位于科罗拉多州的创业公司使用 Amazon Web Services (AWS) 上的深度学习,跟踪诊断患有肺结节的患者的疾病发展情况。虽然肺结节通常为良性,但是密切监视并采取后续治疗,对于确诊结节是否会转变以及何时转变为恶性肿瘤非常关键。

公司创始人 Aki Alzubaidi 博士最初就职于 Glenwood Springs 医院,他发现有些患者由于未进行检查而情况恶化。用于跟踪患者的系统非常繁琐且杂乱,使得许多患者未能接受推荐的后续治疗,造成了本可避免的不良后果。

预测癌症风险和管理医疗

该公司的旗舰软件应用程序 LungDirect 使用双管齐下的方法进行早期癌症介入治疗:预测恶性肿瘤风险和自动化后续治疗。

首先,采用深度学习算法构建的先进计算机成像功能根据下列因素评估肺结节的恶性肿瘤风险:结节大小、形状、密度、体积以及患者个人情况,例如烟龄、年龄、性别和种族。“我们希望能够获取所有的临床信息,例如放射科测试、实验室测试或个人临床病理因素,然后获得病情发展的可能性,在实用工具上提供结果并管理接下来的步骤,这就是我们采用深度学习的目标,”Alzubaidi 博士说到。

为了发现可能隐藏在数据之下的不同非线性关系类别,采用了五种不同的机器学习模型类别。使用一组计算机成像算法,直接从图像中自动提取四种不同的特征类别。

开发一种工具,来“不可思议地自动”读取患者扫描图像来预测和诊断癌症,这不是一件易事。不过,Matrix Analytics 非常快地开发出了验证概念的原型。然后,该公司实施深度学习模型并与现有文献中的基准进行比较。

(more…)

Apache MXNet 版本 0.12 扩展了 Gluon 功能以支持前沿的研究

上周,Apache MXNet 社区发布了 MXNet 版本 0.12。主要功能是支持 NVIDIA Volta GPU 和 sparse tensor。该版本还包括一些新的 Gluon 编程接口功能。特别是,可以通过这些功能在您的深度学习模型中轻松开展前沿的研究:

  • 变分丢弃;可用于有效地应用丢弃技术以减轻递归神经网络 (RNN) 中的过拟合问题
  • 卷积 RNN、长短期记忆 (LSTM) 和门控循环单元 (GRU) 单元;可用于对具有基于时间的序列和空间维度的数据集进行建模
  • 七个新的损失函数、导出功能和训练器函数增强功能

变分丢弃 (VariationalDropoutCell) 根据最新的研究提供一种新的工具以减轻 RNN 中的过拟合问题。本文参考了“A Theoretically Grounded Application of Recurrent Neural Networks”“RNNDrop: A Novel Approach for RNNs in ASR”。过拟合是一种建模错误,其中拟合的模型与训练数据集非常接近,以至于在查看新数据或测试数据集时,将会降低其预测精度。丢弃是一种建模技术,它随机地将模型参数归零,以便模型在训练过程中不会过度依赖于任何单个输入或参数。不过,这种技术尚未成功应用于 RNN。迄今为止的研究侧重于仅将丢弃完全随机地应用于输入和输出,即,在 RNN 的所有时间步长中将其归零。变分丢弃消除了这种涵盖所有时间步长的随机性,并在每个时间步长将相同的随机丢弃数组 (或掩码) 应用于 RNN 的输入、输出和隐藏状态。

(more…)

新增 – 适用于 AWS 服务的 AWS PrivateLink:在您的 VPC 中的 Kinesis、Service Catalog、EC2 Systems Manager、Amazon EC2 API 和 ELB API

这篇客座文章是由 Amazon Virtual Private Cloud 高级工程师 Colm MacCárthaigh 撰写的。


自 2015 年推出 VPC 终端节点以来,创建终端节点已成为从 Amazon Virtual Private Cloud (VPC) 中安全地访问 S3 和 DynamoDB 的一种常见方法,而无需使用 Internet 网关、NAT 网关或防火墙代理。在使用 VPC 终端节点时,VPC 和 AWS 服务之间的路由是由 AWS 网络处理的,并且可以使用 IAM 策略控制对服务资源的访问。

今天,我们宣布推出 AWS PrivateLink,这是最新一代的 VPC 终端节点,旨在使客户以高度可用且可扩展的方式访问 AWS 服务,同时将所有流量保持在 AWS 网络内。现在,可以在您的 VPC 中使用 KinesisService CatalogAmazon EC2EC2 Systems Manager (SSM) 和 Elastic Load Balancing (ELB) API 并支持即将推出的更多服务,如 Key Management Service (KMS) 和 Amazon Cloudwatch

在使用传统终端节点时,就像在您的 VPC 和 AWS 服务之间连接一条虚拟电缆一样。连接到 AWS 服务不需要使用 Internet 或 NAT 网关,但终端节点保留在您的 VPC 外部。在使用 PrivateLink 时,将使用弹性网络接口 (ENI) 和您的 VPC 子网中的 IP 地址直接在您的 VPC 中创建终端节点。该服务现在位于您的 VPC 中,从而可以通过私有 IP 地址连接到 AWS 服务。这意味着,可以使用 VPC 安全组管理对终端节点的访问,并且还可以通过 AWS Direct Connect 从本地访问 PrivateLink 终端节点。

通过使用由 PrivateLink 提供支持的服务,客户现在可以管理实例队列,创建和管理 IT 服务目录以及存储和处理数据,而不要求流量通过 Internet。

创建 PrivateLink 终端节点
为了创建 PrivateLink 终端节点,我导航到 VPC 控制台,选择终端节点,然后选择创建终端节点

然后,我选择要访问的服务。新的 PrivateLink 终端节点具有“接口”类型。在这种情况下,我希望直接从我的 VPC 中使用 Kinesis 服务,因而我选择 kinesis-streams 服务。

此时,我可以选择要在其中启动我的新终端节点的 VPC,然后选择 ENI 和 IP 地址所在的子网。我还可以将终端节点与新的或现有的安全组相关联,以使我能够控制哪些实例可以访问终端节点。

由于 PrivateLink 终端节点将使用我的 VPC 中的 IP 地址,因此,我可以选择使用 VPC 私有 DNS 覆盖 AWS 服务 DNS 名称的 DNS。通过选中启用私有 DNS 名称,从我的 VPC 中查找“kinesis.us-east-1.amazonaws.com”将会解析为我正在创建的终端节点的 IP 地址。这样,就可以无缝地转换到终端节点,而无需对我的应用程序进行任何更改。默认情况下,如果我希望在处理流量之前测试或配置终端节点,我可以将其禁用,并随时编辑终端节点以对其进行更改。

在我准备就绪并对 VPC、子网和 DNS 设置感到满意后,我单击创建终端节点以完成该过程。

使用 PrivateLink 终端节点

默认情况下,如果启用了私有 DNS 名称,使用 PrivateLink 终端节点与使用 SDK、AWS CLI 或从您的 VPC 中访问服务 API 的其他软件一样简单。无需更改任何代码或配置。

为了支持测试和高级配置,每个终端节点还会获得一组专用于您的终端节点的唯一 DNS 名称。终端节点和区域名称具有一个主名称。

主名称对于通过 Direct Connect 访问您的终端节点特别有用,而无需在本地使用任何 DNS 覆盖。当然,也可以在您的 VPC 中使用主名称。
主名称和主服务名称 (由于我选择覆盖该名称) 包括区域容错,并平衡可用区之间的流量。如果我采用的架构使用区域隔离技术以实现故障遏制和分隔并降低延迟,或是用来最大限度减少区域数据传输,我也可以使用区域名称明确控制我的流量是在区域之间流动,还是保留在区域内。

定价和可用性
目前,在中国 (北京) 以外的所有 AWS 商业区域中都提供了 AWS PrivateLink。有关各个服务的区域可用性,请参阅我们的文档

起价为每小时 0.01 美元,外加每 GB 0.01 美元的数据处理费用。在可用区之间或通过 Direct Connect 在您的终端节点和本地之间传输的数据也会产生常见的 EC2 区域和 Direct Connect 数据传输费用。有关更多信息,请参阅 VPC 定价

Colm MacCárthaigh

新增 Amazon S3 加密和安全功能

早在 2006 年,当我宣布 S3 时,我写道:“此外,每个块都受 ACL (访问控制列表) 的保护,从而允许开发人员根据需要保持数据私有、共享以供读取或共享以供读写。”

起点是那个具有私有存储桶和用于授予访问权限的 ACL 的初始模型,此后我们添加了对存储桶策略服务器访问日志记录版本控制API 日志记录跨区域复制以及多个客户端服务器端加密选项的支持,所有这些都是为了给您提供所需的工具,保护您的数据,同时允许您根据需要与客户和合作伙伴共享数据。我们还加入了人工智能和机器学习作为演绎元素,并推出了 Amazon Macie,这一工具可帮助您发现、分类和保护海量的内容

今天,我们将要向 S3 中添加五个新的加密和安全功能:

默认加密 – 现在,您可以强制存储桶中的所有对象都必须以加密形式保存,而不必构造一个拒绝未加密对象的存储桶策略。

权限检查 – S3 控制台现在在每个可公开访问的 S3 存储桶旁边显示一个显眼的指示器。

跨区域复制 ACL 覆盖 – 当您跨 AWS 账户复制对象时,您现在可以指定对象获取一个新的 ACL,以便对目标账户进行完全访问。

涉及 KMS 的跨区域复制 – 您现在可以复制使用由 AWS Key Management Service (KMS) 管理的密钥进行加密的对象。

详细清单报告 – S3 清单报告现在包括每个对象的加密状态。该报告本身也可以加密。

让我们了解一下每个功能…

默认加密
您的 S3 对象有三个服务器端加密选项:SSE-S3 (使用由 S3 管理的密钥)、SSE-KMS (使用由 AWS KMS 管理的密钥) 以及 SSE-C (使用您管理的密钥)。我们的一些客户,特别是那些需要满足规定在静态时使用加密的合规性要求的用户,已使用存储桶策略来确保每个新存储的对象都被加密。虽然这有助于他们满足要求,但仅仅拒绝存储未加密对象是一个不完善的解决方案。

现在,您可以通过安装存储桶加密配置,强制存储桶中的所有对象都必须以加密形式保存。如果将未加密对象提交给 S3,并且配置指明必须使用加密,则该对象将使用为该存储桶指定的加密选项进行加密 (PUT 请求还可以指定不同的选项)。

下面是在您创建新存储桶时,如何使用 S3 控制台来启用此功能。像往常一样输入存储桶的名称,然后单击下一步。然后向下滚动并单击默认加密

选择所需的选项,然后单击保存 (如果您选择 AWS-KMS,则还需要指定 KMS 密钥):

您还可以通过调用 PUT 存储桶加密函数来进行此更改。它必须指定 SSE 算法 (SSE-S3 或 SSE-KMS),并且可以选择引用 KMS 密钥。

实施此功能时,请牢记以下几点:

SigV4 – 通过 S3 REST API 对存储桶策略进行的访问必须使用 SigV4 签名,并且通过 SSL 连接完成。

更新存储桶策略 – 您应该检查并仔细修改当前拒绝未加密对象的现有存储桶策略。

高容量使用 – 如果您使用的是 SSE-KMS,并且每秒上传成百上千个对象,则可能会在执行加密和解密操作时碰到 KMS 限制。只需提交一个支持案例并申请更高的限制:

跨区域复制 – 未加密的对象将根据目标存储桶的配置进行加密。加密的对象将保持不变。

权限检查
存储桶策略、存储桶 ACL 和对象 ACL 的组合使您能够非常精细地控制对您的存储桶及其内部对象的访问。为了确保您的策略和 ACL 结合起来以创造所需的效果,我们最近推出了一组托管配置规则来保护您的 S3 存储桶。正如我在文章中提到的,这些规则利用了我们的一些工作来应用自动形式推理

我们现在使用相同的基础技术来帮助您在对存储桶策略和 ACL 进行更改时便可看到更改的影响。如果您打开一个存储桶供公开访问,您立刻就会知道,这能让您充满信心地进行更改。

下面是它在 S3 控制台主页上的显示情况 (为方便查看,我按访问权限列进行了排序):

当您在单个存储桶中查看时,还会显示公共指示器:

您还可以查看哪些权限元素 (ACL 和/或存储桶策略) 在启用公开访问:

跨区域复制 ACL 覆盖
我们的客户经常使用 S3 的跨区域复制,在一个单独的 AWS 账户中将其任务关键型对象和数据复制到目标存储桶中。除了复制对象外,复制过程还会复制对象 ACL 以及任何与该对象关联的标签

我们使此功能更加有用,具体来说就是能让您在传输过程中启用 ACL 替换,以便它向目标存储桶的所有者授予完全访问权限。通过此更改,源和目标数据的所有权将跨 AWS 账户进行拆分,从而使您能够为原始对象及其副本维护单独且不同的所有权堆栈。

要在设置复制时启用此功能,请通过指定账户 ID 和存储桶名称并单击保存,在不同的账户和区域中选择目标存储桶:

然后单击更改对象所有权…

我们还使您更容易为目标账户中的目标存储桶设置密钥策略。只需登录到该账户并找到该存储桶,然后单击管理复制,然后从更多菜单中选择接收对象…

输入源账户 ID,启用版本控制,检查策略,应用策略,然后单击完成

涉及 KMS 的跨区域复制
跨区域复制使用 SSE-KMS 加密的对象是我们今天要解决的一个有趣的挑战。由于 KMS 密钥特定于特定区域,因此仅复制加密的对象将不起作用。

现在,您可以在设置跨区域复制时选择目标键。在复制过程中,加密的对象通过 SSL 连接复制到目标。在目标位置,数据键使用在复制配置中指定的 KMS 主密钥进行加密。对象始终保持原来的加密形式;只有包含密钥的信封才会实际发生更改。

下面是在设置复制规则时如何启用此功能:

正如我前面提到的,在开始大量使用此功能之前,您可能需要请求增大 KMS 限制。

详细清单报告
最后但同样重要的是,您现在可以请求每日或每周 S3 清单报告包含有关每个对象的加密状态的信息:

正如您所看到的,您还可以为该报告请求 SSE-S3 或 SSE-KMS 加密。

现在提供
这些功能现已全部提供,您可以立即开始使用!这些功能没有收费,但会对 KMS 调用S3 存储S3 请求以及区域间数据传输按通常费率收费。

Jeff