Overview
CipherTrust Cloud Key Manager (CCKM, also referred to as CCKM Embedded) centralizes the management of key life cycle for various cloud services providers. The CCKM complies with data security mandates in cloud storage environments while retaining the custodianship of the encryption keys. Enterprises can back up keys on-premise, destroy keys when no longer needed, and manage the entire life cycle of the cloud keys.
CCKM Components
The CCKM solution comprises the following components:
CCKM GUI on the CipherTrust Manager for administrators and users
At least, one of the supported clouds
A supported trusted key source
A supported Internet browser
The product is delivered as a licensed component of the CipherTrust Manager appliance that can be installed on any one of the supported deployment methods.
Supported Clouds
AWS China
AWS GovCloud
Azure Cloud
Azure German Cloud
Azure China Cloud
Azure US Government
Note
AWS China cloud does not support uploading 256-bit keys. It supports upload of 128-bit keys only. Current GUI supports creation and listing of 256-bit keys only. So, upload 128-bit keys to the AWS China cloud using the CCKM AWS APIs.
Note
AWS China cloud does not support creation of native asymmetric keys.
Supported Cloud Services
AWS Customer Managed CMKs
Azure Cloud BYOK
Azure Stack (Azure Active Directory, Azure AD)
Azure Stack (Active Directory Federation Services, AD FS)
Supported Key Sources
CCKM uses the CipherTrust Manager, Azure Dedicated HSM, and Luna Network HSM (referred to as Luna HSM in this document) as the trusted key sources for the encryption keys employed within the supported clouds. The CipherTrust Manager supports all clouds that CCKM supports. The CipherTrust Manager stores its own keys and the backup keys from the supported clouds.
This release supports:
Luna Network HSM Software and Firmware versions v7.3.x and higher.
PED and Password-based HSM configurations.
Import of RSA-4096 keys from Luna HSM Software and Firmware versions 7.4.x and higher.
Only asymmetric keys with Luna HSM.
Note
On the CipherTrust Manager, CCKM cannot manage source keys created on the CCKM Appliance v1.x.
Supported Deployment Methods
The CCKM is delivered as part of the CipherTrust Manager appliance. So, CCKM can be automatically deployed with the deployment of the CipherTrust Manager in the following supported environments:
Amazon Web Services
Google Cloud Platform
Microsoft Azure
Oracle Cloud
Private Clouds - Oracle VMware vSphere, Microsoft Hyper-V, and OpenStack
Physical Appliances
Refer to the CipherTrust Manager Deployment Guide for the complete list of supported environments and deployment instructions.
Supported Internet Browsers
The CCKM supports the following Internet browsers:
Chrome 51.0.2704 (64-bit) or later
Firefox 45.0 or later
Internet Explorer 11 or later
Note
Internet Explorer is not supported for CipherTrust Manager version 2.5 or higher.
CCKM Functionality
The CCKM provides following functionalities for the supported cloud services:
Life cycle management of keys, key versions, and attributes:
View Keys
Update Keys
Upload Keys
Rotate Keys
Delete Keys
Disaster recovery of keys:
Backup Keys
Restore Keys
Hybrid key management:
On-premise keys storage
Management of both keys originating from trusted key sources and cloud-provider-sourced keys
Key synchronization
Compliance management:
On-premise key storage with up to FIPS 140-2 Level 3 certification (CipherTrust Manager K570 with K7 card, Luna Network HSM, DSM)
Key storage in public or private clouds, inaccessible to cloud services with FIPS 140-2 Level 1 (Luna Network HSM, DSM)
Key visibility reporting:
Key Activity Report: Inspect individual key histories by operations, for example, when they were refreshed, rotated, edited, or deleted. Also, use this report to compare key activities between CCKM and a cloud service.
Key Aging Report: Track keys by their expiration dates. Audit a range of dates, from past material deletions to future scheduled deletions, within a cloud service.
Service/Usage Report: Monitor key usage by tracking services and applications consuming the keys. View when and where a service requests the use of each key.
Note
Reporting is not supported for the Azure Stack cloud.
User Roles
CCKM has the following users with different responsibilities in administering and using the AWS and Azure resources.
CCKM Admins
There is a System Defined Group named "CCKM Admins". Users within the "CCKM Admins" group are CCKM Administrators. Additionally, the CCKM administrators need the Key Users, Connection Admins, and User Admins permissions to perform key operations on the supported clouds.
A CCKM Administrator is responsible for creating and managing the following resources:
AWS KMS Accounts, AWS Keys
Azure Key Vaults, Azure Subscriptions, and Azure Keys
Luna HSM Partitions, Luna Keys
CCKM Schedules
CCKM Reports
CCKM Users
There is a System Defined Group named "CCKM Users". CCKM users registered with the CipherTrust Manager are part of this group. Additionally, the CCKM users need the Key Users permissions to perform key operations on the supported clouds.
Proxy Configuration
If you plan to run the CipherTrust Manager appliance behind a proxy, you must configure the proxy as described in this section.
Prerequisites
Make sure that:
The root access is enabled. Contact Thales Customer Suport to enable the root access.
DNS is already configured on the CipherTrust Manager if you want to use the hostname of the proxy server.
Steps
To configure the proxy:
SSH to the CipherTrust Manager appliance.
Go to
/opt/keysecure/optional-services
.Open
docker-compose.citrus.yml
anddocker-compose.cckm.yml
files in an editor (for example, the vi editor).Add the following two lines under the
environment
section in both the files.- https_proxy=172.14.3.4:3128/ - NO_PROXY=localhost,127.0.0.1
Note
Make sure that indentation is proper.
For example, the updated content should look similar to the following:
services: citrus: image: 647496772601.dkr.ecr.us-east-1.amazonaws.com/ncryptify/citrus:latest depends_on: - fluentd - pg - doorway restart: unless-stopped environment: - PORT=8080 - YUGOLOG - DEBUG_RESPONSES - ENABLE_DEBUG_METRICS - DATABASE_URL=postgres://postgres:postgres@/kylo?sslmode=disable&host=/var/run/postgresql&search_path=citrus,extensions - DATABASE_MAX_OPEN_CONNS=20 - DATABASE_MAX_IDLE_CONNS=20 - CLERK_URL=http://clerk:8084 - MINERVA_URL=http://minerva:8082 - ENIGMA_URL=http://enigma:8083 - DBMGR_URL=http://dbmgr:9080 - SALLYPORT_URL=http://sallyport:8081 - RANDOM_SOURCE=PIPE - RANDOM_PIPE_NAME=/dev/urandom - TOKEN_PARTITION=ca1a7049-ca97-4473-b611-97a056c42246 - NC_PUB_KEY=SERVICE - DARKSTAR_URL=http://citrus:@darkstar:8080 - PRODUCTS=cckm,cte,data discovery - CLIENT_CREDENTIAL_PARTITION=edf4facc-4ccd-46dd-8aa3-b8538eef26d7 - CLIENT_CREDENTIAL_ID_NAME=clientID - CLIENT_CREDENTIAL_SECRET_NAME=clientSecret - HOST_DAEMON_NTP_URL=/host-daemon/host-daemon.sock - DOORWAY_URL=http://doorway:8080 volumes: - pg_sockets:/var/run/postgresql - ./csprng/rand:/dev/urandom - ./host-daemon:/host-daemon logging: driver: fluentd options: tag: ci
Similarly, you can use the authenticated proxy. For example, add the following lines to the files:
- https_proxy=pxuser:Vormetric123!@ip-172-31-16-234.ap-south-1.compute.internal:3128/ - NO_PROXY=localhost,127.0.0.1
Go to
/opt/keysecure
.Run
./up.sh
.In a different console, monitor the following:
tail -f /opt/keysecure/logs/keysecure.system.log | grep "citrus" tail -f /opt/keysecure/logs/keysecure.system.log | grep "navic"
Make sure no errors related to the services are displayed. If any errors are reported, fix them.
Now, you should be able to connect CCKM with the cloud through the proxy.
URLs to Whitelist for Running CipherTrust Manager Behind Proxy
The following URLs must be whitelisted before you run the CipherTrust Manager behind a proxy.
Amazon Web Services
Service | URL | Purpose |
---|---|---|
CloudWatchLogs | logs.<region-name>.amazonaws.com | Fetch AWS reports. |
EC2 | ec2.amazonaws.com | Required to fetch AWS regions. After all the regions are fetched, the service is no longer needed. |
EC2 | ec2.us-east-1.amazonaws.com | Required to fetch AWS regions. After all the regions are fetched, the service is no longer needed. |
IAM | iam.amazonaws.com | Manage access to AWS services and resources securely. |
KMS | kms.<region-name>.amazonaws.com | Communicate with AWS KMS for key management. |
STS | sts.amazonaws.com | Authenticate AWS users. |
AWS | aws.amazon.com | Redirects to service URLs. |
AWS GovCloud
Service | URL | Purpose |
---|---|---|
CloudWatchLogs | logs.<region-name>.amazonaws.com | Fetch AWS reports. |
EC2 | ec2.amazonaws.com | Required to fetch AWS regions. After all the regions are fetched, the service is no longer needed. |
EC2 | ec2.us-gov-east-1.amazonaws.com | Required to fetch AWS regions. After all the regions are fetched, the service is no longer needed. |
IAM | iam.amazonaws.com | Manage access to AWS services and resources securely. |
KMS | kms.<region-name>.amazonaws.com | Communicate with AWS KMS for key management. |
STS | sts.us-gov-east-1.amazonaws.com | Authenticate AWS users. |
AWS China Cloud
Service | URL | Purpose |
---|---|---|
CloudWatchLogs | logs.<region-name>.amazonaws.com.cn | Fetch AWS reports. |
EC2 | ec2.amazonaws.com.cn | Required to fetch AWS regions. After all the regions are fetched, the service is no longer needed. |
EC2 | ec2.cn-north-1.amazonaws.com.cn | Required to fetch AWS regions. After all the regions are fetched, the service is no longer needed. |
IAM | iam.amazonaws.com.cn | Manage access to AWS services and resources securely. |
KMS | kms.<region-name>.amazonaws.com.cn | Communicate with AWS KMS for key management. |
STS | sts.cn-north-1.amazonaws.com.cn | Authenticate AWS users. |
Azure Public Cloud
URL | Purpose |
---|---|
management.azure.com | Fetch subscriptions and key vaults |
login.microsoftonline.com | Authenticate Azure credentials |
graph.windows.net | For Azure Stack |
vault.azure.net | Manage keys |
api.loganalytics.io | Fetch Azure reports |
Azure US Gov Cloud
URL | Purpose |
---|---|
management.core.usgovcloudapi.net | Fetch subscriptions and key vaults |
management.usgovcloudapi.net | Fetch subscriptions and key vaults |
login.microsoftonline.us | Authenticate Azure credentials |
vault.usgovcloudapi.net | Manage keys |
graph.windows.net | For Azure Stack |
api.loganalytics.us | Fetch Azure reports |
Azure China Cloud
URL | Purpose |
---|---|
management.core.chinacloudapi.cn | Fetch subscriptions and key vaults |
management.chinacloudapi.cn | Fetch subscriptions and key vaults |
login.chinacloudapi.cn | Authenticate Azure credentials |
vault.azure.cn | Manage keys |
graph.chinacloudapi.cn | For Azure Stack |
Azure Germany Cloud
URL | Purpose |
---|---|
management.core.cloudapi.de | Fetch subscriptions and key vaults |
management.microsoftazure.de | Fetch subscriptions and key vaults |
login.microsoftonline.de | Authenticate Azure credentials |
vault.microsoftazure.de | Manage keys |
graph.cloudapi.de | For Azure Stack |
Connecting CCKM in Amazon Virtual Private Cloud (VPC)
When AWS KMS is in Amazon VPC, CCKM cannot connect with the EC2, KMS, and STS services using public IP addresses. You cannot add AWS connections and AWS keys on the CipherTrust Manager. For successful connection, add the IP addresses of VPC endpoints for these services for your AWS regions to the DNS hosts on the CipherTrust Manager.
For example, you need to add the IP addresses of VPC endpoints of sts.amazonaws.com
, ec2.us-east-1.amazonaws.com
, and kms.us-east-1.amazonaws.com
service URLs to the DNS hosts list.
To add the IP address of a VPC endpoint:
On AWS Console
Create the VPC endpoint for a service.
Copy the DNS name of the service.
Ping the DNS name to find out the associated IP address.
Copy the IP address.
On CipherTrust Manager
Log on to the CipherTrust Manager GUI.
In the left pane, click Admin Settings > DNS Hosts.
Click Add DNS Host.
In the Hostname field, enter the service URL, for example,
sts.amazonaws.com
.In the IP Address field, paste the copied IP address.
Click Save.
Similarly, add the DNS host entries for all three services, for all your AWS regions.