本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
可以在使用 Amazon EFS 挂载帮助程序挂载文件系统时启用传输层安全性协议(TLS),以便为您的 Amazon EFS 文件系统启用传输中数据加密。有关更多信息,请参阅 使用 EFS 挂载帮助程序挂载 EFS 文件系统。
在将传输中的数据加密声明为 Amazon EFS 文件系统的挂载选项时,挂载帮助程序会初始化客户端 stunnel 进程。stunnel 是一种开源多用途网络中继。客户端 stunnel 进程侦听本地端口的入站流量,挂载帮助程序将网络文件系统 (NFS) 客户端流量重定向到该本地端口。挂载帮助程序使用 TLS 1.2 版与您的文件系统进行通信。
传输中加密的工作方式
要启用传输中的数据加密,请使用 TLS 连接到 Amazon EFS。我们建议使用 EFS 挂载帮助程序来挂载您的文件系统,因为与使用 NFS mount
挂载相比,它简化了挂载过程。EFS 挂载帮助程序使用适用于 TLS 的 stunnel
来管理此过程。如果未使用挂载帮助程序,您仍然可以启用传输中的数据加密。以下是完成该操作所需的简要步骤:
在不使用 EFS 挂载帮助程序的情况下启用传输中的数据加密
-
下载并安装
stunnel
,并记下该应用程序侦听的端口。有关执行此操作的说明,请参阅升级 stunnel。 -
运行
stunnel
以使用 TLS 通过端口 2049 连接到您的 Amazon EFS 文件系统。 -
使用 NFS 客户端挂载
localhost:
,其中port
是在第一步中记下的端口。port
由于传输中的数据加密是根据每个连接配置的,因此,每个配置的挂载在实例上运行专用的 stunnel
进程。默认情况下,EFS 挂载帮助程序使用的 stunnel
进程侦听本地端口 20049 和 21049,并通过端口 2049 连接到 Amazon EFS。
注意
默认情况下,在使用带有 TLS 的 Amazon EFS 挂载帮助程序时,该挂载帮助程序会强制执行证书主机名检查。Amazon 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 进程将重新启动该进程。