DevOps AI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
No Result
View All Result
Home DevOps & Cloud

Demo Tích Hợp Vault trong Kubernetes

Hiếu Tạ by Hiếu Tạ
30 Tháng 4, 2025
in DevOps & Cloud
0
Demo Tích Hợp Vault trong Kubernetes
Share on FacebookShare on Twitter

Kubernetes (K8s) là một nền tảng mạnh mẽ để triển khai, quản lý và mở rộng các ứng dụng container hóa. Tuy nhiên, việc quản lý và bảo mật các thông tin nhạy cảm như API keys, mật khẩu, chứng chỉ và các thông tin bí mật khác trong một môi trường phân tán như Kubernetes là một thách thức lớn. Đây là lý do tại sao cần tích hợp HashiCorp Vault vào Kubernetes

Cách hoạt động

  1. Một JWT token (Service account token) từ pod được chuyển đến Vault server.
  2. Vault server yêu cầu Kubernetes API server để lấy thông tin tài khoản dịch vụ và namespace gắn liền với JWT token.
  3. Kubernetes API server trả về chi tiết namespace và tài khoản dịch vụ.
  4. Vault server xác thực xem tài khoản dịch vụ có được ủy quyền để đọc secrets bằng cách sử dụng các chính sách đính kèm.
  5. Sau khi xác thực, Vault server trả về một Vault token.
  6. Trong một cuộc gọi API khác, Vault token được truyền kèm với đường dẫn secret để truy xuất các secrets.


Login & Access Vault UI

Tạo PV/PVC

Dùng K8S PV/PVC để khởi tạo cho Vault 1 PV/PVC riêng để dùng cho steps cr-draf.yaml

Cài đặt Operator

helm upgrade --install --set service.type=NodePort --wait vault-operator oci://ghcr.io/bank-vaults/helm-charts/vault-operator

kubectl kustomize https://github.com/bank-vaults/vault-operator/deploy/rbac | kubectl apply -f -

Apply cr-draf.yaml

kubectl apply -f https://raw.githubusercontent.com/bank-vaults/vault-operator/v1.21.0/deploy/examples/cr-raft.yaml

Output cho những steps trên

có thể setup reverse proxy https://vaulttest.com ⇒ 30993

Config để lấy root token

  1. Cài đặt nginx reverse proxy để trỏ về NodePort ở trên (nếu cần)
  2. Thêm giá trị. export VAULT_ADDR=https://vaulttest.com hoặc export VAULT_ADDR=https://127.0.0.1:8200 (nếu không làm bước 1)
  3. Nhập chứng chỉ CA của phiên bản Vault bằng cách chạy các lệnh sau (nếu không, bạn sẽ bị lỗi x509: certificate signed by unknown authority errors):

    kubectl get secret vault-tls -o jsonpath="{.data.ca.crt}" | base64 --decode > $PWD/vault-ca.crt

    export VAULT_CACERT=$PWD/vault-ca.crt

    Ngoài ra, bạn có thể chỉ định Vault client bỏ qua việc xác minh chứng chỉ của Vault bằng cách chạy:
    export VAULT_SKIP_VERIFY=true
  4. Nếu bạn đã cài Vault CLI installed, thì có thể kiểm tra cách status bằng lệnh:
    vault status
    Copy Expected output:
Key             Value
---             -----
Seal Type       shamir
Initialized     true
Sealed          false
Total Shares    5
Threshold       3
Version         1.5.4
Cluster Name    vault-cluster-27ecd0e6
Cluster ID      ed5492f3-7ef3-c600-aef3-bd77897fd1e7
HA Enabled      false

Để xác thực với Vault, bạn có thể chạy:

Related Post

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

29 Tháng 4, 2025
Đổi MTU cho Calico trong Kubernetes

Đổi MTU cho Calico trong Kubernetes

30 Tháng 4, 2025

Tắt NLA trên Amazon EC2 Windows instance

30 Tháng 4, 2025

Setup FTP Server on Amazon Linux 2

30 Tháng 4, 2025
Để xác thực với Vault, bạn có thể chạy:
export VAULT_TOKEN=$(kubectl get secrets vault-unseal-keys -o jsonpath={.data.vault-root} | base64 --decode)

Enable Vault Kubernetes Authentication Method

vault auth enable kubernetes

Hoặc

Tạo Vault Secrets/Policy/Role

Để cho POD vào Vault đọc lấy value. Nếu bạn đã cài Vault CLI installed, thì có thể tạo 1 scret theo cách sau hoặc tạo bằng UI ở step trên

vault kv put secret/demosecret/aws AWS_SECRET_ACCESS_KEY=s3cr3t

Tạo vault-role

vault write auth/kubernetes/role/vault-role 
bound_service_account_names=* 
bound_service_account_namespaces=default 
policies=vault-policy 
ttl=8760h

Tạo vault-policy

vault policy write vault-policy - <<EOH
path "secret/*" {
  capabilities = ["read"]
}
EOH

Note: các bước này có thể làm qua Vault UI

FILE POD MẪU

Apply pod sau đây để thấy nó echo ra được AWS SECRET ACCESS KEY mà ta đã lưu

apiVersion: apps/v1
kind: Deployment
metadata:
  name: vault-test
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: vault
  template:
    metadata:
      labels:
        app.kubernetes.io/name: vault
      annotations:
        vault.security.banzaicloud.io/vault-addr: https://vault:8200
        vault.security.banzaicloud.io/vault-role: vault-role
        vault.security.banzaicloud.io/vault-skip-verify: 'true'
        vault.security.banzaicloud.io/vault-path: kubernetes
    spec:
      serviceAccountName: default
      containers:
      - name: alpine
        image: alpine
        command: ["sh", "-c", "echo $AWS_SECRET_ACCESS_KEY && echo going to sleep... && sleep 10000"]
        env:
        - name: AWS_SECRET_ACCESS_KEY
          value: vault:secret/demosecret/aws#AWS_SECRET_ACCESS_KEY

Chúc các bạn thành công!!!

Tags: awshướng dẫnkiến trúckubernetessetup
Hiếu Tạ

Hiếu Tạ

Graduated as a Software Engineer. I have more than 3-year experience in developing software and DevOps, used to many services of AWS, and Azure, K8S, and using Windows or Linux on-premies proficiently to set up servers, proxy, build and deploy multiple programming languages (Java, GO, NET,...)..... Experience with CMS such SiteCore, ElasticPath, AEM... Implement CICD via Jenkins scripting, infrastructure as code via Terraform, and AWS Cloud Formation.

Related Posts

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!
Tin tức

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

by devopsify
29 Tháng 4, 2025
Đổi MTU cho Calico trong Kubernetes
DevOps & Cloud

Đổi MTU cho Calico trong Kubernetes

by Hiếu Tạ
30 Tháng 4, 2025
Tắt NLA trên Amazon EC2 Windows instance
DevOps & Cloud

Tắt NLA trên Amazon EC2 Windows instance

by Hiếu Tạ
30 Tháng 4, 2025
Next Post
Selenium Tutorial – Java

Selenium Tutorial - Java

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended

Cài đặt Maven trên Windows

25 Tháng 4, 2025

Các website demo hay được sử dụng cho thực hành Automation Test

1 Tháng 5, 2025
Cài đặt Jenkins bằng Docker

Cài đặt Jenkins bằng Docker

30 Tháng 4, 2025

Kiểm tra tài nguyên CPU, RAM trên Ubuntu 22.04

25 Tháng 4, 2025
Unit Test là gì?

Unit Test là gì?

29 Tháng 4, 2025
cdk terraform

CDK cho Terraform

29 Tháng 4, 2025
Hướng Dẫn Thiết Lập LDAPS Trên Windows Server 2022

Hướng Dẫn Thiết Lập LDAPS Trên Windows Server 2022

26 Tháng 4, 2025
DeepSeek AI là gì? Tổng hợp các mô hình DeepSeek mạnh mẽ nhất hiện nay

DeepSeek AI là gì? Tổng hợp các mô hình DeepSeek mạnh mẽ nhất hiện nay

1 Tháng 5, 2025
DevOpsify

Cộng đồng DevOps Việt Nam chia sẽ kiến thức giúp tăng tốc quá trình phát triển ứng dụng và tự động hóa trong lĩnh vực Cloud DevOps & AI.

Bài viết mới

  • Unit Test là gì?
  • CDK cho Terraform
  • Hướng Dẫn Thiết Lập LDAPS Trên Windows Server 2022

Categories

  • AI & Automation
  • Bảo mật
  • Chưa phân loại
  • DevOps & Cloud
  • Tin tức
No Result
View All Result
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud

© 2025 DevOpsify