You are designing a governance strategy for an Azure environment that includes multiple subscriptions. The security team requires that all storage accounts must have HTTPS traffic only. Any non-compliant storage account must be automatically remediated. What is the most efficient solution?
Trap 1: Create an Azure Blueprint that includes a policy initiative
An Azure Blueprint packages templates, policies, and roles for orchestrated deployment, but assigning a blueprint does not retroactively fix resources that already exist. Its policy initiative would only be evaluated on new deployments or when a resource is updated, so non-compliant storage accounts created before the blueprint assignment remain unchanged. Blueprints lack the remediation engine that Azure Policy's DeployIfNotExists effect provides, making it ineffective for this governance scenario.
Trap 2: Assign a custom RBAC role that denies creation of storage accounts…
Azure RBAC is an identity-based authorization system that determines who can perform actions like creating or deleting resources, not the configuration state of those resources. A custom role that denies creation of storage accounts without HTTPS would block future non-compliant creation but cannot inspect or modify existing storage accounts to enforce HTTPS-only traffic. Because the goal is to remediate already-deployed resources, RBAC is a prevention mechanism, not a remediation mechanism.
Trap 3: Configure Azure Monitor alerts to notify the security team
Azure Monitor alerts are designed to detect and notify, not to act; they can signal the security team that a storage account is non-compliant, but they cannot change the account's configuration. Even if an alert triggers a runbook or an Azure Function, that would be a separate, custom automation workflow, not an intrinsic governance capability. For an automated governance strategy, relying solely on alerts leaves a gap where non-compliant resources remain until a human or external process responds.
- A
Create an Azure Blueprint that includes a policy initiative
Why wrong: An Azure Blueprint packages templates, policies, and roles for orchestrated deployment, but assigning a blueprint does not retroactively fix resources that already exist. Its policy initiative would only be evaluated on new deployments or when a resource is updated, so non-compliant storage accounts created before the blueprint assignment remain unchanged. Blueprints lack the remediation engine that Azure Policy's DeployIfNotExists effect provides, making it ineffective for this governance scenario.
- B
Assign a custom RBAC role that denies creation of storage accounts without HTTPS
Why wrong: Azure RBAC is an identity-based authorization system that determines who can perform actions like creating or deleting resources, not the configuration state of those resources. A custom role that denies creation of storage accounts without HTTPS would block future non-compliant creation but cannot inspect or modify existing storage accounts to enforce HTTPS-only traffic. Because the goal is to remediate already-deployed resources, RBAC is a prevention mechanism, not a remediation mechanism.
- C
Use Azure Policy with a DeployIfNotExists effect to enable HTTPS-only traffic
Azure Policy with the DeployIfNotExists effect evaluates every existing resource against the definition and automatically triggers a remediation task to deploy the required configuration — in this case, setting the 'supportsHttpsTrafficOnly' property to true. This effect uses a managed identity to apply the change, and it can be run on-demand via a remediation task or on a schedule, ensuring all non-compliant storage accounts are brought into compliance without manual intervention. This is the only option that provides automated, continuous enforcement and correction for resources already in the subscription.
- D
Configure Azure Monitor alerts to notify the security team
Why wrong: Azure Monitor alerts are designed to detect and notify, not to act; they can signal the security team that a storage account is non-compliant, but they cannot change the account's configuration. Even if an alert triggers a runbook or an Azure Function, that would be a separate, custom automation workflow, not an intrinsic governance capability. For an automated governance strategy, relying solely on alerts leaves a gap where non-compliant resources remain until a human or external process responds.