KNOWLEDGE PORTAL

DevSecOps Portal

Five practitioner-grade modules covering the full DevSecOps landscape — built from 13+ years of real-world enterprise security program management at RBI-IT.

OWASP Aligned5 Modules 50+ ConceptsReal Examples
01

DevSecOps Fundamentals

What is DevSecOps?

DevSecOps is the practice of integrating security seamlessly into every phase of the DevOps lifecycle — from planning and coding through testing, deployment, and monitoring. The term combines Development, Security, and Operations into a unified, continuous workflow.

Traditionally, security was a gate at the end of development — a separate team that reviewed finished software before release. This created bottlenecks, late-stage vulnerabilities, and a cultural divide between developers and security teams. DevSecOps dismantles that wall entirely.

Core Philosophy

"Security is everyone's responsibility." DevSecOps shifts security from a compliance checkbox into a shared engineering discipline — with automated tooling, defined standards, and continuous feedback loops baked into every commit.

FASTER VULNERABILITY DETECTION
60%
LOWER REMEDIATION COST vs LATE DETECTION
45%
FEWER PRODUCTION INCIDENTS
30%
FASTER DELIVERY WITH AUTOMATION

The Shift Left Principle

"Shift left" means moving security activities earlier in the Software Development Lifecycle (SDLC). The further right a vulnerability is found — in staging, production, or post-breach — the exponentially more expensive it becomes to fix.

📋
PLAN
Security Reqs
✍️
CODE
Secure Coding
🔍
BUILD
SAST Scan
🧪
TEST
DAST + Pentest
🚀
DEPLOY
Policy Gates
📊
OPERATE
Monitoring

Each phase injects security — not as a blocker, but as an automated check. A failing SAST scan in the build phase stops insecure code from progressing, costing minutes to fix rather than weeks after production deployment.

Cost of Fixing Vulnerabilities by Stage

  • Design phase: ~$80 per fix
  • Development: ~$240 per fix
  • Testing: ~$960 per fix
  • Production: ~$7,600+ per fix
  • Post-breach: $4.2M average incident cost (IBM 2023)

Three Pillars of DevSecOps

🧠
Culture & Mindset
Breaking silos between Dev, Sec, and Ops teams. Security champions embedded in development squads. Blameless post-mortems. Security training for all engineers — not just the security team.
PeopleTrainingChampions
🤖
Automation
Security gates in CI/CD pipelines. Automated SAST, DAST, and SCA scans on every commit. Infrastructure-as-Code security scanning. Compliance-as-code with policy engines like OPA.
CI/CDScanningIaC
📏
Measurement
Track Mean Time to Detect (MTTD) and Mean Time to Remediate (MTTR) security issues. Vulnerability aging metrics. DORA metrics with security overlay. Security debt dashboards.
MTTDMTTRMetrics

DevOps vs DevSecOps

DimensionDevOpsDevSecOps
Security TimingEnd of pipeline (gated)Every stage (continuous)
Security OwnershipSecurity team onlyShared — Dev + Sec + Ops
Vulnerability DetectionManual review, periodicAutomated on every commit
ComplianceAudit-time documentationCompliance-as-code, continuous
Security TestingSeparate phase, blocks releaseIntegrated, non-blocking feedback
Secrets ManagementOften hardcoded or manualVault-based, automated rotation

Security Champions Program

A Security Champions program embeds security-minded developers within each engineering team. They act as the first line of security defence — raising awareness, conducting lightweight threat reviews, and bridging communication between developers and the central security team.

  • 1

    Identify Volunteers

    Select motivated developers with security interest from each team. One champion per squad of 6–10 developers is the recommended ratio.

  • 2

    Training & Certification

    Provide OWASP secure coding training, threat modeling workshops, and access to security tooling. SANS GSEC or OWASP WSTG are good starting points.

  • 3

    Embed in Sprint Ceremonies

    Champions participate in sprint planning to flag security requirements, and in retrospectives to review any security incidents or near-misses.

  • 4

    Recognition & Career Path

    Make the role visible and valued. Security champions should have dedicated time (~20%) for security activities and a clear career growth path.

Core DevSecOps Toolchain

🔎
SAST — Static Analysis
Analyse source code without executing it. Finds insecure patterns, SQL injection risks, hardcoded secrets, and vulnerable dependencies before the code runs.
SonarQubeCoverityCheckmarxSemgrep
💉
DAST — Dynamic Analysis
Test running applications by simulating real attacks. Finds runtime vulnerabilities including auth flaws, injection points, and misconfigurations not visible in code.
OWASP ZAPBurp SuiteNikto
📦
SCA — Software Composition
Scan open-source dependencies for known CVEs. Enforce licence compliance. Generate Software Bill of Materials (SBOM) for supply chain transparency.
BlackDuckSnykOWASP Dep-Check
🔑
Secrets Management
Detect and prevent hardcoded API keys, passwords, and tokens in repositories. Manage secrets centrally with dynamic rotation and least-privilege access.
HashiCorp VaultGitLeaksAWS Secrets Mgr

DevSecOps Maturity Model

  • Level 1 — Initial: Manual security reviews, no pipeline integration
  • Level 2 — Managed: Some automated scanning, security team involved in releases
  • Level 3 — Defined: SAST/DAST in all pipelines, security requirements in stories
  • Level 4 — Measured: Security metrics tracked, SLAs defined, champions active
  • Level 5 — Optimised: Fully automated, continuous compliance, security as enabler
02

Secure SDLC

SSDLC Overview

The Secure Software Development Lifecycle (SSDLC) is a framework that integrates security activities into every phase of traditional software development. It is not a separate process — it is security woven into the existing SDLC fabric, ensuring that security is designed in, not bolted on.

At IT Industry, implementing SSDLC governance across enterprise banking platforms reduced security vulnerabilities by 45% and improved audit outcomes significantly. The key is consistency — every project follows the same security gates regardless of team, technology, or timeline pressure.

📋
PHASE 1
Requirements
🏗️
PHASE 2
Design
💻
PHASE 3
Development
🧪
PHASE 4
Testing
🚀
PHASE 5
Deployment
🔒
PHASE 6
Maintenance

Phase 1: Security Requirements

Security requirements must be defined before a single line of code is written. This means translating regulatory obligations (RBI guidelines, PCI-DSS, ISO 27001) into concrete, testable requirements that development teams can act on.

  • 1

    Define Security User Stories

    Write security requirements as user stories with acceptance criteria. Example: "As the system, I must encrypt all PII data at rest using AES-256 so that unauthorised access cannot expose customer data."

  • 2

    Abuse Cases & Misuse Cases

    For every user story, define corresponding abuse cases — how could an attacker misuse this feature? These drive security test cases in later phases.

  • 3

    Regulatory Mapping

    Map each requirement to applicable regulations — RBI IT Framework, NIST CSF, ISO 27001 controls, or GDPR. This creates the audit trail from requirement to control.

  • 4

    Risk Classification

    Classify the system's data sensitivity and risk level. High-risk systems (core banking, PII-heavy) require more rigorous security controls and review gates than internal tooling.

Threat Modeling

Threat modeling is the systematic process of identifying potential security threats to a system, analysing their impact, and defining mitigations — done at the design phase before code is written. It is the most cost-effective security activity in the SSDLC.

STRIDE Threat Model Framework

  • S — Spoofing: Can an attacker impersonate a user or service?
  • T — Tampering: Can data be modified in transit or at rest?
  • R — Repudiation: Can actions be denied without audit trail?
  • I — Information Disclosure: Can sensitive data leak?
  • D — Denial of Service: Can the system be made unavailable?
  • E — Elevation of Privilege: Can a low-trust user gain higher access?
🗺️
Data Flow Diagrams (DFDs)
Create DFDs showing all data flows, trust boundaries, external entities, processes, and data stores. Mark every trust boundary crossing — these are where threats live. Use Microsoft Threat Modeling Tool or OWASP Threat Dragon.
DFDTrust BoundariesMSFT TMT
⚖️
DREAD Risk Scoring
Score each identified threat across five dimensions: Damage, Reproducibility, Exploitability, Affected Users, Discoverability. Prioritise by total score to focus remediation effort where it matters most.
Risk ScorePrioritisationDREAD

Secure Coding Standards

Secure coding standards define the rules developers must follow to prevent common vulnerability classes. They should be enforced via automated linting in IDEs and SAST tools in the pipeline — not left to code reviewers alone.

EXAMPLE: SQL Injection Prevention (Java)
 ✗ VULNERABLE — Never do this
String query = "SELECT * FROM users WHERE id = " + userId;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);

 ✓ SECURE — Always use parameterised queries
String query = "SELECT * FROM users WHERE id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, userId);
ResultSet rs = ps.executeQuery();
🛡️
Input Validation
Validate all input on the server side — never trust client-side validation alone. Use allowlists over denylists. Validate type, length, format, and range for every input field.
Injection PreventionAllowlist
🔐
Cryptography Standards
Use only approved algorithms — AES-256 for symmetric encryption, RSA-2048+ or ECC P-256 for asymmetric, SHA-256+ for hashing, PBKDF2/bcrypt/Argon2 for passwords. Never roll your own crypto.
AES-256SHA-256Argon2
🗝️
Authentication & Session
Implement MFA for all privileged access. Use secure session tokens (random, sufficient entropy, HTTPOnly + Secure cookies). Enforce session timeouts and invalidate on logout.
MFAJWTSession Mgmt

Security Testing Phases

Testing TypeWhenWhat it FindsTools
SAST Static AnalysisEvery commit / buildCode-level flaws, injection risks, hardcoded secretsSonarQube, Coverity, Checkmarx
SCA Composition AnalysisBuild phaseVulnerable dependencies (CVEs), licence issuesBlackDuck, Snyk, OWASP Dep-Check
DAST Dynamic AnalysisStaging / QARuntime flaws, auth issues, misconfigurationsOWASP ZAP, Burp Suite
IAST Interactive AnalysisFunctional testingReal-time vulnerabilities during test executionContrast Security, Seeker
Penetration TestPre-release / annualBusiness logic flaws, chained attacksManual + Metasploit, Burp Pro

Compliance Frameworks

📜
NIST Cybersecurity Framework
Five core functions: Identify → Protect → Detect → Respond → Recover. Maps directly to SSDLC phases. Used as the backbone for RBI-IT's security governance framework. Provides a common language for risk management across organisational levels.
NIST CSFRisk ManagementGovernment
🌐
ISO/IEC 27001
The international standard for Information Security Management Systems (ISMS). Defines 114 controls across 14 domains including access control, cryptography, operations security, and supplier relationships. Certification provides third-party assurance to stakeholders.
ISO 27001ISMSCertification
03

CI/CD Pipeline Security

The Secure Pipeline Architecture

A secure CI/CD pipeline embeds automated security checks at every stage — transforming the pipeline from a fast path to production into a security validation gauntlet that blocks vulnerable code automatically, without requiring manual review for every change.

📝
COMMIT
Pre-commit Hooks
🔍
BUILD
SAST + Secrets
📦
DEPS
SCA Scan
🐳
IMAGE
Container Scan
💉
STAGING
DAST Scan
GATE
Policy Check

Security Gate Policy

  • Critical severity: Block pipeline immediately — must fix before merge
  • High severity: Block if unfixed for >5 days — tracked in security backlog
  • Medium severity: Warning — create Jira ticket, fix within sprint
  • Low severity: Log only — address during refactoring cycles

SAST & DAST Integration

JENKINS PIPELINE — Security Stage Example
pipeline {
  agent any
  stages {
    stage('Secrets Scan') {
      steps {
        sh 'gitleaks detect --source . --exit-code 1'
      }
    }
    stage('SAST — Coverity') {
      steps {
        sh 'cov-build --dir cov-int mvn compile'
        sh 'cov-analyze --dir cov-int --all'
        sh 'cov-commit-defects --stream myapp-main'
      }
    }
    stage('SCA — BlackDuck') {
      steps {
        synopsys_detect detectProperties: """
          --blackduck.url=https://blackduck.company.com
          --detect.project.name=myapp
          --detect.policy.check.fail.on.severities=CRITICAL,HIGH
        """
      }
    }
    stage('Container Scan — Trivy') {
      steps {
        sh 'trivy image --exit-code 1 --severity CRITICAL myapp:latest'
      }
    }
    stage('DAST — OWASP ZAP') {
      steps {
        sh 'zap-baseline.py -t https://staging.myapp.com -r zap-report.html'
      }
    }
  }
}
🔎
SAST Best Practices
Run SAST on every pull request. Configure to fail on Critical/High findings. Tune rules to reduce false positives — high noise leads to alert fatigue and developers ignoring results. Maintain a suppression register with justifications for accepted risks.
CoveritySonarQubeSemgrepCheckmarx
💉
DAST Best Practices
Run DAST against a stable staging environment after each deployment. Use authenticated scanning to test post-login functionality. Configure a dedicated test user account with known-clean data. Store DAST reports as pipeline artefacts for audit purposes.
OWASP ZAPBurp SuiteStaging

Secrets Management

Hardcoded secrets — API keys, database passwords, certificates, and tokens — in source code repositories are one of the most common and dangerous security failures. A single leaked secret can expose entire cloud environments.

⚠ Common Secret Leak Sources

  • Hardcoded credentials in source code committed to Git
  • Secrets in Docker image layers or environment variables
  • Secrets in CI/CD pipeline logs (printed during debug)
  • Credentials in config files accidentally committed
  • API keys in mobile app binaries or JavaScript bundles
  • 1

    Pre-commit Secret Scanning

    Install GitLeaks or detect-secrets as a pre-commit hook. This catches secrets before they ever enter the repository. Integrate with GitHub/GitLab native secret scanning for an additional layer.

  • 2

    HashiCorp Vault / AWS Secrets Manager

    Store all secrets in a centralised vault with fine-grained access control. Applications request secrets at runtime via API — never store them in config files or environment variables in plaintext.

  • 3

    Dynamic Secrets

    Use Vault's dynamic secrets feature for databases — generate short-lived, unique credentials for each application instance. These auto-expire, drastically limiting the blast radius of any compromise.

  • 4

    Secret Rotation Policy

    Mandate automatic rotation schedules: API keys every 90 days, database passwords every 30 days, certificates before expiry with 30-day buffer. Monitor for rotation failures with alerting.

Container & Image Security

Containers introduce unique security challenges — vulnerable base images, overprivileged containers, exposed ports, and insecure registries. Security must be enforced at every layer: image build, registry, orchestration, and runtime.

🐳
Secure Dockerfile Practices
Use minimal base images (Alpine, distroless). Run as non-root user. Copy only required files. Use multi-stage builds to exclude build tools from final image. Pin exact version tags — never use 'latest' in production.
AlpineDistrolessNon-root
🔬
Image Vulnerability Scanning
Scan all images before pushing to registry and after pulling to deploy. Trivy, Anchore, and Clair integrate into CI/CD pipelines natively. Block promotion of images with Critical CVEs. Re-scan existing images regularly as new CVEs are published.
TrivyAnchoreClair
☸️
Kubernetes Security
Enable Pod Security Admission. Apply Network Policies to restrict pod-to-pod communication. Use RBAC with least-privilege principles. Scan Kubernetes manifests with Kubesec or Checkov. Enable audit logging for all API server activity.
K8s RBACNetworkPolicyKubesec
SECURE DOCKERFILE — Best Practices Example
# Stage 1: Build
FROM maven:3.9-eclipse-temurin-17 AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn package -DskipTests

# Stage 2: Run — minimal image, no build tools
FROM gcr.io/distroless/java17-debian12
WORKDIR /app
COPY --from=build /app/target/app.jar .

# Run as non-root user (UID 1000)
USER 1000
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

Software Supply Chain Security

The SolarWinds and Log4Shell incidents demonstrated that attackers target the software supply chain — compromising dependencies, build tools, and distribution mechanisms rather than attacking applications directly. Supply chain security is now a critical DevSecOps discipline.

📋
SBOM — Software Bill of Materials
Generate an SBOM for every release listing all components, versions, licences, and known vulnerabilities. SPDX and CycloneDX are standard formats. Required by US Executive Order 14028 for government software supply chains.
SBOMSPDXCycloneDX
✍️
Code Signing & Artefact Integrity
Sign all build artefacts and container images with Sigstore/Cosign. Verify signatures before deployment. Use SLSA (Supply Chain Levels for Software Artefacts) framework to establish provenance — ensuring artefacts are built from known, unmodified sources.
SigstoreCosignSLSA
04

OWASP Top 10 Controls

OWASP Top 10 Overview (2021)

The OWASP Top 10 is the globally recognised standard for web application security risks, maintained by the Open Web Application Security Project. It represents the most critical security risks to web applications, based on data from hundreds of organisations and thousands of applications.

A01
BROKEN ACCESS CONTROL
A02
CRYPTOGRAPHIC FAILURES
A03
INJECTION
A04
INSECURE DESIGN

Broken Access Control

The #1 risk. Access control enforces policies so users cannot act outside their intended permissions. Failures lead to unauthorised information disclosure, modification, or destruction of data, or performing business functions outside user limits.

Common Attack Patterns

  • IDOR: Accessing /api/account/1234 when logged in as user 5678
  • Privilege escalation: Accessing admin functions as a regular user
  • Path traversal: Accessing ../../etc/passwd via file download endpoint
  • Missing function-level access control: Admin API endpoints accessible without auth

Prevention Controls

  • Implement access control server-side — never rely on client-side checks
  • Deny by default — explicitly grant permissions rather than blocking bad actors
  • Use indirect object references (internal IDs, not sequential integers)
  • Log and alert on access control failures — repeated failures signal an attack
  • Disable directory listing; ensure metadata files (git, backup) are not accessible

Cryptographic Failures

Formerly "Sensitive Data Exposure" — this category focuses on failures related to cryptography (or lack thereof) that often lead to exposure of sensitive data such as passwords, credit card numbers, health records, and personal information.

⚠️
Failure Examples
Transmitting data in cleartext (HTTP, FTP). Using weak/deprecated algorithms (MD5, SHA1, DES). Weak encryption keys or default keys. Missing certificate validation. Passwords stored as plain hashes without salting.
Weak CryptoHTTPMD5
Prevention Controls
Classify data — encrypt all sensitive data at rest and in transit. Use TLS 1.2+ everywhere. AES-256-GCM for symmetric encryption. Argon2id/bcrypt for password hashing. Disable caching for sensitive responses. HSTS headers for all domains.
AES-256TLS 1.3Argon2id

Injection

Injection flaws occur when an application sends untrusted data to an interpreter as part of a command or query. SQL injection remains the most prevalent, but injection vulnerabilities exist for LDAP, NoSQL, OS commands, XML parsers, and template engines.

SQL INJECTION — Attack vs Defence
-- ATTACK: Input: ' OR '1'='1
-- Results in: SELECT * FROM users WHERE username='' OR '1'='1'
-- Returns ALL users — authentication bypassed

-- ✗ VULNERABLE PHP CODE
$query = "SELECT * FROM users WHERE username='" . $_POST['user'] . "'";

-- ✓ SECURE PHP CODE — Parameterised query
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$_POST['user']]);

Prevention Controls for All Injection Types

  • SQL: Always use parameterised queries / prepared statements. Never concatenate user input into queries.
  • OS Command: Avoid OS command execution with user input. If unavoidable, use allowlist validation and escapeshellarg().
  • LDAP: Use safe LDAP APIs and escape all special characters from user input.
  • NoSQL: Validate and sanitise input; use ODM/ORM parameterisation where available.
  • All: Run SAST tools to detect injection risks at build time. Use WAF as a defence-in-depth layer.

Security Misconfiguration & Beyond

⚙️
A05 — Security Misconfiguration
The most commonly seen issue. Default credentials left active, unnecessary features enabled, overly permissive cloud storage, verbose error messages revealing stack traces, outdated software, and missing security headers. Automate configuration hardening with IaC and CIS benchmarks.
HardeningCIS BenchmarkIaC
📦
A06 — Vulnerable Components
Using components with known vulnerabilities — the Log4Shell (CVE-2021-44228) incident affected millions of systems. Maintain a current SBOM. Run SCA scans on every build. Subscribe to NVD and vendor security advisories. Patch within 30 days for Critical CVEs.
Log4ShellCVESCA
🔑
A07 — Auth Failures
Weak or broken authentication — credential stuffing, brute force, session hijacking, weak passwords. Implement MFA. Rate-limit login attempts. Use secure session management (random tokens, HTTPOnly+Secure, short timeouts). Never expose session IDs in URLs.
MFARate LimitingSessions
💾
A08 — Data Integrity Failures
Software and data integrity failures relate to code and infrastructure that do not protect against integrity violations — unsigned updates, insecure deserialisation, dependency confusion attacks. Verify integrity of all updates and serialised objects. Use digital signatures.
DeserialisationSigningSupply Chain
📊
A09 — Logging Failures
Insufficient logging and monitoring allows attackers to dwell in systems undetected. The average breach dwell time is 197 days. Log all auth events, access control failures, and high-value transactions. Alert on anomalies. Protect logs from tampering (WORM storage, centralised SIEM).
SIEMSIEMAlerting
🌐
A10 — SSRF
Server-Side Request Forgery — the attacker causes the server to make requests to unintended locations, potentially reaching internal services, cloud metadata APIs (AWS 169.254.169.254), or internal admin interfaces. Validate and sanitise all URLs. Implement network-level egress filtering.
SSRFEgress FilterCloud

Cross-Site Scripting (XSS)

XSS flaws occur when an application includes unvalidated user data in a new web page. Attackers can execute scripts in victims' browsers to hijack sessions, deface websites, redirect users, or steal credentials via keyloggers.

XSS TypeHow it WorksPrevention
Reflected XSSMalicious script reflected off server in error message or search resultOutput encoding, Content-Security-Policy header
Stored XSSScript stored in database, executed when other users view the dataInput sanitisation (DOMPurify), output encoding
DOM-based XSSClient-side script writes attacker-controlled data to DOM without sanitisationAvoid dangerous sinks (innerHTML), use textContent

Content Security Policy (CSP) Header

A strong CSP header is one of the most effective XSS mitigations. It tells the browser which sources are legitimate for scripts, styles, and other resources:

Content-Security-Policy: 
  default-src 'self';
  // script-src 'self' https://trusted-cdn.com;
  style-src 'self' 'unsafe-inline';
  object-src 'none';
  base-uri 'self';
05

Cloud Security Architecture

Shared Responsibility Model

The cornerstone of cloud security is understanding the Shared Responsibility Model — what the cloud provider secures and what the customer must secure. Misunderstanding this boundary is responsible for the majority of cloud security incidents.

ResponsibilityAWS / Azure / GCPCustomer
Physical infrastructure✓ Provider
Hypervisor / Host OS✓ Provider
Network controls✓ Provider (hardware)✓ Customer (config)
Identity & Access (IAM)Provides service✓ Customer owns config
Data encryptionProvides tools✓ Customer must enable
Application security✓ Customer fully
OS patching (EC2/VM)✓ Customer fully

Most Common Cloud Security Failures

  • S3 buckets / Azure Blob Storage left publicly accessible
  • Overprivileged IAM roles (using AdministratorAccess broadly)
  • Unencrypted EBS volumes or RDS databases
  • Security groups allowing 0.0.0.0/0 inbound on port 22/3389
  • CloudTrail / activity logging disabled
  • Multi-factor authentication not enforced on root/admin accounts

Zero Trust Architecture

Zero Trust is a security paradigm built on the principle of "Never trust, always verify." It assumes breach — treating every request as potentially malicious regardless of network location, explicitly verifying identity and context before granting access to any resource.

🆔
Identity as the Perimeter
In Zero Trust, the network perimeter is replaced by identity. Every access request is authenticated and authorised regardless of whether it originates inside or outside the corporate network. Implement strong MFA and context-aware access policies.
IAMMFAZTNA
🔬
Microsegmentation
Divide networks into small segments with strict east-west traffic controls. Even if an attacker compromises one workload, they cannot move laterally. Implement via AWS Security Groups, Azure NSGs, or Kubernetes Network Policies.
Network PolicyEast-WestK8s
📏
Least Privilege Access
Grant only the minimum permissions required to perform a task, for the minimum duration needed. Review and right-size IAM permissions quarterly. Use just-in-time (JIT) privileged access for administrative tasks — no standing privileged access.
Least PrivilegeJITPAM
🆔
VERIFY
Identity
📱
VERIFY
Device
📍
CHECK
Context
🔐
APPLY
Policy
GRANT
Min Access
📊
LOG
Everything

IAM Governance

Identity and Access Management is the single most important security control in cloud environments. Mismanaged IAM is the root cause of the majority of cloud breaches. A robust IAM governance program continuously monitors, audits, and right-sizes cloud permissions.

  • 1

    Never Use Root/Owner Accounts

    AWS root accounts and Azure Owner accounts must be locked away — MFA enabled, access keys deleted, and used only for the most critical account-level operations. Create named IAM users or service principals for all regular operations.

  • 2

    Use Roles, Not Users for Services

    EC2 instances, Lambda functions, and containers should use IAM Roles with instance profiles — never long-lived access keys stored in config files or environment variables. Roles provide short-lived, auto-rotating credentials.

  • 3

    Implement Permission Boundaries

    Use IAM Permission Boundaries and Service Control Policies (SCPs) in AWS Organizations to set maximum permissions across entire OUs. Even if a developer creates an overprivileged role, the SCP cap prevents it from being exploitable.

  • 4

    Regularly Audit with Access Analyser

    Use AWS IAM Access Analyser or Azure AD Access Reviews to identify over-permissioned roles, unused permissions, and external access grants. Right-size permissions quarterly using CloudTrail data to identify actually-used permissions.

AWS IAM POLICY — Least Privilege Example (S3 Read-Only for specific bucket)
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "s3:GetObject",
      "s3:ListBucket"
    ],
    "Resource": [
      "arn:aws:s3:::myapp-data-bucket",
      "arn:aws:s3:::myapp-data-bucket/*"
    ],
    "Condition": {
      "Bool": { "aws:SecureTransport": true }
    }
  }]
}

Infrastructure-as-Code Security

IaC tools — Terraform, CloudFormation, Pulumi — mean that infrastructure misconfigurations are now code bugs. Security scanning for IaC should be treated with the same rigour as application code scanning.

🔍
IaC Security Scanners
Checkov, Terrascan, and tfsec analyse Terraform/CloudFormation templates for misconfigurations before they are applied — finding open security groups, unencrypted storage, missing logging, and exposed endpoints in the PR stage, not after deployment.
CheckovTerrascantfsecKICS
📐
Policy-as-Code with OPA
Open Policy Agent (OPA) with Conftest enforces custom security policies on IaC templates. Write policies in Rego language: "All S3 buckets must have versioning enabled," "All EC2 instances must use approved AMIs." Policies run in the CI/CD pipeline automatically.
OPAConftestRego

Cloud Security Monitoring

Cloud-native monitoring tools provide visibility into threats, misconfigurations, and anomalous behaviour across the entire cloud estate. Combined with a SIEM, they enable rapid detection and response to security incidents.

🔭
CSPM — Cloud Security Posture
Cloud Security Posture Management continuously assesses your cloud configurations against security baselines (CIS Benchmarks, NIST). Prisma Cloud, AWS Security Hub, and Defender for Cloud provide real-time misconfiguration detection across multi-cloud environments.
Prisma CloudSecurity HubCIS
🚨
Threat Detection
AWS GuardDuty, Azure Sentinel, and GCP Security Command Center use ML-based anomaly detection to identify threats: unusual API calls, cryptocurrency mining, data exfiltration patterns, compromised credentials, and lateral movement attempts.
GuardDutySentinelML Detection
📈
Observability Stack
Centralise logs from all cloud services, applications, and security tools into a SIEM. Prometheus and Grafana for metrics; ELK or Splunk for log aggregation. Define alerting rules for high-risk events: root account login, IAM policy changes, security group modifications.
PrometheusGrafanaSplunk

Vikram's Enterprise Security Stack

  • SIEM: Centralised log aggregation from all banking platforms
  • Monitoring: Prometheus + Grafana + New Relic for application observability
  • Vulnerability Management: BlackDuck + Coverity for continuous scanning
  • Threat Modeling: Microsoft Threat Modeling Tool for architecture review
  • CI/CD Security: Jenkins with integrated SAST/DAST gates blocking critical findings