CCSP · Domain 2 · 20%

Bảo mật dữ liệu đám mây

Cloud Data Security

Domain trọng tâm nhất của CCSP (20%): phân loại dữ liệu, mã hóa CSE/SSE/CMEK/BYOK/HYOK, quản lý khóa với AWS KMS/Azure Key Vault/GCP KMS, DLP, data residency, bảo mật object storage và vòng đời dữ liệu trong đám mây.

Mục tiêu chương / Learning objectives

1. Lý thuyết cốt lõi / Core theory

1.1. Phân loại dữ liệu trong đám mây (Data classification in cloud)

Phân loại dữ liệu là bước đầu tiên và bắt buộc của data security. Trong môi trường đám mây, có hai phương pháp chính:

Khái niệm CCSP then chốt — Data Custody vs. Data Ownership: Trong cloud, Data Owner (tổ chức/cá nhân tạo dữ liệu) vẫn chịu trách nhiệm pháp lý về dữ liệu, dù Data Custodian (CSP) là người lưu trữ vật lý. GDPR Article 28 quy định CSP là "Data Processor" phải ký Data Processing Agreement (DPA) với customer là "Data Controller."

1.2. Mã hóa đám mây — CSE, SSE, CMEK, BYOK, HYOK (Cloud encryption models)

CCSP yêu cầu hiểu sâu các mô hình mã hóa và khi nào dùng mô hình nào:

⚠️ So sánh BYOK vs HYOK cho đề thi: BYOK = key nhập vào cloud (CSP có thể lý thuyết access). HYOK = key luôn on-prem (CSP chỉ dùng key qua API call, không có key material). HYOK = maximum sovereignty, BYOK = good balance. Ngân hàng Việt Nam thường cần HYOK hoặc CMEK với HSM.

1.3. Key Management Services — AWS KMS, Azure Key Vault, GCP KMS (Key management)

Quản lý khóa là trụ cột của data security. Ba KMS chính:

1.4. Data Residency, Sovereignty & DLP (Residency, sovereignty & DLP)

Data Residency: Dữ liệu phải lưu trữ trong biên giới địa lý nhất định. GDPR Art. 46 quy định transfer dữ liệu EU sang nước thứ ba cần SCC (Standard Contractual Clauses) hoặc adequacy decision. Việt Nam: Luật An ninh mạng 2018 Điều 26 yêu cầu dữ liệu quan trọng của công dân VN phải lưu tại VN.

Data Sovereignty: Dữ liệu phải tuân theo luật của quốc gia nơi dữ liệu được xử lý/lưu trữ. CLOUD Act (Clarifying Lawful Overseas Use of Data) cho phép US authorities yêu cầu CSP Mỹ cung cấp dữ liệu dù lưu ở nước ngoài — rủi ro với dữ liệu EU/VN trên AWS/Azure.

Cloud DLP Tools:

1.5. Object Storage Security & Data Lifecycle Management (Storage security & ILM)

Object Storage Security:

ILM (Information Lifecycle Management): Dữ liệu có lifecycle: Create → Store → Use → Share → Archive → Destroy. Trong cloud:

2. Bài thực hành / Hands-on lab

🖥️ Nền tảng / Platform: Any (Cloud Shell / Local terminal)
🛠️ Công cụ / Tools: Azure CLI · AWS CLI

Lab 1 — Tạo Azure Key Vault, quản lý keys, và cấu hình Storage encryption

OS: Any · Tool: Azure CLI.

  1. Tạo Key Vault với soft-delete và purge protection (bắt buộc cho production):
# Tạo Resource Group và Key Vault
az group create --name SecLab --location southeastasia
az keyvault create \
  --name myKeyVault-$(date +%s) \
  --resource-group SecLab \
  --location southeastasia \
  --sku premium \
  --enable-soft-delete true \
  --enable-purge-protection true

# Tạo RSA-2048 key (CMEK key)
az keyvault key create \
  --vault-name myKeyVault \
  --name myDataKey \
  --kty RSA \
  --size 2048 \
  --ops encrypt decrypt wrapKey unwrapKey

# Kiểm tra key đã tạo
az keyvault key list --vault-name myKeyVault -o table

# Cấu hình Storage Account chỉ cho phép traffic từ private network
az storage account update \
  --name mystorageacct \
  --resource-group SecLab \
  --default-action Deny \
  --bypass AzureServices

# Kiểm tra encryption settings của Storage Account
az storage account show \
  --name mystorageacct \
  --query "encryption.{KeySource:keySource,Services:services}" -o json

✅ Kết quả mong đợi / Expected output: Key Vault tạo thành công với enableSoftDelete: trueenablePurgeProtection: true. Key list hiển thị key ID, type RSA-2048, và status Enabled. Storage encryption hiển thị keySource: Microsoft.Storage (SSE với Microsoft-managed keys) — sau đó có thể chuyển sang CMEK bằng cách chỉ định Key Vault key ID. Purge protection ngăn xóa vault trong ít nhất 90 ngày — critical for compliance.

Lab 2 — Kiểm tra S3 Security, AWS KMS, và AWS Macie findings

OS: Any · Tool: AWS CLI.

# Kiểm tra bucket policy (phát hiện misconfiguration)
aws s3api get-bucket-policy --bucket mybucket 2>/dev/null || echo "No bucket policy set"

# Kiểm tra server-side encryption của bucket
aws s3api get-bucket-encryption --bucket mybucket

# Kiểm tra versioning (bảo vệ khỏi ransomware)
aws s3api get-bucket-versioning --bucket mybucket

# Liệt kê tất cả KMS keys trong account
aws kms list-keys --query "Keys[].KeyId" --output text | tr '\t' '\n' | head -5

# Xem thông tin chi tiết về AWS managed key cho S3
aws kms describe-key \
  --key-id alias/aws/s3 \
  --query "KeyMetadata.{KeyId:KeyId,Enabled:Enabled,KeyUsage:KeyUsage,CreationDate:CreationDate}" \
  -o json

# Xem Macie findings (nếu Macie đã được bật)
DETECTOR=$(aws macie2 list-findings --query "findingIds[0]" --output text 2>/dev/null)
if [ "$DETECTOR" != "None" ] && [ -n "$DETECTOR" ]; then
  aws macie2 get-findings --finding-ids "$DETECTOR" \
    --query "findings[].{Type:type,Severity:severity.description,Resource:resourcesAffected.s3Bucket.name}" \
    -o table
else
  echo "No Macie findings or Macie not enabled. Run: aws macie2 enable-macie"
fi

✅ Kết quả mong đợi / Expected output: Bucket encryption hiển thị SSEAlgorithm: aws:kms với KMS key ID — nếu hiển thị AES256 (SSE-S3) thì chưa đạt CMEK level. Versioning Status = Enabled là best practice. Macie findings liệt kê buckets chứa PII với severity HIGH/MEDIUM. KMS key aws/s3 là AWS-managed key — recommend chuyển sang customer-managed key cho regulated data.

3. Tình huống doanh nghiệp / Real-world scenario

Bối cảnh:

Một công ty fintech Việt Nam lưu trữ 2 triệu hồ sơ khách hàng (CCCD, ngày sinh, số tài khoản ngân hàng) trên AWS S3. Audit team phát hiện một bucket S3 không bật encryption và policy cho phép GetObject từ * (public). CISO yêu cầu remediation khẩn cấp trong 24 giờ và lập kế hoạch data security toàn diện.

Phân tích & Giải pháp:

  1. Immediate response (0-2h): Block public access ngay lập tức: aws s3api put-public-access-block --bucket BUCKET --public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true". Revoke bucket policy cho phép public access.
  2. Encryption remediation (2-8h): Tạo Customer Managed Key (CMK) trong AWS KMS với key policy chỉ cho phép specific IAM roles. Enable SSE-KMS trên bucket. Dùng S3 Batch Operations để re-encrypt tất cả objects hiện có.
  3. Classification & DLP (8-24h): Bật AWS Macie để scan bucket. Cấu hình findings export về Security Hub và SNS notification. Thêm S3 Object Lock với compliance mode 7 năm (theo yêu cầu tài chính VN).
  4. Long-term ILM policy: S3 Lifecycle: active data (Standard) → 90 ngày → Infrequent Access → 2 năm → Glacier Deep Archive. Sau 7 năm (retention period): crypto-shredding bằng cách xóa CMK.

Bài học CCSP: Misconfigured S3 bucket là "misconfiguration" threat — shared responsibility rõ ràng: CSP không ngăn customer tạo public bucket, đây hoàn toàn là customer responsibility. Defense-in-depth: encryption + access control + monitoring + DLP là 4 lớp bảo vệ cần thiết.

4. Tự kiểm tra / Knowledge check

  1. Giải thích sự khác biệt giữa BYOK và HYOK. Khi nào một tổ chức tài chính nên chọn HYOK thay vì BYOK?
  2. Crypto-shredding là gì và tại sao đây là cách tiếp cận secure deletion tốt nhất trong cloud? Rủi ro nào cần cân nhắc khi dùng crypto-shredding?
  3. Phân biệt Data Owner, Data Custodian, và Data Processor trong bối cảnh GDPR và cloud. Ai chịu trách nhiệm gì khi xảy ra data breach?
  4. AWS Macie, Google DLP API, và Microsoft Purview phục vụ use case nào khác nhau? Lấy ví dụ cụ thể cho từng tool.
  5. Một công ty có S3 bucket với SSE-S3 (AES256). CISO yêu cầu nâng cấp lên CMEK mà không downtime và không mất dữ liệu. Mô tả các bước thực hiện.
  6. Data residency requirement của NHNN Việt Nam ảnh hưởng đến lựa chọn AWS Region như thế nào? Có giải pháp nào để satisfy requirement này không?
Chương 1: Kiến trúc & Thiết kế Chương 3: Bảo mật nền tảng & Hạ tầng
Thực hành trên công cụAzure CLI · AWS CLI
Nền tảngAzure · AWS
Thời điểm phát hànhQ2/2026
Ngày biên soạn24/05/2026
Người biên soạnTrần Văn Hòa (MCT)
Phiên bảnv1.0
Zalo