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

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

Amazon EFS 中的数据加密

Amazon EFS 支持两种形式的文件系统加密:传输中数据加密和静态加密。您可以在创建 Amazon EFS 文件系统时启用静态数据加密。您可以在挂载文件系统时启用传输中的数据加密。

如果您在 Amazon 通过命令行界面或 API 进行访问时需要经过 FIPS 140-2 验证的加密模块,请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息,请参阅《美国联邦信息处理标准(FIPS)第 140-2 版》

如果您的组织的公司或监管策略要求静态加密数据和元数据,我们建议您创建加密的文件系统以挂载使用传输中数据加密的文件系统。

传输中加密的工作方式

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

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

  2. 运行 stunnel 以使用 TLS 通过端口 2049 连接到您的 Amazon EFS 文件系统。

  3. 使用 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 进程将重新启动该进程。