在 Oracle® Solaris 11.2 中管理 ZFS 文件系统

退出打印视图

更新时间: 2014 年 12 月
 
 

更改加密 ZFS 文件系统的密钥

通过使用 zfs key –c 命令,可以更改加密文件系统的包装密钥。必须首先已通过以下方式装入了现有的包装密钥:在引导时、通过显式装入文件系统密钥 (zfs key –l) 或者通过挂载文件系统 (zfs mount filesystem)。例如:

# zfs key -c tank/home/darren
Enter new passphrase for 'tank/home/darren': xxxxxxxx
Enter again: xxxxxxxx

在以下示例中,更改了包装密钥,并更改了 keysource 属性值以指定包装密钥来自一个文件。

# zfs key -c -o keysource=raw,file:///media/stick/key tank/home/darren

通过使用 zfs key –K 命令,可以更改加密文件系统的数据加密密钥,但是新的加密密钥仅用于新写入的数据。此功能可用来满足针对数据加密密钥的时限的 NIST 800-57 准则。例如:

# zfs key -K tank/home/darren

在上面的示例中,数据加密密钥不可见,也不是由您直接管理的。此外,您需要具有 keychange 委托才能执行密钥更改操作。

有以下加密算法可用:

  • aes-128-ccmaes-192-ccmaes-256-ccm

  • aes-128-gcmaes-192-gcmaes-256-gcm

ZFS keysource 属性标识用来包装文件系统数据加密密钥的密钥的格式和位置。例如:

# zfs get keysource tank/home/darren
NAME              PROPERTY   VALUE              SOURCE
tank/home/darren  keysource  passphrase,prompt  local

ZFS rekeydate 属性标识上次执行 zfs key –K 操作的日期。例如:

# zfs get rekeydate tank/home/darren
NAME              PROPERTY   VALUE                  SOURCE
tank/home/darren  rekeydate  Wed Jul 25 16:54 2012  local

如果加密文件系统的 creationrekeydate 属性具有相同的值,则表明从未通过 zfs key –K 操作为该文件系统重建密钥。

管理 ZFS 加密密钥

您可以采用不同方式管理 ZFS 加密密钥,具体取决于您的需求,您既可以在本地系统上进行管理,也可以远程管理(如果需要一个中央位置)。

  • 本地-上述示例说明了包装密钥既可以是口令短语提示符,也可以是本地系统上文件中的存储的原始密钥。

  • 远程-可以使用密钥集中管理系统(如 Oracle 密钥管理程序)或者使用支持对 http 或 https URI 的简单 GET 请求的 Web 服务远程存储密钥信息。通过使用 PKCS#11 令牌,Oracle Solaris 系统可以访问 Oracle 密钥管理程序的密钥信息。

有关管理 ZFS 加密密钥的更多信息,请参见: http://www.oracle.com/technetwork/articles/servers-storage-admin/manage-zfs-encryption-1715034.html

有关使用 Oracle 密钥管理程序管理密钥信息的信息,请参见:

http://docs.oracle.com/cd/E24472_02/

委托 ZFS 密钥操作权限

查看关于委托密钥操作的以下权限描述:

  • 通过使用 zfs key –lzfs key –u 命令装入或卸载文件系统密钥需要 key 权限。大多数情况下,还将需要 mount 权限。

  • 通过使用 zfs key –czfs key –K 命令更改文件系统密钥需要 keychange 权限。

请考虑针对密钥使用(装入或卸载)和密钥更改授予单独的权限,这样您可以采用“两人”密钥操作模型。例如,确定哪些用户可以使用密钥,哪些用户可以更改这些密钥。或者,两种用户需要同时在场才能进行密钥更改。此模型还允许您构建密钥契约系统。