Enabling Always Encrypted in Azure SQL

45 minutes
  • 4 Learning Objectives

About this Hands-on Lab

You are assuming the role of a cloud data engineer. You’ve been asked to ensure customer data is always encrypted at rest. Staff such as administrators and backup operators should not have access to customer data, even when using tools like SQL Server Management Studio. The unencrypted data should only be available to the application. In this hands-on lab, you will create an Azure SQL database and an Azure key vault, encrypt data using SQL Server Management Studio (SSMS), and view encryption results.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create a SQL Server and SQL Database

Note: Unless otherwise stated, select the default options or, in the case of the subscriptions and resource groups, the only available option.

  1. Create a single SQL database.
    • The database name can be anything (sampleDB1 in this example).
  2. Create a new server.
    • The server name can be anything unique (sampleserver##### in this example).

      Note: It’s recommended to append a random five- or six-digit number at the end of the server name.

    • The username and password for the virtual machine can be used for the server admin.
    • Ensure Allow Azure services to access server is checked.
    • Change Compute + storage to Standard, 200 DTUs (or a Standard S04 server).
    • On the Additional settings screen:
      • Under Data Source, select Sample.
      • Set Enable Advanced Data Security to Not now.
Create an Azure Key Vault

Note: Unless otherwise stated, select the default options or, in the case of the subscriptions and resource groups, the only available option.

  1. Create an Azure key vault.
    • The key vault name can be anything unique (samplevault##### in this example).

      Note: It’s recommended to append a random five- or six-digit number at the end of the vault name.

  2. On the Access policy screen, in the Key Permissions column, select all permissions except for Purge, Release, Rotate, Get Rotation Policy, and Set Rotation Policy for the logged-in lab user.
Use RDP to Connect to the Virtual Machine
  1. Download and install an RDP client.

  2. In the Azure portal, browse to the VM and take down the public IP address of the server from the Overview tab in the server blade, or use the details from the lab.

  3. Connect to the server via RDP and log in using the credentials provided.

  4. On the virtual machine use the Internet Options to lower the security of IE or install Microsoft Edge and set it as the default browser. (The two options work around a bug when using the encryption wizard later.)

Connect to SQL Server and Encrypt Some Data
  1. Connect to SQL Server.
  2. Change the Authentication type to SQL Server Authentication.
  3. Connect using the credentials provided earlier.

    Note: If you are prompted to log in to Azure, use the provided lab credentials.

  4. Browse to Databases > sampledb1 > Tables > and right-click on SalesLT.Customer.
  5. Select Encrypt Columns.
  6. Enable Always Encrypted via the wizard.
  7. Select the FirstName, MiddleName, and LastName columns, and set all three to use Deterministic encryption.
  8. Store the key in Azure Key Vault (log in with the Azure lab credentials).

Additional Resources

Lab Setup

Log in to the Azure portal by right-clicking Open Azure Portal and selecting the option to open it in a new private browser window. This option will read differently depending on your browser (for example, in Chrome, it reads Open Link in Incognito Window.). Then, sign in using the credentials provided on the lab page.

The objectives for this hands-on lab can be completed using the Azure portal and the provided VM.

Remote Desktop Clients

We will be using RDP to access our Windows virtual machines in this lab. For MacOS and Linux workstations, you may need to download an RDP application in order to connect to these virtual machines:

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?