对传输中的数据加密 - Amazon Elastic File System
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

对传输中的数据加密

您可以使用 Amazon EFS 文件系统加密传输中的数据,无需修改应用程序。

使用 TLS 对传输中的数据加密

在使用 Amazon EFS 挂载助手挂载文件系统时,启用传输层安全 (TLS),即可为 Amazon EFS 文件系统启用传输中数据的加密。有关更多信息,请参阅使用 EFS 挂载助手挂载 EFS 文件系统

将传输中数据的加密声明为 Amazon EFS 文件系统的装载选项时,装载助手会初始化客户端 stunnel 进程。stunnel 是一种开源多用途网络中继。客户端 stunnel 进程侦听本地端口的入站流量,挂载帮助程序将网络文件系统 (NFS) 客户端流量重定向到该本地端口。挂载帮助程序使用 TLS 1.2 版与您的文件系统进行通信。

使用启用传输中数据加密的挂载助手挂载您的 Amazon EFS 文件系统
  1. 通过安全 Shell (SSH) 访问您的实例的终端,然后使用相应的用户名登录。有关执行该操作的更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的使用 SSSSH 连接到 Linux 实例。

  2. 运行以下命令以挂载文件系统。

    sudo mount -t efs -o tls fs-12345678:/ /mnt/efs

传输中加密的工作原理

要启用传输中数据的加密,您可以使用 TLS 连接到 Amazon EFS。我们建议使用 EFS 挂载助手来挂载您的文件系统,因为与使用 NFS mount 挂载相比,它简化了挂载过程。EFS 挂载助手使用 TL stunnel S 管理进程。如果未使用挂载帮助程序,您仍然可以启用传输中的数据加密。以下是完成该操作所需的简要步骤:

在不使用 EFS 挂载助手的情况下启用传输中数据的加密
  1. 下载并安装stunnel,记下应用程序正在监听的端口。有关执行该操作的说明,请参阅升级 stunnel

  2. 运行使用 TLS 在端口 2049 上stunnel连接到您的亚马逊 EFS 文件系统。

  3. 使用 NFS 客户端挂载 localhost:port,其中 port 是在第一步中记下的端口。

由于传输中数据的加密是在每个连接的基础上配置的,因此每个配置的挂载都会在实例上运行一个专用stunnel进程。默认情况下,EFS 挂载助手使用的stunnel进程在从 20049 到 21049 之间的本地端口上监听,并通过端口 2049 连接到 Amazon EFS。

注意

默认情况下,使用带有 TLS 的 Amazon EFS 挂载助手时,装载帮助程序会强制执行证书主机名检查。亚马逊 EFS 挂载助手使用该stunnel程序来实现其 TLS 功能。某些版本的 Linux 不包含默认支持这些 TLS 功能的 stunnel 版本。使用这些 Linux 版本之一时,使用 TLS 装载 Amazon EFS 文件系统会失败。

安装amazon-efs-utils软件包后,要升级系统的 stunnel 版本,请参阅升级 stunnel

有关加密问题,请参阅排除加密

在使用传输中的数据加密时,将更改您的 NFS 客户端设置。当您检查主动挂载的文件系统时,您会看到一个已挂载到 127.0.0.1 或者localhost,如以下示例所示。

$ mount | column -t 127.0.0.1:/ on /home/ec2-user/efs type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=20127,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1)

使用 TLS 和 Amazon EFS 装载助手进行安装时,您正在重新配置 NFS 客户端,使其安装到本地端口。EFS 挂载助手启动一个正在监听此本地端口的客户端stunnel进程,并stunnel使用 TLS 打开与 EFS 文件系统的加密连接。EFS 挂载助手负责设置和维护此加密连接和相关配置。

要确定哪个 Amazon EFS 文件系统 ID 对应于哪个本地装载点,您可以使用以下命令。将 efs-mount-point 替换为挂载文件系统的本地路径。

grep -E "Successfully mounted.*efs-mount-point" /var/log/amazon/efs/mount.log | tail -1

在将挂载帮助程序用于传输中的数据加密时,它还会创建一个名为 amazon-efs-mount-watchdog 的进程。此过程可确保每个挂载的 stunnel 进程都在运行,并在 Amazon EFS 文件系统卸载时停止 stunnel。如果 stunnel 进程由于某种原因意外终止,watchdog 进程将重新启动该进程。