Bài viết Câu hỏi About RongvangIT
profile Pic
0
0

Đăng ngày:

 

Sửa ngày:

83 Lượt xem

AWS Secrets Manager - Giới thiệu, các chức năng chính, nguyên lý hoạt động, và tóm tắt các tài nguyên liên quan trong việc quản lý thông tin mật.

AWSAWS Secrets Manager

Cho những người muốn tìm hiểu về AWS Secrets Manager: Tổng quan, nguyên lý hoạt động, các hướng dẫn và tài liệu chi tiết dựa trên nội dung trong tài liệu chính thức.

AWS Secrets Manager, một dự án đột ngột được công bố tại AWS Summits 2018 | San Francisco. Và tôi đã tìm hiểu về nó ngay từ khi nó được công bố.

Trong bài viết này, tôi đã tổng hợp thông tin từ tài liệu chính thức dành cho những người muốn tìm hiểu về AWS Secrets Manager, bao gồm tổng quan, nguyên lý hoạt động, các hướng dẫn và tài liệu chi tiết.

Tôi hy vọng rằng việc đọc bài này sẽ giúp bạn có được kiến thức hữu ích và áp dụng vào công việc của mình.

AWS Secrets Manager là gì?

スクリーンショット 2023-10-27 10.52.40.png
AWS Secrets Manager là một dịch vụ quản lý thông tin bí mật của AWS giúp bạn dễ dàng quản lý thông tin xác thực và các thông tin bí mật khác dành cho việc truy cập tài nguyên trong AWS, môi trường on-premises, hoặc ứng dụng của bên thứ ba. Bạn có thể truy cập và kiểm soát thông tin bí mật này bằng cách sử dụng AWS CLI, API, và SDK.

Ví dụ, đối với ứng dụng cần truy cập dữ liệu từ cơ sở dữ liệu, bạn phải nhúng thông tin xác thực cơ sở dữ liệu vào ứng dụng. Khi bạn muốn thay đổi thông tin xác thực này, bạn phải cập nhật và phân phối lại chúng cho từng ứng dụng.

Thay vào đó, AWS Secrets Manager cho phép bạn thay thế thông tin xác thực đã được lập trình cứng trong ứng dụng bằng các cuộc gọi API. Thông tin bí mật không còn tồn tại trong ứng dụng, và việc xoay thông tin bí mật theo khoảng thời gian cố định giúp giảm thiểu rủi ro về bảo mật.

3 Chức năng Chính của AWS Secrets Manager

Chức Năng Chính 1: Lấy thông tin bí mật từ ứng dụng thay vì lưu trữ cố định

Lý do quan trọng nhất để sử dụng AWS Secrets Manager là loại bỏ thông tin bí mật đã được lập trình cứng trong ứng dụng. Ngoài ra, nó giảm bớt công việc cần thiết khi bạn cảm thấy cần cập nhật thông tin bí mật đã lỗi thời.

Thông tin bí mật có thể được lưu trữ trong một lịch sử và quản lý theo phiên bản, và bạn có thể lưu trữ nhiều thông tin bí mật thông qua chức năng gọi là “staging label”.

Chức Năng Chính 2: Lưu trữ nhiều loại thông tin bí mật khác nhau

Thông tin bí mật có thể được lưu trữ bằng dạng văn bản JSON tùy ý. Một phần dữ liệu có thể lưu trữ tối đa 4096 byte văn bản.

    • Tên máy chủ
    • Địa chỉ IP
    • Số cổng
    • Thông tin kết nối cơ sở dữ liệu
    • Các khóa API khác nhau

Tất cả các thông tin bí mật đều được mã hóa bởi AWS Key Management Service và hỗ trợ cả khóa chính tùy chỉnh của AWS KMS (CMK).

Chức Năng Chính 3: Triển khai chức năng xoay mật khẩu

AWS Secrets Manager hỗ trợ việc xoay thông tin bí mật dựa trên lịch trình. Điều này được xác định bởi AWS Lambda Function và cũng được sử dụng để quản lý phiên bản thông tin bí mật.

Thông tin bí mật xoay thường được kết hợp với thông tin kết nối cơ sở dữ liệu trong các cơ sở dữ liệu sau:

    • Aurora
    • RDS (MySQL)
    • RDS (PostgreSQL)

Đối với các cơ sở dữ liệu khác, việc triển khai chức năng xoay mật khẩu sẽ đòi hỏi cách thức triển khai đặc thù.

Nguyên Lý Hoạt Động Của AWS Secrets Manager

Cấu trúc cơ bản của thông tin bí mật được mô tả như sau (trích từ tài liệu chính thức).
スクリーンショット 2023-10-27 10.55.28.png

    • Phần trên cùng (khung màu xanh) là siêu dữ liệu (metadata). Phần dưới cùng (khung màu xám) là thông tin phiên bản.

Siêu dữ liệu

Siêu dữ liệu chứa các thông tin sau:

    • Tên thông tin bí mật, mô tả, ARN
    • AWS Key được sử dụng cho mã hóa và giải mã
    • Thông tin về tần suất xoay thông tin bí mật và thông tin về Lambda Function được sử dụng cho xoay thông tin
    • Bộ thẻ (tags)

Thông tin phiên bản

Các đặc điểm của thông tin phiên bản bao gồm:

    • Một phiên bản mới sẽ được tạo ra khi thông tin bí mật thay đổi
    • Mỗi phiên bản sẽ giữ lại một bản sao của giá trị đã được mã hóa
    • Mỗi phiên bản sẽ được gán một nhãn sân khấu để xác định vị trí của thông tin bí mật trên quy trình xoay

Thông tin chi tiết về chức năng xoay thông tin bí mật của AWS Secrets Manager

Thông tin chi tiết về chức năng xoay thông tin bí mật, một trong những tính năng quan trọng của AWS Secrets Manager, có thể được tìm hiểu chi tiết tại đây:

Khi cập nhật thông tin bí mật, việc quan trọng nhất là thời gian không hoạt động ở phía ứng dụng khi thay đổi thông tin bí mật. Tài liệu chính thức giới thiệu hai phương pháp chính để thực hiện xoay thông tin bí mật:

Phương pháp xoay 1: “Xoay thông tin bí mật sử dụng một tài khoản và mật khẩu duy nhất”

スクリーンショット 2023-10-27 10.59.12.png

Trong trường hợp này, nếu thông tin bí mật cũ vẫn được truy cập từ ứng dụng trong quá trình xoay, quá trình truy cập dịch vụ sẽ bị ngừng hoạt động. Nếu xảy ra lỗi trong khoảng thời gian giữa các giai đoạn “setSecret” và “finishSecret” khi mật khẩu được thay đổi, ứng dụng cần có tính năng thử lại cơ bản ít nhất.

Phương pháp xoay 2: “Xoay thông tin bí mật sử dụng hai tài khoản”

スクリーンショット 2023-10-27 10.59.21.png

Trong trường hợp này, để tránh thời gian không hoạt động khi xoay thông tin bí mật, bạn sẽ chuẩn bị một người dùng cơ sở dữ liệu có quyền truy cập tương tự người dùng cơ sở dữ liệu thông tin bí mật cũ. Cụ thể, khi bạn chuyển thông tin bí mật mới sang nhãn “AWSCURRENT,” bạn có thể gán nhãn “AWSPREVIOUS” cho thông tin bí mật cũ như một phương tiện để phục hồi trong quá trình xoay thông tin bí mật. Khi tất cả ứng dụng đã chuyển sang sử dụng thông tin bí mật mới, bạn có thể hủy bỏ toàn bộ nhãn cũ và hoàn thành việc xoay thông tin bí mật.

Để thực hiện điều này, bạn sẽ cần tùy chỉnh Lambda Function đã được tạo trong cài đặt xoay thông tin bí mật. Chi tiết có thể được tìm hiểu trong hướng dẫn Xoay thông tin bí mật chỉ giữa hai người dùng.

Phí Sử Dụng

Rất đơn giản.

    • PER SECRET PER MONTH
    • $0.40 mỗi thông tin bí mật mỗi tháng
    • PER 10,000 API CALLS
    • $0.05 mỗi 10,000 lượt gọi API

Một tháng mỗi thông tin bí mật với giá $0.40 có vẻ rất rẻ, nhưng giá $0.05 mỗi 10,000 lượt gọi API có thể cần phải chú ý tùy thuộc vào cách bạn sử dụng dịch vụ.

Học bằng Thực Hành

Tài liệu chính thức có các hướng dẫn thực hành:

Các Lời Khuyên Về Vận Hành (Best Practices)

Dưới đây là một số lời khuyên về việc vận hành AWS Secrets Manager:

    • Bảo vệ các thông tin bí mật bổ sung: Ngoài tên người dùng và mật khẩu, hãy xem xét bao gồm các loại thông tin bí mật khác như cơ sở dữ liệu, dịch vụ, gợi ý mật khẩu, mã thông báo kết nối và nhiều loại thông tin khác. Tất cả thông tin này có thể được lưu trữ trong trường SecretString hoặc SecretBinary và có thể chứa tối đa 4096 ký tự.
    • Giảm nguy cơ ghi log và gỡ lỗi của Lambda: Khi tạo hàm quay thông tin bí mật tùy chỉnh trong AWS Secrets Manager, hãy chắc chắn rằng thông tin bí mật không được bao gồm trong câu lệnh ghi log và các quy trình gỡ lỗi. Điều này giúp tránh việc thông tin bí mật được ghi vào CloudWatch Logs.
    • Giảm nguy cơ lưu trữ thông tin bí mật qua giao diện dòng lệnh (CLI): Khi sử dụng AWS CLI hoặc các công cụ dòng lệnh khác để truy cập thông tin bí mật, hãy cẩn thận với các tính năng thuận tiện của terminal như việc lưu trữ lịch sử câu lệnh. Để giảm thiểu nguy cơ này, bạn có thể sử dụng các thủ thuật như tạo một tệp văn bản, sau đó sao chép thông tin bí mật vào tệp và xóa nó ngay sau khi hoàn thành.

Sự Khác Biệt So Với AWS Systems Manager Parameter Store

Đây là ý kiến cá nhân của tác giả. Mặc dù có AWS Systems Manager Parameter Store có thể có một số trùng hợp trong việc sử dụng, nhưng có một số điểm cốt lõi khác biệt:

    • Thực hiện xoay thông tin bí mật: AWS Secrets Manager không chỉ ngăn thông tin bí mật lưu trữ trực tiếp trong ứng dụng, mà còn tích hợp tính năng quản lý xoay thông tin bí mật (Lambda). AWS Systems Manager Parameter Store cũng có tính năng phiên bản, nhưng khi bật tính năng quản lý xoay thông tin bí mật của AWS Secrets Manager, nó sẽ tạo ra một Lambda Function cùng với nó, giúp bạn tùy chỉnh nó để phù hợp với nhiều tình huống khác nhau.
    • Quản lý độc lập: Mặc dù bạn có thể nghĩ rằng Parameter Store sử dụng nội dung tương tự, nhưng AWS Secrets Manager quản lý thông tin bí mật một cách độc lập.

Tổng Kết

Trên đây là một tóm tắt về đặc điểm tổng quan và triết lý thiết kế của AWS Secrets Manager, cùng với các nguồn tài liệu và lời khuyên vận hành. Trước khi triển khai tính năng xoay thông tin bí mật trong môi trường sản xuất, nên thực hiện kiểm tra kỹ lưỡng. Tuy nhiên, khi đã triển khai và hoạt động ổn định trên nhiều hệ thống, nó có thể trở thành một công cụ hữu ích trong việc quản lý và vận hành thông tin bí mật. Có vẻ như dịch vụ này đang chú ý vào sự phát triển trong tương lai.

aws_pro
Đã có SAA, sẽ lấy SAP trong tương lai gần.

Bình luận

Bài viết chưa có bình luận. Hãy trở thành người bình luận đầu tiên!
Sign up for free and join this conversation.
Sign Up
If you already have a RongvangIT account Login
Danh sách thư mục
Tại sao không đăng ký và nhận được nhiều hơn từ RồngVàngIT ?

Bạn cần đăng nhập để sử dụng chức năng này, cùng hàng loạt các chức năng tuyệt vời khác của RồngVàngIT !

  1. 1. Bạn sẽ nhận được các bài viết phù hợp bằng chức năng theo dõi tag và người dùng.
  2. 2. Bạn có thể đọc lại các thông tin hữu ích bằng chức năng lưu trữ nội dung.
  3. 3. Chia sẻ kiến thức, đặt câu hỏi và ghi lại quá trình trưởng thành của mình cùng RồngVàngIT !
Tạo tài khoản Đăng nhập
profile Pic