====== Azure Steampipe/Powerpipe ====== * [[https://hub.powerpipe.io/mods/turbot/steampipe-mod-azure-compliance/benchmarks|Azure Compliance Mod]], CIS, NIST, etc * This page includes a list of the raw queries that can be ran using the Steampipe ''steampipe query --output line'' command. * Details on installing are here, [[https://github.com/turbot/steampipe-mod-azure-compliance]] ====== Installation ====== - Install Powerpipe - Install Steampipe - Install Steampipe Azure Compliance Mod sudo /bin/sh -c "$(curl -fsSL https://powerpipe.io/install/powerpipe.sh)" sudo /bin/sh -c "$(curl -fsSL https://steampipe.io/install/steampipe.sh)" mkdir dashboards cd dashboards powerpipe mod init powerpipe mod install github.com/turbot/steampipe-mod-azure-compliance az login --tenant cfc.avertium.com --use-device-code ====== Azure ====== For Azure modules I provide authentication using the Azure CLI. Below is an example logging into a tenant. az login --tenant --use-device-code Run CIS Benchmark checks and output the results to HTML. powerpipe benchmark run azure_compliance.benchmark.cis_v300 --export html ====== Installation Alt ====== To install and run **Powerpipe** and **Steampipe** for Azure CIS benchmarks, you will follow a four-stage process: installing the binaries, configuring Azure authentication, setting up the plugins, and finally running the compliance mod. [1](https://avertium-my.sharepoint.com/personal/michael_gupton_avertium_com/Documents/Microsoft%20Copilot%20Chat%20Files/powerpipe_azure_assessment.md) === 1. Install Steampipe and Powerpipe === Run these commands in your bash terminal to install the latest versions using the official install scripts. # Install Steampipe sudo /bin/sh -c "$(curl -fsSL https://steampipe.io/install/steampipe.sh)" # Install Powerpipe sudo /bin/sh -c "$(curl -fsSL https://powerpipe.io/install/powerpipe.sh)" ---- === 2. Authenticate with Azure === Steampipe uses your existing Azure CLI credentials by default. Ensure you are logged in and have the correct subscription active. # Log in to Azure az login # (Optional) Set the specific subscription you want to scan az account set --subscription "Your-Subscription-ID" ---- === 3. Install Plugins and Compliance Mod === Steampipe needs the **Azure** and **Azure AD** plugins to fetch data, while Powerpipe needs the **Azure Compliance** mod to run the CIS checks. # Install required Steampipe plugins steampipe plugin install azure steampipe plugin install azuread # Create a directory for your compliance checks and initialize a mod mkdir azure-compliance cd azure-compliance powerpipe mod init # Install the Azure Compliance mod powerpipe mod install github.com/turbot/steampipe-mod-azure-compliance ---- === 4. Run the CIS Benchmark === You must start the Steampipe service so Powerpipe can query it, then run the benchmark command. # Start the Steampipe service in the background steampipe service start # Run the CIS v3.0.0 benchmark (or choose your preferred version) powerpipe benchmark run azure_compliance.benchmark.cis_v300 --export cis_300.html --export cis_300.csv **Prefer a visual dashboard?** Instead of ``run``, use ``powerpipe server`` and navigate to ``http://localhost:9033`` in your browser to view the results in a rich, interactive UI. ---- === Summary of Common Benchmarks === ^ Framework ^ Command ^ | **CIS v3.0.0** | ``powerpipe benchmark run azure_compliance.benchmark.cis_v300`` | | **CIS v2.1.0** | ``powerpipe benchmark run azure_compliance.benchmark.cis_v210`` | | **NIST SP 800-53** | ``powerpipe benchmark run azure_compliance.benchmark.nist_sp_800_53_rev_5`` | `` ====== Azure Compliance Mod Controls ====== === List controls === powerpipe control list | grep keyvault azure_compliance azure_compliance.control.keyvault_certificate_validity_12_months azure_compliance azure_compliance.control.keyvault_certificate_validity_period_less_equal_12_months azure_compliance azure_compliance.control.keyvault_firewall_enabled azure_compliance azure_compliance.control.keyvault_key_automatic_rotation_enabled azure_compliance azure_compliance.control.keyvault_key_expiration_set azure_compliance azure_compliance.control.keyvault_logging_enabled azure_compliance azure_compliance.control.keyvault_managed_hms_logging_enabled azure_compliance azure_compliance.control.keyvault_managed_hms_purge_protection_enabled azure_compliance azure_compliance.control.keyvault_purge_protection_enabled azure_compliance azure_compliance.control.keyvault_rbac_enabled azure_compliance azure_compliance.control.keyvault_secret_expiration_set azure_compliance azure_compliance.control.keyvault_soft_delete_enabled azure_compliance azure_compliance.control.keyvault_vault_private_link_used azure_compliance azure_compliance.control.keyvault_vault_public_network_access_disabled azure_compliance azure_compliance.control.keyvault_vault_recoverable azure_compliance azure_compliance.control.keyvault_vault_use_virtual_service_endpoint azure_compliance azure_compliance.control.keyvault_with_non_rbac_key_expiration_set azure_compliance azure_compliance.control.keyvault_with_non_rbac_secret_expiration_set azure_compliance azure_compliance.control.keyvault_with_rbac_key_expiration_set azure_compliance azure_compliance.control.keyvault_with_rbac_secret_expiration_set azure_compliance azure_compliance.control.securitycenter_azure_defender_on_for_keyvault ====== Manually Running Controls (Checks) from Azure Compliance Mode ====== * Search the [[https://github.com/turbot/steampipe-mod-azure-compliance|source code]] for the compliance check by id and look for the query.