* [Blog](https://www.paloaltonetworks.com/blog) * [Cloud Security](https://www.paloaltonetworks.com/blog/cloud-security/) * [DevSecOps](https://www.paloaltonetworks.com/blog/cloud-security/category/devsecops/) * Crawl, Walk, Run: Operati... # Crawl, Walk, Run: Operationalizing Your IaC Security Program [](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.paloaltonetworks.com%2Fblog%2Fcloud-security%2Fhow-to-implement-an-infrastructure-as-code-security-program%2F) [](https://twitter.com/share?text=Crawl%2C+Walk%2C+Run%3A+Operationalizing+Your+IaC+Security+Program&url=https%3A%2F%2Fwww.paloaltonetworks.com%2Fblog%2Fcloud-security%2Fhow-to-implement-an-infrastructure-as-code-security-program%2F) [](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.paloaltonetworks.com%2Fblog%2Fcloud-security%2Fhow-to-implement-an-infrastructure-as-code-security-program%2F&title=Crawl%2C+Walk%2C+Run%3A+Operationalizing+Your+IaC+Security+Program&summary=&source=) [](https://www.paloaltonetworks.com//www.reddit.com/submit?url=https://www.paloaltonetworks.com/blog/cloud-security/how-to-implement-an-infrastructure-as-code-security-program/&ts=markdown) \[\](mailto:?subject=Crawl, Walk, Run: Operationalizing Your IaC Security Program) Link copied By [Mike Urbanski](https://www.paloaltonetworks.com/blog/author/mike-urbanski/?ts=markdown "Posts by Mike Urbanski") Jan 10, 2023 10 minutes [DevSecOps](https://www.paloaltonetworks.com/blog/cloud-security/category/devsecops/?ts=markdown) [Secure the Cloud](https://www.paloaltonetworks.com/blog/category/secure-the-cloud/?ts=markdown) [CI/CD](https://www.paloaltonetworks.com/blog/tag/ci-cd-2/?ts=markdown) [IaC](https://www.paloaltonetworks.com/blog/tag/iac/?ts=markdown) [VCS](https://www.paloaltonetworks.com/blog/tag/vcs/?ts=markdown) You've decided to shift your cloud security left. You researched vendors, evaluated solutions, did a proof of concept and now you're off the IaC security races. You know what your efficient, secure-by-default future holds, but how do you get there? There are so many ways you can [roll out an IaC security program](https://www.paloaltonetworks.com/blog/prisma-cloud/how-to-adopt-infrastructure-as-code-with-a-secure-by-default-strategy/?ts=markdown) to best suit your organization's needs, with tons of decisions to make along the way. We know how difficult it can be to navigate that process and how to figure out where to start. In this post, we'll give you a general plan for choosing your IaC security path, rolling out your program and iterating along the way. ## Before You Start: Pick Your Path and Define Your Goals Before you can roll out your security program, you need to pick the best path based on your team's existing processes and how much effort you're ready to invest in setting up your program. From our experience, teams use one of three paths: * **Path 1:** Relying solely on surfacing automated feedback to developers on commits and pull/merge requests via VCS integrations. * **Path 2:** Encouraging individual developers to leverage local CLI scans or IDE plugins on top of VCS feedback. * **Path 3:** Combining local and VCS feedback with additional scanning as part of build pipelines via CI/CD integrations. These paths have different benefits and vary in setup complexity. **Path 1** yields the majority of IaC scanning benefits for the least setup effort, like getting easily actionable, collaborative and automated feedback to developers. With [Prisma Cloud's Code Security](https://www.paloaltonetworks.com/prisma/cloud/cloud-code-security?ts=markdown), you can set up VCS integrations to provide periodic scanning of repositories and real-time developer feedback within the pull/merge request workflow. Combined with customized enforcement, that feedback allows you to fine-tune how security policies are enforced. We'll cover how to do that in the next section. **Path 2** builds on top of Path 1 by shifting IaC security feedback further left. By empowering developers to address misconfigurations earlier, before code is even committed, feedback cycles are much faster and cheaper. It also helps with general security awareness for developers that may be less familiar with [cloud security best practices](https://www.paloaltonetworks.com/blog/prisma-cloud/scaling-in-the-cloud/?ts=markdown). This path does rely on individuals to configure scanning in their own local environments, and it may be difficult to enforce total adoption. However, because these local scans can also include custom configurations from Prisma Cloud's Code Security, users will quickly see that scanning locally before they push code saves them time later on. **Path 3** enables the most complete adoption of IaC security. While this path involves customization for each pipeline and takes the most implementation effort, you'll be able to take full advantage of IaC security features and automation capabilities. Because CI/CD pipelines are the heartbeats of software development and deployment, embedding centralized and universal guardrails is the best way to get final security assurance before cloud resources are provisioned. This is especially important for frameworks like Terraform, wherein code resources become more representative of their runtime states the further along the pipeline they get. The CI/CD pipeline may be the first time security tools have access to dynamically imported values or Terraform plan files to identify the actual misconfigurations that would be created with an *apply* command. ![](https://www.paloaltonetworks.com/blog/wp-content/uploads/2022/12/word-image-45.png) Each path gives you a different level of functionality, but some require more setup effort than others. Once you've decided which path you'll take to implement your IaC program, keeping in mind you can always add on more options later, you'll want to set aside some time to identify your key performance indicators (KPIs) and goals to improve existing benchmarks. To do this, you should first assess your current runtime issues. Your ultimate goal is to reduce the number of runtime issues your team faces, but it's also important to measure leading indicators of runtime issues, like the posture of your code. To establish your baseline code posture, break down your violations by severity level and identify the average number of new issues you see each month. Once you've assessed your baseline, you can set goals to work towards, such as reducing new monthly violations by a specific percentage, or just track your progress over time. ## How to Start Implementing Your IaC Security Program Once you have an end goal in mind for your IaC security program, you're ready to start implementation! To help make your program rollout as frictionless as possible, we recommend taking a crawl, walk, run approach. ## Crawl: Onboard and Set Baseline We recommend starting with your most innovative, early-adopting team, as they are typically the most open to leading new initiatives and will likely continue to serve as security champions in your organization. To begin with, you should onboard no more than fifty repos belonging to this team so that they can get comfortable with the new security program, start to experiment with more customizable features and tailor the program to their workflows. You'll want to follow the instructions below depending on the path you chose earlier. * Automatically onboard your VCS * Run scans locally using the CLI or integrating with your IDE * Integrate your CI/CD pipeline Before you actually enable any of those integrations, it's important to set expectations with your team about how you want to enforce IaC security findings. Because hundreds of policies are being scanned and each organization has its own standards, we recommend starting with just non-blocking feedback via soft-fail checks. Keep in mind that all violations in IaC and secrets are set to hard-fail by default. In Prisma Cloud's Code Security module, you can do this through configuration files or in the UI with our enforcement rules. ![](https://www.paloaltonetworks.com/blog/wp-content/uploads/2022/12/word-image-46.png) Prisma Cloud's Code Security module enables you to customize how you enforce IaC security findings. When you enable soft-fail checks, regardless of your path, you are merely surfacing informational feedback. When time permits, developers can act on that feedback or move feedback into a backlog to work through over time. Flagging misconfigurations as informational also allows you to suppress policies that aren't applicable to specific teams. As you think about progressing to the next phase of the rollout, you'll want to measure your KPIs and your new baseline number of violations to get the complete picture of how your program is performing so far. If you're starting to see the rate of *new* misconfigurations and vulnerabilities decrease, that's a great indicator that your team is learning some cloud security basics, misconfigurations are being addressed earlier and your policy library is fine-tuned to your needs. So, if you're seeing improvements in these areas, congrats! You're almost ready to start expanding your program rollout further. But first, you should reaffirm expectations with your team members, adjust KPIs if needed and ensure that you're gathering early-adopter feedback and incorporating it into your approach as you expand the rollout across the rest of your organization. ## Walk: Get Started with IaC Security Features to Customize and Automate Your Program The next phase of your IaC security program is two-fold: expand coverage across repos and teams and start leveraging more opinionated and mature IaC security features. By incorporating what you learned from initial repo scans and feedback from security champions, you'll be ready to start onboarding more repos and teams. This is also a great time to start adding custom policies to your IaC program. While built-in policies monitor and enforce a wide range of cloud configuration specifications, custom policies add a layer of customization that can be helpful if you need specialized configurations that are unique to your organization. And as early-adopting teams get comfortable with the rollout, you can also start adding other integrations, such as an IDE or CI/CD pipelines. For Prisma Cloud customers, this is also the point where more advanced features like Smart Fixes may become more valuable. Smart Fixes augment out-of-the-box fixes by leveraging your team's past actions when addressing misconfigurations. As you onboard more teams and start scanning more of your IaC, these Smart Fixes will get better at recommending misconfiguration remediations with specifications that are tailored to your organization. The more you can do to make it easier to fix identified issues, the better. Again, the goal here is to see the number of *new* misconfigurations flagged go down. At this point, you should start comparing your KPIs---especially remediation rates---across teams to evaluate your program. How are you performing against the KPIs you set earlier? Re-evaluate your performance and address any areas that may need improvement as you start to expand the program to other teams. This is a great time to encourage [DevSecOps](https://www.paloaltonetworks.com/blog/prisma-cloud/a-primer-on-secure-devops-learn-the-benefits-of-these-3-devsecops-use-cases/?ts=markdown) evangelists to educate and inspire everyone else in the organization to become security champions. If you're able to bring security champions together, you can also foster cross-team knowledge sharing, which should help identify any areas that still need improvement. ## Run: Leverage More Advanced Security Features and Iterate on Your Rollout Strategy Now that you've expanded across repos and teams, you can introduce more stringent guardrails, like hard-fails. We recommend setting custom enforcement rules for each code category---IaC, secrets, container images and open source packages---by severity. Generally, it's a best practice to start by hard-failing more critical misconfigurations and vulnerabilities and then expanding from there. Once you've introduced these enforceable guardrails, you can scale up that process and further customize how and where you are surfacing feedback. To maintain your momentum, you should aim to onboard as many teams and repos as you can while taking a crawl, walk, run approach for each newly onboarded team. It should start to feel easier each time you repeat the process. Since many teams are now fully onboarded and starting to take advantage of the more advanced security functionality and automation capabilities with your IaC security program, this is also the phase wherein you should start addressing the existing backlog of issues. Each team will benefit from past learnings and customizations and will, undoubtedly, contribute new learnings. Ultimately, you will be able to start improving the remediation rate and mean time to remediate (MTTR). This stage of the rollout also presents another opportunity to measure your performance, reflect on the rollout process and build a continuous assessment and improvement process to help you reduce friction as you expand and maintain usage across the rest of your organization. Up until now, you've customized policies and suppressions across teams, provided automated feedback with PR comments or CI/CD jobs and started measuring remediation rates. Now, you can gather your performance metrics and take the feedback you've gathered from that experience to address common obstacles and improve your rollout strategy going forward. ![](https://www.paloaltonetworks.com/blog/wp-content/uploads/2022/12/word-image-47.png) Staggering your program rollout across different teams in your organization will enable teams to learn from each other and will help you iterate on your program rollout strategy. ### ··· Rolling out your code security program can be a daunting experience, but it doesn't have to be. If you adopt a diligent approach focused on continuous measurement and improvement, you'll reduce friction in your program operationalization and will be able to take advantage of the benefits of an automated and customized approach to [IaC security](https://www.paloaltonetworks.com/prisma/cloud/infrastructure-as-code-security?ts=markdown). Interested in diving deeper into operationalizing your IaC security with a step-by-step guide? Download the [Complete Guide to Operationalizing IaC Security](https://start.paloaltonetworks.com/iac-security-operationalization-guide.html)! *** ** * ** *** ## Related Blogs ### [DevSecOps](https://www.paloaltonetworks.com/blog/cloud-security/category/devsecops/?ts=markdown), [Secure the Cloud](https://www.paloaltonetworks.com/blog/category/secure-the-cloud/?ts=markdown) [#### How To Prevent the 5 Most Common Software Supply Chain Weaknesses](https://www.paloaltonetworks.com/blog/cloud-security/common-software-supply-chain-weaknesses/) ### [DevSecOps](https://www.paloaltonetworks.com/blog/cloud-security/category/devsecops/?ts=markdown), [Secure the Cloud](https://www.paloaltonetworks.com/blog/category/secure-the-cloud/?ts=markdown) [#### Secure Vulnerable Images Found in IaC Templates With Prisma Cloud](https://www.paloaltonetworks.com/blog/cloud-security/secure-vulnerable-images-in-iac-templates-with-prisma-cloud/) ### [Cloud Computing](https://www.paloaltonetworks.com/blog/category/cloud-computing-2/?ts=markdown), [DevSecOps](https://www.paloaltonetworks.com/blog/cloud-security/category/devsecops/?ts=markdown) [#### Addressing Security Throughout the Infrastructure DevOps Lifecycle](https://www.paloaltonetworks.com/blog/cloud-security/addressing-security-throughout-infra-devops-lifecycle/) ### [Cloud Workload Protection Platform](https://www.paloaltonetworks.com/blog/cloud-security/category/cloud-workload-protection-platform/?ts=markdown), [DevSecOps](https://www.paloaltonetworks.com/blog/cloud-security/category/devsecops/?ts=markdown), [Secure the Cloud](https://www.paloaltonetworks.com/blog/category/secure-the-cloud/?ts=markdown), [Secure the Enterprise](https://www.paloaltonetworks.com/blog/category/secure-the-enterprise/?ts=markdown) [#### 3 Simple Techniques to Add Security Into the CI/CD Pipeline](https://www.paloaltonetworks.com/blog/2020/10/cloud-add-security-cicd-pipeline/) ### [DevSecOps](https://www.paloaltonetworks.com/blog/cloud-security/category/devsecops/?ts=markdown), [Secure the Cloud](https://www.paloaltonetworks.com/blog/category/secure-the-cloud/?ts=markdown) [#### Top 6 Considerations for Integrating Cloud Security and GitOps](https://www.paloaltonetworks.com/blog/cloud-security/6-considerations-for-integrating-cloud-security-and-gitops/) ### [DevSecOps](https://www.paloaltonetworks.com/blog/cloud-security/category/devsecops/?ts=markdown), [Secure the Cloud](https://www.paloaltonetworks.com/blog/category/secure-the-cloud/?ts=markdown) [#### How To Prevent the IaC Misconfiguration Snowball Effect](https://www.paloaltonetworks.com/blog/cloud-security/iac-misconfiguration-snowball-effect/) ### Subscribe to Cloud Security Blogs! Sign up to receive must-read articles, Playbooks of the Week, new feature announcements, and more. ![spinner](https://www.paloaltonetworks.com/blog/wp-content/themes/panwblog2023/dist/images/ajax-loader.gif) Sign up Please enter a valid email. By submitting this form, you agree to our [Terms of Use](https://www.paloaltonetworks.com/legal-notices/terms-of-use?ts=markdown) and acknowledge our [Privacy Statement](https://www.paloaltonetworks.com/legal-notices/privacy?ts=markdown). Please look for a confirmation email from us. If you don't receive it in the next 10 minutes, please check your spam folder. This site is protected by reCAPTCHA and the Google [Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms) apply. {#footer} {#footer} ## Products and Services * [AI-Powered Network Security Platform](https://www.paloaltonetworks.com/network-security?ts=markdown) * [Secure AI by Design](https://www.paloaltonetworks.com/precision-ai-security/secure-ai-by-design?ts=markdown) * [Prisma AIRS](https://www.paloaltonetworks.com/prisma/prisma-ai-runtime-security?ts=markdown) * [AI Access Security](https://www.paloaltonetworks.com/sase/ai-access-security?ts=markdown) * [Cloud Delivered Security Services](https://www.paloaltonetworks.com/network-security/security-subscriptions?ts=markdown) * [Advanced Threat Prevention](https://www.paloaltonetworks.com/network-security/advanced-threat-prevention?ts=markdown) * [Advanced URL Filtering](https://www.paloaltonetworks.com/network-security/advanced-url-filtering?ts=markdown) * [Advanced WildFire](https://www.paloaltonetworks.com/network-security/advanced-wildfire?ts=markdown) * [Advanced DNS Security](https://www.paloaltonetworks.com/network-security/advanced-dns-security?ts=markdown) * [Enterprise Data Loss Prevention](https://www.paloaltonetworks.com/sase/enterprise-data-loss-prevention?ts=markdown) * [Enterprise IoT Security](https://www.paloaltonetworks.com/network-security/enterprise-device-security?ts=markdown) * [Medical IoT Security](https://www.paloaltonetworks.com/network-security/medical-device-security?ts=markdown) * [Industrial OT Security](https://www.paloaltonetworks.com/network-security/medical-device-security?ts=markdown) * [SaaS Security](https://www.paloaltonetworks.com/sase/saas-security?ts=markdown) * [Next-Generation Firewalls](https://www.paloaltonetworks.com/network-security/next-generation-firewall?ts=markdown) * [Hardware Firewalls](https://www.paloaltonetworks.com/network-security/hardware-firewall-innovations?ts=markdown) * [Software Firewalls](https://www.paloaltonetworks.com/network-security/software-firewalls?ts=markdown) * [Strata Cloud Manager](https://www.paloaltonetworks.com/network-security/strata-cloud-manager?ts=markdown) * [SD-WAN for NGFW](https://www.paloaltonetworks.com/network-security/sd-wan-subscription?ts=markdown) * [PAN-OS](https://www.paloaltonetworks.com/network-security/pan-os?ts=markdown) * [Panorama](https://www.paloaltonetworks.com/network-security/panorama?ts=markdown) * [Secure Access Service Edge](https://www.paloaltonetworks.com/sase?ts=markdown) * [Prisma SASE](https://www.paloaltonetworks.com/sase?ts=markdown) * [Application Acceleration](https://www.paloaltonetworks.com/sase/app-acceleration?ts=markdown) * [Autonomous Digital Experience Management](https://www.paloaltonetworks.com/sase/adem?ts=markdown) * [Enterprise DLP](https://www.paloaltonetworks.com/sase/enterprise-data-loss-prevention?ts=markdown) * [Prisma Access](https://www.paloaltonetworks.com/sase/access?ts=markdown) * [Prisma Browser](https://www.paloaltonetworks.com/sase/prisma-browser?ts=markdown) * [Prisma SD-WAN](https://www.paloaltonetworks.com/sase/sd-wan?ts=markdown) * [Remote Browser Isolation](https://www.paloaltonetworks.com/sase/remote-browser-isolation?ts=markdown) * [SaaS Security](https://www.paloaltonetworks.com/sase/saas-security?ts=markdown) * [AI-Driven Security Operations Platform](https://www.paloaltonetworks.com/cortex?ts=markdown) * [Cloud Security](https://www.paloaltonetworks.com/cortex/cloud?ts=markdown) * [Cortex Cloud](https://www.paloaltonetworks.com/cortex/cloud?ts=markdown) * [Application Security](https://www.paloaltonetworks.com/cortex/cloud/application-security?ts=markdown) * [Cloud Posture Security](https://www.paloaltonetworks.com/cortex/cloud/cloud-posture-security?ts=markdown) * [Cloud Runtime Security](https://www.paloaltonetworks.com/cortex/cloud/runtime-security?ts=markdown) * [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud?ts=markdown) * [AI-Driven SOC](https://www.paloaltonetworks.com/cortex?ts=markdown) * [Cortex XSIAM](https://www.paloaltonetworks.com/cortex/cortex-xsiam?ts=markdown) * [Cortex XDR](https://www.paloaltonetworks.com/cortex/cortex-xdr?ts=markdown) * [Cortex XSOAR](https://www.paloaltonetworks.com/cortex/cortex-xsoar?ts=markdown) * [Cortex Xpanse](https://www.paloaltonetworks.com/cortex/cortex-xpanse?ts=markdown) * [Unit 42 Managed Detection \& Response](https://www.paloaltonetworks.com/cortex/managed-detection-and-response?ts=markdown) * [Managed XSIAM](https://www.paloaltonetworks.com/cortex/managed-xsiam?ts=markdown) * [Threat Intel and Incident Response Services](https://www.paloaltonetworks.com/unit42?ts=markdown) * [Proactive Assessments](https://www.paloaltonetworks.com/unit42/assess?ts=markdown) * [Incident Response](https://www.paloaltonetworks.com/unit42/respond?ts=markdown) * [Transform Your Security Strategy](https://www.paloaltonetworks.com/unit42/transform?ts=markdown) * [Discover Threat Intelligence](https://www.paloaltonetworks.com/unit42/threat-intelligence-partners?ts=markdown) ## Company * [About Us](https://www.paloaltonetworks.com/about-us?ts=markdown) * [Careers](https://jobs.paloaltonetworks.com/en/) * [Contact Us](https://www.paloaltonetworks.com/company/contact-sales?ts=markdown) * [Corporate Responsibility](https://www.paloaltonetworks.com/about-us/corporate-responsibility?ts=markdown) * [Customers](https://www.paloaltonetworks.com/customers?ts=markdown) * [Investor Relations](https://investors.paloaltonetworks.com/) * [Location](https://www.paloaltonetworks.com/about-us/locations?ts=markdown) * [Newsroom](https://www.paloaltonetworks.com/company/newsroom?ts=markdown) ## Popular Links * [Blog](https://www.paloaltonetworks.com/blog/?ts=markdown) * [Communities](https://www.paloaltonetworks.com/communities?ts=markdown) * [Content Library](https://www.paloaltonetworks.com/resources?ts=markdown) * [Cyberpedia](https://www.paloaltonetworks.com/cyberpedia?ts=markdown) * [Event Center](https://events.paloaltonetworks.com/) * [Manage Email Preferences](https://start.paloaltonetworks.com/preference-center) * [Products A-Z](https://www.paloaltonetworks.com/products/products-a-z?ts=markdown) * [Product Certifications](https://www.paloaltonetworks.com/legal-notices/trust-center/compliance?ts=markdown) * [Report a Vulnerability](https://www.paloaltonetworks.com/security-disclosure?ts=markdown) * [Sitemap](https://www.paloaltonetworks.com/sitemap?ts=markdown) * [Tech Docs](https://docs.paloaltonetworks.com/) * [Unit 42](https://unit42.paloaltonetworks.com/) * [Do Not Sell or Share My Personal Information](https://panwedd.exterro.net/portal/dsar.htm?target=panwedd) ![PAN logo](https://www.paloaltonetworks.com/etc/clientlibs/clean/imgs/pan-logo-dark.svg) * [Privacy](https://www.paloaltonetworks.com/legal-notices/privacy?ts=markdown) * [Trust Center](https://www.paloaltonetworks.com/legal-notices/trust-center?ts=markdown) * [Terms of Use](https://www.paloaltonetworks.com/legal-notices/terms-of-use?ts=markdown) * [Documents](https://www.paloaltonetworks.com/legal?ts=markdown) Copyright © 2026 Palo Alto Networks. All Rights Reserved * [![Youtube](https://www.paloaltonetworks.com/etc/clientlibs/clean/imgs/social/youtube-black.svg)](https://www.youtube.com/user/paloaltonetworks) * [![Podcast](https://www.paloaltonetworks.com/content/dam/pan/en_US/images/icons/podcast.svg)](https://www.paloaltonetworks.com/podcasts/threat-vector?ts=markdown) * [![Facebook](https://www.paloaltonetworks.com/etc/clientlibs/clean/imgs/social/facebook-black.svg)](https://www.facebook.com/PaloAltoNetworks/) * [![LinkedIn](https://www.paloaltonetworks.com/etc/clientlibs/clean/imgs/social/linkedin-black.svg)](https://www.linkedin.com/company/palo-alto-networks) * [![Twitter](https://www.paloaltonetworks.com/etc/clientlibs/clean/imgs/social/twitter-x-black.svg)](https://twitter.com/PaloAltoNtwks) * EN Select your language