Skip to content

Conversation

@nc-shahidazim
Copy link
Contributor

@nc-shahidazim nc-shahidazim commented Jan 28, 2026

Description

This PR implements alerting for near‑expiry and expired Azure Key Vault secrets using scheduled query alerts. It detects Key Vault event records from AzureDiagnostics and routes notifications through existing Action Groups. The goal is to strengthen operational awareness and prevent service interruptions due to unrotated secrets.

Context

Managing secret lifecycles is critical for maintaining application security and avoiding unexpected outages caused by expired Key Vault secrets. While Azure Key Vault emits events for SecretNearExpiry and SecretExpired, no alerting mechanism was previously in place to surface these events to engineering teams. This PR introduces automated alerting based on these system events to improve visibility and ensure proactive secret rotation.

What’s Included

  • Added scheduled query alerts to capture SecretExpired and SecretNearExpiry events from Key Vault.
  • Implemented KQL logic to surface relevant secret metadata from AzureDiagnostics.
  • Integrated Action Group notifications to deliver timely alerts to the team.
  • Added configuration options for evaluation frequency and alert window.

Type of changes

  • Refactoring (non-breaking change)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would change existing functionality)
  • Bug fix (non-breaking change which fixes an issue)

Checklist

  • I am familiar with the contributing guidelines
  • I have followed the code style of the project
  • I have added tests to cover my changes
  • I have updated the documentation accordingly
  • This PR is a result of pair or mob programming

Sensitive Information Declaration

To ensure the utmost confidentiality and protect your and others privacy, we kindly ask you to NOT including PII (Personal Identifiable Information) / PID (Personal Identifiable Data) or any other sensitive data in this PR (Pull Request) and the codebase changes. We will remove any PR that do contain any sensitive information. We really appreciate your cooperation in this matter.

  • I confirm that neither PII/PID nor sensitive data are included in this PR and the codebase changes.

Copy link
Contributor

@rfk-nc rfk-nc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice :)

@nc-shahidazim nc-shahidazim force-pushed the feat/DTOSS-12086-alert-secrets-expiry branch from f395a01 to 9776aec Compare January 29, 2026 09:12
@nc-shahidazim nc-shahidazim added this pull request to the merge queue Jan 29, 2026
Merged via the queue into main with commit 7ceb658 Jan 29, 2026
13 checks passed
@nc-shahidazim nc-shahidazim deleted the feat/DTOSS-12086-alert-secrets-expiry branch January 29, 2026 15:18
josielsouzanordcloud added a commit that referenced this pull request Feb 2, 2026
#268)

- Add azurerm_relay_namespace resource
  - Add optional private endpoint configuration
  - Add diagnostic settings integration
  - Add README with usage examples and naming constraints

feat: add relay-hybrid-connection module for Azure Relay Hybrid Connections (#269)

Adds a new Terraform module to create Azure Relay Hybrid Connections and
  Authorization Rules. The module is designed to work with an existing relay
  namespace created by the relay-namespace module.

Add support for excluding paths from Entra ID authentication (#270)

Allow container apps to specify paths (e.g., /healthcheck, /sha) that
  bypass authentication via the new auth_excluded_paths variable.
  Updated tfdocs

feat: added alerts for Key Vault secrets nearing or past expiry (#271)

feat: added alerts for key kault certificates nearing or past expiry (#272)

fix: added default values for secret and certificate expiry alerts (#273)

test: add Terraform module testing and
   security scanning

   - Add Terratest tests for managed-identity module
     - Valid inputs validation
     - Invalid inputs validation (name format)
     - Tests run offline (no Azure credentials required)

   - Add tflint integration (advisory)
     - Scans all modules for best practice violations
     - Reports issues in workflow summary
     - Non-blocking (178 existing issues baselined)

   - Add tfsec with GitHub Code Scanning (advisory)
     - Security scanning for Terraform misconfigurations
     - Results appear in Security tab, not public artifacts
     - Non-blocking (7 existing issues baselined)

   - Clean up workflow
     - Remove irrelevant jobs (unit tests, coverage, lint)
     - Update CodeQL action to v4
     - Fix Go cache restore issues

feat: integrate terraform quality tools and streamline local workflow

   - Add targets for terraform-lint, terraform-security, and terraform-test to Makefiles
   - Update CI/CD pipelines to dynamically use tool versions from .tool-versions
   - Clean up redundant boilerplate make targets to reduce clutter
   - Fix managed-identity linting issues by adding missing versions.tf
   - Disable unused Docker make includes to simplify the developer interface

fix wrong line endings or no final newline

removed redundant root All plugins are already installed, added  to the linting loop and add check of exist tf file in a folder

fix traiting whitespaces

Amend managed identity testing to remove redundant provider

remove comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants