Azure DevOps is an end-to-end software development platform that offers an assortment of capabilities intended to organize and accelerate development efforts across the entire application lifecycle. To keep the secrets secured in an Azure DevOps pipeline, a Secret Management is required.
Leverage Fortanix DSM to securely retrieve the secrets at runtime of Azure DevOps pipeline execution. Fortanix offers an ADO custom extension Task to retrieve the secrets.
- Install Node js(Latest version is preferred)
- Build the extension
- Install tfx-cli, command: npm install -g tfx-cli
- Configure manifest.env, Add ID and PUBLISHER_ID.
- Run ./build.sh
- This will create the files below:
- Fortanix-Secret-Management/task.json
- Fortanix-Secret-Management/package.json
- Fortanix-Secret-Management/node_modules
- vss-extension.json
- node_modules
- Post build, it will delete all the newly created files except the extension.
- This will create the files below:
- Find the extension in the same directory as <PUBLISHER_ID>.<EXTENSION_NAME>-.vslx
- eg: Fortanix-ADO.Secret-Management-1.0.0.vslx
- MANIFEST_VERSION: Version of manifest
- ID: Unique Identifier(UUID), e.g., d9f8b8c2-1b48-4e5c-b0f5-41f2e7cf88a5
- EXTENSION_NAME: Name of the extension that is presented while installing this extension
- PUBLISHER_ID: ID of the Azure DevOps publisher
- TASK_NAME: Name of the task that is presented in the Azure pipelines
- VERSION: Version of the extension
- AUTHOR: Name of the Author
- Upload the extension to ADO marketplace
- https://marketplace.visualstudio.com/manage/publishers/<PUBLISHER_ID>
- Share it to the ADO organization
- Go to the ADO organization -> Oraganization Settings -> Extensions -> Shared -> Install
- Create a new project in ADO organization and provide access to any github repository
- Create a new pipeline
- Configure FORTANIX_API_KEY as a secret in Variables
- Go to show assistant and search for Fortanix-Secret-Management
- Configure all the listed paramaters:
- FORTANIX_API_ENDPOINT, eg: apac.smartkey.io
- FORTANIX_API_KEY, eg: $(FORTANIX_API_KEY)
- FORTANIX_SECRET, name of a Security Object(SECRET)
- SECRET_VARIABLE_NAME, variable to save the secret value
- This will fetch the secret
- To build the extension, Node.js v20 or above is required
- FORTANIX DSM Account a. Configure Group, App API key and Security Object(SECRET) b. Ensure to enable the EXPORT permission for Security Object(SECRET)
- Azure DevOps Organization a. Configure Publisher, Project, Github repository