Ở bài trước [ How to hide Password/API Key in Python Script] mình có sử dụng “keyring” để lưu trữ API Key cho Python script. Chúng tôi cũng có thể sử dụng Hashicorp Vault để lưu trữ các thông tin xác thực đó. Có một mô-đun python có tên HVAC [ Python Client for Hashicorp Vault] có thể được sử dụng để truy xuất các khóa API/Thông tin xác thực từ kho tiền
Trước tiên, chúng tôi cần đảm bảo rằng Vault đang hoạt động bình thường và chúng tôi có khóa API được lưu trữ trong kho tiền. Trong ví dụ này, tôi đã lưu trữ khóa API Meraki của mình
Trước khi chúng tôi bắt đầu với bộ lưu trữ thực tế, hãy thảo luận ngắn gọn về bí mật là gì và tại sao chúng tôi có thể cần phải quản lý chúng. Hầu hết các ứng dụng ngày nay được lưu trữ trên kiến trúc dựa trên đám mây vì nhiều lý do. Dù là tại chỗ hay trên đám mây, bạn có thể phải lưu trữ bí mật của mình trong một môi trường an toàn
Bí mật là gì?
Bí mật là dữ liệu kỹ thuật số bao gồm nhưng không giới hạn ở những điều sau đây
- mật khẩu người dùng
- mật khẩu hệ thống
- mật khẩu cơ sở dữ liệu
- khóa API
- phím ssh
- OTP
- Khóa mã hóa, v.v.
Việc quản lý những bí mật này do bộ phận bảo mật thông tin/DevOps trong một tổ chức xử lý. Họ đảm bảo không có truy cập trái phép vào dữ liệu
Cài đặt Vault trên máy cục bộVault là gì?
Vault là một hệ thống quản lý mã hóa và bí mật dựa trên danh tính. Vault cung cấp các dịch vụ mã hóa được kiểm soát bằng các phương thức xác thực và ủy quyền. Sử dụng giao diện người dùng, CLI hoặc API HTTP của Vault, quyền truy cập vào các bí mật và dữ liệu nhạy cảm khác có thể được lưu trữ và quản lý một cách an toàn, được kiểm soát chặt chẽ [bị hạn chế] và có thể kiểm tra được
Để bắt đầu, hãy cài đặt Vault trên hệ thống cục bộ của chúng tôi
hệ điều hành Mac
Trong macOS, Vault có thể được cài đặt bằng brew
Cài đặt HashiCorp nhấn
$brew tap hashicorp/tap
Cài đặt Vault
$brew install hashicorp/tap/vault
Cập nhật kho tiền
$brew upgrade hashicorp/tap/vault
các cửa sổ
Trong windows, bạn có thể sử dụng Chocolatey để cài đặt Vault
$choco install vault
Ubuntu
$curl -fsSL //apt.releases.hashicorp.com/gpg | sudo apt-key add -
Thêm kho lưu trữ HashiCorp Linux chính thức
$ sudo apt-add-repository "deb [arch=amd64] //apt.releases.hashicorp.com $[lsb_release -cs] main"
Cập nhật và cài đặt
$ sudo apt-get update && sudo apt-get install vault
Khởi động máy chủ Vault DevSau khi cài đặt hoàn tất, hãy xác minh cài đặt bằng lệnh bên dưới
$ vault status
đầu ra
________số 8Khởi động máy chủ
vault server -dev
đầu ra
$brew install hashicorp/tap/vault
0Máy chủ dành cho nhà phát triển là một máy chủ tích hợp, được định cấu hình sẵn, không an toàn lắm nhưng hữu ích để chơi với Vault cục bộ
Máy chủ hiển thị
$brew install hashicorp/tap/vault
7 và $brew install hashicorp/tap/vault
8. Mã thông báo gốc thay đổi mỗi khi bạn khởi động máy chủ. Vì vậy, hãy đảm bảo mã thông báo được thêm vào biến môi trường mỗi khi bạn khởi động lại máy chủMáy chủ nhà phát triển lưu trữ tất cả dữ liệu trong bộ nhớ [nhưng vẫn được mã hóa], lắng nghe trên
$brew install hashicorp/tap/vault
9 mà không có TLS, đồng thời tự động hủy niêm phong và hiển thị cho bạn khóa chưa niêm phong và khóa truy cập gốcThêm chi tiết máy chủ trong PATH của bạn
$brew install hashicorp/tap/vault
1Khi chạy Vault ở chế độ nhà phát triển, công cụ bảo mật Khóa/Giá trị v2 được bật ở đường dẫn
$brew upgrade hashicorp/tap/vault
0. Công cụ bí mật khóa/giá trị là kho lưu trữ khóa-giá trị chung được sử dụng để lưu trữ các bí mật tùy ý trong bộ lưu trữ vật lý đã định cấu hình cho Vault. Các bí mật được ghi vào Vault được mã hóa và sau đó được ghi vào bộ lưu trữ phụ trợ. Do đó, cơ chế lưu trữ phụ trợ không bao giờ nhìn thấy giá trị không được mã hóa và không có phương tiện cần thiết để giải mã mà không có VaultTruy cập VaultVault cung cấp nhiều cơ chế như UI, Cli và API để lưu trữ/lấy bí mật. Nhiều công cụ bí mật khác nhau có thể được sử dụng để lưu trữ/truy xuất chúng. Tuy nhiên, máy chủ Vault luôn sử dụng công cụ Khóa/Giá trị ở chế độ phát triển
Công cụ bí mật khóa/giá trị là kho lưu trữ khóa-giá trị chung được sử dụng để lưu trữ các bí mật tùy ý trong bộ lưu trữ vật lý đã định cấu hình cho Vault. Các bí mật được ghi vào Vault được mã hóa và sau đó được ghi vào bộ lưu trữ phụ trợ
Để truy cập giao diện người dùng, hãy mở
$brew upgrade hashicorp/tap/vault
1 trong trình duyệt của bạnĐăng nhập Vault bằng mã thông báo
Danh sách bí mật trong kho tiền
Máy chủ ở chế độ phát triển lưu trữ các bí mật trong
$brew upgrade hashicorp/tap/vault
0Viết bí mật cho KV bằng PythonBây giờ chúng ta đã thiết lập và chạy máy chủ nhà phát triển Vault của mình, hãy thử và lưu trữ bí mật bằng Python. Vui lòng lưu ý rằng máy chủ phát triển lưu trữ tất cả bí mật trong bộ nhớ và thời điểm phiên máy chủ kết thúc, tất cả bí mật đều bị xóa
HVAC là ứng dụng khách API vault mà chúng tôi sẽ sử dụng để tương tác với máy chủ Vault
Lắp đặt HVAC
$brew install hashicorp/tap/vault
2Kết nối qua Máy khách HVAC
$brew install hashicorp/tap/vault
3đầu ra
$brew install hashicorp/tap/vault
4Bạn có thể xác minh các bí mật từ UI/CLI. Bí mật mà chúng tôi vừa viết được lưu trữ trong
$brew upgrade hashicorp/tap/vault
3Đọc bí mật từ KV bằng Python. $brew install hashicorp/tap/vault
5đầu ra
$brew install hashicorp/tap/vault
6Phản hồi để đọc chứa tất cả các bí mật được lưu trữ trong
$brew upgrade hashicorp/tap/vault
4 trong đối tượng $brew upgrade hashicorp/tap/vault
5 cùng với siêu dữ liệu của bí mậtTóm lượcChức năng của Vault không chỉ giới hạn ở các công cụ KV. Họ cũng hỗ trợ các nền tảng đa đám mây như GCP, Azure và AWS với các công cụ và API chuyên dụng. Để tìm hiểu thêm về nó, hãy khám phá các liên kết trong phần tài liệu tham khảo