Loading...

Azure Policy for Kubernetes releases support for custom policy

Azure Policy for Kubernetes releases support for custom policy

Azure Policy and AKS teams are excited to announce the public preview of custom policy support for Azure Kubernetes Service (AKS) clusters!

 

With this feature is enabled, you can create and assign custom policy definitions and constraint templates to your AKS clusters. We are also rolling out some exciting enhancements to the AKS policy such as enhanced error state information for troubleshooting, definition schema changes to auto-generate constraints instead of requiring customer input, VS Code extension for Azure Policy update for easier authoring, and an embedded constraint template inside the policy definition to not have dependency on an external endpoint.

 

Let’s walk through the cool new features step-by-step! 

 

Embed Your Constraint Template Using TemplateInfo  

 

 

 

 

 

 

"then": {         "effect": "[parameters('effect')]",         "details": {           "templateInfo": {             "sourceType": "PublicURL",             "url": https://store.policy.core.windows.net/kubernetes/container-allowed-images/v1/template.yaml           } }

 

 

 

 

 

 

Azure Policy is introducing a new property known as templateInfo that allows users to define the source type for the constraint template. By defining templateInfo in policy definitions, users  don’t have to define constraintTemplate or constraint properties. Users still need to define apiGroups and kinds — more on that below. TemplateInfo initially supports two ways to define the constraint template source type: Base64Encoded and PublicUrlBase64Encoded format allows users to privately embed the constraint template within a policy definition.   

 

Learn more about templateInfo in our documentation 

 

Generate Custom Policy Definitions Using Azure Policy’s Visual Studio Code Extension 

 

Users are encouraged to use the Azure Policy Visual Studio (VS) Code Extension to use this new capability and create their custom Microsoft.Kubernetes.Data definitions seamlessly. With the VS Code Extension, once a user provides any Open Policy Agent  (OPA) GateKeeper v3  constraint template, they can auto-generate their policy definition JSON file!   

 

Here’s how it works: 

  1. Confirm you’ve installed the Azure Policy VS Code Extension 
  1. Open up the valid constraint template YAML file as you would to reference it in your policy definition. You need to have the YAML file open for the Command Palette to display the auto-generation  option. 
  1. From the menu bar, go to  View > Command Palette, and enter  Azure Policy for Kubernetes: Create Policy Definition from Constraint Template. 

```````````````````````````` ````````NehaKulkarni_0-1630523155184.png

 

  1. Select the appropriate  sourceType  value. This is where you can choose how you want your constraint template to be referenced in your policy definition — as a public URL or privately encoded within the policy definition using Embedded format. 

                                    NehaKulkarni_1-1630523212075.png

 

  1. Let’s select the Base64Encoded (Embedded) option to check it out Once you select it, voilà! A new file opens up with your auto-generated policy definition. Make sure to fill in the  /* EDIT HERE */ portions of the policy definition JSON with actual values: 
 

NehaKulkarni_12-1630342241003.png

 

Remember to take this completed policy definition JSON to the Azure portal or another supported SDK to create the policy definition within your Azure environment. 

 

Learn more about the Azure Policy VS Code Extension in our documentation. 

 

Defining API Groups & Kinds In Your Custom Definitions 

 

It’s important to note that with the new templateInfo property, users are expected to define apiGroups and kinds directly in their policy definitions since constraint and constraintTemplate properties are not used. 

 

Here’s a quick refresher of apiGroups and kinds: 

 

Users have seen these fields in a constraint file previously, like this:

 

NehaKulkarni_13-1630342470218.png

 

Let’s go through a quick example!

 

We would like to create a custom policy definition that specifies that AKS clusters that follow a specific naming convention and only uses allowed images. We will use a constraint template from the Azure Policy library. 

 

We defined apiGroups as [“”]  because we chose to include the core apiGroup. 

 

We decided to specify “Pod” in the kinds property to limit constraint application to the pod level. 

 

Therefore, using the VS Code Extension to generate our Azure Policy custom policy definition and inputting the right values, the ‘then’ clause of our policy definition would look like this: 

 

 

"then": { "effect": "[parameters('effect')]", "details": { "templateInfo": { "sourceType": "PublicURL", "url": https://store.policy.core.windows.net/kubernetes/container-allowed-images/v1/template.yaml }, "excludedNamespaces": "[parameters('excludedNamespaces')]", "namespaces": "[parameters('namespaces')]", "values": { imageRegex: "^.+azurecr.io\/.+$", "excludedNamespaces": "[parameters('excludedNamespaces')]" }, "apiGroups": [ "" ], "kinds": [ "Pod" ] } }

 

 

 

 

 

Let us know what you think of these additions to the Azure Policy experience in the comments below! 

Published on:

Learn more
Azure Governance and Management Blog articles
Azure Governance and Management Blog articles

Azure Governance and Management Blog articles

Share post:

Related posts

Azure Landing Zones - Policy Refresh Q1 FY25

ALZ - Policy Refresh Q1 FY25 is here! As you may be aware, the ALZ team release cadence is now on quarterly basis to help customers and partne...

1 year ago

Custom Policy- Reusable Logs Templates

Reusable Templates for Sending Logs to Log Analytics Workspace   Challenge:   When it comes to developing custom policies for sendin...

1 year ago

Enhancements to Azure Monitor Baseline Alerts for Azure Landing Zones

Introduction   Welcome to our latest blog post where we dive into a number of exciting new key updates, highlight the new portal accelera...

1 year ago

Introducing the Azure Policy Community Repo

Introducing the Azure Policy Community Repo   What is the Azure Policy Community Repo? The Azure Policy Community Repo is a collaborativ...

2 years ago

General Availability: Vaulted backups for Azure Blob Storage

We are excited to announce the general availability of vaulted backups for Azure Blob Storage. Vaulted backups can help you achieve complete p...

2 years ago

Azure Update Manager to support CIS hardened images among other images

What’s coming in by end of July 2024: Azure Update Manager will add support for 35 CIS hardened images. This is the first time that Update Man...

2 years ago

Mastering your cloud journey: Essentials to Innovating, Migrating and Modernizing, on Azure

We are living during a time of rapid growth in AI technologies and seeing cloud complexity increase as a result of those advanced workloads, w...

2 years ago

Public Preview Announcement: Azure Policy Built-in Versioning

Welcome to a new era of policy management, where policy definitions are more agile, adaptable, and accessible than ever before! We are thrille...

2 years ago

Announcing Azure Monitoring Agent support in Azure Landing Zones

Introduction   Hello and welcome to another blog post about Azure Landing Zones, the best practice framework for accelerating your cloud...

2 years ago

Announcing the General Availability of Change Actor

Change Analysis  Identifying who made a change to your Azure resources and how the change was made just became easier! With Change Analys...

2 years ago

Newsletter

Get the latest Dynamics 365 and Power Platform content in your inbox

A curated digest of community blogs, product news, videos, and podcasts — delivered without the noise.

Weekly updates Unsubscribe anytime Fresh community picks
We use your email only for the newsletter and you can unsubscribe at any time.
By subscribing, you agree to the privacy policy.