本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
加密传输中数据
Amazon EFS 支持使用传输层安全 (TLS) 对传输中的数据进行加密。将传输中的数据加密声明为 EFS 文件系统的挂载选项时,Amazon EFS 会在挂载文件系统时与您的 EFS 文件系统建立安全的 TLS 连接。所有 NFS 流量都通过此加密连接进行路由。
传输中加密的工作方式
我们建议使用 EFS 挂载帮助程序来挂载您的文件系统,因为与使用 NFS mount
挂载相比,它简化了挂载过程。EFS 挂载帮助程序通过使用 efs-proxy(适用于 efs-utils 版本 2.0.0 及更高版本)或 stunnel(适用于 efs-utils 的早期版本)来管理该进程,从而与 EFS 文件系统建立安全的 TLS 连接。
如果未使用挂载帮助程序,您仍然可以启用传输中的数据加密。以下是执行此操作的步骤。
在不使用挂载帮助程序的情况下对传输中的数据启用加密
-
下载并安装
stunnel
,并记下该应用程序侦听的端口。有关更多信息,请参阅 升级 stunnel。 -
运行
stunnel
以使用 TLS 在端口 2049 上连接到您的 EFS 文件系统。 -
使用 NFS 客户端挂载
localhost:
,其中port
是在第一步中记下的端口。port
由于传输中的数据加密是根据每个连接配置的,因此,每个配置的挂载在实例上运行专用的 stunnel
进程。默认情况下,挂载助手使用的 stunnel 进程在 20049 年至 20449 之间的本地端口上侦听,并通过端口 2049 连接到 Amazon EFS。
注意
默认情况下,在使用 EFS 挂载帮助程序和 TLS 时,它会强制使用在线证书状态协议 (OCSP) 和证书主机名检查。EFS 挂载助手使用 stunnel 程序实现其 TLS 功能。某些版本的 Linux 不包含默认支持这些 TLS 功能的 stunnel 版本。在使用这些 Linux 版本之一时,使用 TLS 挂载 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 和 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
当您使用 EFS 装载帮助程序对传输中的数据进行加密时,它还会创建一个名为的进程amazon-efs-mount-watchdog
。此过程可确保每个挂载的 stunnel 进程都在运行,并在卸载 EFS 文件系统时停止 stunnel。如果 stunnel 进程由于某种原因意外终止,watchdog 进程将重新启动该进程。