关于密码和密钥加密

CloudStack存储一些敏感密码和密钥用于提供安全保证。这些值总是自动被加密。

  • 数据库密钥

  • 数据库密码

  • SSH密钥

  • 计算节点root密码

  • VPN密码

  • 用户API密钥

  • VNC密码

CloudStack使用java简单的加密库(JASYPT)。数据值加密和解密通过使用一个存储在一个CloudStack带有数据库密码的内部属性文件中的密钥。上述列出的其他加密的值,例如SSH密钥,也在CloudStack内部数据库中。

当然,数据库密钥本身不是公开存储的-它必须被加密。那么,CloudStack如何阅读它呢?从外部源启动管理服务时必须提供第二个密钥。这个密钥可以提供两种方式中的一种:从文件加载或者由CloudStack的管理员提供。CloudStack数据库中都有一个配置设置使它知道这些方法将被调用。如果加密类型设置为 “file,” 密钥 必须存在于文件的已知位置中。如果加密类型设置为 “web,” 管理员运行 com.cloud.utils.crypt.EncryptionSecretKeySender工具,which relays the key to the Management Server over a known port.

加密类型,数据库密钥和管理服务器密钥在CloudStack初始化的过程中设置。它们全部是CloudStack数据库设置脚本的参数(cloud-setup-databases).默认值是file,password和password。当然,强烈建议你修改这些密钥。