Ví dụ về python của hashicorp vault

Doanh nghiệp nào cũng cần đặc biệt quan tâm đến vấn đề bảo mật. Quản lý bí mật là một trong những nhiệm vụ bảo mật hàng đầu. Trong Hướng dẫn Bắt đầu này, chúng tôi sẽ giới thiệu cho bạn những kiến ​​thức cơ bản về cách sử dụng Hashicorp Vault, một công cụ mạnh mẽ để bảo mật các bí mật truy cập

Tổng quan về Vault

Mục đích

Những bí mật mà chúng tôi đã đề cập ở trên là gì? . Vault được sử dụng để cung cấp khả năng lưu trữ bí mật an toàn và kiểm soát quyền truy cập vào bí mật. Công cụ này cho phép thiết lập linh hoạt và thao tác điều kiện bảo mật khác nhau. Lợi ích chính của việc sử dụng Vault là quản lý bí mật một cách an toàn ở một vị trí trung tâm, ngăn chặn việc mở rộng bí mật. Lợi ích thứ cấp là dành cho Quản trị bao gồm các chính sách, nhật ký kiểm toán, đường mòn, v.v.

Đặc trưng

Có một số tính năng của Vault khiến nó trở nên phổ biến, bao gồm

  1. Giao diện truy cập ứng dụng khách
    Các chức năng của Vault có thể truy cập được theo chương trình bởi các dịch vụ và ứng dụng khác nhờ API HTTP. Ngoài ra, có một số thư viện được hỗ trợ chính thức cho các ngôn ngữ lập trình [Go và Ruby tại thời điểm viết bài này] và một loạt các gói được cộng đồng hỗ trợ cho nhiều ngôn ngữ [Python, PHP, Java, C#, NodeJS, v.v. ]. Các thư viện này làm cho việc tương tác với API của Vault trở nên thuận tiện hơn. Vault cũng có giao diện dòng lệnh [CLI].
  2. Tính khả dụng cao
    Vault có các cơ chế tích hợp giúp nó có khả năng phục hồi trước các lỗi. Một vai trò quan trọng ở đây là công nghệ sao chép. Có thể tạo cụm Vault bằng nhiều máy.
  3. Thông lượng cao
    Do công nghệ sao chép, Vault có khả năng mở rộng rất cao và có thể cung cấp tốc độ thông lượng cao để đáp ứng hầu hết các nhu cầu.
  4. Mã hóa dữ liệu
    Vault có khả năng mã hóa/giải mã dữ liệu mà không cần lưu trữ dữ liệu. Hàm ý chính từ điều này là nếu một cuộc xâm nhập xảy ra, tin tặc sẽ không có quyền truy cập vào các bí mật thực sự ngay cả khi cuộc tấn công thành công.
  5. Bí mật động
    Điều này có nghĩa là bí mật không tồn tại cho đến khi nó được đọc. Mục đích chính của tính năng này là tăng cường bảo mật. Logic như sau. Bí mật tồn tại càng ít thời gian thì nguy cơ bị đánh cắp bí mật càng ít. Ví dụ: ứng dụng của bạn cần quyền truy cập vào cơ sở dữ liệu nhưng thông tin đăng nhập chưa được tạo. Vault sẽ tạo các thông tin đăng nhập này sau khi có yêu cầu từ ứng dụng, sau đó ứng dụng sẽ sử dụng thông tin đăng nhập đã tạo để thực hiện các thao tác cần thiết, sau đó Vault sẽ hủy kích hoạt thông tin đăng nhập. Thời gian thông tin đăng nhập tồn tại và có thể bị đánh cắp là cực kỳ ngắn.
  6. Bí mật tạm thời & Thu hồi
    Vault có thể lưu trữ bí mật trong một khoảng thời gian xác định, được gọi là hợp đồng thuê. Khi thời hạn này hết hạn, các bí mật sẽ tự động bị thu hồi. Ngoài ra, Vault hỗ trợ thu hồi bí mật theo cách thủ công linh hoạt.
  7. Ghi nhật ký
    Vault lưu giữ lịch sử tương tác với nó và các bí mật của nó.
  8. Xác thực thuận tiện
    Vault hỗ trợ xác thực bằng cách sử dụng mã thông báo, thuận tiện và an toàn.
  9. Tùy chỉnh
    Có thể kết nối nhiều plugin khác nhau với Vault để mở rộng chức năng của nó.
  10. Giao diện người dùng web
    Vault có giao diện người dùng đồ họa dựa trên web mà bạn có thể sử dụng để tương tác với hệ thống.
Những bước đầu tiên trong Vault

Cài đặt

Có thể biên dịch Vault từ nguồn. Tuy nhiên, đường dẫn cài đặt tiêu chuẩn là như sau

  1. Tải xuống gói cho hệ thống của bạn

2. Giải nén gói. Phần chính của danh mục được giải nén là tệp nhị phân vault. Tất cả các tệp khác có thể được gỡ bỏ một cách an toàn

3. Đối với Ubuntu, bước cuối cùng là di chuyển tệp nhị phân vault vào thư mục /usr/local/bin/

Nói chung, đối với bất kỳ hệ thống nào, bạn nên đảm bảo rằng tệp nhị phân vault có sẵn trên PATH. Để xem các đề xuất cụ thể hơn cho HĐH của bạn, vui lòng xem tài liệu chính thức

4. Xác minh cài đặt. Mở cửa sổ CLI mới và gõ lệnh vault ở đó. Bạn sẽ thấy đầu ra tương tự như thế này

Ngoài ra, bạn có thể kiểm tra phiên bản Vault đã cài đặt bằng cách sử dụng lệnh vault — version.
Nếu hệ thống của bạn không biết lệnh vault, hãy quay lại và thử tìm sự cố khi cài đặt. Vấn đề phổ biến nhất là không có thư mục chứa vault nhị phân trong PATH.

máy chủ bắt đầu

Để sử dụng Vault, bạn nên khởi động máy chủ. Có hai loại máy chủ. phát triển và sản xuất. Khởi động máy chủ phát triển dễ dàng hơn. Nó không an toàn như một máy chủ sản xuất, nhưng nó có thể được sử dụng để khám phá Vault và tạo một số nguyên mẫu

Để thiết lập máy chủ phát triển, hãy thực hiện các bước sau

  1. Từ CLI ra lệnh

Đây là đầu ra có thể có của lệnh này

Không đóng cửa sổ CLI hiện tại

2. Mở cửa sổ CLI mới

3. Đặt biến môi trường VAULT_ADDR

4. Đặt biến môi trường VAULT_DEV_ROOT_TOKEN_ID

Đối với cả VAULT_ADDR và ​​VAULT_DEV_ROOT_TOKEN_ID, bạn nên sử dụng các giá trị của riêng mình mà bạn có thể tìm thấy trong đầu ra của lệnh vault server -dev thay vì các giá trị được cung cấp trong hướng dẫn này

5. Lưu giá trị Unseal Key. Đối với những bước đầu tiên, bạn sẽ lưu nó như thế nào và ở đâu không quan trọng

6. Kiểm tra máy chủ đang chạy. Để thực hiện việc này, hãy ra lệnh trong CLI

Dưới đây là đầu ra mong muốn

Nếu bạn có thể thấy đầu ra như trên hình trên, điều này có nghĩa là bạn đã làm đúng mọi thứ

Công việc cơ bản với bí mật

Có một số phương pháp để quản lý bí mật trong Vault. Nó có API HTTP để tương tác với hệ thống theo chương trình. Ngoài ra, nó có một GUI dựa trên web. Tùy chọn chính thứ ba là sử dụng giao diện dòng lệnh. Trong chương này, chúng tôi sẽ trình bày cách tạo, xem và xóa bí mật với sự trợ giúp của CLI

Đầu tiên, hãy tạo một bí mật. Chúng ta cần sử dụng lệnh vault kv put để làm điều này. Lệnh này dự kiến ​​sẽ đi theo một đường dẫn mà bí mật sẽ được lưu trữ nội bộ trong hệ thống. Đối số thứ hai của lệnh là cặp khóa/giá trị của bí mật. Ví dụ: bên dưới, chúng tôi tạo test_secret_key bí mật với test_secret_value và lưu trữ nó theo đường dẫn secret/test_secret

đầu ra mong muốn

Lưu ý rằng bạn cần xuất VAULT_ADDR và ​​VAULT_DEV_ROOT_TOKEN_ID trong cùng một phiên mà bạn muốn tạo khóa bí mật. Nếu không sẽ có lỗi

Nó giống như một hộp cát để gửi bí mật đến Vault bằng cách nhập trực tiếp chúng vào CLI. Lệnh vault kv put có thể lấy đầu vào dưới dạng tệp hoặc bằng cách đọc STDIN. Cách đáng tin cậy hơn là sử dụng các tệp

Bây giờ hãy xem bí mật được lưu trữ. Nó đơn giản như gọi lệnh vault kv get và chỉ định đường dẫn đến bí mật

Đây là đầu ra

Cũng có thể yêu cầu Vault chỉ trả về giá trị mà không cần khóa. Lệnh vault kv get thậm chí có khả năng trả về đầu ra ở dạng tệp JSON. Điều này thuận tiện khi bạn cần sử dụng đầu ra cho một số xử lý tự động sau này

Cuối cùng, chúng tôi có thể cần xóa bí mật hiện có theo cách thủ công. Đây là cách chúng ta có thể làm điều này

Đầu ra ngắn

Tổng quan về giao diện người dùng web của Vault

Trong chương trước, chúng tôi đã chỉ ra cách thực hiện các thao tác cơ bản [tạo, lấy, xóa] với các bí mật bằng giao diện dòng lệnh. Bạn có thể nhớ rằng Vault cũng có GUI. Bạn có thể thực hiện các thao tác tương tự [và thậm chí phức tạp hơn] ở đó

Để truy cập giao diện người dùng web của Vault, trước tiên bạn nên khởi động máy chủ. Sau khi khởi động máy chủ, bạn sẽ thấy URL tới giao diện người dùng web ở đầu ra

Theo URL này trong trình duyệt web của bạn. Bạn sẽ được yêu cầu đăng nhập vào Vault

Bạn có thể sử dụng mã thông báo gốc để xác thực giao diện người dùng

Bạn sẽ thấy trang chính sau của Vault Web UI

Nếu bạn vào thư mục bí mật, bạn sẽ thấy bí mật của chúng tôi mà chúng tôi đã tạo trong chương trước [test_secret]

Tuy nhiên, nếu bạn nhấp vào bí mật, bạn sẽ thấy thông báo nói rằng nó đã bị xóa

Hãy quay lại thư mục bí mật và nhấp vào nút Tạo bí mật

Đây là cách tạo bí mật từ giao diện người dùng. Trên trang tiếp theo, bạn sẽ được hỏi về đường dẫn của bí mật [chúng tôi đã nhập secret_from_ui], siêu dữ liệu bí mật [chúng tôi để mặc định này] và dữ liệu phiên bản. Trong phần dữ liệu phiên bản, chúng tôi nhấp vào nút Thêm từ bên phải để thêm một cặp khóa/giá trị nữa. Sau khi mọi thứ ở đây được lấp đầy, bạn có thể nhấn nút Lưu. Điều này sẽ tạo ra bí mật

Bây giờ chúng ta cũng có bí mật secret_from_ui trong thư mục bí mật

Nếu chúng ta nhấp vào tên của bí mật, chúng ta sẽ thấy các cặp khóa/giá trị. Sau khi nhấn vào biểu tượng con mắt, giá trị của phím tương ứng sẽ được hiển thị

Bảng quản lý bí mật nằm ở phần bên phải của cửa sổ. Bạn có thể xóa bí mật, sao chép, tạo phiên bản mới, xem lịch sử, v.v.

Có bảng điều khiển ở đầu trang. Bạn có thể quản lý thông qua giao diện người dùng không chỉ bí mật mà còn cả quyền truy cập, chính sách và công cụ. Mỗi menu có menu phụ của nó. Ví dụ, đây là tab Access

Ở bên phải của cửa sổ, bạn có thể nhấn nút giữa

Điều này sẽ mở CLI trực tiếp trong trình duyệt của bạn. Nếu bạn cần thực thi một số lệnh từ CLI, bạn có thể thực hiện trực tiếp trên trình duyệt của mình

Như chúng ta có thể thấy, giao diện người dùng web của Vault cung cấp khả năng thực hiện điều tương tự như thông qua CLI hoặc API. Bạn nên sử dụng giao diện nào hoàn toàn phụ thuộc vào nhiệm vụ bạn cần hoàn thành. Ví dụ: nếu bạn chỉ cần tạo và lưu trữ một vài bí mật một lần, thì tốt hơn là sử dụng giao diện người dùng web. Nhưng nếu bạn cần làm việc với Vault lâu dài và theo cách tự động, rõ ràng là bạn nên sử dụng các tùy chọn khác [có thể là API HTTP]

Phần kết luận

Trong hướng dẫn này, chúng ta đã xem nhanh Vault. Đây là một hệ thống hiện đại để quản lý các bí mật [mật khẩu, thông tin đăng nhập, khóa, v.v. ]. Chúng tôi đã xem xét động cơ sử dụng Vault và các tính năng cốt lõi của nó. Sau đó, chúng tôi đã mô tả cách cài đặt và thiết lập máy chủ phát triển. Sau khi chạy máy chủ, chúng tôi đã trình diễn các thao tác cơ bản với bí mật trong Vault. tạo, nhận và xóa bí mật. Chúng tôi đã sử dụng giao diện dòng lệnh cho việc này. Đồng thời, chúng tôi đã giới thiệu tổng quan về giao diện người dùng dựa trên web của Vault. Sau khi đọc tài liệu này, bạn sẽ có thể bắt đầu sử dụng các tính năng cơ bản của Vault

Chủ Đề