服务用户令牌

警告

出于安全原因,为每个 Nova 服务配置服务用户令牌是必需的。有关详细信息,请参阅 https://bugs.launchpad.net/nova/+bug/2004555

配置 Nova 在向其他服务发出 REST API 调用时,连同常规用户令牌一起发送服务用户令牌。如果常规用户令牌已过期,身份服务 (Keystone) 将使用服务用户令牌对请求进行身份验证。

当诸如实时迁移或快照等长时间运行的操作耗时足够长以超过用户令牌的有效期时,这一点非常重要。如果没有服务令牌,如果长时间运行的操作超过了用户令牌的有效期,Nova 调用其他服务 API(如块存储 (Cinder) 或网络 (Neutron))时的后续操作(例如实时迁移后的清理)可能会失败。

服务令牌还被服务用于验证 API 调用者是否为服务。某些服务 API 仅限于服务用户使用。

要设置服务令牌,请在身份服务 (Keystone) 中创建一个 nova 服务用户和一个 service 角色,并将 service 角色分配给 nova 服务用户。

然后,配置 Nova 配置文件中的 service_user 部分,例如

[service_user]
send_service_user_token = true
auth_url = $AUTH_URL
auth_type = password
project_domain_name = $PROJECT_DOMAIN_NAME
project_name = service
user_domain_name = $USER_DOMAIN_NAME
username = nova
password = $SERVICE_USER_PASSWORD
...

并根据需要配置其他身份选项,就像配置 Nova 与镜像服务 (Glance) 或网络服务 (Neutron) 一样。

注意

请注意,分配给 service_user 的角色需要在其他服务(如块存储 (Cinder)、镜像 (Glance) 和网络 (Neutron))的配置的 keystone_authtoken.service_token_roles 中。