Introduction
Cloud security is a shared responsibility between you and your cloud provider. While providers secure the underlying infrastructure, you’re responsible for securing your data, access, and configurations.
This guide covers essential cloud security practices across identity, networking, data, and compliance.
Cloud Security Fundamentals
Shared Responsibility Model
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SHARED RESPONSIBILITY MODEL โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ AWS / Azure / GCP โ โ
โ โ โ โ
โ โ Provider Responsibility (Security OF the Cloud): โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โข Physical infrastructure โ โ โ
โ โ โ โข Network infrastructure โ โ โ
โ โ โ โข Hypervisor/Host security โ โ โ
โ โ โ โข Global services availability โ โ โ
โ โ โ โข Hardware compliance โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โผ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Customer Responsibility โ โ
โ โ (Security IN the Cloud): โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โข Data (encryption, access) โ โ โ
โ โ โ โข Applications (code, config) โ โ โ
โ โ โ โข Identity and Access Management โ โ โ
โ โ โ โข Network configuration โ โ โ
โ โ โ โข OS and runtime (if using VMs/containers) โ โ โ
โ โ โ โข Client-side data โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Security Principles
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLOUD SECURITY PRINCIPLES โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 1. LEAST PRIVILEGE โ โ
โ โ Grant only the permissions needed, nothing more โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 2. DEFENSE IN DEPTH โ โ
โ โ Multiple layers of security controls โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 3. ZERO TRUST โ โ
โ โ Never trust, always verify - inside and outside โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 4. AUTOMATION โ โ
โ โ Automate security responses and compliance checks โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 5. SECURE BY DEFAULT โ โ
โ โ Safe configurations out of the box โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Identity and Access Management
Identity and Access Management (IAM)
// AWS IAM Policy - Least Privilege Example
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Condition": {
"IpAddress": {
"aws:SourceIp": "10.0.0.0/8"
},
"Bool": {
"aws:MultiFactorAuthPresent": "true"
}
}
},
{
"Effect": "Deny",
"Action": "s3:DeleteObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
IAM Best Practices
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ IAM BEST PRACTICES โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ Use IAM Users Only for Programmatic Access โ โ
โ โ โข Use roles for human access โ โ
โ โ โข Use federated identity (SSO) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ Enable MFA for All Users โ โ
โ โ โข Especially for console and root โ โ
โ โ โข Use hardware MFA for privileged users โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ Use Roles, Not Long-Term Credentials โ โ
โ โ โข Assume roles for temporary access โ โ
โ โ โข No access keys in code or config files โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ Implement Permission Boundaries โ โ
โ โ โข Set maximum permissions for users/roles โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ Regular Access Reviews โ โ
โ โ โข Audit who has access to what โ โ
โ โ โข Remove unnecessary access โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Role-Based Access Control
# Kubernetes RBAC Example
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: production
name: app-reader
rules:
- apiGroups: [""]
resources: ["pods", "services", "configmaps"]
verbs: ["get", "list", "watch"]
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: developers-app-reader
namespace: production
subjects:
- kind: Group
name: developers
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: app-reader
apiGroup: rbac.authorization.k8s.io
Network Security
Network Segmentation
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLOUD NETWORK SEGMENTATION โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Traditional: Modern (Zero Trust): โ
โ โ
โ โโโโโโโโโโโ โโโโโโโโโโโ โ
โ โ Public โ โ Web โ โ
โ โ Internetโ โ Tier โ โ
โ โโโโโฌโโโโ โโโโโฌโโโโ โ
โ โ โ โ
โ โผ โผ โ
โ โโโโโโโโโโโ โโโโโโโโโโโ โ
โ โ DMZ โ โ App โ โ
โ โ (ALB) โ โ Tier โ โ
โ โโโโโฌโโโโ โโโโโฌโโโโ โ
โ โ โ โ
โ โผ โผ โ
โ โโโโโโโโโโโ โโโโโโโโโโโ โ
โ โPrivate โ โ Data โ โ
โ โSubnet โ โ Tier โ โ
โ โโโโโโโโโโโ โโโโโโโโโโโ โ
โ โ
โ Everything inside โ Each tier verifies โ
โ can talk to โ every request โ
โ everything โ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Security Groups / Firewall Rules
# Terraform - AWS Security Groups
# Web Tier Security Group
resource "aws_security_group" "web" {
name = "web-tier-sg"
description = "Security group for web tier"
vpc_id = module.vpc.vpc_id
# Ingress - Allow HTTP/HTTPS from anywhere
ingress {
description = "HTTP"
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
description = "HTTPS"
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
# Ingress - Allow SSH from bastion only
ingress {
description = "SSH from bastion"
from_port = 22
to_port = 22
protocol = "tcp"
security_groups = [aws_security_group.bastion.id]
}
# Egress - Allow all outbound
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "web-tier-sg"
}
}
# App Tier Security Group
resource "aws_security_group" "app" {
name = "app-tier-sg"
description = "Security group for app tier"
vpc_id = module.vpc.vpc_id
# Only allow traffic from web tier
ingress {
description = "App traffic from web tier"
from_port = 8080
to_port = 8080
protocol = "tcp"
security_groups = [aws_security_group.web.id]
}
# Allow outbound to database
egress {
description = "Database traffic"
from_port = 5432
to_port = 5432
protocol = "tcp"
security_groups = [aws_security_group.database.id]
}
}
# Database Tier Security Group
resource "aws_security_group" "database" {
name = "database-tier-sg"
description = "Security group for database tier"
vpc_id = module.vpc.vpc_id
# Only allow traffic from app tier
ingress {
description = "PostgreSQL from app tier"
from_port = 5432
to_port = 5432
protocol = "tcp"
security_groups = [aws_security_group.app.id]
}
}
Data Protection
Encryption
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DATA ENCRYPTION โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Data at Rest: โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Storage Services: โ โ
โ โ โข AWS: S3 (SSE-S3, SSE-KMS, SSE-C) โ โ
โ โ โข Azure: Storage (AES-256) โ โ
โ โ โข GCP: Cloud Storage (AES-256) โ โ
โ โ โ โ
โ โ Databases: โ โ
โ โ โข AWS: RDS, DynamoDB (encryption at rest) โ โ
โ โ โข Azure: SQL Database, Cosmos DB โ โ
โ โ โข GCP: Cloud SQL, Firestore โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ Data in Transit: โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โข TLS 1.2+ for all network communication โ โ
โ โ โข Certificate management (ACM, Certificate Manager) โ โ
โ โ โข Perfect Forward Secrecy (PFS) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ Key Management: โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โข AWS: KMS (Key Management Service) โ โ
โ โ โข Azure: Key Vault โ โ
โ โ โข GCP: Cloud KMS โ โ
โ โ โ โ
โ โ Best Practices: โ โ
โ โ โข Use customer-managed keys (CMK) โ โ
โ โ โข Rotate keys regularly โ โ
โ โ โข Use envelope encryption for large data โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Data Classification
# Terraform - S3 Bucket with encryption and versioning
resource "aws_s3_bucket" "sensitive_data" {
bucket = "company-sensitive-data"
tags = {
Name = "sensitive-data"
DataClassification = "confidential"
}
}
resource "aws_s3_bucket_server_side_encryption_configuration" "sensitive_data" {
bucket = aws_s3_bucket.sensitive_data.id
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "aws:kms"
kms_master_key_id = aws_kms_key.s3_encryption.arn
}
}
}
resource "aws_s3_bucket_versioning" "sensitive_data" {
bucket = aws_s3_bucket.sensitive_data.id
versioning_configuration {
status = "Enabled"
}
}
resource "aws_s3_bucket_public_access_block" "sensitive_data" {
bucket = aws_s3_bucket.sensitive_data.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
# Block sensitive data uploads without encryption
resource "aws_s3_bucket_policy" "enforce_encryption" {
bucket = aws_s3_bucket.sensitive_data.id
policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Sid = "DenyUnencryptedObjectUploads"
Effect = "Deny"
Principal = "*"
Action = "s3:PutObject"
Resource = "${aws_s3_bucket.sensitive_data.arn}/*"
Condition = {
Bool = {
"aws:SecureTransport" = "false"
}
}
}]
})
}
Compliance
Common Compliance Frameworks
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ COMPLIANCE FRAMEWORKS โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ SOC 2 โ โ
โ โ โข Security, Availability, Confidentiality โ โ
โ โ โข Trust service criteria โ โ
โ โ โข Annual audits โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ GDPR (EU) โ โ
โ โ โข Personal data protection โ โ
โ โ โข Data subject rights โ โ
โ โ โข 72-hour breach notification โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ HIPAA (US Healthcare) โ โ
โ โ โข PHI (Protected Health Information) โ โ
โ โ โข Technical and administrative safeguards โ โ
โ โ โข Business associate agreements โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ PCI DSS (Payments) โ โ
โ โ โข Cardholder data protection โ โ
โ โ โข Network security, access control โ โ
โ โ โข Annual assessment required โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ISO 27001 โ โ
โ โ โข Information security management โ โ
โ โ โข ISMS certification โ โ
โ โ โข Third-party audits โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Cloud Compliance Tools
# AWS Config Rules - Compliance as Code
resource "aws_config_rule" "s3_encrypted" {
name = "s3-bucket-encryption-enabled"
source {
owner = "AWS"
source_identifier = "S3_BUCKET_SERVER_SIDE_ENCRYPTION_ENABLED"
}
scope {
resource_types = ["AWS::S3::Bucket"]
}
tags = {
ComplianceType = "SECURITY"
}
}
resource "aws_config_rule" "mfa_enabled" {
name = "iam-mfa-enabled-for-iam-user"
source {
owner = "AWS"
source_identifier = "IAM_USER_MFA_ENABLED"
}
scope {
resource_types = ["AWS::IAM::User"]
}
}
resource "aws_config_rule" "security_group_open" {
name = "security-groups-no-unrestricted-ssh"
source {
owner = "AWS"
source_identifier = "INCOMING_SSH_DISABLED"
}
scope {
resource_types = ["AWS::EC2::SecurityGroup"]
}
}
Security Monitoring
CloudTrail and Monitoring
# Terraform - CloudTrail with organization-wide logging
resource "aws_cloudtrail" "organization" {
name = "organization-trail"
s3_bucket_name = aws_s3_bucket.cloudtrail.id
is_organization_trail = true
enable_log_file_validation = true
is_multi_region_trail = true
include_global_service_events = true
event_selector {
read_write_type = "All"
include_management_events = true
data_resource {
type = "AWS::S3::Bucket"
values = ["arn:aws:s3:::*"]
}
}
tags = {
Name = "organization-trail"
}
}
# CloudWatch Logs - Centralized logging
resource "aws_cloudwatch_log_group" "vpc_flow_logs" {
name = "/aws/vpc/flow-logs"
retention_in_days = 90
tags = {
Environment = "production"
}
}
resource "aws_flow_log" "vpc" {
iam_role_arn = aws_iam_role.flow_log.arn
log_destination = aws_cloudwatch_log_group.vpc_flow_logs.arn
traffic_type = "ALL"
vpc_id = aws_vpc.main.id
}
Security Event Monitoring
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SECURITY MONITORING ARCHITECTURE โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Sources โโโโโบโ Aggregation โโโโโบโ Analysis โ โ
โ โ โ โ โ โ โ โ
โ โ โข CloudTrail โ โ โข CloudWatch โ โ โข GuardDuty โ โ
โ โ โข VPC Flow โ โ Logs โ โ โข Security โ โ
โ โ โข Config โ โ โข S3 Events โ โ Hub โ โ
โ โ โข API Calls โ โ โข EventBridgeโ โ โข SIEM โ โ
โ โ โข DNS Logs โ โ โ โ โข Custom โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโฌโโโโโโโโ โ
โ โ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Response & Alerting โ โ
โ โ โข SNS notifications โ โ
โ โ โข Security incident response โ โ
โ โ โข Automated remediation โ โ
โ โ โข SOAR integration โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Security Automation
Automated Remediation
# AWS Lambda - Auto-remediate unsecured S3 buckets
import json
import boto3
def lambda_handler(event, context):
# Get bucket name from event
bucket_name = event['detail']['requestParameters']['bucketName']
s3_client = boto3.client('s3')
# Check if bucket is public
try:
block_public_acls = s3_client.get_public_access_block(
Bucket=bucket_name
)
public_access = block_public_acls.get('PublicAccessBlockConfiguration', {})
if not all([
public_access.get('BlockPublicAcls'),
public_access.get('BlockPublicPolicy'),
public_access.get('IgnorePublicAcls'),
public_access.get('RestrictPublicBuckets')
]):
# Apply public access block
s3_client.put_public_access_block(
Bucket=bucket_name,
PublicAccessBlockConfiguration={
'BlockPublicAcls': True,
'BlockPublicPolicy': True,
'IgnorePublicAcls': True,
'RestrictPublicBuckets': True
}
)
print(f"Fixed public access for bucket: {bucket_name}")
except s3_client.exceptions.NoSuchPublicAccessBlockConfiguration:
# Bucket doesn't have any protection - apply it
s3_client.put_public_access_block(
Bucket=bucket_name,
PublicAccessBlockConfiguration={
'BlockPublicAcls': True,
'BlockPublicPolicy': True,
'IgnorePublicAcls': True,
'RestrictPublicBuckets': True
}
)
return {
'statusCode': 200,
'body': json.dumps('Completed')
}
Incident Response
Cloud Security Incident Response Plan
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ INCIDENT RESPONSE PHASES โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 1. PREPARATION โ โ
โ โ โข Define incident response team โ โ
โ โ โข Document procedures โ โ
โ โ โข Set up communication channels โ โ
โ โ โข Enable logging and monitoring โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 2. DETECTION & ANALYSIS โ โ
โ โ โข Identify the incident โ โ
โ โ โข Assess scope and severity โ โ
โ โ โข Determine root cause โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 3. CONTAINMENT โ โ
โ โ โข Isolate affected systems โ โ
โ โ โข Preserve evidence โ โ
โ โ โข Stop the bleeding โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 4. ERADICATION & RECOVERY โ โ
โ โ โข Remove threat โ โ
โ โ โข Restore clean systems โ โ
โ โ โข Verify recovery โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 5. POST-INCIDENT ACTIVITIES โ โ
โ โ โข Document lessons learned โ โ
โ โ โข Update procedures โ โ
โ โ โข Implement improvements โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Conclusion
Cloud security requires a comprehensive approach. Key takeaways:
- Shared responsibility - Provider secures infrastructure, you secure your data and access
- Least privilege - Grant minimum permissions required
- Defense in depth - Multiple layers of security controls
- Automate - Use IaC, automated remediation, and compliance checks
- Monitor - Continuous logging, alerting, and incident response
Security is not a product but a process. Regular reviews, updates, and improvements are essential.
Comments