0
0
Lập trình
Admin Team
Admin Teamtechmely

Truy cập giao diện HashiCorp Vault trong Kubernetes với LoadBalancer

Đăng vào 1 tuần trước

• 4 phút đọc

Truy cập giao diện HashiCorp Vault trong Kubernetes với LoadBalancer

Sau khi triển khai thành công Vault trong Kubernetes với High Availability (HA) và lưu trữ Raft, việc truy cập an toàn vào giao diện Vault UI là bước quan trọng tiếp theo để quản lý và sử dụng.

Bài viết này sẽ hướng dẫn bạn cách công khai giao diện Vault UI ra bên ngoài bằng cách sử dụng dịch vụ LoadBalancer trong Kubernetes.

Tại sao nên sử dụng dịch vụ LoadBalancer?

  • Giao diện Vault UI chạy trên cổng 8200 của dịch vụ Vault.
  • Theo mặc định, biểu đồ Helm của Vault tạo ra một dịch vụ ClusterIP, chỉ có thể truy cập bên trong cụm Kubernetes.
  • Dịch vụ LoadBalancer cung cấp một địa chỉ IP bên ngoài được quản lý bởi nhà cung cấp đám mây, cho phép truy cập từ bên ngoài vào giao diện Vault UI.
  • Điều này đơn giản hóa việc truy cập qua trình duyệt và tích hợp với hạ tầng của bạn.

Bước 1: Tạo tệp cấu hình dịch vụ LoadBalancer

Tạo một tệp có tên vault-loadbalancer.yaml với nội dung sau:

yaml Copy
apiVersion: v1
kind: Service
metadata:
  name: vault-loadbalancer
  namespace: vault
spec:
  type: LoadBalancer
  ports:
    - name: http
      port: 8200
      targetPort: 8200
    - name: cluster
      port: 8201
      targetPort: 8201
  selector:
    app.kubernetes.io/name: vault

Bước 2: Áp dụng dịch vụ LoadBalancer

Áp dụng tệp cấu hình:

bash Copy
kubectl apply -f vault-loadbalancer.yaml -n vault

Bước 3: Lấy địa chỉ IP bên ngoài

Kiểm tra dịch vụ và chờ đợi địa chỉ IP bên ngoài được cấp:

bash Copy
kubectl get svc vault-loadbalancer -n vault

Kết quả sẽ trông giống như sau:

plaintext Copy
NAME                  TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)             AGE
vault-loadbalancer     LoadBalancer   10.x.x.x        <external-ip>    8200:xxxxx/TCP      1m

Khi <external-ip> được cập nhật, bạn có thể tiếp tục.

Bước 4: Truy cập giao diện Vault UI

Mở trình duyệt của bạn và điều hướng đến:

plaintext Copy
http://<external-ip>:8200/ui

Bạn sẽ thấy trang đăng nhập giao diện Vault UI.

Bước 5: Đăng nhập bằng Vault Token

  • Sử dụng token root hoặc bất kỳ token Vault hợp lệ nào được tạo trong quá trình khởi tạo Vault.
  • Nhập token vào màn hình đăng nhập để truy cập giao diện UI.

Tùy chọn: Bảo mật giao diện Vault UI

  • Kích hoạt TLS trên máy chủ Vault của bạn để mã hóa lưu lượng giao diện.
  • Sử dụng Kubernetes Ingress với TLS termination để kiểm soát tốt hơn.
  • Giới hạn quyền truy cập bằng cách sử dụng quy tắc tường lửa hoặc VPN.

Giải pháp thay thế cho phát triển

Để truy cập nhanh chóng mà không cần LoadBalancer:

bash Copy
kubectl port-forward svc/vault -n vault 8200:8200

Sau đó mở:

plaintext Copy
http://127.0.0.1:8200/ui

Kết luận

Việc sử dụng dịch vụ LoadBalancer trong Kubernetes để công khai giao diện Vault UI cung cấp quyền truy cập bên ngoài thuận tiện cho người dùng và quản trị viên. Hãy kết hợp điều này với các thực hành bảo mật tốt cho các triển khai sản xuất.

Câu hỏi thường gặp (FAQ)

1. Dịch vụ LoadBalancer có miễn phí không?

Dịch vụ LoadBalancer thường không miễn phí. Bạn cần kiểm tra chính sách giá của nhà cung cấp đám mây của mình.

2. Tôi có thể sử dụng cách nào khác để truy cập Vault không?

Có, bạn có thể sử dụng kubectl port-forward để truy cập tạm thời mà không cần LoadBalancer.

3. Làm thế nào để bảo mật Vault UI?

Bạn có thể kích hoạt TLS và sử dụng tường lửa để bảo vệ giao diện Vault UI của mình.

Các thực tiễn tốt nhất

  • Luôn sử dụng các token mạnh và hạn chế quyền truy cập.
  • Theo dõi và ghi nhật ký tất cả các lần truy cập vào giao diện Vault UI.
  • Cập nhật thường xuyên các thành phần của Vault và Kubernetes để bảo mật.

Những cạm bẫy thường gặp

  • Không cấu hình đúng quyền truy cập có thể dẫn đến rủi ro bảo mật.
  • Quên áp dụng các bản vá bảo mật có thể khiến hệ thống dễ bị tấn công.

Mẹo hiệu suất

  • Đảm bảo các tài nguyên của Kubernetes được phân bổ hợp lý cho dịch vụ Vault để tối ưu hóa hiệu suất.
  • Theo dõi hiệu suất của Vault UI để phát hiện các sự cố kịp thời.
Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào