Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Author

Description

Date

Hari Kannan

Inital Requirement

01/10/2013

Devdeep Singh

Initial Draft

03/7/2013

Devdeep Singh

Added details on the trusted host processor and how deployment of an instance will work

04/24/2013

Requirement:

  • 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.
  • 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 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.

...

  • 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 server is already registered with the management server, any subsequent requests to register another attestation server will override the older will fail. Administrator will have to unregister with the existing attestation server and carry out a new registration.

Checking the trust relationship of an host

...

  • When hosts are listed for migration of an instance, if an instance is using an offering which requires trusted host, the host allocators will be updated to not to include hosts that are not trusted (information stored in the host_details table in the db). These was deployed with group-id that requires trusted host; untrusted hosts will be marked as 'Unsuitable' for migration (as seen in UI)unsuitable.
  • Migration of instances using offering requiring trusted hosts, to untrusted hosts will be allowed. However, an alert will be raised to bring this to administrators attention.
  • If an instance using a offering requiring trusted hosts goes down and HA is triggered for it, management server will try to bring it up on host that is trusted. If no trusted hosts are available HA for the instance will fail.

...

  1. registerAttestationServer : A new api to register an attestation server with cloudstack. It will take the details of the attestation server as a parameter and check if a connection can be established to it.

    Parameters

    Type

    Required/Optional

    Comments

    url

    String

    Required

    Url of the attestation server

    username

    String

    Required

    Username with which cloudstack should register and connect with the attestation server

    password

    String

    Required

    Password with which cloudstack should register and connect with the attestation server

Response Object

Comment

AttestationServerResponse

The parameters contained in the response object are uuid, url and username

  1. listAttestationServer : A new api to list the attestation server registered with cloudstack. It will return AttestationServerResponse in response.
  1. unregisterAttestationServer : A new api to unregister an attestation server.

    Parameters

    Type

    Required/Optional

    Comments

    id

    Uuid

    Required

    Id of the attestation server

Test Guidelines

...