📖 Scenario: You are working as a cloud administrator for a company that wants to enforce rules on their Azure resources. You will create a policy assignment to ensure all storage accounts have secure transfer enabled. Then, you will check the compliance state of this policy assignment.
🎯 Goal: Build an Azure policy assignment for secure transfer on storage accounts and retrieve its compliance state.
📋 What You'll Learn
Create a policy assignment named secureTransferAssignment for the built-in policy definition Storage accounts should enable secure transfer.
Assign the policy to the resource group myResourceGroup.
Retrieve the compliance state of the policy assignment.
💡 Why This Matters
🌍 Real World
Companies use Azure Policy assignments to enforce rules and standards on their cloud resources automatically.
💼 Career
Cloud administrators and engineers must create and manage policy assignments to ensure compliance and governance in Azure environments.
Progress0 / 4 steps
1
Create the policy assignment JSON structure
Create a JSON object called policyAssignment with the following keys and values: name set to secureTransferAssignment, scope set to /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup, and policyDefinitionId set to /providers/Microsoft.Authorization/policyDefinitions/StorageAccountsShouldEnableSecureTransfer.
Azure
Hint
Use a Python dictionary to create the JSON structure with exact keys and values.
2
Add a location property to the policy assignment
Add a key location with the value eastus to the existing policyAssignment dictionary.
Azure
Hint
Add the location key inside the policyAssignment dictionary with the exact value eastus.
3
Create a compliance state retrieval structure
Create a dictionary called complianceQuery with the key policyAssignmentName set to secureTransferAssignment and the key resourceGroup set to myResourceGroup.
Azure
Hint
Use a dictionary with the exact keys and values to represent the compliance query.
4
Add a filter for compliance state 'NonCompliant'
Add a key filter with the value complianceState eq 'NonCompliant' to the complianceQuery dictionary.
Azure
Hint
Add the filter key with the exact string value to the complianceQuery dictionary.
Practice
(1/5)
1. What is the main purpose of a policy assignment in Azure?
easy
A. To monitor network traffic in real-time
B. To create virtual machines automatically
C. To apply rules to cloud resources to control their behavior
D. To backup data to external storage
Solution
Step 1: Understand policy assignment role and compare options
Policy assignments are used to enforce rules or standards on Azure resources. Only To apply rules to cloud resources to control their behavior describes applying rules to control resource behavior, which matches policy assignments.
Final Answer:
To apply rules to cloud resources to control their behavior -> Option C
Quick Check:
Policy assignment = apply rules [OK]
Hint: Policies control resources by applying rules [OK]
Common Mistakes:
Confusing policy assignments with resource creation
Thinking policies monitor traffic or backup data
Mixing policy assignments with alerts or logs
2. Which of the following is the correct way to assign a policy to a resource group using Azure CLI?
easy
A. az policy assignment create --name MyPolicy --scope /subscriptions/{subId}/resourceGroups/{rgName} --policy {policyDefinitionId}
B. az policy create --name MyPolicy --resource-group {rgName} --policy {policyDefinitionId}
C. az group policy assign --name MyPolicy --resource-group {rgName} --definition {policyDefinitionId}
D. az policy assign --name MyPolicy --scope {rgName} --definition {policyDefinitionId}
Solution
Step 1: Recall Azure CLI syntax for policy assignment and validate options
The correct command uses 'az policy assignment create' with --name, --scope, and --policy parameters. az policy assignment create --name MyPolicy --scope /subscriptions/{subId}/resourceGroups/{rgName} --policy {policyDefinitionId} matches the correct syntax. Others use incorrect commands or parameters.
Final Answer:
az policy assignment create --name MyPolicy --scope /subscriptions/{subId}/resourceGroups/{rgName} --policy {policyDefinitionId} -> Option A
Hint: Use 'az policy assignment create' with --scope for resource group [OK]
Common Mistakes:
Using 'az policy create' instead of 'az policy assignment create'
Confusing resource group with scope format
Using wrong parameter names like --definition
3. Given this Azure Policy assignment compliance result: {"complianceState": "NonCompliant", "resourceId": "/subscriptions/123/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1"} What does this indicate?
medium
A. The compliance state is unknown for vm1
B. The virtual machine vm1 follows the assigned policy rules
C. The policy assignment failed to apply to vm1
D. The virtual machine vm1 does not follow the assigned policy rules
Solution
Step 1: Interpret complianceState value and match to meaning
The value 'NonCompliant' means the resource does not meet the policy requirements. Since vm1 is NonCompliant, it does not follow the assigned policy rules.
Final Answer:
The virtual machine vm1 does not follow the assigned policy rules -> Option D
Quick Check:
NonCompliant means policy not followed [OK]
Hint: NonCompliant means resource breaks policy rules [OK]
Common Mistakes:
Assuming NonCompliant means policy applied successfully
Confusing NonCompliant with Unknown or Compliant
Thinking complianceState shows assignment failure
4. You assigned a policy to a subscription but the compliance report shows no data. What is the most likely cause?
medium
A. The resources are not evaluated yet or policy evaluation is delayed
B. The policy definition is missing required parameters
C. The policy assignment scope is incorrect or too broad
D. The policy assignment was created with the wrong Azure CLI command
Solution
Step 1: Understand policy evaluation timing and eliminate other causes
Policy compliance data can take time to appear after assignment due to evaluation delays. Incorrect scope or missing parameters usually cause errors, not empty compliance. Wrong CLI command would fail assignment.
Final Answer:
The resources are not evaluated yet or policy evaluation is delayed -> Option A
Quick Check:
Compliance delay causes no data [OK]
Hint: Wait for policy evaluation to update compliance data [OK]
Common Mistakes:
Assuming wrong CLI command always causes no data
Thinking missing parameters prevent compliance data
Ignoring evaluation delay after assignment
5. You want to enforce a policy that requires all storage accounts to have secure transfer enabled. You assign this policy at the subscription level with a parameter to exclude a specific resource group. What will happen to storage accounts in that excluded resource group?
hard
A. They will be evaluated but allowed to be non-compliant
B. They will not be evaluated or enforced by the policy
C. They will be forced to enable secure transfer regardless of exclusion
D. The policy assignment will fail due to conflicting parameters
Solution
Step 1: Understand policy exclusion parameter effect and confirm behavior on excluded resources
Excluding a resource group means resources there are not evaluated or enforced by the policy. Excluded storage accounts are ignored by the policy, so no enforcement or compliance checks occur.
Final Answer:
They will not be evaluated or enforced by the policy -> Option B
Quick Check:
Exclusion skips evaluation and enforcement [OK]
Hint: Exclusions skip policy evaluation and enforcement [OK]
Common Mistakes:
Thinking excluded resources are still checked but allowed