Ngân hàng đề — AWS Certified SysOps Administrator Associate

Tìm thấy 936 câu.

Câu 171 Chọn nhiều đáp án Domain 4: Security and Compliance

A new systems administrator has joined a large healthcare services company recently. As part of his onboarding, the IT department is conducting a review of the checklist for tasks related to AWS Identity and Access Management.

Which best practices would you recommend? (Select two)?

  1. A

    Grant maximum privileges to avoid assigning privileges again

  2. B

    Enable MFA for privileged users

  3. C

    Use user credentials to provide access specific permissions for Amazon EC2 instances

  4. D

    Configure AWS CloudTrail to log all IAM actions

  5. E

    Create a minimum number of accounts and share these account credentials among employees

Xem giải thích

Đáp án

B, D — hai thực hành tốt cần khuyến nghị:

  • B — Bật MFA cho người dùng có đặc quyền.
  • D — Cấu hình AWS CloudTrail để ghi lại mọi thao tác IAM.

Vì sao đúng

Với một công ty dịch vụ y tế (chịu ràng buộc HIPAA), hai biện pháp này nằm ở hai trụ cột khác nhau và đều bắt buộc.

⚠ Điều B — MFA là lớp phòng thủ chống mất chứng chỉ:

Mật khẩu bị lộ (lừa đảo, dùng lại mật khẩu, rò rỉ)
        ↓
    Không có MFA → kẻ tấn công vào được ngay
        ↓
    Có MFA → còn cần thiết bị vật lý hoặc ứng dụng sinh mã
        ↓
    → chặn được đại đa số vụ chiếm tài khoản
        ↓
    Bắt buộc nhất: MFA cho TÀI KHOẢN GỐC (root)

Có thể ép bằng chính sách IAM:

{
  "Effect": "Deny",
  "NotAction": ["iam:CreateVirtualMFADevice", "iam:EnableMFADevice",
                "iam:ListMFADevices", "sts:GetSessionToken"],
  "Resource": "*",
  "Condition": {
    "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}
  }
}

⚠ Điều D — CloudTrail là nền tảng của mọi kiểm toán:

CloudTrail ghi mọi lời gọi API, trong đó có IAM:
        CreateUser, AttachUserPolicy, CreateAccessKey,
        PutRolePolicy, DeleteUser...
        ↓
    → biết AI đã cấp quyền cho AI, LÚC NÀO
        ↓
    Management event MIỄN PHÍ một bản sao
        ↓
    → không có lý do gì để không bật

Với HIPAA, đây không chỉ là thực hành tốt mà là yêu cầu về nhật ký kiểm toán.

Vì sao các phương án khác sai

  • C (dùng chứng chỉ của user để cấp quyền cho EC2 instance) — đây là phương án gần nhất vì nó nghe như một cách "cấp quyền cụ thể" hợp lý. Nhưng nó vi phạm nguyên tắc quan trọng nhất về chứng chỉ: EC2 phải dùng IAM role (instance profile), không bao giờ nhúng access key. Khoá dài hạn nằm trên máy là khoá dài hạn có thể bị đánh cắp, và nó không tự xoay.

  • A (cấp quyền tối đa để khỏi phải cấp lại) — trái thẳng nguyên tắc quyền tối thiểu (least privilege), và là công thức dẫn tới sự cố bảo mật.

  • E (tạo ít tài khoản rồi dùng chung chứng chỉ giữa các nhân viên) — phá huỷ hoàn toàn khả năng kiểm toán: CloudTrail sẽ ghi lại tên tài khoản dùng chung, nên không bao giờ biết được ai thật sự đã làm gì. Với HIPAA thì đây là vi phạm nghiêm trọng.

Ghi nhớ

⚠ Danh sách thực hành tốt về IAM — bảng phải thuộc: | Thực hành | Nội dung | |---|---| | Bật MFA, đặc biệt cho root | bắt buộc | | Không dùng root cho việc hằng ngày | và xoá access key của root | | Quyền tối thiểu | cấp vừa đủ, mở rộng khi cần | | Dùng ROLE thay cho ACCESS KEY | cho EC2, Lambda, ECS, và cho cả con người | | Mỗi người một danh tính riêng | không dùng chung tài khoản | | Bật CloudTrail | nhật ký kiểm toán | | Xoay và thu hồi chứng chỉ | dùng Credential Report | | Permissions boundary / SCP | trần quyền | | IAM Access Analyzer | tìm quyền thừa và tài nguyên lộ ra ngoài |

Từ khoá nhận diện:

"chống mất chứng chỉ" → MFA "ai đã làm gì" → CloudTrail "cấp quyền cho EC2" → IAM role, KHÔNG BAO GIỜ dùng access key "chia sẻ tài khoản cho tiện" → LUÔN SAI "quyền tối đa cho đỡ phiền" → LUÔN SAI "quản lý danh tính cho nhiều tài khoản" → IAM Identity Center

Các công cụ rà soát IAM Việc
Credential Report CSV: ai có MFA, khoá bao lâu chưa dùng, mật khẩu bao lâu chưa đổi
Access Advisor dịch vụ nào một principal THỰC SỰ đã dùng — nền tảng để cắt quyền thừa
IAM Access Analyzer tài nguyên nào lộ ra ngoài tài khoản/tổ chức
Access Analyzer policy generation sinh chính sách từ lịch sử CloudTrail
Policy Simulator thử trước khi áp
Các kiểu MFA Nội dung
Virtual MFA ứng dụng trên điện thoại
FIDO security key khoá phần cứng — chống lừa đảo tốt nhất
Hardware TOTP token thiết bị sinh mã riêng
Multi-MFA cho root AWS cho đăng ký tối đa 8 thiết bị cho một danh tính
Thay thế access key cho con người Nội dung
IAM Identity Center đăng nhập một lần, chứng chỉ tạm thời
CLI aws sso login — không lưu khoá dài hạn
Với hệ thống ngoài AWS IAM Roles Anywhere, hoặc OIDC (GitHub Actions)

Ba việc kiểm chứng: | Việc | Cách | |---|---| | Ai chưa bật MFA | Credential Report, cột mfa_active | | Khoá nào lâu không dùng | cùng báo cáo, cột access_key_last_used | | Quyền nào đang thừa | Access Advisor cho từng role |

Và một thói quen đáng xây dựng ngay từ đầu: hãy tải Credential Report mỗi tháng và xử lý mọi dòng bất thường. Báo cáo này miễn phí, tạo trong vài giây, và nó phơi bày chính xác những thứ tích tụ âm thầm trong mọi tài khoản AWS — access key của một người đã nghỉ việc từ năm ngoái, một tài khoản quản trị chưa bật MFA, một khoá được tạo ra để thử nghiệm rồi không ai thu hồi.

Câu 172 Domain 3: Deployment, Provisioning, and Automation

A data analytics company uses AWS CloudFormation templates to provision their AWS infrastructure for Amazon EC2, Amazon VPC, and Amazon S3 resources. Using cross-stack referencing, a systems administrator creates a stack called NetworkStack which will export the subnetId that can be used when creating EC2 instances in another stack.

To use the exported value in another stack, which of the following functions must be used?

  1. A

    !GetAtt

  2. B

    !ImportValue

  3. C

    !Ref

  4. D

    !Sub

Xem giải thích

Đáp án

B — !ImportValue (Fn::ImportValue).

Vì sao đúng

Cross-stack reference là một cặp hai bước, và đề hỏi đúng vế thứ hai: nhận giá trị ở stack đích.

⚠ Điểm mấu chốt — mỗi vế một hàm, ở một stack:

NetworkStack (nguồn) — đã làm xong theo mô tả của đề
    Outputs:
      SubnetId:
        Value: !Ref SubnetUngDung
        Export:
          Name: NetworkStack-SubnetId
        ↓
Stack ứng dụng (đích) — vế mà đề đang hỏi
    Resources:
      MayChu:
        Type: AWS::EC2::Instance
        Properties:
          SubnetId: !ImportValue NetworkStack-SubnetId

⚠ Vì sao !Ref không dùng được ở đây:

!Ref chỉ tham chiếu được:
        - tài nguyên khai TRONG CÙNG template
        - tham số (Parameters) của chính stack đó
        - pseudo parameter (AWS::Region, AWS::AccountId...)
        ↓
    → nó KHÔNG biết gì về stack khác
        ↓
    !ImportValue mới là hàm tra vào danh sách EXPORT
      của tài khoản + Region hiện tại

⚠ Và ba ràng buộc của cơ chế export/import:

1. Tên export DUY NHẤT trong một tài khoản + một Region
2. KHÔNG dùng chéo Region, KHÔNG dùng chéo tài khoản
3. KHÔNG xoá/sửa được export đang có stack khác import
        ↓
    → muốn đổi thì phải sửa stack ĐÍCH trước

Xem thêm câu #11657 và #11668: cùng cơ chế nhưng hỏi ở vế khác — #11657 hỏi trường nào để cung cấp giá trị (Export), #11668 hỏi cả cặp hai bước.

Vì sao các phương án khác sai

  • C (!Ref) — đây là phương án gần nhất và là hàm được dùng nhiều nhất trong CloudFormation, nên rất dễ chọn theo phản xạ. Nhưng phạm vi của nó chỉ trong một stack.

  • A (!GetAtt) — lấy thuộc tính của một tài nguyên, ví dụ !GetAtt DB.Endpoint.Address. Cũng chỉ hoạt động trong cùng stack. (Nó thường được dùng ở vế Outputs của stack nguồn để lấy giá trị đem đi export.)

  • D (!Sub) — thay biến vào một chuỗi, ví dụ !Sub "${AWS::StackName}-SubnetId". Nó thường đi cùng !ImportValue (để dựng tên export động), nhưng bản thân nó không nhập giá trị nào.

Ghi nhớ

⚠ Bốn hàm nội tại hay gặp — bảng phải thuộc: | Hàm | Việc | Phạm vi | |---|---|---| | !Ref | tài nguyên hoặc tham số | cùng stack | | !GetAtt | thuộc tính của tài nguyên | cùng stack | | !ImportValue | giá trị export từ stack khác | cùng tài khoản + Region | | !Sub | thay biến vào chuỗi | mọi nơi |

Từ khoá nhận diện:

"nhận giá trị từ stack khác" → !ImportValue "cung cấp giá trị cho stack khác" → Export trong Outputs "lấy endpoint của RDS, ARN của bucket" → !GetAtt "tham chiếu tài nguyên trong cùng template" → !Ref "chéo Region hoặc chéo tài khoản" → SSM Parameter Store, không phải import/export

!Ref trả về gì tuỳ loại tài nguyên Ví dụ
EC2 instance instance id
S3 bucket tên bucket
VPC, Subnet id
IAM role tên role (ARN thì dùng !GetAtt Role.Arn)
Parameter giá trị người dùng nhập
Kết hợp !Sub với !ImportValue Nội dung
Dựng tên export động !ImportValue + !Sub "${TenMoiTruong}-SubnetId"
Lợi ích một template dùng cho nhiều môi trường
Lưu ý cú pháp !ImportValue !Sub "..." — YAML không cho hai tag rút gọn lồng nhau, phải viết dạng đầy đủ: Fn::ImportValue: !Sub "..."
Ba cách chia sẻ giá trị giữa các stack Nội dung
Export + ImportValue gốc của CloudFormation, tạo ràng buộc cứng
SSM Parameter Store linh hoạt nhất, chéo Region được
Nested stack cha truyền cho con qua Parameters

Ba việc kiểm chứng: | Việc | Cách | |---|---| | Có những export nào | list-exports | | Ai đang dùng một export | list-imports --export-name <ten> | | Vì sao không xoá được stack | thông báo lỗi nêu đích danh export bị dùng |

Và một lưu ý cú pháp rất hay làm người mới mất thời gian: YAML không cho phép lồng hai tag rút gọn (!ImportValue !Sub) trực tiếp với nhau. Khi cần dựng tên export động, phải viết dạng đầy đủ Fn::ImportValue: !Sub "..." — lỗi này báo ra rất mơ hồ, và nó là một trong những chỗ vấp phổ biến nhất khi bắt đầu tách template thành nhiều stack.

Câu 173 Chọn nhiều đáp án Domain 6: Cost and Performance Optimization

A media company uses S3 to aggregate the raw video footage from its reporting teams across the US. The company has recently expanded into new geographies in Europe and Australia. The technical teams at the overseas branch offices have reported huge delays in uploading large video files to the destination S3 bucket.

Which of the following are the MOST cost-effective options to improve the file upload speed into S3? (Select two)

  1. A

    Use multipart uploads for faster file uploads into the destination S3 bucket

  2. B

    Create multiple site-to-site VPN connections between the AWS Cloud and branch offices in Europe and Australia. Use these VPN connections for faster file uploads into S3

  3. C

    Use Amazon S3 Transfer Acceleration to enable faster file uploads into the destination S3 bucket

  4. D

    Use AWS Global Accelerator for faster file uploads into the destination S3 bucket

  5. E

    Create multiple AWS direct connect connections between the AWS Cloud and branch offices in Europe and Australia. Use the direct connect connections for faster file uploads into S3

Xem giải thích

Đáp án

A, C — hai cách tối ưu chi phí để tăng tốc tải lên:

  • C — Dùng Amazon S3 Transfer Acceleration.
  • A — Dùng multipart upload.

Vì sao đúng

Đề nêu hai ràng buộc: tăng tốc tải tệp lớn từ xa và TIẾT KIỆM CHI PHÍ NHẤT. Cả hai giải pháp đều không đòi dựng hạ tầng mạng nào.

⚠ Transfer Acceleration — đi vào mạng riêng của AWS từ điểm gần nhất:

Không có Transfer Acceleration:
    Văn phòng ở Sydney → internet công cộng → bucket ở Virginia
        ↓
    → đi qua nhiều nhà mạng, độ trễ cao, mất gói nhiều

Có Transfer Acceleration:
    Sydney → edge location GẦN NHẤT (vài mili giây)
        ↓
    → từ edge đi tiếp bằng ĐƯỜNG TRỤC RIÊNG CỦA AWS
        ↓
    → tới bucket
        ↓
    → nhanh hơn đáng kể với khoảng cách xa

Bật bằng một công tắc, và dùng endpoint riêng:

ten-bucket.s3-accelerate.amazonaws.com

⚠ Multipart upload — chia tệp lớn thành nhiều mảnh tải SONG SONG:

Tệp video 20 GB
        ↓
    Chia thành nhiều phần, tải ĐỒNG THỜI
        ↓
    → tận dụng hết băng thông sẵn có
    → một phần lỗi chỉ cần tải lại PHẦN ĐÓ
    → tạm dừng và tiếp tục được
        ↓
    AWS KHUYẾN NGHỊ dùng cho tệp > 100 MB
    BẮT BUỘC với tệp > 5 GB

Tin tốt: AWS CLI và SDK tự động dùng multipart cho tệp lớn — thường không phải viết gì thêm.

⚠ Vì sao hai cách này "tiết kiệm chi phí nhất":

Transfer Acceleration → trả theo GB đã tăng tốc, KHÔNG có phí cố định
Multipart upload      → MIỄN PHÍ hoàn toàn
        ↓
    So với VPN hay Direct Connect
        ↓
    → không có phí cổng hằng giờ
    → không có hợp đồng viễn thông
    → không có công sức vận hành

Vì sao các phương án khác sai

  • E (dựng nhiều Direct Connect tới các văn phòng châu Âu và Úc) — đây là phương án gần nhất về mặt hiệu quả kỹ thuật (băng thông ổn định nhất). Nhưng nó đắt nhất trong tất cả: phí cổng hằng giờ, phí đối tác viễn thông cho từng địa điểm, và mất hàng tuần tới hàng tháng để triển khai. Trái thẳng ràng buộc chi phí.

  • B (dựng nhiều kết nối Site-to-Site VPN) — rẻ hơn Direct Connect nhưng vẫn chạy qua internet công cộng, nên không nhanh hơn việc tải thẳng lên S3; thậm chí còn chậm hơn vì thêm chi phí đóng gói IPsec.

  • D (dùng AWS Global Accelerator để tải lên S3) — Global Accelerator cho IP tĩnh anycast và định tuyến qua mạng AWS, nhưng nó dành cho ALB, NLB, EC2 và Elastic IP — không hỗ trợ S3 làm endpoint. Với S3, thứ tương đương chính là Transfer Acceleration.

Ghi nhớ

⚠ Tăng tốc truyền dữ liệu lên S3 — bảng phải thuộc: | Cách | Chi phí | Khi nào dùng | |---|---|---| | Multipart upload | miễn phí | mọi tệp lớn — luôn nên dùng | | Transfer Acceleration | theo GB, không phí cố định | client ở xa bucket | | Snowball | thiết bị vật lý | hàng chục TB tới PB | | DataSync | theo GB | đồng bộ định kỳ, có kiểm chứng toàn vẹn | | Direct Connect | phí cổng + đối tác | cần băng thông ổn định lâu dài |

Từ khoá nhận diện:

"tải lên từ xa chậm, muốn rẻ" → Transfer Acceleration + multipart "tệp rất lớn" → multipart upload "hàng chục TB trở lên" → Snowball "Global Accelerator cho S3" → KHÔNG hỗ trợ "tăng tốc TẢI VỀ cho người dùng" → CloudFront, không phải Transfer Acceleration

Transfer Acceleration — chi tiết đáng nhớ Nội dung
Dùng chung hạ tầng edge location của CloudFront
Bật thế nào một công tắc trên bucket, dùng endpoint s3-accelerate
Công cụ đo thử AWS có Speed Comparison tool — so tốc độ có và không có
Chỉ tính tiền khi thật sự nhanh hơn nếu không tăng tốc được thì không tính phí
Không dùng được với tên bucket có dấu chấm, và một số Region
Multipart upload — chi tiết đáng nhớ Nội dung
Kích thước phần 5 MB tới 5 GB (phần cuối được nhỏ hơn)
Số phần tối đa 10.000
Kích thước tệp tối đa 5 TB
Bẫy chi phí tải lên dở dang vẫn tính tiền lưu trữ
Phải làm lifecycle rule AbortIncompleteMultipartUpload sau 7 ngày
Tăng tốc theo chiều ngược lại Nội dung
Tải VỀ cho người dùng cuối CloudFront — cache ở edge
Đọc một phần tệp lớn byte-range fetch
Lọc dữ liệu ngay tại S3 S3 Select — chỉ trả về phần cần

Ba việc kiểm chứng: | Việc | Cách | |---|---| | Nhanh hơn bao nhiêu | S3 Transfer Acceleration Speed Comparison tool | | Có upload dở dang không | list-multipart-uploads — rồi đặt lifecycle dọn | | CLI có dùng multipart không | chỉnh multipart_threshold và max_concurrent_requests trong ~/.aws/config |

Và một lời khuyên rẻ tiền mà hiệu quả bất ngờ: hãy chỉnh max_concurrent_requests của AWS CLI trước khi bật Transfer Acceleration. Mặc định CLI chỉ chạy 10 luồng song song; với một đường truyền tốt ở văn phòng, nâng con số đó lên có thể tăng tốc độ đáng kể mà không tốn thêm một đồng nào — hãy đo lại rồi mới quyết định có cần trả tiền cho Transfer Acceleration hay không.

Câu 174 Domain 4: Security and Compliance

A systems administrator has attached two policies to an IAM user. The first policy states that the user has explicitly been denied all access to EC2 instances. The second policy states that the user has been allowed permission for EC2:Describe action.

When the user tries to use 'Describe' action on an EC2 instance using the CLI, what will be the output?

  1. A

    The user will be denied access because one of the policies has an explicit deny on it

  2. B

    The order of the policy matters. If policy 1 is before 2, then the user is denied access. If policy 2 is before 1, then the user is allowed access

  3. C

    The user will get access because it has an explicit allow

  4. D

    The IAM user stands in an invalid state, because of conflicting policies

Xem giải thích

Đáp án

A — Người dùng bị TỪ CHỐI truy cập, vì một trong hai chính sách có Deny tường minh.

Vì sao đúng

Đây là quy tắc nền tảng nhất của IAM, và nó không có ngoại lệ nào.

⚠ Điểm mấu chốt — Explicit Deny thắng mọi Allow:

Chính sách 1: Deny  ec2:*
Chính sách 2: Allow ec2:Describe*
        ↓
    IAM gom TẤT CẢ chính sách áp dụng cho principal
        ↓
    Có bất kỳ Deny nào khớp?
        ↓
    CÓ → TỪ CHỐI, dừng luôn
        ↓
    → không quan tâm có bao nhiêu Allow
    → không quan tâm Allow cụ thể đến đâu

⚠ Ba đặc điểm của cách IAM đánh giá quyền:

1. KHÔNG có thứ tự
        ↓
    Chính sách không được đánh số, không có "cái nào trước"
        ↓
2. Mặc định là TỪ CHỐI NGẦM (implicit deny)
        ↓
    Không có Allow nào → bị từ chối
        ↓
3. Deny TƯỜNG MINH là tuyệt đối
        ↓
    Ghi đè mọi Allow, ở mọi loại chính sách

⚠ Thứ tự đánh giá đầy đủ — bảng quyết định mọi câu hỏi IAM:

1. Có Explicit Deny ở BẤT KỲ đâu?      → TỪ CHỐI
2. SCP có cho phép không?               → không thì TỪ CHỐI
3. Resource-based policy có Allow?      → có thể đủ (cùng tài khoản)
4. Permissions boundary có cho phép?    → không thì TỪ CHỐI
5. Session policy có cho phép?          → không thì TỪ CHỐI
6. Identity-based policy có Allow?      → có thì CHO PHÉP
7. Không rơi vào đâu                    → implicit deny

Vì sao các phương án khác sai

  • B (thứ tự chính sách quyết định — chính sách nào trước thì thắng) — đây là phương án gần nhất và là hiểu nhầm phổ biến nhất, vì nhiều hệ thống tường lửa và ACL đúng là xét theo thứ tự. IAM thì không: chính sách không có thứ tự, và kết quả luôn giống nhau dù gắn theo thứ tự nào. (Lưu ý: Network ACL của VPC thì CÓ thứ tự — đừng lẫn hai thứ.)

  • C (được truy cập vì có Allow tường minh) — bỏ qua đúng quy tắc quan trọng nhất: Deny thắng Allow.

  • D (IAM user rơi vào trạng thái không hợp lệ vì chính sách xung đột) — không có "trạng thái không hợp lệ" nào. Deny và Allow cùng lúc là chuyện hoàn toàn bình thường, và IAM có quy tắc rõ ràng để xử lý.

Ghi nhớ

⚠ Ba quy tắc vàng của IAM — thuộc ba dòng này là trả lời được phần lớn câu hỏi: | Quy tắc | |---| | 1. Mặc định là TỪ CHỐI (implicit deny) | | 2. Allow tường minh cho phép | | 3. DENY TƯỜNG MINH THẮNG TẤT CẢ |

Từ khoá nhận diện:

"vừa có Allow vừa có Deny" → DENY thắng "thứ tự chính sách" → IAM KHÔNG có thứ tự (NACL thì có) "chặn chắc chắn một hành động" → Deny tường minh "trần quyền cho một user" → permissions boundary "trần quyền cho cả tài khoản" → SCP

Dùng Deny tường minh vào việc gì Ví dụ
Chặn Region không được phép aws:RequestedRegion
Chặn xoá tài nguyên quan trọng Deny s3:DeleteBucket
Ép dùng MFA Deny khi aws:MultiFactorAuthPresent là false
Ép dùng HTTPS Deny khi aws:SecureTransport là false
Bảo vệ vai trò bảo mật Deny sửa role của đội security
Các loại chính sách đều có thể chứa Deny Nội dung
Identity-based gắn vào user, group, role
Resource-based bucket policy, key policy — Deny ở đây chặn cả root
SCP Deny áp cho cả tài khoản
Permissions boundary
Session policy truyền khi AssumeRole
Chẩn đoán khi bị từ chối Cách
IAM Policy Simulator mô phỏng và chỉ ra chính sách nào gây từ chối
CloudTrail xem errorCode: AccessDenied và errorMessage
Thông báo lỗi mới của AWS thường nêu đích danh chính sách đã Deny
Access Analyzer tìm quyền thừa để cắt bớt

Ba việc kiểm chứng: | Việc | Cách | |---|---| | Chính sách nào gây Deny | Policy Simulator | | Có SCP nào chặn không | describe-effective-policy ở cấp tổ chức | | Quyền thật sự của một role | Access Advisor + Policy Simulator |

Và một cách nhớ ngắn gọn không bao giờ sai: trong IAM, một tiếng "không" luôn thắng mọi tiếng "có". Đây chính là điều làm cho SCP và permissions boundary trở thành công cụ đáng tin cậy — bạn không cần rà soát hết mọi chính sách đã gắn cho mọi người để chắc chắn một hành động bị cấm; chỉ cần một Deny đặt đúng chỗ là đủ, và không có chính sách nào thêm vào sau này có thể lật ngược nó.

Câu 175 Domain 4: Security and Compliance

Which of the following security credentials can only be generated by the AWS Account root user?

  1. A

    EC2 Instance Key Pairs

  2. B

    IAM User passwords

  3. C

    IAM User Access Keys

  4. D

    CloudFront Key Pairs

Xem giải thích

Đáp án

D — CloudFront Key Pairs.

Vì sao đúng

Trong bốn loại chứng chỉ được liệt kê, chỉ CloudFront key pair là thứ mà tài khoản gốc phải tự tạo.

⚠ Điểm mấu chốt — vì sao chỉ root tạo được:

CloudFront key pair là "trusted signer" ở CẤP TÀI KHOẢN
        ↓
    Nó cấp quyền KÝ signed URL và signed cookie
    cho TOÀN BỘ nội dung của tài khoản
        ↓
    → không phải quyền của một IAM user nào
    → là một thuộc tính của chính tài khoản
        ↓
    → chỉ ROOT tạo và quản lý được
    → IAM user dù có AdministratorAccess cũng KHÔNG tạo được

⚠ Ba loại chứng chỉ còn lại — ai cũng tạo được nếu đủ quyền IAM:

EC2 key pair    → ec2:CreateKeyPair, ec2:ImportKeyPair
IAM password    → iam:CreateLoginProfile, iam:UpdateLoginProfile
IAM access key  → iam:CreateAccessKey
        ↓
    → đều là thao tác IAM thông thường
    → user có quyền tương ứng là làm được

Ghi nhớ về chất lượng câu hỏi

AWS nay KHUYẾN NGHỊ dùng "key group" thay cho CloudFront key pair. Cơ chế mới ra đời sau và tốt hơn hẳn ở mọi mặt:

CloudFront key pair (cách CŨ)
        ↓
    Chỉ ROOT tạo được
    Tối đa 2 khoá đang hoạt động mỗi tài khoản
    Không quản lý bằng IAM được
        ↓
Key group (cách MỚI, AWS khuyến nghị)
        ↓
    IAM user/role có quyền là tạo được — KHÔNG cần root
    Bạn TỰ SINH key pair, chỉ tải PUBLIC KEY lên CloudFront
    Tối đa 100 public key, nhóm thành các key group
    Quản lý và kiểm toán bằng IAM như mọi tài nguyên khác

Khoá đáp án vẫn đúng theo nghĩa hẹp — CloudFront key pair thật sự chỉ root tạo được. Nhưng trong một hệ thống dựng mới hôm nay, không nên dùng cơ chế đó nữa; và câu hỏi phản ánh danh mục tính năng ở thời điểm trước khi key group xuất hiện.

Vì sao các phương án khác sai

  • C (IAM User Access Keys) — đây là phương án gần nhất vì access key đúng là chứng chỉ nhạy cảm và root cũng tạo được cho chính mình. Nhưng bất kỳ principal nào có quyền iam:CreateAccessKey đều tạo được access key cho một user — không cần root.

  • B (IAM User passwords) — tạo bằng iam:CreateLoginProfile, quyền IAM thông thường.

  • A (EC2 Instance Key Pairs) — tạo bằng ec2:CreateKeyPair hoặc nhập khoá có sẵn bằng ec2:ImportKeyPair.

Ghi nhớ

⚠ Những việc CHỈ tài khoản gốc làm được — bảng phải thuộc: | Việc | |---| | Tạo CloudFront key pair (cơ chế cũ) | | Bật/tắt MFA-Delete trên bucket S3 | | Đổi email, tên tài khoản, thông tin thanh toán | | Đổi hoặc huỷ gói AWS Support | | Đóng tài khoản AWS | | Khôi phục quyền khi IAM policy tự khoá chính mình | | Đăng ký GovCloud |

Từ khoá nhận diện:

"chỉ root tạo được" → CloudFront key pair, MFA-Delete "ký signed URL cho CloudFront (cách mới)" → key group, không cần root "khoá SSH cho EC2" → EC2 key pair, quyền IAM thường "chứng chỉ gọi API" → access key — nhưng nên dùng role thay thế

Các loại "key pair" trên AWS — rất dễ lẫn Việc
EC2 key pair SSH/RDP vào instance — AWS chỉ giữ public key
CloudFront key pair ký signed URL/cookie (cách cũ, chỉ root)
CloudFront key group ký signed URL/cookie (cách mới, quản bằng IAM)
KMS key mã hoá dữ liệu — không phải key pair theo nghĩa SSH
ACM certificate chứng chỉ TLS cho tên miền
Thực hành tốt về tài khoản gốc Nội dung
Bật MFA cho root bắt buộc — ưu tiên FIDO security key
XOÁ access key của root không bao giờ cần tới
Không dùng root cho việc hằng ngày dùng IAM Identity Center
Bảo vệ email của root vì đó là đường khôi phục mật khẩu
Cảnh báo khi root đăng nhập EventBridge bắt sự kiện CloudTrail ConsoleLogin với userIdentity.type = Root
Chuyển từ key pair sang key group Bước
1 tự sinh RSA key pair (openssl genrsa)
2 tải public key lên CloudFront
3 tạo key group chứa public key đó
4 gắn key group vào cache behavior
5 ứng dụng ký bằng private key — lưu trong Secrets Manager

Ba việc kiểm chứng: | Việc | Cách | |---|---| | Root có access key không | Credential Report — nếu có thì xoá ngay | | Root đã bật MFA chưa | IAM console, mục Security credentials | | Đang dùng cơ chế ký nào | CloudFront console — key group hay trusted signer |

Và một cảnh báo đáng đặt lên hàng đầu trong mọi tài khoản AWS: hãy tạo cảnh báo cho mỗi lần tài khoản gốc đăng nhập. Root chỉ nên được dùng vài lần trong cả vòng đời một tài khoản, nên mỗi lần nó xuất hiện trong CloudTrail đều đáng để có người nhìn thấy và xác nhận — đó là một trong những tín hiệu cảnh báo sớm rẻ nhất và hiệu quả nhất mà bạn có thể dựng.

Câu 176 Domain 4: Security and Compliance

Security and Compliance is a Shared Responsibility between AWS and the customer. As part of this Shared Responsibility, the customer is also responsible for securing the resources that he has procured under his AWS account.

Which of the following is the responsibility of the customer?

  1. A

    AWS is responsible for training their customers and their employees as part of Customer Specific training

  2. B

    AWS is responsible for patching and fixing flaws within the infrastructure, for patching the guest Operating Systems and applications of the customers

  3. C

    For Amazon S3 service, managing the operating system and platform is customer responsibility

  4. D

    For Amazon EC2 service, managing guest operating system (including updates and security patches), application software and Security Groups is the responsibility of the customer

Xem giải thích

Đáp án

D — Với Amazon EC2, quản lý hệ điều hành khách (bao gồm cập nhật và bản vá bảo mật), phần mềm ứng dụng và Security Group là trách nhiệm của KHÁCH HÀNG.

Vì sao đúng

Mô hình trách nhiệm chia sẻ có một đường phân chia rất rõ, và nó dịch chuyển tuỳ theo loại dịch vụ.

⚠ Điểm mấu chốt — với EC2, ranh giới nằm ngay dưới hệ điều hành khách:

AWS chịu trách nhiệm — "SECURITY OF the cloud"
        ↓
    Trung tâm dữ liệu, điện, làm mát, an ninh vật lý
    Phần cứng máy chủ, mạng, tầng ảo hoá (hypervisor)
        ↓
────────────── RANH GIỚI với EC2 ──────────────
        ↓
Khách hàng chịu trách nhiệm — "SECURITY IN the cloud"
        ↓
    HỆ ĐIỀU HÀNH KHÁCH và bản vá của nó
    Phần mềm ứng dụng
    Security Group, NACL
    IAM, mã hoá dữ liệu
    Dữ liệu và phân loại dữ liệu

⚠ Và ranh giới đó DỊCH CHUYỂN theo loại dịch vụ:

IaaS (EC2)
        ↓
    Khách hàng lo nhiều nhất — kể cả vá hệ điều hành

PaaS được quản lý (RDS, ElastiCache)
        ↓
    AWS vá hệ điều hành VÀ công cụ cơ sở dữ liệu
    Khách hàng lo: lược đồ, người dùng DB, mã hoá, Security Group

Serverless (Lambda, S3, DynamoDB)
        ↓
    AWS lo toàn bộ hạ tầng và runtime
    Khách hàng lo: mã nguồn, quyền IAM, cấu hình, dữ liệu

Nguyên tắc chung: càng dùng dịch vụ được quản lý sâu, phần trách nhiệm của bạn càng nhỏ — nhưng phần dữ liệu và phân quyền thì LUÔN LÀ CỦA BẠN.

Vì sao các phương án khác sai

  • B (AWS chịu trách nhiệm vá hạ tầng VÀ vá hệ điều hành khách lẫn ứng dụng của khách hàng) — đây là phương án gần nhất và vế đầu đúng: AWS đúng là vá hạ tầng. Nhưng vế sau sai hẳn: vá hệ điều hành khách và ứng dụng là việc của KHÁCH HÀNG với EC2. Đây chính là hiểu nhầm nguy hiểm nhất trong toàn bộ mô hình.

  • C (với S3, quản lý hệ điều hành và nền tảng là trách nhiệm khách hàng) — ngược hẳn: S3 là dịch vụ được quản lý hoàn toàn, khách hàng không có hệ điều hành nào để quản. Trách nhiệm của bạn với S3 là quyền truy cập, mã hoá, và phân loại dữ liệu.

  • A (AWS chịu trách nhiệm đào tạo khách hàng và nhân viên của khách hàng) — đào tạo nhân viên của bạn là việc của bạn. AWS chỉ chịu trách nhiệm đào tạo nhân viên của chính AWS.

Ghi nhớ

⚠ Mô hình trách nhiệm chia sẻ — bảng phải thuộc: | AWS lo ("OF the cloud") | Khách hàng lo ("IN the cloud") | |---|---| | Trung tâm dữ liệu, an ninh vật lý | Dữ liệu và phân loại dữ liệu | | Phần cứng, mạng vật lý | IAM, quản lý danh tính | | Tầng ảo hoá (hypervisor) | Hệ điều hành khách + bản vá (với EC2) | | Dịch vụ được quản lý (bên dưới) | Ứng dụng và cấu hình | | Tuân thủ hạ tầng (SOC, ISO, PCI) | Security Group, NACL, mã hoá |

Từ khoá nhận diện:

"vá hệ điều hành EC2" → KHÁCH HÀNG "vá hypervisor, phần cứng" → AWS "vá công cụ RDS" → AWS (trong maintenance window) "cấu hình Security Group" → KHÁCH HÀNG, luôn luôn "mã hoá dữ liệu" → KHÁCH HÀNG quyết định bật hay không "an ninh vật lý trung tâm dữ liệu" → AWS

Ba thứ LUÔN thuộc khách hàng, với MỌI dịch vụ Nội dung
Dữ liệu của bạn nội dung, phân loại, ai được xem
IAM và phân quyền AWS không biết ai nên có quyền gì
Cấu hình dịch vụ bucket công khai hay riêng tư là lựa chọn của bạn
Công cụ giúp bạn làm phần của mình Việc
Systems Manager Patch Manager vá hệ điều hành
Inspector tìm lỗ hổng
AWS Config kiểm tra cấu hình đúng chuẩn
Security Hub tổng hợp theo chuẩn CIS, PCI DSS
GuardDuty phát hiện hành vi độc hại
AWS Artifact tải báo cáo tuân thủ của AWS cho phần AWS lo
Hiểu nhầm phổ biến nhất Sự thật
"Dữ liệu trên AWS được sao lưu tự động" KHÔNG — sao lưu là việc của bạn
"AWS vá máy EC2 hộ tôi" KHÔNG
"AWS chịu trách nhiệm nếu bucket của tôi lộ" KHÔNG — cấu hình là của bạn
"Dùng AWS là tự động tuân thủ HIPAA/PCI" KHÔNG — AWS cấp nền tảng đạt chuẩn, phần triển khai là của bạn

Ba việc kiểm chứng: | Việc | Cách | |---|---| | Máy đã vá đủ chưa | Patch Manager compliance | | Cấu hình có lệch chuẩn không | AWS Config + Security Hub | | AWS đạt chuẩn gì | AWS Artifact — tải báo cáo SOC, ISO, PCI |

Và một cách diễn đạt ngắn gọn để nhớ suốt đời: AWS lo an ninh CỦA đám mây, bạn lo an ninh TRONG đám mây. Mọi câu hỏi về trách nhiệm đều quy về việc xác định thứ đang bàn nằm ở phía nào của ranh giới — và với EC2, ranh giới đó nằm ngay bên dưới hệ điều hành khách, nghĩa là từ hệ điều hành trở lên đều là phần của bạn.

Câu 177 Domain 4: Security and Compliance

A large IT company uses several AWS accounts for the different lines of business. Quite often, the systems administrator is faced with the problem of sharing Customer Master Keys (CMKs) across multiple AWS accounts for accessing AWS resources spread across these accounts.

How will you implement a solution to address this issue?

  1. A

    The key policy for the CMK must give the external account (or users and roles in the external account) permission to use the CMK. IAM policies in the external account must delegate the key policy permissions to its users and roles

  2. B

    AWS Owned CMK can be used across AWS accounts. Configure an AWS Owned CMK and use it across accounts that need to share the key material

  3. C

    Declare a key policy for the CMK to give the external account permission to use the CMK. This key policy should be embedded with the first request of every transaction

  4. D

    Use AWS KMS service-linked roles to share access across AWS accounts

Xem giải thích

Đáp án

A — Key policy của CMK phải cấp quyền dùng khoá cho tài khoản bên ngoài (hoặc cho user và role trong tài khoản đó). ĐỒNG THỜI, chính sách IAM ở tài khoản bên ngoài phải uỷ quyền lại cho user và role của họ.

Vì sao đúng

Chia sẻ KMS key liên tài khoản đòi HAI chính sách ở HAI tài khoản — thiếu một bên là hỏng.

⚠ Điểm mấu chốt — hai bước, hai nơi:

Bước 1 — Ở TÀI KHOẢN SỞ HỮU KHOÁ: sửa key policy
{
  "Effect": "Allow",
  "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
  "Action": ["kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey"],
  "Resource": "*"
}
        ↓
    → mới chỉ là "tài khoản kia ĐƯỢC PHÉP"
    → chưa ai dùng được

Bước 2 — Ở TÀI KHOẢN BÊN NGOÀI: sửa chính sách IAM
{
  "Effect": "Allow",
  "Action": ["kms:Decrypt", "kms:GenerateDataKey"],
  "Resource": "arn:aws:kms:ap-southeast-1:111122223333:key/xxxx"
}
        ↓
    → giờ user/role cụ thể mới thật sự dùng được

⚠ Vì sao phải cả hai — đây là quy tắc chung của mọi truy cập liên tài khoản:

Cùng một tài khoản
        ↓
    Chỉ cần MỘT trong hai (resource policy hoặc IAM policy) Allow

KHÁC tài khoản
        ↓
    CẢ HAI đều phải Allow
        ↓
    → thiếu bên nào cũng nhận AccessDenied
    → và thông báo lỗi GIỐNG HỆT nhau

⚠ Và "Principal": root ở đây có nghĩa gì:

"arn:aws:iam::444455556666:root"
        ↓
    KHÔNG phải "chỉ tài khoản root của họ"
        ↓
    Mà là "TÀI KHOẢN ĐÓ được phép uỷ quyền cho user/role của mình"
        ↓
    → muốn chặt hơn: khai đích danh ARN của role được phép

Vì sao các phương án khác sai

  • C (khai key policy cho tài khoản ngoài, và nhúng key policy vào request đầu tiên của mỗi giao dịch) — đây là phương án gần nhất vì vế đầu đúng. Nhưng vế sau bịa hoàn toàn: key policy là cấu hình lưu ở KMS, không phải thứ gửi kèm request.

  • B (dùng AWS Owned CMK để chia sẻ giữa các tài khoản) — ngược hẳn: AWS owned key là khoá AWS sở hữu và dùng chung nội bộ; bạn không thấy nó, không sửa key policy được, nên đó là loại khoá không thể chia sẻ nhất.

  • D (dùng service-linked role của KMS để chia sẻ) — service-linked role là role AWS tạo cho chính dịch vụ dùng, không phải cơ chế chia sẻ khoá.

Ghi nhớ

⚠ Ba loại khoá KMS — bảng phải thuộc: | Loại | Sửa key policy | Chia sẻ liên tài khoản | |---|---|---| | AWS owned key | không thấy | KHÔNG | | AWS managed key (aws/s3, aws/ebs) | KHÔNG | KHÔNG | | Customer managed key (CMK) | CÓ | CÓ |

Từ khoá nhận diện:

"chia sẻ khoá giữa các tài khoản" → CMK + key policy + IAM policy ở CẢ HAI bên "AWS managed key chia sẻ được" → LUÔN SAI "chỉ cần sửa một bên" → SAI với liên tài khoản "chia sẻ AMI mã hoá" → cũng phải chia sẻ quyền dùng CMK "khoá dùng chung cho cả tổ chức" → key policy dùng aws:PrincipalOrgID

Quyền KMS cần cho từng thao tác Nội dung
Ghi dữ liệu mã hoá kms:GenerateDataKey
Đọc dữ liệu mã hoá kms:Decrypt
Xem thông tin khoá kms:DescribeKey
Cho dịch vụ tạo grant tạm (EC2, ASG, RDS) kms:CreateGrant — rất hay bị quên
Điều kiện đáng dùng trong key policy Nội dung
kms:ViaService khoá chỉ dùng được qua một dịch vụ (ví dụ s3.ap-southeast-1.amazonaws.com)
aws:PrincipalOrgID cho phép mọi tài khoản trong tổ chức
kms:EncryptionContext:* ràng buộc theo ngữ cảnh mã hoá
aws:SourceArn ràng buộc theo tài nguyên gọi tới

⚠ Điều tuyệt đối phải nhớ khi viết key policy:

LUÔN để lại một principal quản trị khoá trong key policy
    "Principal": {"AWS": "arn:aws:iam::<tai-khoan>:root"}
    "Action": "kms:*"
        ↓
    Nếu không, và không ai có kms:PutKeyPolicy
        ↓
    → khoá bị ĐÓNG BĂNG VĨNH VIỄN
    → mọi dữ liệu mã hoá bằng nó KHÔNG ĐỌC ĐƯỢC NỮA
    → kể cả root, kể cả AWS Support
Chẩn đoán AccessDenied liên quan KMS Cách
CloudTrail xem lời gọi thất bại là s3 hay kms
Nếu là kms thiếu quyền ở key policy hoặc IAM policy
Kiểm tra cả hai bên tài khoản sở hữu khoá và tài khoản dùng khoá
Công cụ IAM Policy Simulator

Ba việc kiểm chứng: | Việc | Cách | |---|---| | Key policy hiện tại | get-key-policy --policy-name default | | Ai đang dùng khoá | CloudTrail, lọc eventSource = kms.amazonaws.com | | Bên kia dùng được chưa | cho họ chạy thử kms:DescribeKey trên ARN của khoá |

Và một lời khuyên về cách viết key policy cho môi trường nhiều tài khoản: hãy dùng điều kiện aws:PrincipalOrgID thay vì liệt kê từng số hiệu tài khoản. Danh sách tài khoản luôn thay đổi khi tổ chức mở rộng, và mỗi lần thêm một tài khoản mà phải sửa key policy ở nhiều khoá là một cơ hội để ai đó viết sai — trong khi aws:PrincipalOrgID tự đúng mãi mãi và tự loại bỏ tài khoản khi nó rời khỏi tổ chức.

Câu 178 Chọn nhiều đáp án Domain 5: Networking and Content Delivery

The development team at an IT company is looking at moving its web applications to Amazon EC2 instances. The team is weighing its options for EBS volumes and instance store-backed instances for these applications with varied workloads.

Which of the following would you identify as correct regarding instance store and EBS volumes? (Select three)

  1. A

    Snapshots of EBS volumes, stored on Amazon S3, can be accessed using Amazon S3 APIs

  2. B

    EBS snapshots only capture data that has been written to your Amazon EBS volume, which might exclude any data that has been locally cached by your application or operating system

  3. C

    Data stored in the instance store is preserved when you stop or terminate your instance. However, data is lost when you hibernate the instance. Configure EBS volumes or have a backup plan to avoid using critical data to this behavior

  4. D

    Use separate Amazon EBS volumes for the operating system and your data, even though root volume persistence feature is available

  5. E

    EBS encryption does not support boot volumes

  6. F

    By default, data on a non-root EBS volume is preserved even if the instance is shutdown or terminated

Xem giải thích

Đáp án

B, D, F — ba điều đúng về instance store và EBS:

  • F — Mặc định, dữ liệu trên EBS volume KHÔNG PHẢI ổ gốc vẫn được giữ lại kể cả khi instance bị tắt hoặc chấm dứt.
  • B — EBS snapshot chỉ chụp dữ liệu ĐÃ ĐƯỢC GHI XUỐNG volume, nên có thể bỏ sót dữ liệu còn nằm trong bộ đệm của ứng dụng hoặc hệ điều hành.
  • D — Nên dùng EBS volume RIÊNG cho hệ điều hành và cho dữ liệu, dù đã có tính năng giữ lại ổ gốc.

Vì sao đúng

⚠ Điều F — DeleteOnTermination mặc định khác nhau giữa hai loại volume:

Ổ GỐC (root volume)
        ↓
    DeleteOnTermination = TRUE   ← xoá theo instance

Ổ DỮ LIỆU (volume gắn thêm)
        ↓
    DeleteOnTermination = FALSE  ← GIỮ LẠI
        ↓
    → đây chính là điều F
    → và cũng là lý do vì sao điều D là lời khuyên đúng

⚠ Điều B — snapshot chỉ thấy những gì đã ghi xuống đĩa:

Ứng dụng ghi dữ liệu
        ↓
    Nằm trong bộ đệm của ứng dụng và của hệ điều hành
        ↓
    Chưa flush xuống EBS
        ↓
    Chụp snapshot lúc này
        ↓
    → dữ liệu trong bộ đệm KHÔNG có trong snapshot
        ↓
    Chữa: fsfreeze (Linux) / VSS (Windows) trước khi chụp,
          hoặc dừng ghi, hoặc chấp nhận crash-consistent

⚠ Điều D — vì sao nên tách ổ hệ điều hành và ổ dữ liệu:

Một ổ duy nhất chứa cả hệ điều hành lẫn dữ liệu
        ↓
    Muốn thay máy, nâng cấp OS, đổi AMI
        ↓
    → phải di chuyển cả dữ liệu theo

Tách hai ổ
        ↓
    → thay máy: chỉ cần tháo ổ dữ liệu, gắn sang máy mới
    → snapshot riêng, lịch sao lưu riêng
    → chọn loại volume riêng (gp3 cho OS, io2 cho dữ liệu)
    → khôi phục nhanh hơn nhiều

Vì sao các phương án khác sai

  • C (dữ liệu instance store được giữ khi stop/terminate, nhưng mất khi hibernate) — đây là phương án gần nhất và đảo ngược hoàn toàn sự thật: instance store MẤT khi stop và terminate; còn hibernate thì lại GIỮ được (vì hibernate lưu trạng thái xuống ổ gốc EBS).

  • E (mã hoá EBS không hỗ trợ ổ khởi động) — sai; EBS encryption hỗ trợ đầy đủ ổ gốc. (Có một thời kỳ rất xa trước đây thì đúng, nhưng đã hỗ trợ từ lâu.)

  • A (snapshot EBS lưu trên S3 và truy cập được bằng S3 API) — đây là bẫy tinh vi: snapshot được lưu trên S3 ở hạ tầng nội bộ của AWS, nhưng chúng nằm trong bucket do AWS quản lý mà bạn không thấy. Bạn thao tác với chúng bằng EC2 API (describe-snapshots, copy-snapshot), không phải S3 API.

Ghi nhớ

⚠ DeleteOnTermination — bảng phải thuộc: | Loại volume | Mặc định | Hệ quả | |---|---|---| | Ổ gốc (root) | true | xoá cùng instance | | Ổ dữ liệu gắn thêm | false | giữ lại | | Đổi được không | được, cả lúc khởi chạy lẫn khi đang chạy | modify-instance-attribute |

Từ khoá nhận diện:

"volume gắn thêm có mất khi terminate không" → KHÔNG, mặc định giữ lại "ổ gốc có mất không" → CÓ, mặc định xoá "instance store khi stop" → MẤT SẠCH "instance store khi hibernate" → GIỮ ĐƯỢC (nhờ lưu xuống ổ gốc EBS) "snapshot truy cập bằng S3 API" → SAI, dùng EC2 API "snapshot có nhất quán không" → crash-consistent, trừ khi freeze trước

Ba mức nhất quán khi chụp snapshot Nội dung
Crash-consistent như rút phích điện — mặc định
File-system consistent fsfreeze (Linux) trước khi chụp
Application-consistent VSS (Windows) hoặc dừng ghi ở tầng ứng dụng
Nhiều volume cùng lúc create-snapshots (số nhiều) — chụp cả bộ tại một thời điểm
Đặc điểm của EBS snapshot Nội dung
Tăng dần (incremental) chỉ lưu khối đã thay đổi so với snapshot trước
Xoá snapshot cũ an toàn — AWS tự giữ khối mà snapshot sau còn cần
Phạm vi theo Region — copy sang Region khác được
Deregister AMI không xoá snapshot phải xoá riêng, nếu không vẫn tính tiền
Recycle Bin bảo vệ snapshot và AMI khỏi xoá nhầm
EBS và instance store — bảng đối chiếu
EBS lưu trữ mạng, sống sót stop/start, snapshot được
Instance store đĩa gắn thẳng vào host, MẤT khi stop/terminate, nhanh hơn nhiều
Instance store hợp cho bộ đệm, thư mục tạm, dữ liệu tái tạo được
Hibernate lưu RAM xuống ổ gốc EBS — nên ổ gốc phải mã hoá và đủ lớn

Ba việc kiểm chứng: | Việc | Cách | |---|---| | Volume có bị xoá khi terminate không | describe-instances, xem DeleteOnTermination của từng block device | | Snapshot có nhất quán không | khởi chạy thử một instance từ nó | | Snapshot mồ côi | describe-snapshots --owner-ids self, đối chiếu với AMI còn sống |

Và một quy ước kiến trúc đáng áp dụng từ máy chủ đầu tiên: hãy luôn tách ổ hệ điều hành khỏi ổ dữ liệu. Nó biến việc nâng cấp hệ điều hành, đổi AMI hay thay máy từ một cuộc di chuyển dữ liệu thành một thao tác tháo và gắn volume — và trong một sự cố, khả năng gỡ ổ dữ liệu ra khỏi một máy đang hỏng rồi gắn sang máy khoẻ thường là con đường phục hồi nhanh nhất mà bạn có.

Câu 179 Domain 1: Monitoring, Logging, and Remediation

A healthcare solutions company is undergoing a compliance audit by the regulator. The company has hundreds of IAM users that make API calls but specifically it needs to be determined who is making KMS API calls.

Which of the following services should the compliance team use?

  1. A

    CloudWatch Metrics

  2. B

    CloudTrail

  3. C

    X-Ray

  4. D

    Config

Xem giải thích

Đáp án

B — CloudTrail.

Vì sao đúng

Câu hỏi của kiểm toán viên là "AI đang gọi API KMS" — và trong toàn bộ danh mục AWS, chỉ CloudTrail trả lời được câu hỏi bắt đầu bằng chữ "ai".

⚠ Điểm mấu chốt — mỗi bản ghi CloudTrail đều mang danh tính người gọi:

Mỗi lời gọi tới KMS sinh một sự kiện chứa:
        userIdentity   → AI gọi (IAM user, role, người đóng vai)
        eventName      → Decrypt, GenerateDataKey, Encrypt...
        eventTime      → LÚC NÀO
        resources      → KHOÁ NÀO
        requestParameters.encryptionContext → cho TÀI NGUYÊN NÀO
        sourceIPAddress, userAgent

⚠ Truy vấn bằng Athena để có đúng báo cáo kiểm toán cần:

SELECT useridentity.arn      AS nguoi_goi,
       eventname             AS thao_tac,
       element_at(resources, 1).arn AS khoa,
       count(*)              AS so_lan
FROM cloudtrail_logs
WHERE eventsource = 'kms.amazonaws.com'
  AND eventtime BETWEEN '2026-08-01' AND '2026-09-01'
GROUP BY 1, 2, 3
ORDER BY so_lan DESC;

⚠ Và một điểm rất quan trọng với KMS:

Lời gọi KMS là MANAGEMENT EVENT
        ↓
    → MIỄN PHÍ trong bản sao đầu tiên của CloudTrail
        ↓
    → không có lý do gì để không ghi lại
        ↓
    (khác với S3 data event — phải bật và có phí)

Nhưng đừng quên: Event history trên console chỉ giữ 90 ngày. Với kiểm toán tuân thủ, phải tạo trail đổ vào S3 để giữ lâu hơn.

Vì sao các phương án khác sai

  • D (AWS Config) — đây là phương án gần nhất vì Config đúng là dịch vụ dành cho tuân thủ. Nhưng nó trả lời câu hỏi "tài nguyên đang được CẤU HÌNH thế nào" (khoá có bật xoay tự động không, key policy ra sao), chứ không ghi lại AI đã gọi API nào.

  • A (CloudWatch Metrics) — cho số đếm tổng hợp: bao nhiêu lời gọi, bao nhiêu lỗi. Nó không có thông tin danh tính nào.

  • C (AWS X-Ray) — truy vết hành trình một request bên trong ứng dụng của bạn, để tìm nút thắt hiệu năng. Không phải công cụ kiểm toán.

Ghi nhớ

⚠ Bốn dịch vụ hay bị nhầm trong bối cảnh tuân thủ — bảng phải thuộc: | Dịch vụ | Trả lời câu hỏi | |---|---| | CloudTrail | "AI đã gọi API nào, lúc nào" | | AWS Config | "tài nguyên đang cấu hình thế nào, có đúng chuẩn không" | | CloudWatch | "hệ thống đang chạy ra sao" (chỉ số, log) | | X-Ray | "request đi qua đâu, chậm ở đâu" |

Từ khoá nhận diện:

"AI làm gì trên AWS" → CloudTrail "cấu hình có đúng chuẩn không" → AWS Config "ai đã giải mã bằng khoá này" → CloudTrail, sự kiện kms:Decrypt "tổng hợp phát hiện bảo mật" → Security Hub "điều tra một sự cố bảo mật" → Amazon Detective

Ba loại sự kiện của CloudTrail Chi phí
Management event MIỄN PHÍ một bản sao — KMS nằm ở đây
Data event có phí — GetObject, gọi Lambda, DynamoDB item
Insights event có phí — phát hiện tần suất API bất thường
Chuẩn bị CloudTrail cho kiểm toán Việc
Tạo trail đổ vào S3 event history chỉ giữ 90 ngày
Multi-region trail không bỏ sót Region nào
Organization trail một trail cho toàn bộ tổ chức
Log file validation tệp digest chứng minh log không bị sửa
S3 Object Lock trên bucket log không ai xoá được, kể cả root
Bucket log ở tài khoản riêng tách khỏi tài khoản bị kiểm toán
Các lời gọi KMS đáng chú ý khi kiểm toán Ý nghĩa
Decrypt, GenerateDataKey ai đang dùng khoá
ScheduleKeyDeletion có người định XOÁ khoá — cảnh báo ngay
PutKeyPolicy ai đổi quyền trên khoá
DisableKey ai vô hiệu hoá khoá
CreateGrant dịch vụ nào được cấp quyền tạm

Ba việc kiểm chứng: | Việc | Cách | |---|---| | Trail có đang ghi không | get-trail-status, xem IsLogging | | Log có toàn vẹn không | validate-logs với tệp digest | | Ai gọi KMS nhiều nhất | Athena, nhóm theo useridentity.arn |

Và một lời khuyên khi chuẩn bị cho một đợt kiểm toán: hãy dựng sẵn bảng Athena trên log CloudTrail và lưu lại vài truy vấn mẫu, đừng chờ tới lúc kiểm toán viên hỏi. Log thô của CloudTrail là JSON lồng nhiều tầng, rất khó đọc bằng mắt; một bảng đã phân vùng cùng năm sáu truy vấn viết sẵn biến những câu hỏi kiểu "ai đã chạm vào khoá này trong sáu tháng qua" từ một buổi làm việc căng thẳng thành một lệnh chạy trong ba mươi giây.

Câu 180 Domain 5: Networking and Content Delivery

An e-commerce company runs their database workloads on Provisioned IOPS SSD (io1) volumes.

As a SysOps Administrator, which of the following options would you identify as an INCORRECT configuration for io1 EBS volume types?

  1. A

    100 GiB size volume with 3000 IOPS

  2. B

    100 GiB size volume with 7500 IOPS

  3. C

    100 GiB size volume with 5000 IOPS

  4. D

    100 GiB size volume with 1000 IOPS

Xem giải thích

Đáp án

B — Volume 100 GiB với 7.500 IOPS là cấu hình KHÔNG hợp lệ.

Vì sao đúng

io1 có một ràng buộc cứng giữa dung lượng và IOPS, và 7.500 vượt qua nó.

⚠ Điểm mấu chốt — tỷ lệ tối đa của io1 là 50:1:

io1: IOPS tối đa = dung lượng (GiB) × 50
        ↓
    100 GiB × 50 = 5.000 IOPS  ← trần cho volume này
        ↓
    A: 3.000  ≤ 5.000  → HỢP LỆ
    C: 5.000  = 5.000  → HỢP LỆ (đúng trần)
    D: 1.000  ≤ 5.000  → HỢP LỆ
    B: 7.500  > 5.000  → KHÔNG HỢP LỆ  ← đáp án

Muốn 7.500 IOPS trên io1 thì phải có volume ít nhất 150 GiB (150 × 50 = 7.500).

⚠ Bảng tỷ lệ của các loại volume — con số phải thuộc:

Loại Tỷ lệ IOPS:GiB IOPS tối đa
io1 50:1 64.000
io2 500:1 64.000
io2 Block Express 1.000:1 256.000
gp3 500:1 16.000
gp2 3 IOPS/GiB (cố định) 16.000

⚠ Vì sao AWS đặt ra tỷ lệ này:

IOPS được phục vụ bởi phần cứng lưu trữ thật
        ↓
    Một volume rất nhỏ mà đòi IOPS rất cao
        ↓
    → chiếm dụng phần cứng không tương xứng
        ↓
    → nên AWS ràng buộc theo dung lượng
        ↓
    io2 nới tỷ lệ lên 500:1 — cùng 100 GiB
    thì io2 cho tới 50.000 IOPS

Vì sao các phương án khác sai

(Ba cấu hình còn lại đều nằm trong giới hạn, nên chúng hợp lệ và không phải đáp án.)

  • C (100 GiB với 5.000 IOPS) — đây là phương án gần nhất và nằm ĐÚNG ở trần: 100 × 50 = 5.000. Hợp lệ, dù không còn chỗ để tăng thêm.

  • A (100 GiB với 3.000 IOPS) — thoải mái trong giới hạn.

  • D (100 GiB với 1.000 IOPS) — hợp lệ, nhưng lãng phí: với mức IOPS này thì gp3 rẻ hơn nhiều (gp3 cho sẵn 3.000 IOPS miễn phí ở mọi kích thước).

Ghi nhớ

⚠ Các loại EBS volume và giới hạn — bảng phải thuộc: | Loại | Dung lượng | IOPS tối đa | Throughput tối đa | |---|---|---|---| | gp3 | 1 GiB – 16 TiB | 16.000 | 1.000 MB/s | | gp2 | 1 GiB – 16 TiB | 16.000 | 250 MB/s | | io1 | 4 GiB – 16 TiB | 64.000 | 1.000 MB/s | | io2 | 4 GiB – 16 TiB | 64.000 | 1.000 MB/s | | io2 Block Express | 4 GiB – 64 TiB | 256.000 | 4.000 MB/s | | st1 | 125 GiB – 16 TiB | 500 | 500 MB/s | | sc1 | 125 GiB – 16 TiB | 250 | 250 MB/s |

Từ khoá nhận diện:

"io1, tỷ lệ IOPS:GiB" → 50:1 "io2, tỷ lệ" → 500:1 — gấp 10 lần io1 "gp3 cho sẵn bao nhiêu" → 3.000 IOPS và 125 MB/s ở MỌI kích thước "gp2 tính IOPS thế nào" → 3 IOPS mỗi GiB "IOPS cao nhất" → io2 Block Express, 256.000

⚠ Vì sao gp3 thường là câu trả lời tốt hơn io1 trong thực tế:

Cần 3.000 IOPS trên volume 100 GiB
        ↓
    io1: phải trả tiền cho 3.000 PIOPS + dung lượng
    gp3: 3.000 IOPS ĐÃ CÓ SẴN, miễn phí
        ↓
    → gp3 rẻ hơn hẳn
        ↓
    Chỉ nên dùng io1/io2 khi:
        - cần trên 16.000 IOPS
        - cần độ bền cao hơn (io2: 99,999%)
        - cần Multi-Attach
Khi nào cần io2 thay vì io1 Nội dung
Độ bền io2 99,999% so với io1 99,8–99,9%
Tỷ lệ IOPS:GiB 500:1 so với 50:1
Cùng giá io2 không đắt hơn io1 — nên luôn ưu tiên io2
Multi-Attach cả hai đều hỗ trợ, tối đa 16 instance, cùng AZ
Trần của INSTANCE cũng phải xét Nội dung
Mỗi loại instance có trần băng thông EBS riêng
Volume nhanh mà instance nhỏ vẫn bị chặn ở trần của instance
Kiểm tra chỉ số EBSIOBalance% và EBSByteBalance%
Cần dùng instance EBS-optimized (mặc định ở thế hệ mới)

Ba việc kiểm chứng: | Việc | Cách | |---|---| | Volume đang cấu hình gì | describe-volumes, xem VolumeType, Size, Iops | | Có đang chạm trần không | chỉ số VolumeQueueLength — cao là đang xếp hàng | | gp3 có rẻ hơn không | tính lại: gp3 rẻ hơn gp2 và tách riêng phần IOPS |

Và một lời khuyên áp dụng được ngay: trước khi cấp một volume io1, hãy tính xem gp3 có đủ không. Rất nhiều volume io1 đang chạy trong sản xuất được cấu hình ở mức IOPS mà gp3 cung cấp sẵn không mất tiền — chuyển sang gp3 diễn ra tại chỗ, không cần dừng máy, và thường cắt được một phần đáng kể hoá đơn lưu trữ mà không ai nhận ra sự khác biệt về hiệu năng.