Phân biệt nhanh: các lựa chọn dễ nhầm khi mã hoá
Nhiều tính năng có tên gắn với mã hoá nhưng giải quyết các vấn đề khác nhau; phân biệt được chúng giúp tránh chọn phương án phức tạp hơn mức cần thiết.
Một số tính năng có tên gần với yêu cầu mã hoá của MFTECH nhưng giải quyết một vấn đề khác, hoặc làm tăng khối lượng vận hành. Chọn từng tính năng để xem trường hợp sử dụng, lý do không phù hợp trong tình huống MFTECH tương ứng, và phương án nên chọn:
Một tập cặp key–value không bí mật gửi kèm request mã hoá tới KMS. KMS dùng nó làm additional authenticated data (AAD): khi giải mã phải gửi đúng encryption context đó. Encryption context xuất hiện dạng plaintext trong CloudTrail và dùng được làm điều kiện trong key policy, IAM policy (kms:EncryptionContext:) hoặc grant. Với SSE-KMS, S3 mặc định dùng ARN của object (hoặc ARN của bucket khi bật S3 Bucket Key) làm encryption context.
Bộ phận pháp chế muốn mỗi hoá đơn có key riêng trong một bucket duy nhất. Encryption context không tạo ra key nào: nó chỉ ràng buộc ciphertext với thông tin mô tả dữ liệu, và không được chứa thông tin nhạy cảm vì không được mã hoá.
Phương án phù hợpSSE-S3: S3 tự mã hoá mỗi object bằng một key riêng, không cần chia bucket hay cấu hình thêm.
- Encryption context: dữ liệu xác thực gắn với ciphertext, không tạo key.
- Imported key material và CloudHSM: nhiều quyền kiểm soát hơn, nhưng không có automatic rotation.
- Client-side encryption: ứng dụng tự mã hoá trước khi gửi, không dùng S3 Bucket Keys.
- Multi-Region: chọn khi tạo key, không chuyển đổi về sau.
Quick comparison: easily confused encryption choices
Many features sound like encryption but solve different problems; telling them apart avoids picking something more complex than needed.
Some features have names close to MFTECH’s encryption requirements but solve a different problem, or add operational work. Choose each feature to see when to use it, why it does not fit the matching MFTECH situation, and what to choose instead:
A set of non-secret key–value pairs sent with an encryption request to KMS. KMS uses it as additional authenticated data (AAD): decryption must supply the same encryption context. The encryption context appears in plaintext in CloudTrail and can be used as a condition in key policies, IAM policies (kms:EncryptionContext:) or grants. With SSE-KMS, S3 uses the object ARN (or the bucket ARN when an S3 Bucket Key is enabled) as the default encryption context.
The legal team wants a separate key for every invoice in a single bucket. An encryption context does not create any key: it only binds the ciphertext to information that describes the data, and it must hold no sensitive data because it is not encrypted.
Phương án phù hợpSSE-S3: S3 encrypts each object with a unique key, with no bucket split and no extra configuration.
- Encryption context: authenticated data bound to the ciphertext, not a key generator.
- Imported key material and CloudHSM: more control, but no automatic rotation.
- Client-side encryption: the application encrypts before sending and does not use S3 Bucket Keys.
- Multi-Region: chosen at key creation, never converted later.