...
- CloudStack will work with an attestation server to secure the deployed Hosts - the attestation server has the capability to compare launch values against "known good"
- When setting up a cloudstack environment, automatically understand which hosts are "trustworthy" and present it to the admin.
- admins Administrators are able to create a service offering that will allow users to select if they need the VMs to be deployed on trusted hosts.
- Ensure that VMs instances requested in such a manner are always placed on trusted hosts. Instances that do not require a trusted host will not be blocked from getting deployed on a trusted host.
- Whenever a trusted host or the attestation server itself is rebooted, verify the trustworthiness.
- Migration of VM from a trusted to untrusted host should be allowed but it should raise an alert.
Non requirements
- The attestation server will not be managed by cloudstack. It'll have to be setup and configured and then registered with cloudstack for checking the trust attributes of a host.
Glossary
Feature Specification
...
If an instance created from a service offering that requires a trusted host , and it is placed on an untrusted or unattested host, an alert will be raised to bring it to administrators attention.
...
Architecture and Design description
Dependency on the attestation server client library
A java client library is available for easy integration with the attestation server. Cloudstack will be using it to register with the attestation server and to check for the trust relationship of a host. The library and this feature will be made available under non-oss.
Registering an attestation server with cloudstack
- Only one attestation server can be registered with a cloudstack management server.
- The attestation service can be enabled or disabled through a global configuration parameter 'enable.attestation.service' (Boolean: true/false). It'll be disabled by default.
- A root administrator can register the details of an attestation server by making a registerAttestationServer api call. This is an async call. Cloudstack management server will open a connection to the attestation server and it'll use the KeystoreUtil.createUserInDirectory client library api call to register/create a user. On successful registration the attestation server details will be persisted in the db.
- The above request for a new user needs to be approved by an attestation server administrator. This is a manual process and will be included in the documentation.
- If an attestation service is already registered with the management server, any subsequent requests to register another attestation server will override the older registration.
Database modifications
Web Services APIs
...