<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mona</title>
    <description>The latest articles on DEV Community by Mona (@octopusshield).</description>
    <link>https://dev.to/octopusshield</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3933813%2F60d89450-d176-416a-bc89-8a8f0163962d.png</url>
      <title>DEV Community: Mona</title>
      <link>https://dev.to/octopusshield</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/octopusshield"/>
    <language>en</language>
    <item>
      <title>10 Important Azure Security Settings That Are Easy to Miss</title>
      <dc:creator>Mona</dc:creator>
      <pubDate>Sun, 31 May 2026 19:28:27 +0000</pubDate>
      <link>https://dev.to/octopusshield/10-important-azure-security-settings-that-are-easy-to-miss-5360</link>
      <guid>https://dev.to/octopusshield/10-important-azure-security-settings-that-are-easy-to-miss-5360</guid>
      <description>&lt;p&gt;When learning Azure security, I realized that many important security controls are already available in the platform but are easy to overlook during deployment and configuration.&lt;/p&gt;

&lt;p&gt;To better understand Azure security, I reviewed several identity, networking, secrets management, monitoring, and security posture settings within my lab environment. Throughout this process, I identified a number of commonly overlooked configurations that could increase security risk if left unchecked.&lt;/p&gt;

&lt;p&gt;In this article, I share 10 important Azure security settings that I explored, why they matter, how I verified them, and recommendations for improving overall security posture.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Multi-Factor Authentication (MFA) Not Enforced
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake&lt;/strong&gt;&lt;br&gt;
One of the first things I checked was whether multi-factor authentication was enforced for user accounts. It is easy to assume that strong passwords alone provide sufficient protection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk&lt;/strong&gt;&lt;br&gt;
If a user's password is compromised through phishing, password reuse, or credential theft, an attacker may be able to access Azure resources without additional verification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Verified&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Azure Portal.&lt;/li&gt;
&lt;li&gt;Navigate to Microsoft Entra ID.&lt;/li&gt;
&lt;li&gt;Select Users.&lt;/li&gt;
&lt;li&gt;Open a user account.&lt;/li&gt;
&lt;li&gt;Click Authentication Methods.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;br&gt;
Enable MFA for all users, especially privileged accounts, and regularly review authentication methods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshot&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lwlbwqg78nallwcqy50.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lwlbwqg78nallwcqy50.png" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Excessive Owner Permissions (RBAC)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake&lt;/strong&gt;&lt;br&gt;
During my lab setup, I initially assigned Owner permissions to simplify testing. While reviewing IAM settings later, I realized how easily excessive privileges can remain in place after deployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk&lt;/strong&gt;&lt;br&gt;
Users with excessive privileges can accidentally modify resources, delete services, or grant permissions to others. If an account is compromised, the impact can be significant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Verified&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Azure Portal.&lt;/li&gt;
&lt;li&gt;Navigate to Subscriptions.&lt;/li&gt;
&lt;li&gt;Select the subscription.&lt;/li&gt;
&lt;li&gt;Open Access Control (IAM).&lt;/li&gt;
&lt;li&gt;Click Role Assignments.&lt;/li&gt;
&lt;li&gt;Filter by Owner.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;br&gt;
Apply the Principle of Least Privilege by assigning only the permissions required for a user's responsibilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshot&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuuty6jzyk2ljsr1oxp6i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuuty6jzyk2ljsr1oxp6i.png" alt=" " width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Secrets Stored Outside Key Vault
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake&lt;/strong&gt;&lt;br&gt;
Application credentials and connection strings are sometimes stored directly in configuration files because it is convenient during development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk&lt;/strong&gt;&lt;br&gt;
Secrets stored in files or repositories may be exposed through source control, backups, or unauthorized access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Verified&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create an Azure Key Vault.&lt;/li&gt;
&lt;li&gt;Open Key Vault.&lt;/li&gt;
&lt;li&gt;Navigate to Secrets.&lt;/li&gt;
&lt;li&gt;Click Generate/Import.&lt;/li&gt;
&lt;li&gt;Create a test secret.&lt;/li&gt;
&lt;li&gt;Confirm the secret is stored centrally within Key Vault.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;br&gt;
Store passwords, API keys, and connection strings in Azure Key Vault.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshots&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr0cvaat6nysvdnbwkff1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr0cvaat6nysvdnbwkff1.png" alt=" " width="346" height="852"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgunosh3kqjjex5w82pdb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgunosh3kqjjex5w82pdb.png" alt=" " width="799" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Key Vault Accessible from All Networks
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake&lt;/strong&gt;&lt;br&gt;
When I first created a Key Vault, I focused on storing secrets and almost overlooked the networking configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk&lt;/strong&gt;&lt;br&gt;
If credentials are compromised, attackers may attempt access from any location.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Verified&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Azure Portal.&lt;/li&gt;
&lt;li&gt;Navigate to Key Vault.&lt;/li&gt;
&lt;li&gt;Select the Key Vault.&lt;/li&gt;
&lt;li&gt;Select Settings -&amp;gt; Networking.&lt;/li&gt;
&lt;li&gt;Review Public Access settings.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;br&gt;
Restrict Key Vault access using selected networks or private endpoints.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshot&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjl2ilxjm0gn6u0ttw2de.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjl2ilxjm0gn6u0ttw2de.png" alt=" " width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Resource Locks Not Configured
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake&lt;/strong&gt;&lt;br&gt;
Critical resources can be accidentally deleted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk&lt;/strong&gt;&lt;br&gt;
Accidental deletion or unauthorized removal of critical resources could result in service disruption and data loss.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Verified&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open a resource.&lt;/li&gt;
&lt;li&gt;Navigate to Locks.&lt;/li&gt;
&lt;li&gt;Check for:&lt;/li&gt;
&lt;li&gt;Delete Lock&lt;/li&gt;
&lt;li&gt;Read Only Lock&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;br&gt;
Apply resource locks to critical assets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshot&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2nqkuwyv7zrb6ou1rr8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2nqkuwyv7zrb6ou1rr8w.png" alt=" " width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Storage Account Public Network Access Enabled
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake&lt;/strong&gt;&lt;br&gt;
Storage accounts may allow access from any network unless networking restrictions are configured.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk&lt;/strong&gt;&lt;br&gt;
Exposed storage services increase the attack surface and may allow unauthorized access attempts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Verified&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Azure Portal.&lt;/li&gt;
&lt;li&gt;Navigate to Storage Accounts.&lt;/li&gt;
&lt;li&gt;Select a Storage Account.&lt;/li&gt;
&lt;li&gt;Open Settings -&amp;gt; Configuration.&lt;/li&gt;
&lt;li&gt;Review Public Network Access settings.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;br&gt;
Restrict access to selected networks or use Private Endpoints where possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshot&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjqf6ng2w1o0udkvzspf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjqf6ng2w1o0udkvzspf.png" alt=" " width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. SSH Exposed to Internet
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake&lt;/strong&gt;&lt;br&gt;
When creating a virtual machine, allowing SSH access from any source is often the easiest option.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk&lt;/strong&gt;&lt;br&gt;
Internet-facing SSH services are continuously targeted by automated scans and brute-force attacks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Verified&lt;/strong&gt;&lt;br&gt;
I reviewed Virtual Machine → Networking and checked inbound rules for Port 22.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;br&gt;
Restrict SSH access to trusted IP addresses or use Azure Bastion.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Flat Network Design
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake&lt;/strong&gt;&lt;br&gt;
Placing all resources in a single subnet may seem simpler during deployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk&lt;/strong&gt;&lt;br&gt;
If one resource is compromised, attackers may move laterally to other systems more easily.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Verified&lt;/strong&gt;&lt;br&gt;
I reviewed Virtual Network subnet structures and associated Network Security Groups.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;br&gt;
Separate workloads into dedicated subnets and apply security controls between them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshot&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmweileulc14bjuka0o8b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmweileulc14bjuka0o8b.png" alt=" " width="799" height="259"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Missing Diagnostic Settings
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake&lt;/strong&gt;&lt;br&gt;
Resources can function normally even when diagnostic logging is not configured.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk&lt;/strong&gt;&lt;br&gt;
Troubleshooting and security investigations become much harder without historical logs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Verified&lt;/strong&gt;&lt;br&gt;
I reviewed Diagnostic Settings for Azure resources and checked whether logs were being sent to a monitoring destination.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;br&gt;
Configure diagnostic settings and send logs to Log Analytics, Storage Accounts, or Event Hub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshot&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzjiieaile7apxxn5v51.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzjiieaile7apxxn5v51.png" alt=" " width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Security Recommendations Not Reviewed
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake&lt;/strong&gt;&lt;br&gt;
Security recommendations are easy to ignore after resources are deployed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk&lt;/strong&gt;&lt;br&gt;
Unresolved security recommendations can increase exposure to known security risks and reduce overall security posture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Verified&lt;/strong&gt;&lt;br&gt;
I reviewed Microsoft Defender for Cloud recommendations and Secure Score to understand the current security posture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;br&gt;
Review recommendations regularly and prioritize high-impact findings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshot&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftxi8ot7qodwerbg4ch3w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftxi8ot7qodwerbg4ch3w.png" alt=" " width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;One of the biggest lessons I learned while reviewing Azure security settings is that many security risks originate from small configuration decisions rather than sophisticated attacks.&lt;/p&gt;

&lt;p&gt;Identity management, permissions, networking, secrets management, monitoring, and security posture all play an important role in protecting cloud environments. Regularly reviewing these settings can help identify gaps early and improve overall security posture.&lt;/p&gt;

&lt;p&gt;Security is not a one-time task. It is an ongoing process of verification, monitoring, and continuous improvement.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>cybersecurity</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Installing Prowler on Azure – My Hands-On Learning Experience</title>
      <dc:creator>Mona</dc:creator>
      <pubDate>Sat, 16 May 2026 04:55:00 +0000</pubDate>
      <link>https://dev.to/octopusshield/installing-prowler-on-azure-my-hands-on-learning-experience-1map</link>
      <guid>https://dev.to/octopusshield/installing-prowler-on-azure-my-hands-on-learning-experience-1map</guid>
      <description>&lt;p&gt;Recently, I integrated &lt;strong&gt;Prowler&lt;/strong&gt; to better understand how cloud security scanning tools help secure cloud deployments in real environments. I explored both the GUI and CLI versions on Azure to understand how each approach works for security scanning, identifying compliance gap and reporting.&lt;br&gt;
This blog focuses on my initial hands-on experience with the Prowler setup on Azure Cloud Shell.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;# What is Prowler?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Prowler is an open-source cloud security assessment tool used to scan cloud environments for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security misconfigurations&lt;/li&gt;
&lt;li&gt;Risky settings&lt;/li&gt;
&lt;li&gt;Compliance gaps&lt;/li&gt;
&lt;li&gt;Exposed cloud resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;It supports multiple cloud platforms&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon Web Services(AWS)&lt;/li&gt;
&lt;li&gt;Microsoft Azure&lt;/li&gt;
&lt;li&gt;Google Cloud Platform (GCP)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Prowler can be used in two ways:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CLI(Command Line Interface)&lt;/li&gt;
&lt;li&gt;GUI/Web Dashboard&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;# Installing Prowler on Azure&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Below are the basic steps I followed during the setup process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Open Azure Cloud Shell&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login to your Microsoft Azure account&lt;/li&gt;
&lt;li&gt;From the top menu → click Cloud Shell icon [&amp;gt;_]&lt;/li&gt;
&lt;li&gt;Select Bash
Azure Cloud Shell already includes Azure CLI, which makes the setup process easier.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsy1rfvd58ddo0jznp629.png" alt="Azure Cloud Shell" width="800" height="407"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — Install Prowler (in Cloud Shell)&lt;/strong&gt;&lt;br&gt;
Run the following commands:&lt;br&gt;
 &lt;code&gt;python3 -m pip install --user pipx&lt;/code&gt;&lt;br&gt;
 &lt;code&gt;python3 -m pipx ensurepath&lt;/code&gt;&lt;br&gt;
 &lt;code&gt;pipx install prowler&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9b08jh8ueyr0ln5zd4s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9b08jh8ueyr0ln5zd4s.png" alt="Install Dependencies" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check the installation:&lt;br&gt;
 &lt;code&gt;prowler -v&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrjp1rgywu9jf3et6qe4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrjp1rgywu9jf3et6qe4.png" alt="Prowler Installation" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 — Run First Scan&lt;/strong&gt;&lt;br&gt;
Check the active Azure subscription:&lt;br&gt;
 &lt;code&gt;az account show --output table&lt;/code&gt;&lt;br&gt;
Run the scan:&lt;br&gt;
 &lt;code&gt;prowler azure --az-cli-auth&lt;/code&gt;&lt;br&gt;
OR scan a specific subscription:&lt;br&gt;
 &lt;code&gt;prowler azure --az-cli-auth --subscription-ids &amp;lt;YOUR-SUBSCRIPTION-ID&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This performs a security assessment of the Azure subscription and generates security findings and compliance results.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mh42g8u9w5pbdx9dt6d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mh42g8u9w5pbdx9dt6d.png" alt=" " width="800" height="354"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcwtaw0ot3j5xaz0kdi8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcwtaw0ot3j5xaz0kdi8.png" alt=" " width="800" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 — View the reports&lt;/strong&gt;&lt;br&gt;
After the scan completes, Prowler generates reports in multiple formats, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;JSON&lt;/li&gt;
&lt;li&gt;CSV&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkfohwwogqog0zbgeybu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkfohwwogqog0zbgeybu.png" alt="Download Prowler Report" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The HTML report is especially useful for demonstrations and presentations because it provides a clean dashboard-style view of the scan results.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs2dg9hjp6ub7aantrphm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs2dg9hjp6ub7aantrphm.png" alt="Prowler Scan Report-HTML" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This was my first hands-on experience with Prowler, and it gave me a practical introduction to cloud security scanning and compliance validation. If you are starting with cloud security or DevSecOps, Prowler is a good tool to explore because it is open-source, beginner-friendly, and supports multiple cloud platforms.&lt;/p&gt;

</description>
      <category>security</category>
      <category>cybersecurity</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
