Deploying a KeyControl Cluster in Azure Resource Manager (ARM)

Prior to deploying a KeyControl cluster you should set up the Azure resources required for this deployment. In this example, we have deployed a 2-node KeyControl cluster using two different Virtual Networks (VNets).

Note that we frequently refer to the Azure documentation. To get the Azure documentation, launch Microsoft Azure and click the question mark in a circle on the top bar, then Help + support, and then Documentation center:

We are using the "new portal" for Azure, so if your account comes up with a different look, click Check out the new portal at the top of the screen, and then Launch. You should then see your Dashboard. You begin most commands by clicking + New, at the top left of the screen.

Creating a Resource Group

Refer to Azure documentation for creating a resource group.

In this example, we created HyTrust-rg in the West US region. Create a Resource group that meets your needs. This resource group is created to contain all the resources required for this deployment. Here is a view of the HyTrust-rg, showing the majority of the resources we describe in this document:


Creating a Virtual Network

Refer to Azure documentation for creating virtual networks. In this example, we created HyTrust-vnet1 in the West US region with a network address space of 10.21.0.0/16 and a single default subnet of 10.21.0.0/24. HyTrust-vnet1 is in the HyTrust-rg resource group.

Creating A Second Virtual Network

Refer to Azure documentation for creating virtual networks. If a second KeyControl is deployed in the same VNet as the first one, there is no need to create a second VNet and no further network infrastructure is needed.

In this example, we created HyTrust-vnet2 in the West US region with a network address space of 15.5.0.0/16 and a single default subnet of 15.5.0.0/24. HyTrust-vnet2 is in HyTrust-rg resource group.

Note that there should be no overlapping IP addresses between the two VNet address spaces.

If the two VNets are in the same region, network peering must be established between the two VNets in both directions. For establishing network peering, refer to the Azure documentation for network peering.

If the two VNets belong to two different regions, Site-to-Site connection must be set up for both VNets to allow them to access each other through private IP addresses. For VPN deployment for Site-to-Site connection, refer to the Azure documentation.

Creating a Network Security Group

Refer to Azure documentation for Network security groups. In this example, we created HyTrust-nsg in the HyTrust-rg resource group in the West US region, with the following inbound security rules:

https-rule     HTTPS (TCP/443)	       Allow   Any
ssh-rule 	SSH (TCP/22)		Allow	Any
support 	Custom (TCP/6666	Allow	Any
auth-comm1 	Custom (TCP/2525)	Allow	Any
auth-comm2	Custom (TCP/2526)	Allow	Any
kc-comm	Custom (TCP/8443)	Allow	Any
Important: Although in this example, the above ports are wide open to all inbound network traffic, the source IP address range in these rules should limit inbound network traffic according to your organization's security policy. At a minimum, inbound rules should allow network traffic from one KeyControl to the other KeyControls, or the address space (CIDR) of the subnets the KeyControls reside in.

Creating a Storage Account

Refer to Azure documentation for creating storage accounts. In this example, we created a general purpose premium resource manager storage account named "hytrustsa" as part of HyTrust-rg resource group in the West US location.

Generating an SSH Key Pair

To access a KeyControl in Azure ARM, an ssh-rsa key pair is required. Refer to Azure documentation for generating SSH keys in Unix and Windows platforms. In most UNIX systems a key can be generated by executing ssh-keygen -t rsa -b 2048, or openssl genrsa combined with openssl rsa to create private and public keys. In this example, a key is generated, the private key is saved in priv_key and the public key is stored in pub_key. pub_key will be needed to deploy KeyControl into Azure ARM and priv_key is used to access the KeyControl System Menus. In this example, we use a single key pair for both KeyControl deployments.

Deploying the Initial KeyControl Node

Converting Private IP Addresses to Static Addresses

Connecting the VM to KeyControl

Adding Additional KeyControl Nodes

Converting the Additional Private IP Address to Static Addresses

Connecting the Additional VMs to KeyControl

Authenticating the KeyControl Node

Deploying Root and Swap Encryption on Azure Drives

In addition to encrypting regular data partitions, you can also encrypt your Linux root and swap partitions. Encrypting root and swap partitions ensures that clear-text data never leaves the VM on its way to storage. For details, see Encrypting Linux Root and Swap Drives Using ARM.