前一项任务创建加密的 ZFS 数据集使用的是一个本地定义的(原始)密钥文件,该文件必须直接存储在文件系统上。另一个密钥存储技巧利用受密码短语保护的 PKCS#11 密钥库,称为 Sun Software PKCS#11 Softtoken。要使用这种方法,请执行本任务。
必须先手动解锁 PKCS#11 密钥库,然后密钥才能供 ZFS 使用。最终,这意味着需要手动管理介入来挂载加密的 ZFS 数据集(如果非全局区域也使用加密的 ZFS 数据集,那么还要启动该区域)。有关其他密钥存储策略的更多信息,请参阅 zfs_encrypt(1M) 手册页。
请参见登录到计算服务器并更改默认密码。
与新 PKCS#11 密钥库关联的默认 PIN 为 changeme。在本示例中第一个提示符处输入此密码短语。
# pktool setpin keystore=pkcs11 Enter token passphrase: Create new passphrase: Re-enter new passphrase:
默认情况下,PKCS#11 Softtoken 使用的密钥材料存储在 /var/user/ ${USERNAME}/pkcs11_softtoken 目录中。可以定义 ${SOFTTOKEN} 环境变量,以将密钥材料存储在不同的位置。您可以使用此功能为受此密码短语保护的密钥材料启用特定于 SuperCluster 的存储。
# export SOFTTOKEN=/<zfs_pool_name>/zfskeystore # pktool setpin keystore=pkcs11 Enter token passphrase: Create new passphrase: Re-enter new passphrase:
# pktool genkey keystore=pkcs11 keytype=aes keylen=256 label=zone_name_rpool Enter PIN for Sun Software PKCS#11 softtoken:
# zfs create -o encryption=aes-256-ccm -o keysource=raw,pkcs11:object=<zone_name>_rpool zfs_pool_name/zone_name Enter PKCS#11 token PIN for 'zfs_pool_name/zone_name’: