Skip to main content

Post Key Vault Secrets report to webhook

Project description

azure-key-vault-alert

pip package


Description

Generates a Key Vault Secret status report using ops-py-azure-key-vault-report for one more Key Vaults.

Each report is posted continuously to Slack using ops-py-message-handler

When done, an optional final notify is sent to Slack using an additional webhook.

Installation

pip install ops-py-azure-key-vault-alert


Usage

Export the WEBHOOK_REPORT Environment Variables:

  • WEBHOOK_REPORT
    Each report is posted to the value of this webhook. E.g.:
    export WEBHOOK_REPORT="https://hooks.slack.com/workflows/T02XYZ..."

  • WEBHOOK_NOTIFY
    When all the reports have been posted, an additional POST is performed to the value of this webhook. E.g.:
    export WEBHOOK_NOTIFY="https://hooks.slack.com/workflows/T02ZYX..."

Provide the list of key vaults to generate reports for after the -v / --vaults'
command line argument (space separated) when executing the code. E.g.:
python3 azure_key_vault_alert -v kv-prod kv-dev kv-qa

Other valid arguments:
--expire_threshold
If this argument is provided and followed by a int value (int), the record will only be reported if days to the record's Expiration Date is below the threshold.

--include_no_expiration
If this argument is provided, the report will also include the records which has no Expiration Date set.

--include_all
If this argument is provided, the report will include all the records (verbose).

--teams_output
If this argument is provided, a MS Teams json object of the report will be generated and used as the payload.


Example on how to use this package in a GitHub Action Workflow:

NOTE: Use the predefined shared azure-key-vault-alert workflow instead.

Bash script
Create shell script which then is called by the pipeline, e.g. key_vault_alert.sh with the following content:

#!/bin/bash

BASEDIR=$(dirname "$0")

# To ensure that we are in the same directory as where this script is located
cd $BASEDIR

# Create a new empty Python virtual environment
python3 -m venv .venv

# Activate the newly created Python virtual environment
source .venv/bin/activate

# Only install the python packages specified in the requirements.txt files
pip install -r requirements.txt

# Executes ops-py-azure-key-vault-alert. Arguments are passed from this bash script to the python script
python3 -m azure_key_vault_alert.azure_key_vault_alert "$@"

Make sure to make the script executable before checking it in: chmod +x key_vault_alert.sh

PIP requirements.txt file
Make sure to generate a requirements.txt file and check in:

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip ops-py-azure-key-vault-alert
pip list --format=freeze > requirements.txt
git add requirements.txt 

More info about Python virtual environment

Pipeline steps

  • Login to Azure CLI
    Make sure this step is done before calling the azure-key-vault-alert. Also make sure the client id has the privileges to list the desired Key Vault Secrets.
    Example code of this step:

    - name: "Azure login"
      uses: azure/login@v1
      with:
        client-id: ${{ env.SERVICE_PRINCIPAL_CLIENT_ID }}
        subscription-id: ${{ env.SUBSCRIPTION_ID }}
        tenant-id: ${{ env.TENANT_ID }}
        enable-AzPSSession: true
    
  • Execute the key_vault_alert.sh script:

    - name: Key Vault Secrets report to Slack
      run: ./key_vault_alert.sh -v kv-dev kv-qa
    

    Specify the list of desired key vault names after the -v argument. The key vault names must be separated by space.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ops-py-azure-key-vault-alert-1.0.4.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ops_py_azure_key_vault_alert-1.0.4-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file ops-py-azure-key-vault-alert-1.0.4.tar.gz.

File metadata

File hashes

Hashes for ops-py-azure-key-vault-alert-1.0.4.tar.gz
Algorithm Hash digest
SHA256 8f1cdceb78ead42a2773b5fc10b2ebd44382ad557a28f81d843fa8e519170f2a
MD5 19bfc531e764bf92f182d662018bce12
BLAKE2b-256 e33849b9f290ff62550a6537f1432006a8146bd7b0070fd02ed6ba3724d7d9e1

See more details on using hashes here.

File details

Details for the file ops_py_azure_key_vault_alert-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for ops_py_azure_key_vault_alert-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 32c846eb7089df48964fa0b06aaf5f30298137e38523deff54c24692b6716b48
MD5 0fcbe4b7e7f4d711fa285fc16f4ebefb
BLAKE2b-256 c9f458fe3a50a68c4c6b22db37c91e12af505dbb6cc43bab5bba10fd8a0c75ea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page