In this section, you’ll learn how to use Azure Key Vault as a secrets backend on Astro Private Cloud.
astro dev init.If you don’t already have Key Vault configured, see the Microsoft Azure documentation.
Follow the Microsoft Azure documentation to register a new application for Astro Private Cloud.
At a minimum, you need to add a secret that Astro Private Cloud can use to authenticate to Key Vault.
Note the value of the application’s client ID and secret for Step 3.
Follow the Microsoft documentation to create a new access policy for the application that you just registered. The settings you need to configure for your policy are:
Key, Secret, & Certificate Management.In your Astro project, add the following line to your requirements.txt file:
In your Dockerfile, add the following environment variables with your own values:
This tells Airflow to look for variable information at the airflow-variables-* path in Azure Key Vault and connection information at the airflow-connections-* path. In the next step, you’ll run an example Dag to test this configuration locally.
airflow-connections or airflow-variables. If you don’t want to use prefixes in your Key Vault secret names, set the values for sep, "connections_prefix", and "variables_prefix" to "" within AIRFLOW__SECRETS__BACKEND_KWARGS.If you want to deploy your project to a hosted Git repository before deploying to Astronomer, be sure to save <your-client-id>, <your-tenant-id>, and <your-client-secret> in a secure manner. When you deploy to Astronomer, you should set these values as secrets with the Astro Private Cloud UI.
To test your Key Vault setup on Astro Private Cloud locally, create a new secret in Key Vault containing either a variable or a connection.
Once you create a test secret, write a simple Dag which calls the secret and add this Dag to your project’s dags directory. For example, you can use the following Dag to print the value of a variable to your task logs:
To test your changes:
Run astro dev stop followed by astro dev start to push your changes to your local Airflow environment.
In the Airflow UI (http://localhost:8080/admin/), trigger your new Dag.
Click test-task > View Logs. If you ran the example Dag above, you should see the contents of your secret in the task logs:
Once you confirm that the setup was successful, you can delete this Dag.
Once you’ve confirmed that your secrets are being imported correctly to your local environment, you’re ready to configure the same feature in a Deployment on Astro Private Cloud.
Dockerfile to your Deployment environment variables. Specify the AZURE_CLIENT_ID, AZURE_TENANT_ID, and AZURE_CLIENT_SECRET variables as Secret to ensure that your credentials are stored securely.Dockerfile.From here, you can store any Airflow variables or connections as secrets on Key Vault and use them in your project.