AWS ML Security

#exam-tip

Mục lục

1. Tổng quan

Các lưu ý về bảo mật và tuân thủ dành cho các workloads machine learning trên AWS.

2. Các Nguyên tắc Bảo mật Cốt lõi #important

2.1 Nguyên tắc Quyền Tối thiểu (Principle of Least Privilege) #exam-tip

Định nghĩa: Chỉ cấp những quyền tối thiểu nhất vừa đủ để thực hiện một tác vụ cụ thể.

Tại sao lại Quan trọng:

  • Thu hẹp phạm vi ảnh hưởng (blast radius) nếu xảy ra vi phạm bảo mật.
  • Hạn chế những pha “lỡ tay” gây hậu quả nghiêm trọng.
  • Đáp ứng các yêu cầu về tuân thủ pháp lý (compliance).
  • Là thực tiễn tốt nhất (best practice) chung cho mọi dịch vụ AWS.

Ứng dụng trong ML: #exam-tip

Tình huống Triển khai Quyền Tối thiểu
Training Job IAM role CHỈ có quyền truy cập vào: các S3 buckets cụ thể (chứa training data), ECR (chứa container images), và CloudWatch Logs.
Data Scientist IAM policy cho phép dùng SageMaker Studio, cấp quyền chỉ đọc (read-only) đối với S3, KHÔNG CÓ quyền xóa các production endpoints.
Inference Endpoint IAM role CHỈ có quyền truy cập vào: các model artifacts trên S3, CloudWatch Logs, KHÔNG CÓ quyền chạy training.
Lambda Function CHỈ có quyền gọi (invoke) SageMaker endpoint, KHÔNG CÓ quyền đụng vào S3 hay các dịch vụ khác.

Kịch bản Bài thi: #exam-tip

  • “Data scientist lỡ tay xóa mất mô hình production” → Triển khai quyền tối thiểu (cấp quyền read-only cho các role phi-production).
  • “Giảm thiểu rủi ro bảo mật cho các training jobs” → Tạo IAM role chỉ cấp quyền truy cập vào đúng cái S3 bucket cần thiết.
  • “Bảo mật cho inference endpoint” → Dùng IAM role riêng biệt cho endpoints, tuyệt đối không cấp quyền training.

Thực tiễn Tốt nhất:

  1. Tạo các IAM roles riêng biệt cho khâu training, inference, and development.
  2. Dùng resource-based policies để siết chặt quyền truy cập vào những S3 buckets/paths cụ thể.
  3. Tránh xài quyền đại trà (wildcard) (s3:* là rất dở, s3:GetObject mới là chuẩn).
  4. Kiểm toán thường xuyên (Regular audits) - Đọc lại các IAM policies hàng quý.
  5. Dùng IAM Access Analyzer - Quét xem có policy nào đang cấp quyền quá trớn không.

Ví dụ: Role dành cho Training Job (Chuẩn)

{
  "Effect": "Allow",
  "Action": [
    "s3:GetObject",
    "s3:PutObject"
  ],
  "Resource": [
    "arn:aws:s3:::my-training-data/*",
    "arn:aws:s3:::my-models/*"
  ]
}

Ví dụ: Quá Dễ dãi (Tệ)

{
  "Effect": "Allow",
  "Action": "s3:*",
  "Resource": "*"
}

2.2 Che giấu và Ẩn danh Dữ liệu (Data Masking & Anonymization) #exam-tip

Mục đích: Bảo vệ dữ liệu nhạy cảm nhưng vẫn giữ lại được giá trị cốt lõi để đem đi train ML.

Các Khái niệm Chính:

1. Che giấu Dữ liệu (Data Masking)

Định nghĩa: Thay thế dữ liệu nhạy cảm bằng dữ liệu giả nhưng trông y như thật.

Các Kỹ thuật:

  • Thay thế (Substitution): Thay tên thật bằng tên giả.
  • Xáo trộn (Shuffling): Xáo trộn ngẫu nhiên thứ tự các giá trị trong một cột.
  • Bôi đen (Redaction): Thay thế bằng dấu sao hoặc khoảng trắng (ví dụ: “*--1234”).
  • Che một phần (Masking): Che đi khúc giữa (ví dụ: “joh***@email.com”).

Use Case: Môi trường phi-production (testing, development).

2. Ẩn danh (Anonymization)

Định nghĩa: Loại bỏ vĩnh viễn các thông tin nhận dạng cá nhân (PII - Personally Identifiable Information).

Các Kỹ thuật:

  • Khái quát hóa (Generalization): “Tuổi: 32” → biến thành “Tuổi: 30-40”.
  • Triệt tiêu (Suppression): Xóa xổ luôn toàn bộ trường dữ liệu (ví dụ: xóa luôn cột Họ tên).
  • Biệt danh hóa (Pseudonymization): Thay thế bằng một mã định danh ngẫu nhiên (ví dụ: ID-12345).
  • Nhiễu loạn (Perturbation): Bơm thêm nhiễu vào dữ liệu (cơ chế differential privacy).

Use Case: Dữ liệu Production, nơi mà yêu cầu bắt buộc là không bao giờ được phép dò ngược lại danh tính thật.

3. Mã thông báo (Tokenization)

Định nghĩa: Thay dữ liệu nhạy cảm bằng một token, và lưu cái bảng ánh xạ (mapping) sang một chỗ khác.

Ví dụ:

  • Thẻ tín dụng: 4532-1234-5678-9010 → biến thành TOKEN-ABC123.
  • Bảng ánh xạ từ TOKEN sang số thẻ thật được cất ở một cái két sắt (vault) bảo mật.

Use Case: Xử lý thanh toán, những lúc cần phải dò ngược lại dữ liệu thật (reverse mapping).

Các Dịch vụ AWS chuyên trị Bảo vệ Dữ liệu: #important

Dịch vụ Mục đích Use Case
Amazon Macie Đánh hơi và phân loại PII trong S3 Tìm diệt PII trước khi đem đi train
AWS Glue DataBrew Che giấu dữ liệu trực quan (250+ phép biến đổi) Mask dữ liệu trước lúc train ML
Lake Formation Bảo mật tới cấp độ Cột (giấu các cột PII) Kiểm soát ai được xem các cột nhạy cảm
Comprehend Truy tìm PII trong văn bản Lọc dữ liệu nhạy cảm nằm trong các tài liệu text
SageMaker Processing Viết script che giấu (masking scripts) tự chế Phục vụ logic ẩn danh phức tạp

Kịch bản Bài thi: #exam-tip

Kịch bản Giải pháp
“Train mô hình nhưng không được để lộ tên khách hàng” Dùng Biệt danh hóa (Pseudonymization) (thay tên bằng ID)
“Tìm toàn bộ PII trong mớ bòng bong S3 data lake trước khi train” Dùng Amazon Macie
“Cho Data Scientists xem dữ liệu nhưng cấm xem cột số An sinh Xã hội (SSN)” Dùng Lake Formation column-level security (bảo mật cấp cột)
“Che bớt thẻ tín dụng trong bộ data train” Dùng Glue DataBrew xài các tính năng masking
“Tuân thủ luật GDPR (quyền được lãng quên - right to be forgotten)” Dùng Ẩn danh (Anonymization) (xóa vĩnh viễn không thể khôi phục)
“Môi trường Testing đang cần data trông cho giống thật” Dùng Che giấu (Data masking) (dữ liệu giả nhưng format y như thật)

Thực tiễn Tốt nhất:

  1. Tìm PII trước đã - Ném Macie vào quét xem dữ liệu nhạy cảm đang nằm ở đâu.
  2. Xác định tính đảo ngược (reversibility) - Masking thì có thể đảo ngược lại, còn Anonymization thì một đi không trở lại.
  3. Test xem mô hình có bị ngu đi không - Phải đảm bảo quá trình che giấu không làm hỏng tính hiệu quả của mô hình.
  4. Kiểm toán quyền truy cập (Audit access) - Bật CloudTrail logs để coi đứa nào đang rình mò dữ liệu nhạy cảm.
  5. Tự động hóa - Dùng Glue DataBrew, SageMaker Processing để quá trình masking diễn ra đồng bộ.

Khái niệm K-Anonymity (Tính ẩn danh K): #exam-tip

  • Định nghĩa: Mỗi dòng dữ liệu (record) sẽ không thể phân biệt được với ít nhất là k-1 dòng khác.
  • Ví dụ: k=5 nghĩa là bạn không tài nào chỉ mặt điểm tên được một cá nhân cụ thể trong một nhóm ít hơn 5 người.
  • Kỹ thuật: Khái quát hóa (generalize) dữ liệu cho đến khi nào từng nhóm k người đều chia sẻ chung một thuộc tính.
  • Use Case: Publish dataset ra công chúng nhưng vẫn phải bảo vệ quyền riêng tư.

3. Mã hóa (Encryption) #important

Xem chi tiết tại hướng dẫn riêng: Mã hóa

Các chủ đề bao gồm:

  • Mã hóa lúc nghỉ (at rest) và lúc vận chuyển (in transit).
  • Mã hóa trong SageMaker (training volumes, model artifacts, kết nối giữa các containers).
  • AWS KMS (Customer Master Keys, xoay vòng khóa, policies).
  • AWS Secrets Manager (quản lý thông tin xác thực, tự động đổi pass).

Tóm tắt Nhanh:

Kịch bản Giải pháp
“Mã hóa training data trên S3” SSE-KMS xài khóa do khách hàng tự quản lý (customer-managed key)
“Mã hóa đường truyền khi chạy distributed training” Đặt tham số enable_inter_container_traffic_encryption=True
“Giấu password database cho SageMaker xài” Bỏ vào AWS Secrets Manager
“Tuân thủ quy định bắt buộc phải xài khóa do công ty tự cấp” Dùng KMS customer-managed CMK

4. Quản lý Danh tính & Truy cập (IAM - Identity and Access Management) #important #exam-tip

4.1 Những Điều Cơ bản về IAM

Các Thành phần Nòng cốt:

1. Users (Người dùng)

  • Từng cá nhân hoặc từng ứng dụng cụ thể.
  • Thông tin xác thực dài hạn (Long-term credentials) (password + access keys).
  • Best practice: Tuyệt đối không xài tài khoản root cho các công việc hàng ngày.

2. Groups (Nhóm)

  • Tập hợp của nhiều Users
  • Cấp quyền cho Group (chứ đừng đi cấp lắt nhắt cho từng User).
  • Ví dụ: Tạo group “DataScientists” và quẳng quyền xài SageMaker cho cả group này.

3. Roles (Vai trò)

  • Thông tin xác thực tạm thời (Temporary credentials) dành cho các dịch vụ AWS hoặc ứng dụng.
  • Không có keys dài hạn (bảo mật hơn hẳn xài access keys).
  • Dùng cho: EC2, Lambda, các SageMaker training jobs, các endpoints.

Users vs Roles: #exam-tip

Tiêu chí Users (Người dùng) Roles (Vai trò)
Dành cho Con người, ứng dụng bên ngoài Các dịch vụ AWS, truy cập ngắn hạn
Thông tin xác thực Dài hạn (access keys) Ngắn hạn (STS tokens)
Tốt nhất cho Định danh cá nhân SageMaker jobs, EC2, Lambda
Đổi khóa (Rotation) Phải làm bằng cơm Auto đổi

4. Policies (Chính sách)

  • Là các tài liệu JSON định nghĩa chi tiết các quyền.
  • Effect (Hiệu lực): Allow (Cho phép) hoặc Deny (Cấm cản).
  • Action (Hành động): Được phép làm trò gì (ví dụ: s3:GetObject).
  • Resource (Tài nguyên): Được phép làm trò đó trên cái gì (ví dụ: một cái S3 bucket cụ thể).

Ví dụ về Policy:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateTrainingJob",
        "sagemaker:DescribeTrainingJob"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::my-training-bucket/*"
    }
  ]
}

4.2 IAM dành cho SageMaker #exam-tip

Các IAM Roles Phổ biến:

1. SageMaker Execution Role (Role Thực thi cho Training)

Ai xài: Các training jobs, processing jobs. Cần quyền truy cập vào:

  • S3 (để đọc training data, ghi model artifacts).
  • ECR (để kéo container images về).
  • CloudWatch Logs (để ghi log).
  • KMS (nếu có bật mã hóa).

Ví dụ Policy:

{
  "Effect": "Allow",
  "Action": [
    "s3:GetObject",
    "s3:PutObject",
    "s3:ListBucket",
    "logs:CreateLogGroup",
    "logs:CreateLogStream",
    "logs:PutLogEvents",
    "ecr:GetAuthorizationToken",
    "ecr:BatchGetImage"
  ],
  "Resource": [...]
}

2. SageMaker Endpoint Role (Role cho Endpoint)

Ai xài: Các Real-time endpoints. Cần quyền truy cập vào:

  • S3 (để bốc model artifacts ra).
  • CloudWatch Logs (để ghi log truy cập).
  • ECR (để kéo inference container về).

3. Data Scientist Role (Role cho Người)

Ai xài: Con người bằng xương bằng thịt (data scientists, ML engineers). Cần quyền truy cập vào:

  • SageMaker Studio.
  • S3 (quyền đọc training data, quyền đọc/ghi các experiments).
  • Quyền read-only đối với các production endpoints (TUYỆT ĐỐI KHÔNG cấp quyền delete).

Kịch bản Bài thi: #exam-tip

  • “Training job không chui vào S3 lấy data được” → Kiểm tra xem cái IAM execution role có chứa quyền s3:GetObject chưa.
  • “Deploy endpoint bị lỗi” → Kiểm tra xem cái endpoint role có quyền móc model artifacts từ S3 ra chưa.
  • “Chặn đứng mấy thanh niên data scientist lỡ tay xóa production models” → Gỡ quyền sagemaker:DeleteModel ra khỏi user policy của mấy ông đó.

4.3 SageMaker Role Manager #important #exam-tip

Mục đích: Đơn giản hóa việc đẻ IAM role cho SageMaker bằng các role templates (khuôn mẫu) có cấu hình sẵn, chuẩn chỉ theo nguyên tắc quyền tối thiểu (least-privilege).

Tại sao nó Lại Ra Đời:

  • Việc ngồi gõ từng cái IAM role bằng tay rủi ro rất cao (lúc thì thiếu quyền, lúc thì cấp quyền thả cửa quá lố).
  • Role Manager ném luôn cho bạn các templates chứa các quyền mà AWS đã kiểm duyệt là chuẩn mực.
  • Tự động áp dụng nguyên tắc quyền tối thiểu (least privilege).
  • Setup lẹ như chớp - Chả cần tự ngồi gõ mấy cái JSON policies dài ngoằng nữa.

Cách Hoạt Động:

1. Theo Hoạt động ML (ML Activities - Roles phân theo Tác vụ) Các roles cấu hình sẵn nhắm vào từng tác vụ ML cụ thể:

Hoạt động ML Mục đích Các Quyền Được Bao gồm
Training Dùng để train mô hình S3 read/write, ECR pull, CloudWatch logs, SageMaker training APIs
Processing Chạy các processing jobs S3 read/write, CloudWatch logs, SageMaker processing APIs
Inference Deploy endpoints S3 read (model artifacts), CloudWatch logs, SageMaker endpoint APIs
Model Card Creation Viết tài liệu (docs) cho mô hình SageMaker model card APIs, S3 read

2. Theo Chân dung Người dùng (Personas - Roles phân theo Người xài) Các roles cấu hình sẵn đo ni đóng giày cho từng vị trí nhân sự:

Chân dung (Persona) Mục đích Các Quyền Được Bao gồm
Data Scientist Vọc vạch ML thả ga SageMaker Studio, training, experiments, endpoints (chỉ read-only đối với production)
ML Ops Engineer Lo mảng deploy lên production Pipelines, Model Registry, production endpoints, monitoring
ML Business Analyst Chỉ xem (View-only) Read-only cho SageMaker, xem experiments, coi dashboards

Cách Sử dụng: #hands-on

import boto3

sagemaker_client = boto3.client('sagemaker')

# Đẻ một role dùng cho training thông qua Role Manager
response = sagemaker_client.create_role(
    RoleName='MySageMakerTrainingRole',
    RoleType='Training',  # Xài template Training có sẵn
    # Tự động Role Manager sẽ nhét đủ các quyền cần thiết vào
)

# Đẻ một role cho một Chân dung cụ thể
response = sagemaker_client.create_role(
    RoleName='DataScientistRole',
    RoleType='DataScientist',
    # Auto có đủ đồ nghề: Studio, training, experiment
)

Lợi ích: #exam-tip

Lợi ích Mô tả
Quyền Tối thiểu Các templates chỉ hở đúng những chỗ cần hở (không có xài wildcard)
Đã Test kỹ Được AWS chống lưng và xác thực độ an toàn
Onboarding siêu tốc Quăng role cho nhân viên mới vào làm chỉ mất vài phút
Tính Nhất quán Mọi training roles đều có bộ quyền y chang nhau (siêu dễ quản lý)
Dễ dàng Kiểm toán Mấy cái chuẩn form này bên kiểm toán nhìn vô là thích liền

Kịch bản Bài thi: #exam-tip

Kịch bản Giải pháp
“Cần tạo nhanh một role để training mà phải chuẩn least privilege” SageMaker Role Manager chọn nhóm ML Activity là Training
“Cần đồng bộ hóa IAM roles cho toàn bộ anh em trong team” Chọn Role Manager personas (Data Scientist, MLOps Engineer)
“Thanh niên data scientist mới vào công ty cần xin quyền xài Studio” Đắp luôn cho cái Role Manager Data Scientist persona
“Deploy endpoint nhưng muốn thắt chặt quyền tối đa” Bốc cái Role Manager Inference ML Activity ra xài
“Bị sếp chửi vì hay cấu hình sai IAM” Chuyển qua xài Role Manager pre-configured templates (bỏ trò gõ tay JSON đi)

Role Manager vs Tự gõ IAM bằng tay: #exam-tip

Tiêu chí Role Manager Tự gõ IAM (Manual IAM)
Tốc độ Vài giây (chỉ việc click chọn template) Tính bằng tiếng (hì hục viết policy rồi test lòi mắt)
Quyền Tối thiểu Auto chuẩn Dễ dính lỗi của con người (error-prone)
Đồng bộ Răm rắp như một Tùy hứng từng người viết
Trong bài thi Lựa chọn Ưu tiên số 1 để Chuẩn hóa (Standardization) Chỉ xài nếu gặp các yêu cầu siêu dị, siêu đặc thù (custom)

Thực tiễn Tốt nhất:

  1. Quất Role Manager cho các nhu cầu phổ thông (training, inference, personas).
  2. Cần chế biến (Customize) thì: Cứ bốc cái template ra làm cốt, rồi đắp thêm quyền vào sau.
  3. Phổ cập cho toàn quân - Chuẩn hóa (Standardize) roles trên khắp mặt trận tổ chức.
  4. Năng review lại - Lâu lâu AWS lại nhét thêm quyền tính năng mới vào các templates.

Mẹo Bài thi (Exam Tip): #exam-tip

  • “Chuẩn hóa (Standardize) IAM roles cho SageMaker” → Đánh SageMaker Role Manager.
  • “Giảm thời gian lọ mọ tạo các roles quyền tối thiểu” → Chọn Role Manager templates.
  • “Có thành viên mới (New team member) cần truy cập SageMaker” → Quăng cái Role Manager persona (Data Scientist) vào mặt.

4.4 Xác thực Đa yếu tố (IAM MFA - Multi-Factor Authentication) #exam-tip

Mục đích: Kẹp thêm một lớp bảo mật nữa (cái bạn CÓ + cái bạn BIẾT).

Các thể loại MFA:

  • MFA Ảo (Virtual MFA) - Dùng Google Authenticator, Authy (app trên điện thoại).
  • MFA Cứng (Hardware MFA) - Dùng khóa YubiKey, hoặc mấy con FIDO devices.
  • SMS (Tin nhắn) - Đừng xài (không an toàn đâu).

Thực tiễn Tốt nhất:

  • Ép MFA cho thằng root user (bắt buộc, sống chết cũng phải làm).
  • Ép MFA cho dàn chóp bu (privileged users) (bọn admins, bọn được đụng vào production).
  • Chặn từ cửa (Enforce MFA with IAM policy) (viết policy từ chối mọi truy cập nếu không đưa MFA ra).

Cái Policy Chặn Cửa (Enforce MFA Policy):

{
  "Effect": "Deny",
  "Action": "*",
  "Resource": "*",
  "Condition": {
    "BoolIfExists": {
      "aws:MultiFactorAuthPresent": "false"
    }
  }
}

Mẹo Bài thi:

  • “Bảo mật truy cập cho những thằng có quyền to (privileged user access)” → Bật MFA.
  • “Chống việc admin vô tình xóa nhầm dữ liệu” → Bắt phải nhập MFA mỗi khi thực hiện các hành vi phá hoại (destructive operations).

5. Bảo mật Mạng (Network Security) #important

Xem chi tiết tại hướng dẫn riêng: Bảo mật Mạng

Các chủ đề bao gồm:

  • Sơ lòng về VPC (subnets, IGW, NAT Gateway).
  • Security Groups và NACLs.
  • VPC Endpoints (Gateway và Interface).
  • VPC Peering và PrivateLink.
  • VPN và Direct Connect.
  • Cấu hình SageMaker VPC (SageMaker VPC Configuration).

Tóm tắt Nhanh:

Kịch bản Giải pháp
“SageMaker đang kẹt trong private subnet, muốn moi data từ S3” S3 Gateway Endpoint (hàng chùa - free)
“Training job bị kẹt trong VPC cần mâm mạng để tải packages” NAT Gateway hoặc VPC Endpoints
“Cấm cửa một cái IP cụ thể” Phải dùng NACL (vì Security Groups không có luật Deny)
“Lambda dưới private subnet gọi tới endpoint” Phải cài SageMaker Runtime Interface Endpoint

6. Các Dịch vụ Bảo mật (Security Services) #exam-tip

6.1 Amazon Macie #important

Mục đích: Truy lùng (Discover) và bảo vệ dữ liệu nhạy cảm (sensitive data) phơi thây trên S3 bằng sức mạnh của machine learning.

Macie Có Tài Cán Gì:

  • Tự động rà quét PII ẩn nấp trong các mớ S3 buckets.
  • Phân loại dữ liệu (hồ sơ tài chính, thông tin danh tính, dữ liệu cá nhân).
  • Bắn findings (kết quả dò quét) khi tóm được dữ liệu nhạy cảm.
  • Giám sát ai đang sờ mó (Monitor access patterns) (báo động khi có truy cập lạ).

Những thứ PII bị Lật mặt:

  • Tên họ, địa chỉ nhà, số An sinh Xã hội (SSN), số hộ chiếu.
  • Số thẻ tín dụng, số tài khoản ngân hàng.
  • Số bằng lái xe, số điện thoại, email.
  • Địa chỉ IP, các khóa AWS credentials (để lọt mã nguồn).

Use Cases:

  • Quét trạm thu phí (Pre-training scan) - Chặn PII lại trước khi đút vào cho model ăn.
  • Tuân thủ (Compliance) - Đạt chuẩn GDPR, HIPAA, PCI-DSS (phải nắm rõ dữ liệu nhạy cảm nằm ở xó nào).
  • Quản trị dữ liệu (Data governance) - Làm nguyên cái sổ kiểm kê các dữ liệu nhạy cảm trên toàn cõi S3.

Cách Nó Hoạt Động:

  1. Kích hoạt Macie cho cái AWS account.
  2. Chỉ định mấy cái S3 buckets muốn nó lùng sục.
  3. Macie xách đít đi chạy discovery jobs (nó xài ML + dò theo mẫu - pattern matching).
  4. Sếp ngồi coi báo cáo (findings) trên Macie console.
  5. Giải quyết (Remediate): Bắt mask lại, xóa đi, hoặc thắt chặt quyền truy cập.

Kịch bản Bài thi: #exam-tip

Kịch bản Giải pháp
“Cần dò tìm toàn bộ PII dưới S3 trước khi đem đi train ML” Chọn Amazon Macie (chạy discovery job)
“Yêu cầu từ GDPR - hãy chỉ ra chỗ cất dữ liệu cá nhân” Gọi Amazon Macie
“Báo động nếu có S3 bucket chứa PII nào bị lòi ra public” Dùng Macie (nó tự hú còi)
“Phân loại mức độ nhạy cảm của mớ data trên S3” Dùng Macie

6.2 AWS WAF (Web Application Firewall) #exam-tip

Mục đích: Bảo vệ các web applications khỏi mấy trò hack thông thường.

Nó Đứng Gác ở Đâu:

  • CloudFront (CDN)
  • Application Load Balancer (ALB)
  • API Gateway

Bảo vệ Khỏi (Protection Against):

  • SQL injection - Bơm mã SQL bẩn vào requests.
  • Cross-site scripting (XSS) - Nhét scripts độc hại.
  • Tấn công DDoS - Lấy thịt đè người (Rate limiting - giới hạn số lượt truy cập).
  • Bot traffic - Đuổi bọn bot dỏm.
  • Geo-blocking (Chặn theo khu vực) - Cấm cửa nguyên một quốc gia.

Use Cases cho bên ML:

  • Bảo kê cho cái inference API (Combo: API Gateway + Lambda + SageMaker).
  • Giới hạn tốc độ (Rate limiting) - Chống bọn phá hoại spam calls làm lủng túi tiền inference endpoints.
  • Cấm vận theo quốc gia (Geo-restrictions) - Chỉ cho dân mấy nước chỉ định được xài.

Vài Luật (Rules) Ví dụ:

  • Chặn cổ mọi request có mang mấy cái chữ sặc mùi SQL trong query string.
  • Giới hạn: Tối đa 1000 requests mỗi IP trong vòng 5 phút.
  • Chặn toàn bộ traffic đến từ mấy cái IP thuộc diện tình nghi cao.
  • Chỉ mở cửa cho mấy ông có User-Agent chuẩn.

Kịch bản Bài thi:

  • “Bảo kê SageMaker inference API chống DDoS” → Build combo API Gateway + AWS WAF (có chặn rate limiting).
  • “Chống SQL injection chọc ngoáy vào API” → Kích hoạt WAF và gài luật chống SQL injection.

6.3 AWS Shield #exam-tip

Mục đích: Tấm khiên chuyên chống DDoS (Distributed Denial of Service).

Phân Hạng (Tiers):

Hạng Mức độ Bảo vệ Tiền Phù hợp cho
Shield Standard (Thường) Chống DDoS cơ bản (Layer 3/4) Chùa (mặc định mở) Mọi thần dân AWS
Shield Advanced (Vip) DDoS xịn + 24/7 có lính cứu hỏa (DRT) canh gác $3,000/tháng Mấy cái app tỷ đô

Shield Standard (Hàng Chùa):

  • Mặc định bảo vệ bạn khỏi các đòn DDoS cỏ (SYN floods, UDP reflection).
  • Ai xài AWS cũng được hưởng sái.

Shield Advanced (Khá chát - $$$):

  • DDoS Response Team (DRT) - Có đội hỗ trợ kỹ thuật ngồi trực 24/7, bị đập là có người gọi điện liền.
  • Bảo kê túi tiền (Cost protection) - Bọn nó DDoS làm server scale lên tốn mớ tiền? AWS sẽ trả lại tiền cho bạn (refund).
  • Nhận diện siêu việt (Advanced detection) - Trấn áp tùy biến (Custom mitigation).
  • Combo tặng kèm: Tặng luôn AWS WAF, bảo kê bao sân cho CloudFront, Route 53, ALB, ELB.

Kịch bản Bài thi:

  • “Cần chống DDoS cơ bản cho cái inference endpoint” → Shield Standard (đồ free, auto có).
  • “Cần chống DDoS tận răng, có người canh 24/7” → Shield Advanced.
  • “Chống DDoS cho cái CloudFront distribution” → Shield Standard (auto có).

7. Tổng hợp Thực tiễn Tốt nhất về Bảo mật (Security Best Practices Summary) #exam-tip

7.1 Bảo mật Dữ liệu (Data Security)

  • Mã hóa lúc nghỉ (Encryption at rest) - Phải bật cho S3, EBS, EFS (xài KMS).

Mã hóa đường truyền (Encryption in transit) - Quấn TLS cho mọi kết nối (ép xài HTTPS). ✅ Che giấu dữ liệu (Data masking) - Chịu khó ẩn danh PII trước khi đem đi train (xài Glue DataBrew, Macie). ✅ Quản lý Khóa (Key management) - Dùng khóa KMS customer-managed CMK để đạt chuẩn compliance.

7.2 Kiểm soát Truy cập (Access Control)

Quyền Tối thiểu (Least privilege) - Cắt bớt quyền, chỉ cấp đúng cái cần xài cho các IAM roles. ✅ Chia để trị (Separate roles) - Role để Training phải KHOÁC với Role để Inference, KHÁC luôn Role của User (người dùng). ✅ Bắt xài MFA (MFA for privileged users) - Chặn cửa bắt buộc xác thực 2 bước với đám Admins và bọn hay sờ vào production. ✅ Secrets Manager - TUYỆT ĐỐI không bao giờ hardcode (viết chết) password/thông tin xác thực vào code.

7.3 Bảo mật Mạng (Network Security)

Nhốt vào VPC (VPC mode) - Vứt các endpoints vào trong private subnets để giấu kỹ các workloads nhạy cảm. ✅ Xài VPC Endpoints - Mua cái ống nước S3 Gateway Endpoint, và SageMaker Interface Endpoints. ✅ Security Groups - Bóp chặt đầu vào (inbound), chỉ mở đúng các port thật sự cần thiết. ✅ Say NO với public endpoints - Giữ mớ inference endpoints tránh xa ánh sáng mặt trời (private).

7.4 Giám sát & Tuân thủ (Monitoring & Compliance)

CloudTrail - Con mắt thần lưu vết toàn bộ các pha gọi API (API calls). ✅ VPC Flow Logs - Camera quay lén đường truyền mạng (network traffic). ✅ Macie - Lùng sục và giấu đi PII dưới S3. ✅ CloudWatch Alarms - Hú còi ngay nếu đánh hơi thấy mùi khét (suspicious activity).

7.5 Món Riêng Của SageMaker (SageMaker-Specific)

Bật mã hóa giao tiếp nội bộ (Enable inter-container encryption) - Nhất là lúc chạy Distributed training. ✅ Cấu hình VPC (VPC configuration) - Nhét vào Private subnets + Dùng VPC Endpoints. ✅ IAM execution roles - Tách riêng biệt ra cho từng use case một. ✅ Mã hóa Model artifacts - Đưa KMS vào bảo kê cho S3 storage.

8. Các Kịch bản Bài thi Thường gặp (Common Exam Scenarios) #important

Kịch bản Giải pháp
“Bảo mật khâu training trên một cục dữ liệu siêu nhạy cảm” Combo: Nhốt VPC mode + Mã hóa (KMS) + Bóp quyền IAM role (least privilege)
“Training job kẹt trong VPC, đói mốc mỏ vì không moi được S3” Phá rào bằng cách nhét S3 VPC Gateway Endpoint vào
“Quét tìm PII trước lúc train” Gọi ngay Amazon Macie
“Mã hóa đám model artifacts” Nhét cái KMS key vào tham số output_kms_key của SageMaker
“Chặn đứng cái trò trượt tay xóa prod models của thanh niên data scientist” Gỡ bỏ mớ quyền Delete khỏi cái IAM policy của thanh niên đó
“SageMaker training cần chui xuống hầm gọi RDS” Nhốt vào VPC mode + cấu hình Security group của RDS cho chui lọt
“Mật khẩu database giấu chỗ nào cho an toàn?” Bỏ vào AWS Secrets Manager
“Quy định bắt đổi khóa mã hóa mỗi năm một lần” Bật tính năng automatic rotation (tự động xoay khóa) của KMS
“Khóa mõm một IP lì lợm chọc ngoáy vào endpoint” Đập NACL mang Deny rule vào (vì Security Group không có chức năng Deny)
“Bảo vệ inference API khỏi các cuộc hành hung DDoS” Combo thần thánh: API Gateway + WAF + Shield
“Phải tuân thủ chuẩn y tế HIPAA” Combo: VPC + Mã hóa + Ghi log kiểm toán (CloudTrail) + Ký hợp đồng BAA với AWS
“Truy cập Data Lake nằm rải rác đa tài khoản (Multi-account)” Phối hợp Lake Formation cross-account + Dăng lưới VPC Peering
“Ép phải dùng đường truyền HTTPS để gọi S3” Vả cái luật aws:SecureTransport=true vào S3 bucket policy