Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Azurator

PyPI Latest Release Pepy Total Downloads GitHub License

Azurator rotates shared-key credentials for Azure services and updates supported places where they are stored.

Installation

Python installations require Python 3.10 or newer. The default login uses the Azure CLI.

pipx install azurator

Other install paths:

  • pip install azurator
  • prebuilt archives from the latest release
  • nix run github:janthmueller/azurator -- --help

The optional SOPS workflow also requires SOPS 3.13.x. See the installation guide for details.

Quick Start

Rotate keys already stored in a dotenv file:

azurator login
azurator rotate --env-file .env

Azurator matches the file values to supported Azure keys, shows every planned change, asks once for confirmation, rotates the keys, and updates the file and supported Azure configuration that stores the same values. Storage keys may be stored either as raw values or in supported Shared Key connection strings.

Inspect or preview first when needed:

azurator match --env-file .env
azurator plan --env-file .env

Other Workflows

  • azurator rotate selects keys interactively.
  • azurator rotate --sops-file secrets.enc.env updates a SOPS-encrypted dotenv file.
  • azurator export --sops-out azure-keys.enc.env --key-map-out azurator.keys.json creates an encrypted dotenv file and its reusable secret-free key map.
  • azurator export --out azure-keys.env creates a new dotenv file from selected keys.
  • azurator match --sops-file secrets.enc.env --key-map-out azurator.keys.json saves mappings for azurator export --key-map azurator.keys.json --sops-out recreated.enc.env.
  • azurator refresh --key-map azurator.keys.json --sops-file secrets.enc.env updates the mapped existing assignments with their current Azure values.
  • azurator discover lists supported key resources without retrieving key values.

Current Scope

Azurator rotates Storage Account keys and the Key1 and Key2 credentials exposed by Azure AI, Cognitive Services, and Azure OpenAI. When the same key is stored in a selected dotenv file, a supported Foundry project connection, or an App Service application setting, Azurator can update that configuration during the rotation. Storage connection strings in supported dotenv and App Service settings keep their existing fields while AccountKey is replaced.

Azurator checks only the documented configuration types. It does not discover every Azure secret or prove that a running workload uses a key.

See Supported Key Resources and Bindings for the exact current coverage.

Shared Keys and Microsoft Entra ID

Shared keys are useful for prototypes and existing integrations, but they must be stored, distributed, and rotated. Prefer Microsoft Entra ID when the service and workload support it. Use Azurator when shared keys remain the practical choice.

Read Microsoft's guidance for secretless authentication, Foundry authentication, and Azure Storage Shared Key.

Documentation

See the documentation for setup, supported workflows, and recovery.

Contributing

See CONTRIBUTING.md.

License

MIT

Metadata

Release files for azurator 0.1.0a5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for azurator 0.1.0a5
File Size Uploaded
azurator-0.1.0a5.tar.gz 196.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for azurator 0.1.0a5
File Interpreter ABI Platform
azurator-0.1.0a5-py3-none-any.whl Python 3 none any Details

Total release size: 321.6 kB

Release files / azurator-0.1.0a5.tar.gz

Download URL azurator-0.1.0a5.tar.gz
Size 196.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4ab3f7005ba55a821c05e4f92e71d02d5c3a9f9b89b757a07c9f89c0bbc13294
BLAKE2b-256 checksum
How to use checksums
d87b0c02af7d6bf6206a4d918d3d47e597504a873ccc114d06e60243c9a3ba7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release files / azurator-0.1.0a5-py3-none-any.whl

Download URL azurator-0.1.0a5-py3-none-any.whl
Size 125.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e834b642cbcb0444dfa27773d9bcbe48d491cdd1f98fb133a904f0c8e3160651
BLAKE2b-256 checksum
How to use checksums
e613161644012a0bde1646464e63a47b62bbfcf9ee9aea2878f615a508440b49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page