Cloud Providers
Polaris Pro can currently be deployed on Google Cloud Platform and Microsoft Azure using their respective Confidential Computing, Key Management and Attestation services. In all cases, all resources are provisioned on the client's infrastructure and Fr0ntierX has no ability to access any data and services. All components of the provisioned stack are open-source and can be audited by the client.
Google Cloud Platform
When deploying Polaris on Google Cloud Platform (GCP), a Confidential Virtual Machine (CVM) is provisioned for every Polaris container. The VM is created using a public Polaris image that is based on the Google Container-Optimized OS and automatically starts the Polaris Proxy and the configured Client Workload. There are some limitations on the machine configurations that support Confidential Computing, please refer to the Google Cloud documentation for more information.
You can deploy Polaris on GCP using the Polaris VM offer in the Google Cloud Marketplace.
Key Management
The private encryption key is created using Cloud KMS and is stored inside of an HSM. Only a dedicated service account is given permissions to use the key for cryptographic operations and this service account can only be accessed from a Workload Identity Pool. The workload identity pool is configured to use OIDC tokens from the Google-managed vTPM which are automatically generated and refreshed inside of the Polaris Pro VM. The Polaris Proxy takes care of configuring all the required access to the Workload Identity Pool, so this process is transparent for the user of Polaris Pro.
In the future, you will also be able to customize the attestation policy and include additional conditions, like for exmaple the docker image hash of the proxy and the workload.
It is a good practice to deploy the KMS in a separate project (or even tenant) and strictly separate the users that have access to the key and the encrypted data. If you are interested in implementing this solution please get in touch.
Microsot Azure
Polaris containers on Microsoft Azure are provisioned usng confidential Azure Container Instances. For each Polaris instance a confidential container groups is created containing separate containers for the Polaris Proxy and the Client Workload. Some limitations on the CPU count and memory size of the container instances apply, please refer to the Azure documentation for more information.
You can deploy Polaris on Azure as a Managed Application using the offer in the Azure Marketplace. The Managed Applicaiton is configured to give you full access on all resources, while access by Fr0ntierX to the resources is prohibited.
Key Management
The private encryption key is created using Azure Key Vault and is stored inside of an HSM. The key can be used inside of the Polaris Pro container through the Secure Key Release (SKR) feature. This is implemented using the official Azure Secure key release sidecar container. The SKR container is responsible for generating the remote attestation from the CPU, verifying it with the Microsoft Azure Attestation (MAA) service, obtaining a token and releasing the key. The private key is then imported into the (encrypted) memory of the Polaris Proxy container so it can be used to encrypt data.
In the future, you will also be able to customize the attestation policy and include additional conditions, like for exmaple the docker image hash of the proxy and the workload.