{"id":782,"date":"2021-01-27T18:19:58","date_gmt":"2021-01-27T18:19:58","guid":{"rendered":"https:\/\/labornet.nl\/?p=400"},"modified":"2021-01-27T18:19:58","modified_gmt":"2021-01-27T18:19:58","slug":"start-checking-arm-files-for-arm-ttk","status":"publish","type":"post","link":"https:\/\/www.azuregovernanceguard.com\/?p=782","title":{"rendered":"Start checking ARM files for ARM-TTK"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A little bit about the tests&#8230; These are the tests that are used to validate templates for the Azure QuickStart Repo and the Azure Marketplace. The purpose is to ensure a standard or consistent set of coding practices to make it easier to develop expertise using the template language (easy to read, write, debug).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As for the type, number and nature of the tests a test should check for something in the following categories (add more as you think of them :))<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Validating the author&#8217;s intent (unused parameters or variables)<\/li><li>Security practices for the language (outputting secrets in plain text)<\/li><li>Using the appropriate language construct for the task at hand (using environmental functions instead of hard-coding values)<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Not everything is appropriate for a universal set of tests and not every test will apply to every scenario, so the framework allows for easy expansion and individual selection of tests.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/Azure\/arm-ttk\">Link<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Build Pipeline<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before any code will be deployed the ARM fiels need to be checked for best practices. This option to check files takes a long time. And this is worth the waiting if you have ARM files present in your solution. But this is not always the case, so i created to files to speed up this process when files are not present.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"exclusions\">Exclusions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Within the script you now have the option to exclude files or controls. This is done with the help of two files:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>ARMTTKSkipFiles.csv<\/li><li><strong>ARMTTKSkipByFile.csv<\/strong><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When using these files, you will be able to skip checks specified during deployment. This can be done for regulation requirements or other reasons to make sure that the build finishes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"armttkskipfilescsv\">ARMTTKSkipFiles.csv<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This file needs to be stored in the directory the ARM files are stored in. When the files are configured here these files will not be checked by the script.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The file content needs to look like this, the following files will not be scanned that are present in the directory.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">host.json\nlocal.settings.json\nproxies.json\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"filenamearmttkskipcontrolscsv\"><strong>ARMTTKSkipByFile.csv<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The\u00a0second\u00a0file\u00a0that\u00a0can\u00a0be\u00a0used\u00a0is\u00a0to\u00a0exclude\u00a0checks\u00a0on\u00a0file\u00a0level.\u00a0To\u00a0do\u00a0this\u00a0you\u00a0need\u00a0to\u00a0add\u00a0the\u00a0file\u00a0ARMTTKSkipByFile.csv\u00a0to\u00a0the\u00a0directory\u00a0of\u00a0the\u00a0ARM\u00a0template.Example\u00a0:\u00a0<strong>**ARMTTKSkipByFile.csv**<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>The\u00a0file\u00a0content\u00a0needs\u00a0to\u00a0contain\u00a0the\u00a0name\u00a0of\u00a0the\u00a0arm\u00a0file\u00a0separated\u00a0with\u00a0an\u00a0<strong>**=**<\/strong>\u00a0following\u00a0with\u00a0the\u00a0tests\u00a0that\u00a0needs\u00a0to\u00a0be\u00a0excluded.\u00a0It\u00a0is\u00a0possible\u00a0to\u00a0use\u00a0the\u00a0wildcard\u00a0for\u00a0the\u00a0files\u00a0or\u00a0for\u00a0the\u00a0checks\u00a0but\u00a0it\u00a0is\u00a0recommended\u00a0to\u00a0specified\u00a0everything.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The file content needs to look like this:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">@{\n    '[Filename].json' = 'Location Should Not Be Hardcoded','Secure String Parameters Cannot Have Default' , 'apiVersions Should Be Recent' , 'DeploymentTemplate Must Not Contain Hardcoded Uri'\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A list of exclusion that can be configured can be found&nbsp;<a href=\"https:\/\/github.com\/Azure\/arm-ttk\/tree\/master\/unit-tests\">here<\/a>. The second way to retrieve this information is to run the build once and filter the results to see where it is failing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"code\">Code<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">- task: PowerShell@2\n  displayName: Start checking ARM files for ARM-TTK\n  inputs:\n    targetType: \"inline\"\n    pwsh: true\n    failOnStderr: false\n    script: Invoke-Build -Task TestARMTTK -ModuleName $(module.Name)\n    workingDirectory: $(System.DefaultWorkingDirectory)<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>A little bit about the tests&#8230; These are the tests that are used to validate templates for the Azure QuickStart<\/p>\n<p><a href=\"https:\/\/www.azuregovernanceguard.com\/?p=782\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\">Start checking ARM files for ARM-TTK<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-782","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"A little bit about the tests... These are the tests that are used to validate templates for the Azure QuickStart Repo and the Azure Marketplace. The purpose is to ensure a standard or consistent set of coding practices to make it easier to develop expertise using the template language (easy to read, write, debug). As\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Eelco Labordus\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.azuregovernanceguard.com\/?p=782\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Azure Governance Guard -\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Start checking ARM files for ARM-TTK - Azure Governance Guard\" \/>\n\t\t<meta property=\"og:description\" content=\"A little bit about the tests... These are the tests that are used to validate templates for the Azure QuickStart Repo and the Azure Marketplace. The purpose is to ensure a standard or consistent set of coding practices to make it easier to develop expertise using the template language (easy to read, write, debug). As\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.azuregovernanceguard.com\/?p=782\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&#038;ssl=1\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&#038;ssl=1\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-01-27T18:19:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-01-27T18:19:58+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@EelcoLabordus\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Start checking ARM files for ARM-TTK - Azure Governance Guard\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A little bit about the tests... These are the tests that are used to validate templates for the Azure QuickStart Repo and the Azure Marketplace. The purpose is to ensure a standard or consistent set of coding practices to make it easier to develop expertise using the template language (easy to read, write, debug). As\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@EelcoLabordus\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&amp;ssl=1\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#blogposting\",\"name\":\"Start checking ARM files for ARM-TTK - Azure Governance Guard\",\"headline\":\"Start checking ARM files for ARM-TTK\",\"author\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?author=1#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e156d3802a198fc2a5ec87dfdd45a0822a113d40bc8e55917bb5b76065e8322c?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Eelco Labordus\"},\"datePublished\":\"2021-01-27T18:19:58+00:00\",\"dateModified\":\"2021-01-27T18:19:58+00:00\",\"inLanguage\":\"en\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#webpage\"},\"articleSection\":\"Uncategorized\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.azuregovernanceguard.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?cat=1#listItem\",\"name\":\"Uncategorized\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?cat=1#listItem\",\"position\":2,\"name\":\"Uncategorized\",\"item\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?cat=1\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#listItem\",\"name\":\"Start checking ARM files for ARM-TTK\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#listItem\",\"position\":3,\"name\":\"Start checking ARM files for ARM-TTK\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?cat=1#listItem\",\"name\":\"Uncategorized\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/#person\",\"name\":\"Eelco Labordus\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e156d3802a198fc2a5ec87dfdd45a0822a113d40bc8e55917bb5b76065e8322c?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Eelco Labordus\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?author=1#author\",\"url\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?author=1\",\"name\":\"Eelco Labordus\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e156d3802a198fc2a5ec87dfdd45a0822a113d40bc8e55917bb5b76065e8322c?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Eelco Labordus\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#webpage\",\"url\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782\",\"name\":\"Start checking ARM files for ARM-TTK - Azure Governance Guard\",\"description\":\"A little bit about the tests... These are the tests that are used to validate templates for the Azure QuickStart Repo and the Azure Marketplace. The purpose is to ensure a standard or consistent set of coding practices to make it easier to develop expertise using the template language (easy to read, write, debug). As\",\"inLanguage\":\"en\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?p=782#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?author=1#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/?author=1#author\"},\"datePublished\":\"2021-01-27T18:19:58+00:00\",\"dateModified\":\"2021-01-27T18:19:58+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/#website\",\"url\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/\",\"name\":\"Azure Governance Guard\",\"inLanguage\":\"en\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.azuregovernanceguard.com\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Start checking ARM files for ARM-TTK - Azure Governance Guard","description":"A little bit about the tests... These are the tests that are used to validate templates for the Azure QuickStart Repo and the Azure Marketplace. The purpose is to ensure a standard or consistent set of coding practices to make it easier to develop expertise using the template language (easy to read, write, debug). As","canonical_url":"https:\/\/www.azuregovernanceguard.com\/?p=782","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#blogposting","name":"Start checking ARM files for ARM-TTK - Azure Governance Guard","headline":"Start checking ARM files for ARM-TTK","author":{"@id":"https:\/\/www.azuregovernanceguard.com\/?author=1#author"},"publisher":{"@id":"https:\/\/www.azuregovernanceguard.com\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/e156d3802a198fc2a5ec87dfdd45a0822a113d40bc8e55917bb5b76065e8322c?s=96&d=mm&r=g","width":96,"height":96,"caption":"Eelco Labordus"},"datePublished":"2021-01-27T18:19:58+00:00","dateModified":"2021-01-27T18:19:58+00:00","inLanguage":"en","mainEntityOfPage":{"@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#webpage"},"isPartOf":{"@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#webpage"},"articleSection":"Uncategorized"},{"@type":"BreadcrumbList","@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com#listItem","position":1,"name":"Home","item":"https:\/\/www.azuregovernanceguard.com","nextItem":{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com\/?cat=1#listItem","name":"Uncategorized"}},{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com\/?cat=1#listItem","position":2,"name":"Uncategorized","item":"https:\/\/www.azuregovernanceguard.com\/?cat=1","nextItem":{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#listItem","name":"Start checking ARM files for ARM-TTK"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#listItem","position":3,"name":"Start checking ARM files for ARM-TTK","previousItem":{"@type":"ListItem","@id":"https:\/\/www.azuregovernanceguard.com\/?cat=1#listItem","name":"Uncategorized"}}]},{"@type":"Person","@id":"https:\/\/www.azuregovernanceguard.com\/#person","name":"Eelco Labordus","image":{"@type":"ImageObject","@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/e156d3802a198fc2a5ec87dfdd45a0822a113d40bc8e55917bb5b76065e8322c?s=96&d=mm&r=g","width":96,"height":96,"caption":"Eelco Labordus"}},{"@type":"Person","@id":"https:\/\/www.azuregovernanceguard.com\/?author=1#author","url":"https:\/\/www.azuregovernanceguard.com\/?author=1","name":"Eelco Labordus","image":{"@type":"ImageObject","@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/e156d3802a198fc2a5ec87dfdd45a0822a113d40bc8e55917bb5b76065e8322c?s=96&d=mm&r=g","width":96,"height":96,"caption":"Eelco Labordus"}},{"@type":"WebPage","@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#webpage","url":"https:\/\/www.azuregovernanceguard.com\/?p=782","name":"Start checking ARM files for ARM-TTK - Azure Governance Guard","description":"A little bit about the tests... These are the tests that are used to validate templates for the Azure QuickStart Repo and the Azure Marketplace. The purpose is to ensure a standard or consistent set of coding practices to make it easier to develop expertise using the template language (easy to read, write, debug). As","inLanguage":"en","isPartOf":{"@id":"https:\/\/www.azuregovernanceguard.com\/#website"},"breadcrumb":{"@id":"https:\/\/www.azuregovernanceguard.com\/?p=782#breadcrumblist"},"author":{"@id":"https:\/\/www.azuregovernanceguard.com\/?author=1#author"},"creator":{"@id":"https:\/\/www.azuregovernanceguard.com\/?author=1#author"},"datePublished":"2021-01-27T18:19:58+00:00","dateModified":"2021-01-27T18:19:58+00:00"},{"@type":"WebSite","@id":"https:\/\/www.azuregovernanceguard.com\/#website","url":"https:\/\/www.azuregovernanceguard.com\/","name":"Azure Governance Guard","inLanguage":"en","publisher":{"@id":"https:\/\/www.azuregovernanceguard.com\/#person"}}]},"og:locale":"en_US","og:site_name":"Azure Governance Guard -","og:type":"article","og:title":"Start checking ARM files for ARM-TTK - Azure Governance Guard","og:description":"A little bit about the tests... These are the tests that are used to validate templates for the Azure QuickStart Repo and the Azure Marketplace. The purpose is to ensure a standard or consistent set of coding practices to make it easier to develop expertise using the template language (easy to read, write, debug). As","og:url":"https:\/\/www.azuregovernanceguard.com\/?p=782","og:image":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&#038;ssl=1","og:image:secure_url":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&#038;ssl=1","article:published_time":"2021-01-27T18:19:58+00:00","article:modified_time":"2021-01-27T18:19:58+00:00","twitter:card":"summary_large_image","twitter:site":"@EelcoLabordus","twitter:title":"Start checking ARM files for ARM-TTK - Azure Governance Guard","twitter:description":"A little bit about the tests... These are the tests that are used to validate templates for the Azure QuickStart Repo and the Azure Marketplace. The purpose is to ensure a standard or consistent set of coding practices to make it easier to develop expertise using the template language (easy to read, write, debug). As","twitter:creator":"@EelcoLabordus","twitter:image":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/logo-white-1.png?fit=10001000&ssl=1"},"aioseo_meta_data":{"post_id":"782","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2025-09-15 13:49:29","updated":"2025-09-15 13:49:29","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.azuregovernanceguard.com\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.azuregovernanceguard.com\/?cat=1\" title=\"Uncategorized\">Uncategorized<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tStart checking ARM files for ARM-TTK\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.azuregovernanceguard.com"},{"label":"Uncategorized","link":"https:\/\/www.azuregovernanceguard.com\/?cat=1"},{"label":"Start checking ARM files for ARM-TTK","link":"https:\/\/www.azuregovernanceguard.com\/?p=782"}],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":193,"url":"https:\/\/www.azuregovernanceguard.com\/?p=193","url_meta":{"origin":782,"position":0},"title":"Safeguarding Cloud Resources with Azure Policy&#8217;s DenyAction Effect","author":"Eelco Labordus","date":"July 25, 2023","format":false,"excerpt":"In this blog article, we explore the significance of safeguarding cloud resources from accidental or malicious deletion in Azure environments. To ensure the integrity and security of your cloud infrastructure, Azure Policy's DenyAction Effect provides a powerful feature. We discuss the importance of protecting resources due to accidental deletions, which\u2026","rel":"","context":"In &quot;Azure Policy&quot;","block_context":{"text":"Azure Policy","link":"https:\/\/www.azuregovernanceguard.com\/?cat=14"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/07\/Untitled.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/07\/Untitled.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/07\/Untitled.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/07\/Untitled.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":112,"url":"https:\/\/www.azuregovernanceguard.com\/?p=112","url_meta":{"origin":782,"position":1},"title":"Maximizing Azure Policy: Leveraging Audit and Deny Modes for Development and Production Environments","author":"Eelco Labordus","date":"June 11, 2023","format":false,"excerpt":"Azure Policy is a powerful governance service offered by Microsoft Azure that helps organizations enforce compliance, security, and best practices across their cloud infrastructure. It provides a range of policy definitions that can be used to monitor and control resources, ensuring they adhere to specific rules and guidelines. In this\u2026","rel":"","context":"In &quot;Azure Policy&quot;","block_context":{"text":"Azure Policy","link":"https:\/\/www.azuregovernanceguard.com\/?cat=14"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/5bbefd999475d-b42b3cecb8c79693f9e3e09763126c06.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/5bbefd999475d-b42b3cecb8c79693f9e3e09763126c06.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/5bbefd999475d-b42b3cecb8c79693f9e3e09763126c06.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/5bbefd999475d-b42b3cecb8c79693f9e3e09763126c06.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":363,"url":"https:\/\/www.azuregovernanceguard.com\/?p=363","url_meta":{"origin":782,"position":2},"title":"Microsoft\u2019s Framework Trio: Cloud Adoption Framework (CAF), Azure Well-Architected Framework (WAF) and Security Adoption Framework (SAF)","author":"Eelco Labordus","date":"December 17, 2023","format":false,"excerpt":"Intro\u00a0 I will be taking a closer look at Microsoft's Cloud Adoption Framework for Azure (CAF), the Azure Well-Architected Framework (WAF), and the Security Adoption Framework (SAF). These frameworks are like a trusty roadmap for a smooth, secure, and optimized cloud journey.\u00a0 Microsoft Cloud Adoption Framework for Azure (CAF)\u00a0 Imagine\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/12\/caf-overview-graphic.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/12\/caf-overview-graphic.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/12\/caf-overview-graphic.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/12\/caf-overview-graphic.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":136,"url":"https:\/\/www.azuregovernanceguard.com\/?p=136","url_meta":{"origin":782,"position":3},"title":"Mastering Successful Deployments: Validating with What-If Deployment and Azure Policies","author":"Eelco Labordus","date":"June 30, 2023","format":false,"excerpt":"Explore the benefits of What-If deployment with Azure Policies for secure and compliant cloud operations. Preview changes, ensure policy alignment, and simplify cloud management for enhanced governance.","rel":"","context":"In &quot;Azure Policy&quot;","block_context":{"text":"Azure Policy","link":"https:\/\/www.azuregovernanceguard.com\/?cat=14"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-30-095316.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-30-095316.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-30-095316.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-30-095316.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":780,"url":"https:\/\/www.azuregovernanceguard.com\/?p=780","url_meta":{"origin":782,"position":4},"title":"Microsoft Azure Stack Hub","author":"Eelco Labordus","date":"January 4, 2021","format":false,"excerpt":"Azure Stack is a hybrid cloud computing software solution developed by Microsoft based on the company\u2019s Azure cloud platform. Azure Stack is designed to help organizations deliver Azure services from their own data center. Azure Stack combines infrastructure-as-a-service (IaaS) and platform-as-a-service (PaaS) services in a software stack that spans on-premises\u2026","rel":"","context":"In &quot;Microsoft Azure Stack Hub&quot;","block_context":{"text":"Microsoft Azure Stack Hub","link":"https:\/\/www.azuregovernanceguard.com\/?cat=118"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":362,"url":"https:\/\/www.azuregovernanceguard.com\/?p=362","url_meta":{"origin":782,"position":5},"title":"The journey that is called Microsoft Azure Stack","author":"Eelco Labordus","date":"January 4, 2021","format":false,"excerpt":"A couple of years ago, I was present at TechEd Europe 2014 for the launch of Windows Azure Pack. This version was built to give the same experience as the first version of Azure (now known as the classic portal). A big challenge was getting started with the Windows Azure\u2026","rel":"","context":"In &quot;Microsoft Azure Stack Hub&quot;","block_context":{"text":"Microsoft Azure Stack Hub","link":"https:\/\/www.azuregovernanceguard.com\/?cat=118"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2021\/01\/Blog-eelco-labordus-azure-2.width-1118.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2021\/01\/Blog-eelco-labordus-azure-2.width-1118.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.azuregovernanceguard.com\/wp-content\/uploads\/2021\/01\/Blog-eelco-labordus-azure-2.width-1118.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=\/wp\/v2\/posts\/782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=782"}],"version-history":[{"count":0,"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=\/wp\/v2\/posts\/782\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.azuregovernanceguard.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}