Các chế độ mã hóa và bắt buộc khi truyền

Sử dụng AWS Security dành cho Developer

Rahul Singh

Technical Product Manager

Hai đảm bảo, một mặc định

Một ứng dụng gửi một đối tượng vào Amazon S3 bucket. Một ngoặc xanh nhãn in transit bao phủ chặng mạng, và ngoặc xanh thứ hai nhãn at rest bao phủ đối tượng đã lưu; bên trên ghi chú rằng SSE-S3 áp dụng trừ khi yêu cầu nêu khác.

  • At rest: bytes trên đĩa
  • In transit: bytes trên mạng
Sử dụng AWS Security dành cho Developer

Hai đảm bảo, một mặc định

Một ứng dụng gửi một đối tượng vào Amazon S3 bucket. Một ngoặc xanh nhãn in transit bao phủ chặng mạng, và ngoặc xanh thứ hai nhãn at rest bao phủ đối tượng đã lưu; bên trên ghi chú rằng SSE-S3 áp dụng trừ khi yêu cầu nêu khác.

  • At rest: bytes trên đĩa
  • In transit: bytes trên mạng
  • Đã có sẵn: SSE-S3 cho mọi đối tượng mới
  • Phần của bạn: Chọn chế độ và ai giữ khóa, do
Sử dụng AWS Security dành cho Developer

Plaintext kết thúc ở đâu

Phía máy chủ

  • AWS nhận bytes đọc được
  • S3 mã hóa khi ghi

 

Luồng phía máy chủ. Tiến trình của bạn giữ plaintext, gửi qua dây TLS, và Amazon S3 mã hóa khi ghi. Thanh bên dưới theo dõi bytes, chia bởi vạch đứt tại S3: đoạn trước nhãn "bytes của bạn: đọc được ở đây" màu đỏ, đoạn sau nhãn "ciphertext" màu xanh.

 

Sử dụng AWS Security dành cho Developer

Plaintext kết thúc ở đâu

Phía máy chủ

  • AWS nhận bytes đọc được
  • S3 mã hóa khi ghi

Phía máy khách

  • Bạn mã hóa trước khi rời đi
  • AWS chỉ lưu ciphertext

Luồng phía máy chủ. Tiến trình của bạn giữ plaintext, gửi qua dây TLS, và Amazon S3 mã hóa khi ghi. Thanh bên dưới theo dõi bytes, chia bởi vạch đứt tại S3: đoạn trước nhãn "bytes của bạn: đọc được ở đây" màu đỏ, đoạn sau nhãn "ciphertext" màu xanh.

Luồng phía máy khách. Tiến trình của bạn mã hóa trước, gửi ciphertext qua dây TLS, và Amazon S3 lưu những gì nhận được. Thanh bên dưới theo dõi bytes, chia bởi vạch đứt bên trong tiến trình của bạn: đoạn ngắn trước nhãn "bytes của bạn: đọc được ở đây" màu đỏ, mọi phần sau nhãn "ciphertext" màu xanh.

Sử dụng AWS Security dành cho Developer

Bốn chế độ, một khác biệt

Cùng thuật toán, bốn chủ khóa

  • Chế độ đi kèm header trên PUT
  • SSE-S3: khóa của AWS, không cần quản lý
  • SSE-KMS: khóa của bạn, CloudTrail, và một key policy gắn với khóa, nêu ai được phép giải mã

Bốn thẻ xếp chồng: SSE-S3, SSE-KMS, DSSE-KMS và SSE-C. Thanh bên trái chạy từ kiểm soát của AWS ở trên đến kiểm soát của bạn ở dưới; mỗi thẻ chỉ hiển thị giá trị header chọn chế độ đó.

Sử dụng AWS Security dành cho Developer

Bốn chế độ, một khác biệt

Cùng thuật toán, bốn chủ khóa

  • Chế độ đi kèm header trên PUT
  • SSE-S3: khóa của AWS, không cần quản lý
  • SSE-KMS: khóa của bạn, CloudTrail, và một key policy gắn với khóa, nêu ai được phép giải mã
  • DSSE-KMS: hai lớp độc lập
  • SSE-C: khóa của bạn ở mỗi yêu cầu, mất là mất

Bốn thẻ xếp chồng: SSE-S3, SSE-KMS, DSSE-KMS và SSE-C. Thanh bên trái chạy từ kiểm soát của AWS ở trên đến kiểm soát của bạn ở dưới; mỗi thẻ chỉ hiển thị giá trị header chọn chế độ đó.

Sử dụng AWS Security dành cho Developer

Phản biện về chi phí với SSE-KMS

Hai hàng. Không dùng Bucket Keys, có 6 mũi tên từ Amazon S3 sang AWS KMS, mỗi mũi cho một yêu cầu đối tượng. Với Bucket Keys, một mũi tên rời từ khóa cấp bucket giữ trong S3. Ghi chú: Bucket Keys không hỗ trợ DSSE-KMS.

  • Không dùng: một cuộc gọi KMS cho mỗi đối tượng
  • Dùng Bucket Keys: một khóa sống ngắn, tái sử dụng
  • Không hỗ trợ với DSSE-KMS
  • Giảm tới 99% số yêu cầu KMS
Sử dụng AWS Security dành cho Developer

Mã hóa theo trường, không theo bảng

At rest đã bật sẵn

  • Truy vấn trả về plaintext cho ai có quyền đọc

Một mục DynamoDB với năm thuộc tính. Hai thuộc tính chứa ciphertext và có thanh xanh, trong khi partition key, sort key và timestamp vẫn là plaintext. Hộp xanh bên dưới nêu cả bảng được mã hóa at rest.

Sử dụng AWS Security dành cho Developer

Mã hóa theo trường, không theo bảng

At rest đã bật sẵn

  • Truy vấn trả về plaintext cho ai có quyền đọc

AWS Database Encryption SDK

  • Mã hóa các thuộc tính chọn lọc trong mã của bạn
  • Partition và sort key — các trường DynamoDB dùng để tìm mục — giữ nguyên plaintext vì nó lập chỉ mục trên chúng

Một mục DynamoDB với năm thuộc tính. Hai thuộc tính chứa ciphertext và có thanh xanh, trong khi partition key, sort key và timestamp vẫn là plaintext. Hộp xanh bên dưới nêu cả bảng được mã hóa at rest.

Sử dụng AWS Security dành cho Developer

TLS là tùy chọn, không bắt buộc

Có sẵn, không bắt buộc

  • S3 trả lời cả HTTP và HTTPS

Hai kịch bản. Khi không có điều kiện trên bucket, cả client HTTPS và HTTP đều tới được đối tượng. Với điều kiện từ chối, đường HTTP dừng ở dấu chéo đỏ và không kết nối.

Sử dụng AWS Security dành cho Developer

TLS là tùy chọn, không bắt buộc

Có sẵn, không bắt buộc

  • S3 trả lời cả HTTP và HTTPS

Biến thành bắt buộc

  • Bucket policy: từ chối khi aws:SecureTransport là false
  • Client hợp lệ sẽ không nhận ra khác biệt

Hai kịch bản. Khi không có điều kiện trên bucket, cả client HTTPS và HTTP đều tới được đối tượng. Với điều kiện từ chối, đường HTTP dừng ở dấu chéo đỏ và không kết nối.

Sử dụng AWS Security dành cho Developer

Cơ quan nào bảo chứng cho tên

Tên công khai

  • ACM: được tin cậy công khai, miễn phí, tự gia hạn

Tên chỉ mạng nội bộ của bạn phân giải

  • AWS Private CA: cơ quan cấp chứng chỉ riêng của bạn
  • Không bao giờ được tin cậy trên internet công cộng

Hai thẻ xếp chồng nêu ai có thể cấp chứng chỉ. Thẻ trên, tên công khai, là reports chấm example chấm com làm tên phân giải và ACM là bên cấp, được tin cậy ở mọi nơi. Thẻ dưới, tên nội bộ, là admin chấm example chấm internal, chỉ phân giải trong VPC của bạn, và AWS Private CA là bên cấp.

Sử dụng AWS Security dành cho Developer

Nửa riêng tư là phần bạn có thể làm mất

Ai giữ nó

  • ACM: AWS giữ
  • Cặp khóa EC2, hoặc bất kỳ khóa SSH: bạn giữ nửa riêng tư, chỉ một bản

Hai thẻ xếp chồng nêu ai giữ nửa nào. Thẻ trên, nửa công khai, sống trên AWS hoặc instance. Thẻ cam dưới, nửa riêng tư, có ba hàng: bạn có một bản duy nhất, giữ trong Secrets Manager với dấu tick xanh, và không bao giờ trong repo, laptop hay chat, với dấu chéo cam.

Sử dụng AWS Security dành cho Developer

Nửa riêng tư là phần bạn có thể làm mất

Ai giữ nó

  • ACM: AWS giữ
  • Cặp khóa EC2, hoặc bất kỳ khóa SSH: bạn giữ nửa riêng tư, chỉ một bản

Nếu là của bạn

  • Secrets Manager, không phải repo
  • Thay thế theo lịch

Hai thẻ xếp chồng nêu ai giữ nửa nào. Thẻ trên, nửa công khai, sống trên AWS hoặc instance. Thẻ cam dưới, nửa riêng tư, có ba hàng: bạn có một bản duy nhất, giữ trong Secrets Manager với dấu tick xanh, và không bao giờ trong repo, laptop hay chat, với dấu chéo cam.

Sử dụng AWS Security dành cho Developer

Ba câu trả lời, không phải một

Ba thẻ được đánh số cho chế độ, quyền kiểm soát khóa và truyền, mỗi thẻ hiển thị header hoặc khóa điều kiện tương ứng. Dòng bên dưới lưu ý chỉ kiểm tra thứ ba nằm ngoài cài đặt mã hóa.

  1. Chế độ: cái đã ghi đối tượng
  2. Quyền với khóa: ai có thể giải mã, trong tài khoản này hay tài khoản khác
  3. Truyền: bắt buộc hay chỉ cung cấp
Sử dụng AWS Security dành cho Developer

Cùng luyện tập nào!

Sử dụng AWS Security dành cho Developer

Preparing Video For Download...