
Infrastructure Engineer
- 27 installs
- 7 repo stars
- Updated May 20, 2026
- daemon-blockint-tech/agentic-enteprises-skill
Guides cloud infrastructure design and implementation: IaC with Terraform/Pulumi, CI/CD pipelines, Kubernetes orchestration, networking, observability, and security hardening.
About
Guides infrastructure engineering across IaC (Terraform, Pulumi), CI/CD pipelines, Kubernetes orchestration, networking, observability, and security hardening. A developer uses it when designing cloud infrastructure, setting up Terraform, configuring Kubernetes, or building deployment pipelines.
- IaC modules with state management and drift detection
- VPC, load balancer, DNS, CDN, and private-endpoint network design
Infrastructure Engineer by the numbers
- 27 all-time installs (skills.sh)
- Ranked #797 of 1,039 Cloud & Infrastructure skills by installs in the Skillselion catalog
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/daemon-blockint-tech/agentic-enteprises-skill --skill infrastructure-engineerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 27 |
|---|---|
| repo stars | ★ 7 |
| Last updated | May 20, 2026 |
| Repository | daemon-blockint-tech/agentic-enteprises-skill ↗ |
What it does
Guides cloud infrastructure design and implementation: IaC with Terraform/Pulumi, CI/CD pipelines, Kubernetes orchestration, networking, observability, and security hardening.
Files
Infrastructure Engineer
Overview
Design and implement cloud infrastructure. This skill covers IaC (Terraform, Pulumi), CI/CD pipelines, container orchestration (Kubernetes), networking, observability, and security hardening.
Features
- Infrastructure as Code: Terraform modules, Pulumi stacks, state management, drift detection
- CI/CD pipelines: pipeline essentials, deployment strategies, environment promotion, rollback procedures
- Container orchestration: Kubernetes architecture, Helm charts, service mesh, autoscaling
- Networking: VPC design, load balancers, DNS, CDN, private endpoints
- Observability: metrics, logs, traces, alerting, dashboards
- Security hardening: IAM policies, encryption, network security, compliance controls
Usage
1. Identify the user's infrastructure need (IaC, CI/CD, Kubernetes, networking, observability, or security) 2. Follow the corresponding workflow below 3. Produce structured outputs: Terraform configs, pipeline definitions, Kubernetes manifests, or architecture diagrams
Examples
- User: "Set up Terraform for AWS"
Agent: Runs IaC workflow, creates module structure, configures state backend, produces VPC, EC2, and RDS resources
- User: "Build a CI/CD pipeline"
Agent: Runs CI/CD workflow, designs pipeline with build/test/deploy stages, adds environment promotion and rollback
- User: "Configure Kubernetes autoscaling"
Agent: Runs Kubernetes workflow, sets up HPA based on CPU/memory, configures cluster autoscaler, tests scaling behavior
When to Use
- Designing cloud or hybrid networks, compute, storage, and IAM patterns
- Building CI/CD, GitOps, Kubernetes, or IaC (Terraform/Pulumi/CloudFormation)
- Implementing observability, SRE practices, and infrastructure incident response
- Hardening infrastructure for security and compliance (SOC 2, ISO 27001, etc.)
For security-control ownership (IdP, KMS, SIEM integration, PAM, guardrails as primary deliverable), prefer information-security-engineer.
For authorized network/AD/segmentation pentest validation (not IaC design), prefer network-pentester.
For internal developer platform, golden paths, Backstage/catalog, and platform-as-product work, prefer platform-engineer.
When NOT to Use
- Data warehouse modeling, ETL, or analytics pipeline SLAs → use
data-warehouse-engineerordata-system-ops-lead - Data governance catalogs, quality SLAs, or steward workflows → use
data-architectordata-manager - LLM prompt/agent design or production guardrails → use
prompt-engineer - Technical documentation or research synthesis deliverables → use
tech-writer-researcher - Cross-service solution architecture before build → use
senior-system-architecture - Cloud reference architecture, landing zone, migration design → use
cloud-architect - Day-to-day managed cloud services (networking, RDS, serverless, cloud IAM) → use
cloud-engineer - K8s cluster workload deploy, upgrades, and in-cluster troubleshooting → use
cluster-deployment-engineer - Data center design, MEP, colo build, and facility commissioning → use
data-center-design-execution-lead - Physical compute utilization, supply forecast, consolidation, refresh → use
data-center-compute-supply-efficiency - Infrastructure org strategy, portfolio prioritization, board/CFO narratives → use
vp-of-infrastructure - Cloud program strategy, migration portfolio, CCoE, EA governance → use
vp-of-cloud - Customer RFP, discovery, PoC charter, solution handoff (not production build) → use
solutions-architect
Core Workflows
1. Infrastructure Design & Provisioning
Design checklist:
1. Define requirements
- Traffic patterns (steady, bursty, batch)
- Compliance needs (data residency, encryption)
- RTO/RPO targets
- Budget constraints
2. Choose compute model
| Model | When | Trade-off |
|---|---|---|
| VMs (EC2/GCE/VM) | Predictable workloads | Management overhead |
| Containers (EKS/GKE/AKS) | Microservices, portability | Orchestration complexity |
| Serverless (Lambda/Cloud Functions) | Event-driven, variable load | Cold start, limits |
| Bare metal | High performance, licensing | Full management burden |
3. Design network
- VPC/VNet with public/private subnets
- NAT Gateway for outbound-only workloads
- Transit Gateway for multi-VPC/VNet
- PrivateLink/Private Service Connect for SaaS
4. Provision with IaC
- Terraform for multi-cloud
- CloudFormation for AWS-only
- Pulumi for programmatic (Python/TS)
- Ansible for configuration management
2. CI/CD & Platform Automation
Pipeline essentials:
- Build → Test → Security scan → Deploy → Verify
- GitOps with ArgoCD/Flux for K8s
- Feature flags for progressive rollout
- Automated rollback on failure
3. Monitoring & Reliability
Observability stack:
- Metrics: Prometheus + Grafana, Datadog, CloudWatch
- Logs: ELK, Loki, Splunk
- Traces: Jaeger, Zipkin, AWS X-Ray
- Alerts: PagerDuty, Opsgenie, Alertmanager
Reliability patterns:
- Health checks: liveness, readiness, startup probes
- Circuit breakers: fail fast, degrade gracefully
- Rate limiting: token bucket, leaky bucket
- Bulkheads: isolate failure domains
4. Security & Compliance
Security by layer:
- Network: Security groups, NACLs, WAF, DDoS protection
- Identity: RBAC, least privilege, MFA, service accounts
- Data: Encryption at rest (KMS) and in transit (TLS 1.3)
- Application: Secrets management, vulnerability scanning
- Compliance: SOC 2, ISO 27001, GDPR, HIPAA controls
Cloud Infrastructure
VPC / VNet Design
Multi-AZ Architecture
VPC (10.0.0.0/16)
├── Public Subnet A (10.0.1.0/24) — AZ-a
│ ├── ALB/NLB
│ ├── NAT Gateway A
│ └── Bastion host
├── Public Subnet B (10.0.2.0/24) — AZ-b
│ └── NAT Gateway B
├── Private Subnet A (10.0.3.0/24) — AZ-a
│ ├── App tier (ECS/EKS/EC2)
│ └── RDS read replica
├── Private Subnet B (10.0.4.0/24) — AZ-b
│ ├── App tier
│ └── RDS primary
└── Database Subnet (10.0.5.0/24) — AZ-a,b
└── RDS, ElastiCache, MSKTraffic Flow Patterns
| Flow | Components |
|---|---|
| Internet → App | CloudFront/WAF → ALB → App in private subnet |
| App → Internet | Private subnet → NAT Gateway → Internet |
| Cross-VPC | VPC Peering or Transit Gateway |
| On-prem → Cloud | VPN or Direct Connect/ExpressRoute |
| SaaS → Private | VPC PrivateLink / Private Service Connect |
Compute
AWS
| Service | Use Case | When Not to Use |
|---|---|---|
| EC2 | Full control, lift-and-shift | Want serverless simplicity |
| ECS | Docker containers, AWS-native | Need K8s ecosystem |
| EKS | K8s, multi-cloud portability | Simple container needs |
| Fargate | Serverless containers | Need host access |
| Lambda | Event-driven, <15 min | Long-running, stateful |
| Batch | HPC, scheduled jobs | Real-time workloads |
GCP
| Service | Use Case |
|---|---|
| Compute Engine | VMs, disks, GPUs |
| GKE | Managed K8s |
| Cloud Run | Serverless containers |
| Cloud Functions | Event-driven functions |
| Cloud Batch | HPC workloads |
Azure
| Service | Use Case |
|---|---|
| VMs | IaaS workloads |
| AKS | Managed K8s |
| Container Instances | Simple containers |
| Functions | Event-driven |
| App Service | Web apps, APIs |
Storage
Object Storage
| Feature | AWS S3 | GCS | Azure Blob |
|---|---|---|---|
| Storage classes | Standard, IA, Glacier, Glacier Deep | Standard, Nearline, Coldline, Archive | Hot, Cool, Archive |
| Lifecycle policies | Yes | Yes | Yes |
| Versioning | Yes | Yes | Yes |
| Cross-region replication | Yes (CRR) | Yes (dual-region, multi-region) | Yes (GRS, GZRS) |
| Event notifications | S3 Events | Pub/Sub notifications | Event Grid |
Block Storage
| Use Case | AWS | GCP | Azure |
|---|---|---|---|
| Boot volumes | EBS (gp3, io2) | Persistent Disk (pd-ssd, pd-balanced) | Managed Disks (Premium SSD) |
| Shared storage | EFS | Filestore | Azure Files |
| High performance | io2 Block Express | Hyperdisk | Ultra Disk |
IAM & Identity
AWS IAM Best Practices
- Use IAM roles, not long-term access keys
- Apply least privilege with conditions
- Enable MFA for console access
- Use service-linked roles where available
- Regular access review (quarterly)
Cross-Cloud Identity
- OIDC: Federate identity across clouds (e.g., GitHub Actions → AWS via OIDC)
- Azure AD / Google Workspace: SSO across SaaS and cloud
- HashiCorp Vault: Dynamic secrets across clouds
Policy Structure
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringEquals": {"aws:RequestedRegion": "us-east-1"},
"Bool": {"aws:MultiFactorAuthPresent": "true"}
}
}]
}Networking
Load Balancers
| Type | Layer | Use Case |
|---|---|---|
| Application (ALB/GLB/Azure ALB) | L7 | HTTP/HTTPS, path-based routing |
| Network (NLB) | L4 | TCP/UDP, high throughput, static IP |
| Classic (CLB) | L4/L7 | Legacy, avoid for new |
| Global (GCLB / Azure Front Door) | L7 | Multi-region, anycast |
DNS & Traffic Management
- Route 53: Weighted, latency-based, geo, failover routing
- Cloud DNS: Global anycast, low TTL for failover
- Azure DNS: Integrated with Traffic Manager
CDN
- CloudFront: Edge caching, signed URLs, origin shield
- Cloud CDN: GCP-native, integrates with GCLB
- Azure CDN / Front Door: Rules engine, WAF
Serverless Patterns
Event-Driven Architecture
Event Source → Event Bus → Lambda/Function → TargetEvent sources:
- S3, DynamoDB Streams, Kinesis, SNS, SQS, EventBridge
- API Gateway, ALB, CloudWatch Events
- Third-party SaaS (via EventBridge)
Cold Start Mitigation
- Provisioned concurrency (Lambda)
- Minimum instances (Cloud Run)
- Always-ready plans (Azure Functions Premium)
- Keep-alive pings (less reliable)
Cost Optimization
| Technique | Savings | Applies To |
|---|---|---|
| Reserved Instances / CUDs | 30-70% | Steady-state compute |
| Savings Plans | Flexible commitment | AWS compute |
| Spot / Preemptible | 60-90% | Fault-tolerant workloads |
| Storage tiering | 50-80% | Infrequently accessed data |
| Auto-shutdown | 20-40% | Dev/test environments |
| Right-sizing | 10-30% | Over-provisioned resources |
Disaster Recovery
RTO/RPO Targets by Tier
| Tier | RTO | RPO | Pattern |
|---|---|---|---|
| Tier 1 | <1 hour | 0 | Active-active multi-region |
| Tier 2 | <4 hours | <1 hour | Pilot light + auto-failover |
| Tier 3 | <24 hours | <24 hours | Warm standby |
| Tier 4 | <72 hours | <7 days | Backup + restore |
Multi-Region Patterns
- Read replica: Async replication, promote on failover
- Global database: Aurora Global, Cosmos DB, Spanner
- Active-active: Multi-master writes, conflict resolution needed
DevOps & Platform Engineering
CI/CD Pipeline Design
Pipeline Stages
Code Commit → Build → Unit Test → Integration Test → Security Scan → Deploy Staging → E2E Test → Deploy Prod → VerifyGit Branching Strategies
| Strategy | Best For | Complexity |
|---|---|---|
| Trunk-based | Fast iterations, small teams | Low |
| GitHub Flow | Simple web apps | Low |
| GitLab Flow | Environment per branch | Medium |
| GitFlow | Released software with versions | High |
Pipeline as Code Examples
GitHub Actions:
name: CI/CD
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm ci
- run: npm test
- run: npm run build
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Deploy to AWS
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.DEPLOY_ROLE_ARN }}
- run: aws ecs update-service --cluster prod --service app --force-new-deploymentGitLab CI:
stages: [build, test, deploy]
build:
stage: build
script: docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
test:
stage: test
script: pytest
coverage: '/TOTAL.+?([0-9]{1,3}%)/'
deploy_prod:
stage: deploy
script: helm upgrade --install app ./chart
environment:
name: production
when: manualContainerization
Dockerfile Best Practices
# Multi-stage build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
FROM node:20-alpine
RUN apk add --no-cache dumb-init
USER node
WORKDIR /app
COPY --from=builder --chown=node:node /app/dist ./dist
COPY --from=builder --chown=node:node /app/node_modules ./node_modules
EXPOSE 3000
ENTRYPOINT ["dumb-init", "node", "dist/main.js"]Kubernetes Patterns
Deployment with HPA:
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
spec:
replicas: 3
selector:
matchLabels:
app: app
template:
metadata:
labels:
app: app
spec:
containers:
- name: app
image: app:v1.2.0
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 10
periodSeconds: 5
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: app
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70ConfigMap + Secret:
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
DB_HOST: "postgres"
LOG_LEVEL: "info"
---
apiVersion: v1
kind: Secret
metadata:
name: app-secrets
type: Opaque
stringData:
DB_PASSWORD: "<encrypted>"
API_KEY: "<encrypted>"Infrastructure as Code
Terraform Patterns
Module structure:
modules/
├── vpc/
│ ├── main.tf
│ ├── variables.tf
│ └── outputs.tf
├── ecs/
├── rds/
└── s3/State management:
- Use remote backend (S3 + DynamoDB, GCS, Azure Storage)
- Enable state locking
- Separate state per environment
Workspace strategy:
terraform workspace new prod
terraform workspace select prod
terraform apply -var-file=prod.tfvarsPulumi Example
import pulumi
from pulumi_aws import s3
bucket = s3.Bucket("my-bucket",
versioning=s3.BucketVersioningArgs(
enabled=True
))
pulumi.export("bucket_name", bucket.id)GitOps
ArgoCD Setup
# Application manifest
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/org/gitops-repo
targetRevision: HEAD
path: overlays/production
destination:
server: https://kubernetes.default.svc
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=trueFlux Setup
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: my-app
namespace: flux-system
spec:
interval: 1m
url: https://github.com/org/gitops-repo
ref:
branch: main
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: my-app
namespace: flux-system
spec:
interval: 10m
path: ./overlays/production
prune: true
sourceRef:
kind: GitRepository
name: my-appSRE Practices
SLI / SLO / SLA
| Term | Definition | Example |
|---|---|---|
| SLI | Service Level Indicator | "Request latency < 200ms" |
| SLO | Service Level Objective | "99.9% of requests < 200ms" |
| SLA | Service Level Agreement | "< 0.1% downtime or credit" |
Error Budget
Error Budget = 100% - SLO
Example: SLO = 99.9% → Error Budget = 0.1% = 43.8 min/month
Policy: If error budget is consumed, freeze feature launches until recovered.Toil Reduction
- Automate repeated manual tasks
- Self-service platforms for developers
- Standardized templates and modules
- Target: <50% of time on toil
Monitoring & Alerting
Metrics Stack
| Component | Open Source | Commercial |
|---|---|---|
| Collection | Prometheus, Telegraf | Datadog Agent, Splunk UF |
| Storage | Prometheus TSDB, Thanos, Cortex | Datadog, New Relic |
| Visualization | Grafana | Datadog, New Relic |
| Alerting | Alertmanager | PagerDuty, Opsgenie |
Key Metrics
| Category | Metric | Alert |
|---|---|---|
| Latency | p50, p95, p99 response time | p95 > 500ms |
| Traffic | Requests per second | Drop > 50% |
| Errors | Error rate | > 0.1% for 5 min |
| Saturation | CPU, memory, disk, connections | > 80% |
Alerting Rules
# Prometheus alert rule
groups:
- name: app_alerts
rules:
- alert: HighErrorRate
expr: rate(http_requests_total{status=~"5.."}[5m]) / rate(http_requests_total[5m]) > 0.01
for: 5m
labels:
severity: critical
annotations:
summary: "High error rate detected"Incident Response
On-Call Setup
- Primary + secondary rotation
- Escalation: 15 min → 30 min → manager
- Runbook required for every alert
- Blameless post-mortems within 48 hours
Post-Mortem Template
## Incident [ID] — [Date]
### Summary
What happened in 2 sentences.
### Timeline
| Time | Event |
|---|---|
| 10:00 | Alert fired |
| 10:15 | On-call acknowledged |
| 10:30 | Mitigation applied |
| 11:00 | Service restored |
### Root Cause
5 Whys analysis.
### Impact
- Duration: 1 hour
- Affected users: ~500
- Data loss: None
### Action Items
| Action | Owner | Due |
|---|---|---|
| Fix X | @alice | Friday |
| Add monitoring for Y | @bob | Next week |Hybrid & On-Premise Infrastructure
Virtualization
VMware vSphere
| Component | Purpose |
|---|---|
| ESXi | Hypervisor, runs VMs |
| vCenter | Management, orchestration |
| vSAN | Software-defined storage |
| NSX | Software-defined networking |
| vRealize | Automation, monitoring |
KVM / QEMU
- Open source alternative to VMware
- Proxmox VE: Web UI for KVM + LXC
- oVirt: Enterprise virtualization management
Hyper-V (Microsoft)
- Integrated with Windows Server
- Hyper-V Replica for DR
- Nested virtualization support
Container on Bare Metal
| Orchestrator | Use Case |
|---|---|
| Kubernetes (Kubeadm, K3s, RKE2) | Production workloads |
| Nomad | Mixed workloads (containers + binaries) |
| Docker Swarm | Simple container clusters |
Networking (On-Premise)
Core Concepts
- VLANs: Logical network segmentation (L2)
- Subnets: IP range allocation (L3)
- Routing: Static vs dynamic (OSPF, BGP)
- Switching: Access, trunk, L3 switches
Network Topology
Internet
└── Firewall (Palo Alto, Fortinet, pfSense)
└── Core Switch (L3)
├── DMZ VLAN
├── Production VLAN
├── Management VLAN
└── Storage VLAN (iSCSI/NFS)SD-WAN
- Replace MPLS with internet + overlay
- Cloud on-ramps for SaaS optimization
- Vendors: Cisco Meraki, Fortinet, VMware VeloCloud
Storage
SAN (Storage Area Network)
- Protocol: Fibre Channel (FC), iSCSI, FCoE
- Use case: Databases, high-performance shared storage
- Vendors: Dell EMC, NetApp, HPE, Pure Storage
NAS (Network Attached Storage)
- Protocol: NFS, SMB/CIFS
- Use case: File shares, home directories
- Vendors: NetApp, QNAP, Synology
Object Storage (On-Premise)
- MinIO: S3-compatible, cloud-native
- Ceph: Distributed, unified block/file/object
- Swift: OpenStack object storage
Storage Tiers
| Tier | Media | Use Case | Cost |
|---|---|---|---|
| Hot | NVMe SSD | Active databases | High |
| Warm | SATA SSD | Recent analytics | Medium |
| Cold | HDD | Archival, backups | Low |
| Frozen | Tape / Object | Long-term compliance | Very Low |
Hybrid Cloud Connectivity
VPN
- Site-to-site: IPsec VPN between on-prem and cloud
- Client VPN: Remote access for users
- Limitation: Bandwidth and latency constraints
Direct Connect / ExpressRoute / Cloud Interconnect
- Dedicated: Private fiber connection to cloud
- Benefits: Lower latency, higher bandwidth, predictable pricing
- Use case: Hybrid databases, replication, large data transfers
Hybrid Patterns
| Pattern | Description | Use Case |
|---|---|---|
| Burst to cloud | On-prem handles baseline, cloud for spikes | Seasonal workloads |
| DR to cloud | Primary on-prem, DR in cloud | Cost-effective DR |
| Data gravity | Data on-prem, compute in cloud | Compliance, latency |
| Cloud on-ramp | SD-WAN to cloud POP | SaaS optimization |
Physical Data Center
Design Considerations
- Power: UPS, generators, dual feeds, PDU redundancy
- Cooling: Hot/cold aisle containment, CRAC/CRAH units
- Racking: 42U-52U racks, weight limits, cable management
- Fire suppression: FM-200, inert gas (not water)
- Security: Biometric access, mantraps, CCTV
Tier Classification (Uptime Institute)
| Tier | Availability | Redundancy | Downtime/Year |
|---|---|---|---|
| I | 99.671% | None | 28.8 hours |
| II | 99.741% | Partial | 22.7 hours |
| III | 99.982% | N+1 | 1.6 hours |
| IV | 99.995% | 2N+1 | 26.3 minutes |
Hardware Lifecycle
Procurement to Decommission
1. Planning: Capacity forecast, budget cycle 2. Procurement: Vendor selection, lead times 3. Deployment: Racking, cabling, imaging 4. Operation: Monitoring, maintenance 5. Refresh: 3-5 year replacement cycle 6. Decommission: Data wipe, disposal, asset recovery
Asset Management
- Track: serial numbers, warranty, location, owner
- Tools: ServiceNow, Snipe-IT, GLPI
- Audit: Annual physical verification
Migration Strategies
Cloud Migration (7 Rs)
| Strategy | Effort | When |
|---|---|---|
| Retire | Low | No longer needed |
| Retain | Low | Not ready to move |
| Rehost (lift-and-shift) | Low | Quick move, optimize later |
| Relocate | Low | VMware to VMware on cloud |
| Repurchase | Medium | SaaS replacement |
| Replatform | Medium | Move + minor changes |
| Refactor | High | Cloud-native redesign |
Database Migration
1. Assessment: Schema compatibility, feature gaps 2. Replication: Set up ongoing sync (DMS, Striim, Attunity) 3. Cutover: Brief downtime or blue-green switch 4. Validation: Data consistency checks, performance 5. Decommission: Stop replication, shut down source
Security & Compliance
Security Hardening
Compute Hardening
Linux (CIS Benchmarks):
- Disable root SSH login
- Enforce password complexity (PAM)
- Configure AIDE for file integrity monitoring
- Enable auditd for system call logging
- Apply security updates within 30 days
- Disable unnecessary services
Windows (CIS/Security Baselines):
- Enable Windows Defender + ASR rules
- Configure AppLocker / WDAC
- Disable SMBv1, LLMNR, NetBIOS
- Enforce Credential Guard
- Apply Microsoft Security Baselines via GPO
Containers:
- Run as non-root user
- Read-only root filesystem
- Drop unnecessary capabilities
- No privileged containers in production
- Scan images for CVEs (Trivy, Clair, Snyk)
- Distroless or minimal base images
Network Security
VPC Security:
- Default deny all inbound
- Explicit allow rules by service/port
- No 0.0.0.0/0 except for public-facing LB
- VPC Flow Logs for traffic analysis
- Private subnets for workloads
DDoS Protection:
- AWS Shield Advanced / Cloud Armor / Azure DDoS
- CDN for absorption
- Rate limiting at edge
- Anycast for distribution
Identity & Access Management
RBAC Design
# Kubernetes RBAC example
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: app-developer
namespace: app
rules:
- apiGroups: [""]
resources: ["pods", "services", "configmaps"]
verbs: ["get", "list", "watch", "create", "update", "patch"]
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["get", "list", "watch", "update", "patch"]Zero Trust Principles
1. Verify explicitly: Authenticate and authorize every access request 2. Least privilege: Minimum permissions for minimum time 3. Assume breach: Micro-segmentation, continuous monitoring
Secrets Management
| Tool | Best For | Deployment |
|---|---|---|
| HashiCorp Vault | Enterprise, dynamic secrets | Self-hosted or HCP |
| AWS Secrets Manager | AWS-native | Managed |
| Azure Key Vault | Azure-native | Managed |
| Google Secret Manager | GCP-native | Managed |
| Sealed Secrets / External Secrets | K8s GitOps | Open source |
Vault policy example:
path "database/creds/app" {
capabilities = ["read"]
}
path "secret/data/app/*" {
capabilities = ["read"]
allowed_parameters = {
"environment" = ["prod", "staging"]
}
}Vulnerability Management
Scanning Pipeline
Source Code → SAST (Semgrep, SonarQube)
Dependencies → SCA (Snyk, Dependabot)
Container Image → Image Scan (Trivy, Clair)
Infrastructure → IaC Scan (Checkov, tfsec)
Runtime → RASP / CSPM (Wiz, Orca)Patch Management
| Severity | SLA | Process |
|---|---|---|
| Critical (CVSS 9.0+) | 24-48 hours | Emergency change |
| High (CVSS 7.0-8.9) | 7 days | Standard change |
| Medium (CVSS 4.0-6.9) | 30 days | Scheduled maintenance |
| Low (CVSS 0.1-3.9) | 90 days | Next update cycle |
Compliance Frameworks
SOC 2 Type II
Trust Services Criteria:
- CC1: Control environment
- CC2: Communication and information
- CC3: Risk assessment
- CC4: Monitoring activities
- CC5: Control activities
- CC6: Logical and physical access controls
- CC7: System operations
- CC8: Change management
- CC9: Risk mitigation
ISO 27001
Key domains:
- Information security policies
- Organization of information security
- Human resource security
- Asset management
- Access control
- Cryptography
- Physical security
- Operations security
- Communications security
- System acquisition and development
- Supplier relationships
- Incident management
- Business continuity
- Compliance
GDPR (if applicable)
- Data inventory and classification
- Privacy by design
- Consent management
- Right to erasure
- Data portability
- Breach notification (72 hours)
- DPO appointment (if required)
Encryption
At Rest
- Database: Transparent Data Encryption (TDE)
- Storage: AES-256-GCM (managed keys or customer-managed)
- Backups: Encrypted before leaving production
- Key rotation: Annual or on suspected compromise
In Transit
- TLS 1.3 minimum for all external traffic
- mTLS for service-to-service in zero-trust environments
- Certificate management: Auto-renewal, monitoring expiry
Key Management
- Use cloud KMS or HashiCorp Vault
- Separate keys by environment
- Envelope encryption: DEK encrypted by KEK
- Audit all key usage
Incident Response
Security Incident Severity
| Level | Definition | Example |
|---|---|---|
| Critical | Active data breach, ransomware | Unauthorized access to production DB |
| High | Potential breach, active attack | Failed privilege escalation attempt |
| Medium | Policy violation, malware | Unapproved software installation |
| Low | Attempted attack, reconnaissance | Port scan from unknown IP |
Response Playbook
1. Contain: Isolate affected systems 2. Eradicate: Remove threat actor access 3. Recover: Restore from clean backups 4. Post-incident: Forensics, lessons learned
Compliance Automation
Policy as Code
# Terraform Sentinel / OPA Rego
package terraform.aws.security
deny[msg] {
resource := input.resource_changes[_]
resource.type == "aws_security_group"
resource.change.after.ingress[_].cidr_blocks[_] == "0.0.0.0/0"
msg := sprintf("Security group %s allows unrestricted ingress", [resource.name])
}Continuous Compliance
- Terraform plan scanning (Checkov, tfsec, terrascan)
- K8s admission controllers (OPA Gatekeeper, Kyverno)
- Cloud posture management (Wiz, Orca, Prisma Cloud)
- Scheduled compliance audits ( ScoutSuite, Prowler, Steampipe)
Audit Evidence
- Maintain evidence repository (S3, SharePoint)
- Automate evidence collection where possible
- Review access logs quarterly
- Document exceptions with justification