Skip to main content

Security Review Process

[!NOTE] This guide expands on the Security Review Process section of the main contributing guide.

Security-sensitive contributions require additional review to ensure Azure security best practices.

Security Checklist

Contributions touching these areas require security review:

RBAC and Permissions

  • Follows principle of least privilege
  • Role assignments scoped to specific resources (not subscription-wide)
  • Custom roles justified and documented
  • No Owner role unless explicitly required

Private Endpoints and Networking

  • Private endpoints enabled for production network mode
  • Network security group rules properly scoped
  • Service endpoints used appropriately
  • Public access disabled where not required

Credentials and Secrets

  • Uses managed identities or workload identity (no service principals/passwords)
  • Secrets stored in Key Vault, never in code or terraform.tfvars
  • No hardcoded connection strings or API keys
  • Proper secret rotation mechanisms

Network Policies

  • Kubernetes network policies defined for workload isolation
  • Pod security standards enforced (baseline or restricted)
  • Ingress/egress rules properly configured
  • No overly permissive firewall rules

Workload Identity

  • Federated credentials properly configured
  • Service account annotations correct
  • Token audience restrictions in place
  • No long-lived credentials used

Security Scanning

  • Container images scanned with Trivy or Defender
  • Terraform code scanned with Checkov or tfsec
  • No critical or high vulnerabilities introduced
  • Dependency versions current and patched

How to Report Security Issues

[!WARNING] DO NOT report security vulnerabilities through public GitHub issues.

Report security vulnerabilities to the Microsoft Security Response Center (MSRC). See SECURITY.md for complete instructions.

For non-security bugs that have security implications (e.g., excessive permissions), use the standard bug reporting process but add the security label.

Dependency Updates

Security patch PRs are encouraged and receive expedited review:

Security Update Process

  1. Create PR with dependency version bump
  2. Document CVE or security advisory addressed
  3. Provide validation evidence (vulnerability scan before/after)
  4. Maintainers fast-track review and merge

Example PR Description

## Security Update: Upgrade Terraform AzureRM Provider

**CVE:** CVE-2024-XXXXX
**Severity:** High
**Advisory:** https://github.com/advisories/GHSA-xxxx-xxxx-xxxx

**Changes:**
- Upgraded `azurerm` provider from 3.75.0 to 3.76.0
- Addresses authentication bypass vulnerability in private endpoint configurations

**Validation:**
- terraform fmt/validate: ✅ Passed
- terraform plan: ✅ No unexpected changes
- Checkov scan: ✅ No new violations

**References:**
- [Provider Changelog](https://github.com/hashicorp/terraform-provider-azurerm/blob/main/CHANGELOG.md)