整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

通过AmazonWebServices实现云上网页防

通过AmazonWebServices实现云上网页防篡改



随着网络的广泛连接和数据的海量增长,我们面临着越来越多的安全风险。


国家有关部门为了进一步保护加强信息安全,在《中华人民共和国网络安全法》中规定,网络运营者应当按照网络安全等级保护制度的要求,履行安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或者被窃取、篡改。


在等级保护规范《GBT 25070-2019 信息安全技术网络安全等级保护安全设计技术要求》中,明确要求用户数据完整性保护,可采用常规校验机制,检验存储的用户数据的完整性,以发现其完整性是否被破坏。


企业网站是企业的重要数字门户,网页防篡改正是为了防止网站内容被恶意篡改破坏,确保网站数据的真实性和完整性,满足等级保护用户数据完整性保护要求。


同时,网页防篡改也有助于维护企业网站声誉、保障业务正常运行、避免法律责任。


网页防篡改技术分析


网页被篡改原因分析


网页被篡改通常有以下几种方式:

  • 通过服务器漏洞: 攻击者利用服务器操作系统或应用程序(如 Web 服务器软件)的安全漏洞,获取对服务器的非法访问权限,进而修改网页文件。

  • 账号密码被窃取: 如果网站管理员或相关账号的密码强度不够或被泄露,攻击者获取到这些账号后,可以登录到后台管理系统进行网页篡改。

  • 恶意软件感染: 服务器或网站所在的系统感染了恶意软件,这些恶意软件可能会修改网页文件。

  • 网络连接被劫持: 攻击者通过网络劫持技术,在数据传输过程中篡改网页内容。

  • 内部人员篡改: 网站内部的工作人员由于各种原因,故意篡改网页内容。


要防止网页被篡改,需要 加强服务器安全防护、定期更新软件、使用强密码、加强网络安全监控 等措施。


网页防篡改主流方案


对于已经被入侵的系统,如何防止网页被篡改,主要有以下技术手段:

  • 系统文件过滤驱动: 在操作系统内核层对文件操作进行监控和过滤,实时阻止非法的文件写入和修改。

  • 事件触发机制: 设定特定事件(如文件修改事件)触发检测和保护动作。

  • 数字水印技术: 在网页中嵌入数字水印,一旦网页被篡改,水印信息会发生变化,从而被检测到。

  • 加密技术: 对网页文件进行加密,使攻击者难以直接修改加密后的内容。

  • 完整性校验技术: 如哈希算法,计算网页文件的特征值,通过对比特征值来判断是否被篡改。


本文将介绍在 Amazon Web Services 上,如何使用系统能力以及 Amazon Web Services 提供的服务能力,实现网页防篡改。


Amazon EC2 篡改防护


如果我们的网站业务直接部署于 Amazon EC2 系统中,为了确保内容不被篡改,最简单的办法就是让系统内文件只读。 但是只读后文件无法更新,所以,我们还需要对应的更新方案。


对于挂载后,我们也需要持续的监控文件是否有变化。如果有,要及时发现。


下面我们分别针对 Linux 与 Windows 系统进行介绍。


Amazon EC2 Linux 篡改防护


Amazon EC2 Linux 系统预防篡改


  • Amazon EC2 Linux 系统创建内容盘。


1.在 Amazon Web Services 控制台,我们先创建一块新的 Amazon EBS 硬盘,具体操作流程参考创建 Amazon EBS 卷。 https://docs.amazonaws.cn/zh_cn/ebs/latest/userguide/ebs-creating-volume.html


2.创建成功后,将创建的 Amazon EBS 硬盘,附加到我们的内容服务器,具体流程参考将 Amazon EBS 卷挂载到实例。 https://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/ebs-attaching-volume.html


3.挂载完成后,还需要在 Linux 系统内对 Amazon EBS 卷进行分区、格式化、挂载等操作,具体流程请参考使 Amazon EBS 卷可供使用。 https://docs.amazonaws.cn/zh_cn/ebs/latest/userguide/ebs-using-volumes.html


4.之后,我们就可以使用 Amazon EBS 卷进行读写操作,编辑我们的网站内容,编辑完成后,即可对该 Amazon EBS 卷进行快照操作,创建快照的操作参考创建 Amazon EBS 快照。 https://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/ebs-creating-snapshot.html


5.创建好的快照,就是我们后面网站内容的“模版”,通过该快照创建 Amazon EBS,实现内容的发布。


  • Amazon EC2 Linux 系统只读挂载。


1.通过之前创建好的快照,创建 Amazon EBS 卷,过程可以参考官方文档从快照创建卷。 https://docs.amazonaws.cn/zh_cn/ebs/latest/userguide/ebs-creating-volume.html#ebs-create-volume-from-snapshot


2.然后,与前文一致,将 Amazon EBS 卷挂载到实例。


3.挂载完成后,在 Linux 系统内,我们还需要进行加载。为了保护内容,我们采用只读挂载的方式。


1.# 确保目录存在

2.sudo mkdir -p /mnt/protect-content

3.# 确保没有挂载其他盘

4.sudo umount /mnt/protect-content

5.# `/dev/nvm1p1` 更换为实际device node

6.sudo mount -o ro /dev/nvm1p1 /mnt/protect-content




4.挂载完成,只读的内容即可供外部访问。由于是只读挂载,内容不可被修改。


  • Amazon EC2 Linux 系统内容更新。


未来,我们肯定希望对内容进行更新。更新的流程,与创建内容、只读挂载发布类似。


1.通过快照创建 Amazon EBS 卷。


2.正常可读写方式挂载到内容编辑服务器,在服务器内进行内容编辑。


3.编辑完成,重新制作 Amazon EBS 卷快照。


4.使用新的 Amazon EBS 卷快照,生成新的 Amazon EBS 卷。


5.将原来的 Amazon EBS 卷从实例分离,参考将 Amazon EBS 卷与实例分离。 https://docs.amazonaws.cn/zh_cn/ebs/latest/userguide/ebs-detaching-volume.html


6.只读方式,挂载新的 Amazon EBS 卷


7.删除原来的 Amazon EBS 卷,参考删除 Amazon EBS 卷。 https://docs.amazonaws.cn/zh_cn/ebs/latest/userguide/ebs-deleting-volume.html


Amazon EC2 Linux 系统侦测篡改事件


Inotify 是一种 Linux 内核机制,用于监视文件系统中的事件。它允许应用程序监视文件或目录的创建、删除、修改、属性更改,以及移动或重命名等事件。


Inotify 提供了一种高效且可扩展的方式,来监视文件系统活动,并使其成为各种应用程序的宝贵工具。


Inotify 有多种应用场景,包括:

  • 文件系统监控: inotify 可用于监视文件系统活动,例如文件创建、删除、修改和重命名。这对于备份应用程序、病毒扫描程序和其他需要监视文件系统活动的应用程序很有用。

  • 桌面通知: inotify 可用于在文件或目录发生更改时向用户发送桌面通知。这对于文件共享应用程序、同步工具和其他需要通知用户文件系统活动的应用程序很有用。

  • 实时事件处理: inotify 可用于实时处理文件系统事件。这对于日志记录应用程序、审计工具和其他需要实时响应文件系统活动的应用程序很有用。


Inotify 的特性,使得它在文件保护、防篡改方面,是最适合的工具。


下面的示例代码,可用于监控 Linux 文件变化,在变化的时候通知我们,让我们能第一时间反应、处理:


1.#include <stdio.h>

2.#include <stdlib.h>

3.#include <sys/inotify.h>

4.#include <unistd.h>

5.#include <fcntl.h>

6.#include <string.h>

7.

8.#define EVENT_SIZE? ( sizeof(struct inotify_event) )

9.#define EVENT_BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) )

10.

11.void handle_event(struct inotify_event *event) {

12.? if (event->len) {

13.? ? // Check for specific events (modify, create, delete)

14.? ? if (event->mask IN_MODIFY) {

15.? ? ? printf("File %s in directory was modified.\n", event->name);

16.? ? } else if (event->mask IN_CREATE) {

17.? ? ? printf("File %s was created in directory.\n", event->name);

18.? ? } else if (event->mask IN_DELETE) {

19.? ? ? printf("File %s was deleted from directory.\n", event->name);

20.? ? }

21.? }

22.}

23.

24.int main(int argc, char *argv[]) {

25.? if (argc !=2) {

26.? ? printf("Usage: %s <directory>\n", argv[0]);

27.? ? exit(1);

28.? }

29.

30.? // Open the inotify instance

31.? int fd=inotify_init();

32.? if (fd==-1) {

33.? ? perror("inotify_init");

34.? ? exit(1);

35.? }

36.

37.? // Add a watch on the specified directory

38.? int wd=inotify_add_watch(fd, argv[1], IN_MODIFY | IN_CREATE | IN_DELETE);

39.? if (wd==-1) {

40.? ? perror("inotify_add_watch");

41.? ? exit(1);

42.? }

43.

44.? char buffer[EVENT_BUF_LEN];

45.

46.? // Continuously read events

47.? while (1) {

48.? ? int nread=read(fd, buffer, EVENT_BUF_LEN);

49.? ? if (nread==-1) {

50.? ? ? perror("read");

51.? ? ? exit(1);

52.? ? }

53.

54.? ? int i=0;

55.? ? while (i < nread) {

56.? ? ? struct inotify_event *event=(struct inotify_event *) buffer[ i ];

57.? ? ? // Check if event refers to the watched directory (avoid subdirectories)

58.? ? ? if (strcmp(event->name, "")==0) {

59.? ? ? ? continue; // Skip events for the directory itself (empty name)

60.? ? ? }

61.? ? ? handle_event(event);

62.? ? ? i +=EVENT_SIZE + event->len;

63.? ? }

64.? }

65.

66.? // Close inotify instance (would never be reached in this example)

67.? close(fd);

68.

69.? return 0;

70.}

滑动查看更多


通过编译,执行该代码,即可实现网页文件内容变更通知:


1.# 编译代码

2.gcc -o inotify inotify.c

3.# 运行监控

4../inotify <dir>




Amazon EC2 Windows 篡改防护


Amazon EC2 Windows 系统预防篡改


Amazon EC2 Windows 只读挂载防篡改与 Linux 基本一致,差异部分在于如何只读挂载 Amazon EBS 卷。


1.# 关闭自动挂载

2.mountvol.exe /N

3.# 进入分区管理

4.diskpart

5.# 列出磁盘

6.list volume

7.# 根据上面列出的,选择分区,替换<X>

8.select volume <X>

9.# 设置分区属性, readonly

10.attributes volume set readonly

11.# 查看结果

12.detail volume

滑动查看更多


其他的,与前文 Linux 系统内容类似。


Amazon EC2 Windows 系统侦测篡改事件


与 Linux 类似,Windows .NET SDK 提供了 FileSystemWatcher 这个接口。


它是 Windows 中用于监视文件系统活动的 API。它允许应用程序监视文件或目录的创建、删除、修改、重命名等事件。


我们可以参考官网的例子,编写对应的应用来监控变化。 https://learn.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=net-8.0redirectedfrom=MSDN


也可以直接使用一些现有的开源工具, 比如 https://github.com/thekid/inotify-win


Inotify-win 实现了类似 Linux inotify 的功能,通过以下命令,即可实现文件目录的监控通知:


1.inotifywait.exe -r -m <dir>




Amazon S3 篡改防护


Amazon S3 网站方案


Amazon S3 简介


Amazon Simple Storage Service(Amazon S3)是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。


各种规模和行业的客户都可以使用 Amazon S3 存储和保护任意数量的数据,用于数据湖、网站、移动应用程序、备份和恢复、归档、企业应用程序、IoT 设备和大数据分析。


可以使用 Amazon S3 托管静态网站,还可以将 Amazon S3 与内容分发网络(CDN)(如 Amazon CloudFront)结合使用来交付网页。


Amazon S3 作为 Website 先决条件


在将自定义域配置为在 Amazon Web Services 中国(宁夏)区域托管 Amazon S3 静态网站之前,必须满足以下先决条件。


取得 ICP 备案


如果域名通过 Amazon Web Services 中国(宁夏)区域中,由宁夏西云数据科技有限公司(NWCD)运营的服务器进行公共访问,必须通过 NWCD 申请 ICP 备案。


配置 Amazon S3 静态网站


1.创建域存储桶和可选的子域存储桶:


  • 对于域存储桶,启用静态网站托管,然后上传网站内容。启用静态网站托管后,域存储桶会被分配一个 Amazon S3 网站端点,例如 www.example.com.cn.s3-website.cn-north-1.amazonaws.com.cn,使用此网站端点配置 Amazon Route 53 自定义域。

  • 对于子域存储桶,在静态网站托管下,为对象配置重定向请求,以重定向至上传到域存储桶的网站内容。


域存储桶包含构成网站的文件,子域存储桶会将请求重新路由到域存储桶。例如,如果客户进入 www.example.com.cn,子域存储桶会将请求转发到域存储桶:example.com.cn。


2.清除所有四种 Amazon S3 屏蔽公共访问权限设置,以便可以添加允许对存储桶进行公共读取访问的存储桶策略。


3.添加允许对存储桶进行公共读取访问的存储桶策略,将网站暴露给外部进行访问。


使用 Amazon Route 53 配置自定义域


完成在 Amazon S3 中配置静态网站后,就有了网站端点,假设为 www.example.com.cn.s3-website.cn-north-1.amazonaws.com.cn(www.example.com.cn),可以将自定义域名映射到此端点,并通过自定义域访问网站。


要为域和子域配置别名记录,请按照以下步骤操作:


1.通过以下网址打开 Amazon Route 53 控制台: https://console.aws.amazon.com/route53/


2.请选择托管区域。


3.在托管区域列表中,请选择与域名匹配的托管区域的名称。


4.要为托管区创建别名记录,请选择创建记录。



5.请选择切换到向导。



6.选择简单路由,然后选择下一步。


7.选择定义简单记录。



  • 对于记录名称,接受默认值。

  • 对于记录类型,选择 CNAME 将流量路由到另一个域名和某些 Amazon Web Services 资源。

  • 对于值/流量路由至,选择根据记录类型选择 IP 地址或其他值。在文本框中,输入 Amazon S3 网站端点:s3-website.cn-north-1.amazonaws.com.cn。

  • 选择定义简单记录。


8.通过自定义域名(例如 http://example.com.cn)访问网站,以验证网站和重定向是否有效。


通过 Amazon CloudFront 建立加速缓存


Amazon CloudFront 是 Amazon Web Services 上的 CDN 服务,它可以将 Amazon S3 设置为分发的对象,将 Amazon S3 上的资源,通过 Amazon Web Services 分布在边缘节点将内容提供给用户。


同时,Amazon CloudFront 还提供了 Amazon S3 不支持的 HTTPS 协议,让前端应用更加安全。然而由于 Amazon Web Services 中国(宁夏)区域的一些特殊情况,在此使用 Amazon S3 + Amazon CloudFront,需要一些不同于 Global 的额外配置。


1. 建立 Amazon S3 数据桶。


注意:需要设置阻止公开访问。



2. 建立 Amazon Route 53。


红框内输入已备案的域名。



3. 建立 Amazon CloudFront 分配。


源选择存放前端资源的 Amazon S3 桶,桶中如果没有子文件夹,则留空源路径输入框,来源访问选择“遗留访问身份”,点击“建立新的 OAI”,下面选择“否,我将更新存储桶策略”。



在备用域名中,添加刚才在 Amazon Route 53 添加的域名,默认根对象填写 index.html (根 HTML 文件文件名)。



建立完成后,进入“源”标签页,记下 Origin access 的值,如图红框所示:



4. 更新 Amazon S3 桶策略并保存。



代码如下(替换{$ORIGIN_ACCESS_ID}和BUCKET_ARN/*):


1.{

2.? ? "Version": "2012-10-17",

3.? ? "Statement": [

4.? ? ? ? {

5.? ? ? ? ? ? "Effect": "Allow",

6.? ? ? ? ? ? "Principal": {

7.? ? ? ? ? ? ? ? "AWS": "arn:aws-cn:iam::cloudfront:user/CloudFront Origin Access Identity {$ORIGIN_ACCESS_ID}"

8.? ? ? ? ? ? },

9.? ? ? ? ? ? "Action": "s3:GetObject",

10.? ? ? ? ? ? "Resource": “BUCKET_ARN/*"

11.? ? ? ? }

12.? ? ]

13.}

滑动查看更多


5. 回到 Amazon Route 53,增加别名。



如果实用子域名,则需要新增 CNAME 记录,并在 Amazon CloudFront 的备用域名中,输入该记录的完整域名。



全部完成后,等待片刻,即可去设定的域名测试效果。


Amazon S3 网站预防内容篡改


Amazon S3 对象版本


Amazon S3 中的版本控制,是在相同的存储桶中保留对象的多个版本的方法。对于存储桶中存储的每个对象,可以使用 Amazon S3 版本控制功能来保留、检索和还原它们的各个版本,从而达到防止被篡改的效果。


启用了版本控制的存储桶,可以恢复因意外或被外部恶意删除操作而被篡改的对象。例如,如果删除对象,Amazon S3 会插入删除标记,而不是永久删除该对象。


存储桶拥有者和所有获得授权的 Amazon IAM 用户,都可以启用版本控制。


  • 版本 ID


如果为存储桶启用版本控制,Amazon S3 会自动为要存储的对象生成唯一版本 ID。例如,在一个存储桶中,可以拥有两个具有相同键(对象名称)的对象,但版本 ID 不同,例如 photo.gif(版本 111111)和 photo.gif(版本 121212)。



无论 Amazon S3 版本控制是否启用,每个对象都有一个版本 ID。


如果未启用 Amazon S3 版本控制,Amazon S3 将版本 ID 的值设置为 null。如果启用 Amazon S3 版本控制,Amazon S3 会为对象分配版本 ID 值。此值将该对象与同一个键的其他版本区分开来。


在现有存储桶上启用 Amazon S3 版本控制时,已存储在存储桶中的对象将保持不变。版本 ID(null)、内容和权限保持不变。启用 Amazon S3 版本控制后,添加到存储桶的每个对象都会获得一个版本 ID,该 ID 将此版本与同一个键的其他版本区分开来。


版本控制工作流程


当在启用版本控制的存储桶中,通过 PUT 放入对象时,不会覆盖非当前版本。如下图所示,当将 photo.gif 的新版本 PUT 到一个已经包含同名对象的存储桶中时,会发生以下行为:

  • 原始对象(ID=111111)保留在存储桶中。

  • Amazon S3 生成一个新的版本 ID(121212),并将这个较新版本的对象添加到存储桶中。



使用此功能,如果对象被意外覆盖或删除,则可以检索对象的先前版本。


当 DELETE 对象时,所有版本都将保留在存储桶中,而 Amazon S3 将插入删除标记,如下图所示:



删除标记将成为对象的当前版本。默认情况下,GET 请求将检索最新存储的版本。在当前版本为删除标记时,执行 GET Object 请求将返回 404 Not Found 错误,如下图所示:



但是,可以通过指定对象版本 ID,通过 GET 获取非当前版本的对象。在下图中,GET 特定对象版本 111111。即使该对象版本不是当前版本,Amazon S3 也会返回它。


有关更多信息,请参阅从启用了版本控制的存储桶中检索对象版本。 https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/RetrievingObjectVersions.html



可以通过指定要删除的版本来永久删除对象。只有 Amazon S3 存储桶的拥有者或者授权的 Amazon IAM 用户,才能永久删除某个版本。如果 DELETE 操作指定了 versionId,则会永久删除该对象版本,Amazon S3 不会插入删除标记。



可以通过配置存储桶,来启用多重身份验证(MFA)删除,从而提升安全性。 对存储桶启用 MFA 删除时,存储桶拥有者,必须在任何请求中包含两种形式的身份验证,以删除版本或更改存储桶的版本控制状态。


在存储桶上启用版本控制


在 Amazon S3 存储桶上,启用或禁用版本控制:


1.登录到 Amazon Web Services Management Console。


2.在存储桶列表中,请选择要为其启用版本控制的存储桶的名称。


3.请选择属性。


4.在存储桶版本控制下,请选择编辑。


5.请选择 Suspend (暂停) 或 Enable (启用),然后选择 Save changes (保存更改)。


Amazon S3 使用对象锁


  • 一次写入多次读


Amazon S3 Object Lock 是 Amazon S3 的一项功能, 允许使用一次写入、多次读取(WORM)模式存储对象, 可以在数据写入后不得更改或删除的情况下,使用 WORM 保护,使用此功能无需支付额外费用。


Amazon S3 Object Lock 提供两种管理对象保留的方法, 第一种是保留期,第二种是合法保留。


保留期规定了对象保持锁定状态的固定时间段。在此期间,对象受 WORM 保护,不能被覆盖或删除。保留期的单位可以是天数,也可以是年数,最短为 1 天,没有最长限制。


合法保留提供的保护与保留期相同,但没有过期日期。相反,合法保留会一直存在,直到明确将其移除。


使用 Amazon S3 对象锁,可以防止对象在固定时间内被删除或覆盖,或直到合法保留被移除。一个对象版本可以同时具有保留期和合法保留。


Amazon S3 侦测对象内容变更


在对对象做了相应的安全保护手段之后,最后我们还需要具备侦测的能力,即当对象真的被篡改之后,可以收到相应的通知,以及时采取后续策略。


我们可以利用 Amazon S3 的事件功能结合 Amazon SNS 服务,将通知发送到运维或相关人员的邮箱、微信等其他应用。


目前, Amazon S3 可以发布用于以下事件的通知:

  • 新的对象创建事件

  • 对象移除事件

  • 还原对象事件

  • 低冗余存储 (RRS) 对象丢失事件

  • 复制事件

  • Amazon S3 生命周期到期事件

  • Amazon S3 生命周期转换事件

  • Amazon S3 Intelligent-Tiering 自动归档事件

  • 对象标记事件

  • 对象 ACL PUT 事件


本文以对象被移除并发布邮件通知为例进行说明。


对象内容变化监控架构:



当托管在 Amazon S3 当中的静态网页被移除时(篡改),配置好的 Amazon S3 事件会侦测到这个动作,并且通过 Amazon SNS 服务将通知发送给订阅好的邮箱。


实现过程


1.上传托管的静态文件。



2.创建 Amazon SNS 通知主题。



这里需要注意的是,为了让 Amazon S3 event 具有可以调用 Amazon SNS API 的权限,需要配置 topic 的 access policy,按照如下样例进行配置:


1.{

2.? ? "Version": "2012-10-17",

3.? ? "Id": "example-ID",

4.? ? "Statement": [

5.? ? ? ? {

6.? ? ? ? ? ? "Sid": "Example SNS topic policy",

7.? ? ? ? ? ? "Effect": "Allow",

8.? ? ? ? ? ? "Principal": {

9.? ? ? ? ? ? ? ? "Service": "s3.amazonaws.com"

10.? ? ? ? ? ? },

11.? ? ? ? ? ? "Action": [

12.? ? ? ? ? ? ? ? "SNS:Publish"

13.? ? ? ? ? ? ],

14.? ? ? ? ? ? "Resource": "SNS-topic-ARN",

15.? ? ? ? ? ? "Condition": {

16.? ? ? ? ? ? ? ? "ArnLike": {

17.? ? ? ? ? ? ? ? ? ? "aws:SourceArn": "arn:aws:s3:*:*:bucket-name"

18.? ? ? ? ? ? ? ? },

19.? ? ? ? ? ? ? ? "StringEquals": {

20.? ? ? ? ? ? ? ? ? ? "aws:SourceAccount": "bucket-owner-account-id"

21.? ? ? ? ? ? ? ? }

22.? ? ? ? ? ? }

23.? ? ? ? }

24.? ? ]

25.}

滑动查看更多


3.使用邮箱订阅主题,完成后的邮箱会收到邮件确认,点击链接后完成订阅主题。



4.在属性标签配置 Amazon S3 事件,创建事件通知。



5.配置事件通知参数。



选择之前创建的 Amazon SNS 主题。




6.测试删除文件后,是否能捕获通知。




总结


本文介绍在 Amazon Web Services 上,如何在 Amazon EC2 Linux/Windows 系统、Amazon S3 网站托管,实现网页防篡改。


在 Amazon EC2 系统中,可以通过 Amazon EBS Snapshot 只读挂载实现,同时,通过 inotify 机制实现监控;在 Amazon S3,可以通过对象锁、对象版本实现只读,通过 Amazon Lambda 实现 Amazon S3 变更事件的通知与自动化处理。















月21日,FedEx渠道附加费再次涨价

近日,联邦快递宣布将开始新一轮附加费加价,包括额外操作费,高峰附加费和住宅交付费的增加,涉及的渠道包括FedEx Express、Ground、International Ground以及Express Package Services。所有附加费的生效日期均为2021年6月21日,截止日期将另行通知。

预计到2022年跨境电商货量占全球航空货量20%

麦肯锡咨询公司最新发布的报告显示,预计到2022年,跨境电商货量将占全球航空货量的20%,这相当于是2017年水平的2倍。随着航空和海运逐步畅通,供应链趋于稳定,跨境电商势头不减,预计70%-80%的跨境电商件主要由航空运输。

另据国际航空运输协会数据显示,2021年的航空货运需求将预计增长13.1%,总货运量将达到6310万吨,几乎接近疫情前的6350万吨的峰值。

亚马逊日本站卖家需检查商品信息中的 HTML 标记

据悉,当买家使用非 HTML 设备浏览商品时,为了确保买家的安全并提供更好的通用性,2021年6月27日之后,亚马逊将不再支持在详情页面上使用 HTML 标记。亚马逊表示,不建议在详情页面上使用任何 HTML 内容,这一点在商品详情页面规则中已经阐明。

由于亚马逊在 2021年6月27日之后以后会停止对 HTML 标记的支持,届时包含 HTML 标记的所有详情页面(商品描述)功能将无法在详情页面上显示 HTML 格式。如果商品描述的其中一行使用了 HTML 标记,则该行可能会被删除,也可能不显示 HTML 格式,具体取决于 HTML 标记的使用情况。

如果卖家要对任何包含 HTML 标记的 ASIN 商品信息进行更新,请在该日期之前处理,不管是通过卖家平台还是按平时更新 ASIN 详情的途径均可。

亚马逊新规:企业购卖家可创建自动定价规则了!

亚马逊欧洲站发布公告称Amazon Business卖家可为“商业价格”和“数量折扣”创建自动定价规则,新的自动定价规则可将折扣设置为标准价格的百分比。

企业商品定价规则确定了在更新标准(消费者)价格时,企业商品价格和数量折扣将发生的变化。

例如,可以创建一条规则,规定企业商品价格比标准价格低 5%。当更新此规则中 SKU 的标准价格时,企业商品价格都将自动更新为比最新标准价格低 5%。

6月1日起eBay将调整SpeedPAK中国大陆、中国香港始发运费

5月28日消息,eBay发布公告称,自北京时间2021年6月1日起,SpeedPAK将调整从中国大陆、中国香港地区出运的SpeedPAK以下路向的运费。

eBay表示,后续将公布其它路向的价格调整情况,请卖家密切关注。更多运费和服务介绍详情,卖家可通过橙联官网进行查询。

前,据数据统计,亚马逊云服务在公共云基础设施市场中占有高达 50% 的份额,排名第一。不过,在收获全球企业及用户信任之际,亚马逊也接连受到诸多创业公司的质疑,其中包括了如阿姆斯特丹的软件创业公司Elastic、MongoDB(利用文档形式来组织数据的流行技术)公司等,其纷纷表示,基于开源,亚马逊以技术形式形成了垄断,而这究竟是怎么一回事?

作者 | Daisuke Wakabayashi、Taylor Clauson

编译 | 弯月,责编 | 屠敏

以下为编译文章:

Elastic 是一家阿姆斯特丹的软件创业公司,其业务发展速度非常迅速,员工人数已达100名。后来,亚马逊突然出现了。

2015年10月,亚马逊的云计算部门宣布他们发布了一款免费的软件工具,其完全复制了 Elastic 的功能,人们可以用它来搜索和分析数据,而且他们还会将这款软件作为付费服务出售。当亚马逊做出此举时,Elastic 的产品 Elasticsearch 已在亚马逊上出售。

在短短不到一年的时间里,亚马逊从这款产品上获得的利润就超过了 Elastic 这家创业公司,只因为亚马逊自家产品更容易与其他服务一起使用。因此,去年 Elastic 又添加了很多高级功能,并限制了亚马逊等公司对这些功能的使用。但亚马逊仍然复制了其中许多功能,并免费提供了这些功能。

9月,Elastic 开始回击。他们以侵犯商标的罪名向加利福尼亚州的联邦法院起诉了亚马逊,因为亚马逊的产品曾采用了同一个名字:Elasticsearch。Elastic 在投诉中说,亚马逊“误导消费者”。亚马逊表示否认。该案正在审理中。

自1990年代中期以来,即便当年微软凭借 Windows 雄霸个人计算机行业时,也没有像如今的亚马逊这般利用云计算部门向竞争对手灌输技术平台的恐惧。亚马逊与 Elastic 之争彰显了他们在技术世界中称霸一方的模样。

尽管很多人对云计算一知半解,但它却构成了互联网的基础。云计算已发展成为技术行业最大、最有利可图的业务之一,它可以为各个公司提供计算能力和软件。而在云计算供应商中,亚马逊一家独大。

亚马逊首席执行官Jeff Bezos,他曾称AWS是“无人问津”的想法。

自2000年中期推出以来,亚马逊的云计算部门 Amazon Web Services(简称AWS) 已然成为企业的佼佼者,其发展如此之快,甚至连亚马逊都有点跟不上步伐。尽管如今开发高性能软件所需了解的深入知识门槛从未如此高,但将新软件产品推向市场的过程却前所未有的便宜且快速。

AWS 的销售增长

然而,亚马逊却利用 AWS 复制和集成其他科技公司开创的软件。亚马逊通过一系列的手段为自家的服务建立优势:以更加方便使用的方式提供产品、掩盖竞争对手的产品以及通过捆绑折扣来降低产品的价格。这些举措将客户引向了亚马逊,而负责建立这些软件的公司则会颗粒无收。

即便如此,规模较小的竞争对手表示,他们别无选择,只能与亚马逊合作。考虑到亚马逊在客户中的广泛影响,通常创业公司为了推广产品,只能同意亚马逊的限制,自愿与其共享客户和产品的信息。为了获得在 AWS 上出售产品的特权,创业公司只能将部分销售收入割让给亚马逊。

有些公司这样描述亚马逊的行为:公然剥削软件行业。这些公司表示,亚马逊巧取他人的创新,挖走他们的工程师,剥削他们的产品利润,并利用这一系列手段打压潜在的竞争对手,强迫他们重新调整业务方向。

所有这些都加剧了对亚马逊及其是否滥用市场主导地位和涉嫌反竞争行为的审查。该公司的策略已导致多个竞争对手商量提出反垄断诉讼。监管机构和立法人员正在研究其在行业中的影响力。

Cloudflare的首席执行官 Matthew Prince,这家公司是亚马逊在提供保护网站免受攻击服务方面的竞争对手。

作为 AWS 在提供保护网站免受攻击服务方面的竞争对手,Cloudflare的首席执行官 Matthew Prince表示:“人们担心亚马逊的野心永无止境。”

AWS 占据了近50%的公共云消费市场份额。最初它只提供少量的服务(S3、SQS和EC2),但如今已有170个离散服务,涵盖23个类别(而这些只是公共领域)。

AWS只是亚马逊称霸美国各个产业的一部分。该公司改变了零售、物流、图书出版和好莱坞的业务。它还打算改变人们如何购买处方药、如何购买房地产,以及如何安装家庭和城市的监控器。

但是,亚马逊借助 AWS 制造了更多间接的影响。毋庸置疑该公司在向云计算的巨大转变中处于市场领导者的地位,它的市场份额是其最有力的竞争对手微软的3倍。数百万人每天都在与 AWS 打交道而却不自知,他们在 Netflix 上看电影或将照片存储在苹果的 iCloud 上,这些服务都是在亚马逊的计算机上运行的。

亚马逊首席执行官 Jeff Bezos 曾称AWS是“无人问津”的想法。这个服务最早始于2000年代初期,当时零售商都在努力组装计算机系统来启动新项目和功能。亚马逊在建立通用的计算机基础架构后,意识到其他公司也需要类似的功能。

如今,就连 Airbnb 和 General Electric 这样的公司实际上也是从亚马逊租用计算系统(也称为使用“云”),而不是购买和运行自己的系统。这些企业可以将其信息存储在亚马逊的计算机上,并从中提取数据进行分析。

对于亚马逊本身而言,AWS 至关重要。去年该部门的销售额高达250亿美元,大约相当于星巴克的规模,是亚马逊最赚钱的业务。这些利润为亚马逊提供了进军许多其他行业的资金。

亚马逊在一份声明中说,认为它是公然剥削软件行业的想法“愚蠢又离谱”。它说,它对软件行业做出了巨大贡献,并且它的行为符合客户的最大利益。

有些科技公司表示,他们通过 AWS 找到了更多的客户;就连与亚马逊纠缠不清的公司也成长了。例如,Elastic 于去年公开上市,现在有1,600名员工。

然而,我们采访了40多名现任和前任亚马逊员工以及竞争对手,许多人表示,与AWS合作带来的成本很大一部分是隐藏的。他们说,很难衡量他们有多少业务流失到了亚马逊,也很难衡量亚马逊的威胁劝退了多少投资者。许多人都在匿名的情况下接受了采访,因为他们担心会激怒亚马逊。

四名知情人士表示,今年2月,7位软件公司的首席执行官在硅谷举行会议,商讨针对这家科技巨头提出反垄断诉讼。他们的申诉反映了诸多亚马逊购物网站的供应商的不满:一旦亚马逊成为直接竞争对手,它就不再保持中立。

知情人士说,这些公司的首席执行官没有采取法律行动,部分原因是担心这个过程需要花费大量时间。

如今,监管机构正在联系亚马逊的一些软件竞争对手。负责调查大型科技公司的众议院司法委员会在9月的一封信中向亚马逊询问了 AWS 的做法。联邦贸易委员会还在调查亚马逊,他们询问了 AWS 的竞争对手,据悉两家软件公司被传唤,但不允许他们讨论此事。

风险投资公司 Uncorrelated 的创始人 Salil Deshpande 说,亚马逊针对软件创业公司的所作所为是不可持续的。

他说:“亚马逊巧取豪夺了他们的财富,强行从所有者手中夺走了软件控制权,并吸引客户使用其专有服务。”

“公然剥削”

MariaDB首席执行官 Michael Howard 表示:“AWS的成功建立在公然剥削开源技术之上。”

十年前,自从亚马逊开始 AWS 业务以来就一直在努力赚取持续的利润。提供计算能力的服务似乎有点让人迷惑。

然而,各个创业公司都接受了 AWS,因为这项服务为他们节省了资金,他们不需要购买自己的计算设备,只需花钱购买所需的软件。不久后,越来越多的公司蜂拥而,向至亚马逊寻求计算基础设施以及最终在其计算机上运行的软件。

2009年,亚马逊建立了一个模板,以加快 AWS 的增长。同年,它推出了一项管理数据库的服务,这是帮助各个公司组织信息的重要软件。

虽然 AWS 数据库服务赢得了众多用户的喜爱,然而它并没有运行亚马逊创建的软件,亚马逊选择了一种可免费享用的软件——开源软件。

开源软件与亚马逊在业务上几乎没有交集。就好像一家咖啡店,发放免费咖啡,寄希望于人们花钱购买牛奶、糖或糕点。

但是,开源是软件行业培育的一种久经考验的真实模型,可以迅速将技术提供给客户。拥有大量贡献者的社区经常涌现出可共享的技术,还有人做出改进和传播技术信息。一般来讲,开源公司可以在后期通过客服支持或付费插件赚钱。

最初,技术人员没有注意到亚马逊在数据库软件中的所作所为。后来在2015年,亚马逊故伎重施,他们复制了 Elasticsearch,并提供了具有竞争力的服务。

他们的此次行为引起了很多人的瞩目。

“有一家公司利用人们喜欢使用的开源产品为基础建立了业务,突然间出现了一位竞争对手利用你的产品与你对立。”Todd Persen说。他于今年创建了一家非开源软件公司,目的只是不给亚马逊机会利用自己的产品。他以前的创业公司 InfluxDB 就是开源的。

开源软件产业一次又一次地为亚马逊所使用。当亚马逊复制开源软件并集成到 AWS 后,就不需要许可,也不需要付钱给创业公司,这重重打击了人们创新的能力。

这些公司中的许多公司都没有追索权,他们无法突然开始为免费软件收费。因此,有些人只好改变如何使用其商品的规则,希望借此限制亚马逊和其他试图将其创造的商品变成付费服务的人。

亚马逊想法避开了他们的一些变化。

去年, Elastic 公司改变了其软件规则,亚马逊在博客文章中表示,开源软件公司限制用户的访问,他们的所作所为“污染了开源领域”。

Elastic 的首席执行官 Shay Banon 当时写道,亚马逊的行为“虚有为他人着想的外表”。Elastic拒绝了我们的采访。

去年,MongoDB(利用文档形式来组织数据的流行技术)公司也宣布,任何将其软件作为Web服务来提供的的公司必须免费共享其底层技术。人们普遍认为此举针对的就是 AWS,因为它没有公开分享其用于创建新服务的技术。

AWS 很快就开发了自己的技术,该技术与 MongoDB 极其类似,而这款新软件不受限于 MongoDB 的要求。

今年,当 MongoDB 首席执行官 Dev Ittycheria 与其他六家软件公司的负责人一起参加晚宴时,人们第一时间就提起了 MongoDB 的这段经历。他们在硅谷的一位风险投资家的家中展开了激烈的对话:讨论是否公开指责亚马逊的行为有垄断的嫌疑。

据知情人士透露,在宴会上,包括软件公司 Confluent 和 Snowflake 的负责人在内的首席执行官们纷纷表示他们面临着不公平的竞争环境。他们无处诉苦。

MariaDB首席执行官 Michael Howard 表示:“AWS的成功建立在公然剥削开源技术之上。”据他估计,亚马逊利用 MariaDB 软件获得的收入是其公司所有业务所获收入的五倍。

AWS 副总裁 Andi Gutmans 表示,有些公司希望成为“独一无二”利用开源项目赚钱的公司。他说,亚马逊“致力于确保开源项目保持真正的开放性,无论客户是否选择 AWS,他们都有权选择如何使用开源软件。”

2012年,在 AWS 举行的首届开发者大会上,亚马逊不再唯一的云计算巨头。微软和谷歌竞相推出了竞争平台。

为此,亚马逊推出了更多软件服务,希望确保 AWS 不可或缺的地位。AWS 的负责人 Andy Jassy 在活动中发表讲话时表示,他们希望“利用所有可以想象的用例”。

此后,亚马逊以惊人的速度增加 AWS 的服务,从2014年的30家增长到今年12月的175家。此外,它还具有主场优势:简单性和便利性。

客户只需轻轻点击鼠标就可以添加新的 AWS 服务,并利用同一个系统管理这些服务。而且这些新服务会添加到同一账单中,不需要财务或合规部门的额外许可。

相比之下,在 AWS 上使用非亚马逊服务就远远复杂得多。

如今,客户登录 AWS,就会看到一个名为管理控制台的主页,页面中央列出了约150种服务,这些都是 AWS 自己的产品。

如果你键入“ MongoDB ”,搜索结果不会获取有关 AWS 上 MongoDB 服务的信息;相反,它会建议你使用亚马逊提供的“与 MongoDB 兼容” 的产品。

即使客户选择了非亚马逊的产品,该公司还会时不时地继续推销自己的产品。当有人创建新数据库时,就会看到一则有关亚马逊自家产品 Aurora 的广告。如果他们选择其他商品,亚马逊仍会特别“推荐”自家的产品。

Gutmans 说,AWS 与许多公司紧密合作,“尽可能无缝地”集成其产品。

禁止词

亚马逊的 AWS 拉斯维加斯开发者大会是当前云计算行业中最大的盛事。

亚马逊的 AWS 开发者大会是当前世界技术领域的盛事之一,每年都会吸引成千上万的人到拉斯维加斯来。

大会的压轴项即是 Jassy 在演讲中展示新服务。因为新的 AWS 功能经常都会给一些创业公司带来灾难,所以这场演示也赢得了“血色婚礼”的称号——《权力的游戏》第三季中著名的一幕。

“没有人知道下一个死的是谁。” Duckbill Group 的 Corey Quinn说,他帮助各个公司管理 AWS 账单,还写了一篇新闻报道题为:“Last Week in AWS”。

在去年的会议上,亚马逊推出了一种新工具:Amazon CloudWatch Logs Insights,可以帮助客户分析有关其服务的信息。

前 AWS 软件工程师 Daniel Vassallo 帮助公司开发了这款产品,他表示,高管们想进入这个市场,但他们担心人们会以为亚马逊又有瞄准了一家名叫 Splunk 的公司,该公司提供了类似的工具,同时也是 AWS 的主要消费者。

Vassallo 说,亚马逊在会议之前让 Splunk 预览了新产品,并同意 Jassy 不会在演讲期间宣布该产品。

“他们不是特别高兴。当然了遇到这种事儿谁会高兴啊?” Vassallo (于今年2月离开了亚马逊)在谈到 Splunk 时说,“但我们还是坚持做下去了。”

Splunk 表示他们与 AWS 建立了 “坚实的伙伴关系”,并拒绝进一步评论。

亚马逊还为开发者大会制定了规则。各个公司需要支付数万或数十万美元才能拿到一个展位,他们必须将广告横幅、小册子和新闻稿提交给亚马逊以供批准。

根据 AWS 八月份发布的文件阐明了他们与其他公司合作的营销准则,亚马逊禁止使用“多云”(使用两个或多个云平台的概念)等词语或短语。亚马逊发言人表示他们已经停止了这种做法。

各家公司还不能称自己是“最佳”、“第一”、“唯一”、“领导者”,除非经过独立研究机构的证实。

“爱恨交织的关系”

利福尼亚州米尔布雷的软件创业公司 Nexla 的首席执行官 Saket Saurabh 表示,他对与亚马逊的合作关系持保留态度。

Redis Labs 于2011年在以色列特拉维夫成立,致力于管理名为Redis的免费软件,人们可以使用该软件快速组织和更新数据。亚马逊很快就提供了具有竞争性的付费服务。

虽然 Redis Labs 迎来了强大的竞争对手,但亚马逊的举动也证实了 Redis 技术的坚实。在那之后,这家创业公司筹集到了1.5亿美元,这充分说明了许多软件公司与亚马逊之间“无法和平共处,却又唇齿相依”的关系。

Redis Labs 的前员工估计,每年亚马逊利用 Redis 技术获取的收入高达10亿美元,至少是 Redis Labs 收入的10倍以上。他们说,亚马逊还试图挖走员工,并以超高的折扣低价出售 Redis 技术。

AWS 承诺客户的消费超过一定金额就可以享受折扣,但是他们没有公平地对待自家服务和竞争对手服务的消费额度。外部服务的消费额仅占自家服务消费额的一半。据 AWS 客户称,他们的折扣不适用于非亚马逊产品。

如果客户仍然通过 AWS 选择 Redis Labs,则 Redis Labs 必须将其收入的15%返还给亚马逊。

前员工说,有一段时间,亚马逊十分热切地渴望招聘 Redis Labs 员工,高管们甚至从网站上删除了部分 Redis Labs 的技术人员。不过Redis Labs 的一位发言人说,他们不记得这件事。

前员工还说,部分 Redis Labs 高管考虑今年对亚马逊提出反垄断诉讼。而其他人则表示反对,因为这家创业公司80%的收入都来自 AWS 的客户。

“这是一种爱恨交织的关系,” Redis Labs 前营销副总裁 Leena Joshi 说,“一方面,我们的大多数客户都在 AWS,因此,与他们紧密结合符合我们的利益。同时,我们也知道 AWS 抢走了我们的业务。”

Redis Labs 拒绝就公司收入或 AWS 的动作做出评论。它说亚马逊提供了“重要的服务”。

并非每个公司都将 AWS 视作威胁。旧金山的创业公司 Databricks 使用人工智能来分析数据,公司的首席执行官 Ali Ghodsi 说 AWS 的销售人员提高了他们公司产品的销售量。

他说:“我并没有看到他们耍诡计来阻止我们的发展。”

但是,位于加利福尼亚州米尔布雷的创业公司 Nexla 只有14名员工,公司的首席执行官 Saket Saurabh 表示,他对亚马逊持保留态度。

8月份,亚马逊开始提供一项数据处理和监控服务,与 Nexla 展开了竞争。投资者们警告他,不要向这家科技巨头透漏太多信息。

然而,Saurabh 还是在9月份签署了与亚马逊合作的合同。为什么?因为亚马逊庞大的销售团队可以为 Nexla 带来更多受众。

他说:“我们有选择的余地吗?”

如果亚马逊推出竞争产品,创业公司该何去何从?

对于所有创业公司来说,这都是一个无法回避的问题。我不太担心科技巨头挤兑创业公司的问题。以我的经验来看,在创业公司倒闭的诸多原因中,科技巨头的威胁并不是主要原因。虽说如此,对于面向开发人员的创业公司来说,这确实是一个令人担忧的因素。

AWS 与开源的关系非常复杂。值得注意的是,Mongo 和 Redis 都必须采取行动与 AWS 开战。此外,这些公司在想法赚钱的时候都要面对这个问题,而且这也不会成为妨碍别人使用你家产品的原因。换句话说,创业公司能够达到如此规模和水平,我们都应该感到庆幸。很多时候,在这些公司达到这种规模之前,AWS 不会与之展开竞争。

原文:https://www.nytimes.com/2019/12/15/technology/amazon-aws-cloud-competition.html

https://www.tclauson.com/2019/09/11/Unbundling-AWS.html

责编:王楠