
ที่มาภาพ: Unknown Source
วิธีติดตั้งและกำหนดค่า HashiCorp Vault บน Ubuntu เพื่อจัดการ Secrets อย่างปลอดภัย
⚡ สรุป 30 วิ
การจัดการ Secrets อย่างปลอดภัยเป็นหัวใจของระบบที่ต้องรักษาความลับ เช่น API Key, รหัสผ่าน ฯลฯ HashiCorp Vault เป็นเครื่องมือระดับองค์กรที่ออกแบบมาเพื่อเก็บและควบคุมการเข้าถึง Secrets ได้อย่างเข้มงวด บท…
Overview — Overview
การจัดการ Secrets อย่างปลอดภัยเป็นหัวใจของระบบที่ต้องรักษาความลับ เช่น API Key, รหัสผ่าน ฯลฯ HashiCorp Vault เป็นเครื่องมือระดับองค์กรที่ออกแบบมาเพื่อเก็บและควบคุมการเข้าถึง Secrets ได้อย่างเข้มงวด บทความนี้จะสอนขั้นตอนตั้งแต่การติดตั้งบน Ubuntu ไปจนถึงการกำหนดค่าเบื้องต้น เพื่อให้คุณพร้อมใช้งาน Vault ภายในไม่กี่นาที
เตรียมระบบ — Prerequisites
ก่อนลงมือทำ ต้องตรวจสอบว่าเซิร์ฟเวอร์ Ubuntu มีสภาพแวดล้อมพื้นฐานครบถ้วนแล้ว
- Ubuntu 20.04 หรือใหม่กว่า ทำงานได้อย่างเสถียรกับ Vault เวอร์ชันล่าสุด
- ผู้ใช้ sudo เพื่อให้สามารถติดตั้งแพคเกจและแก้ไขไฟล์ระบบได้
- การเชื่อมต่ออินเทอร์เน็ต สำหรับดาวน์โหลดไบนารีหรือเพิ่ม repository
**Tip: หากเซิร์ฟเวอร์อยู่ในสภาพแวดล้อมที่ต้องทำงานแบบออฟไลน์ ควรเตรียมไฟล์ไบนารีของ Vault ไว้ล่วงหน้าแล้วคัดลอกเข้ามา
วิธีติดตั้ง — Installation Options
ใช้ APT Repository — APT Installation
การใช้แพคเกจจาก HashiCorp APT repository ทำให้อัปเดตง่ายและจัดการเวอร์ชันได้ดี
- เพิ่ม GPG key ของ HashiCorp
```bash curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add - ```
- ตั้งค่า repository
```bash sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" ```
- ติดตั้ง Vault
```bash sudo apt-get update && sudo apt-get install vault ```
ดาวน์โหลดไบนารี — Binary Installation
วิธีนี้เหมาะกับสภาพแวดล้อมที่ต้องการเวอร์ชันเฉพาะหรือไม่มีสิทธิ์เพิ่ม repository
| วิธี | ขั้นตอนหลัก | เหมาะสำหรับ |
|---|---|---|
| APT | เพิ่ม repo apt‑get install | ระบบที่ต้องอัปเดตบ่อย, การจัดการแพคเกจอัตโนมัติ |
| Binary | ดาวน์โหลด แตกไฟล์ ย้ายไป /usr/local/bin | สภาพแวดล้อม offline หรือต้องใช้เวอร์ชันเฉพาะ |
- ดาวน์โหลดไบนารีล่าสุด
```bash VAULT_VERSION=$(curl -s https://releases.hashicorp.com/vault/ | grep -Eo 'vault_[0-9]+\.[0-9]+\.[0-9]+' | head -n1) wget https://releases.hashicorp.com/vault/${VAULT_VERSION}/vault_${VAULT_VERSION}_linux_amd64.zip ```
- แตกไฟล์และย้าย
```bash unzip vault_${VAULT_VERSION}_linux_amd64.zip sudo mv vault /usr/local/bin/ ```
**Tip: ตรวจสอบ checksum ของไฟล์ที่ดาวน์โหลดเพื่อความปลอดภัย
ตั้งค่าเริ่มต้น — Initial Configuration
สร้างไฟล์คอนฟิกพื้นฐาน
```bash sudo mkdir -p /etc/vault.d sudo nano /etc/vault.d/config.hcl ```
ใส่เนื้อหาเบื้องต้น
```hcl storage "file" { path = "/var/lib/vault/data" } listener "tcp" { address = "127.0.0.1:8200" tls_disable = 1 # สำหรับการทดสอบเท่านั้น อย่าเปิดใช้ใน production } disable_mlock = true # Ubuntu บางเวอร์ชันต้องปิดเพื่อหลีกเลี่ยงข้อผิดพลาด ```
- สร้างโฟลเดอร์ข้อมูลและกำหนดสิทธิ์
```bash sudo mkdir -p /var/lib/vault/data sudo chown -R vault:vault /var/lib/vault ```
ทำให้ Vault รันเป็น Service
```bash sudo nano /etc/systemd/system/vault.service ```
ใส่เนื้อหา
```ini [Unit] Description=HashiCorp Vault Server Requires=network-online.target After=network-online.target
[Service] User=vault Group=vault ExecStart=/usr/local/bin/vault server -config=/etc/vault.d/config.hcl Capabilities=CAP_IPC_LOCK Restart=on-failure LimitNOFILE=65536
[Install] WantedBy=multi-user.target ```
- รีโหลด systemd และเปิดบริการ
```bash sudo systemctl daemon-reload sudo systemctl enable vault sudo systemctl start vault ```
**Tip: ตรวจสอบสถานะด้วย `systemctl status vault` หากมีข้อความ “permission denied” ให้ตรวจสอบสิทธิ์ของไฟล์ config
เริ่มต้นใช้งาน Vault — Bootstrapping
Initialize และ Unseal
```bash export VAULT_ADDR='http://127.0.0.1:8200' vault operator init -key-shares=5 -key-threshold=3 ```
ผลลัพธ์จะให้
- **Unseal keys (x5)
- Root token
บันทึกคีย์เหล่านี้ในที่ปลอดภัย (เช่น Password Manager)
- ทำการ Unseal อย่างน้อย 3 ครั้ง
```bash vault operator unseal <key1> vault operator unseal <key2> vault operator unseal <key3> ```
เข้าสู่ระบบด้วย Root Token
```bash vault login <root_token> ```
**Tip: อย่าใช้ Root Token ในการทำงานประจำ ให้สร้าง token หรือ policy เฉพาะตามหน้าที่
กำหนดค่า Secret Engine — Enabling Secrets
- เปิดใช้งาน KV version 2 (Key‑Value) engine
```bash vault secrets enable -version=2 kv ```
- สร้าง secret ตัวอย่าง
```bash vault kv put kv/api key="ABC123XYZ" description="API key for service A" ```
- อ่านค่า secret
```bash vault kv get kv/api ```
**Tip: ใช้เวอร์ชัน 2 เพื่อให้มีฟีเจอร์ versioning และการลบแบบ “soft‑delete”
จัดการสิทธิ์เข้าถึง — Access Control
สร้าง Policy พื้นฐาน
```bash cat <<EOF | vault policy write dev-read - path "kv/*" { capabilities = ["read", "list"] } EOF ```
- สร้าง Token ตาม Policy
```bash vault token create -policy=dev-read -period=24h ```
ตั้งค่าการยืนยันตัวตน (Auth Methods)
| วิธี Auth | คำอธิบาย | ขั้นตอนสำคัญ |
|---|---|---|
| Userpass | ชื่อผู้ใช้/รหัสผ่านแบบพื้นฐาน | `vault auth enable userpass` |
| LDAP | เชื่อมต่อกับ AD/LDAP | `vault auth enable ldap` |
| GitHub | ใช้ token ของ GitHub | `vault auth enable github` |
**Tip: ใน production ควรใช้วิธี Auth ที่รองรับ MFA เช่น OIDC หรือ AppRole
ทดสอบการทำงานผ่าน CLI — CLI Testing
- ตรวจสอบว่าตัว Agent สามารถอ่าน secret ได้หรือไม่
```bash VAULT_TOKEN=$(vault token create -policy=dev-read -format=json | jq -r .auth.client_token) export VAULT_TOKEN vault kv get kv/api ```
- หากต้องการทำงานจากแอปพลิเคชัน ให้ตั้งค่า environment variable `VAULT_ADDR` และ `VAULT_TOKEN` หรือใช้ Vault Agent เพื่อลดความซับซ้อน
**Tip: ใช้ `vault read -format=json` เพื่อให้แอปอ่านข้อมูลเป็น JSON โดยตรง
คำแนะนำเพิ่ม — Tips & Best Practices
- เก็บ Unseal Keys แยกหลายคน ลดความเสี่ยงจากการสูญหายหรือการโจมตีแบบ insider
- เปิดใช้งาน TLS ใน listener ก่อนนำไปใช้ใน production อย่าปิด `tls_disable`
- ใช้ audit device เช่น file หรือ syslog เพื่อติดตามทุกคำขอ
```bash vault audit enable file file_path=/var/log/vault_audit.log ```
- ปรับ resource limits (`CAP_IPC_LOCK`) เพื่อให้ Vault สามารถใช้ `mlock` จัดเก็บข้อมูลในหน่วยความจำแบบปลอดภัย
- ควรทำ backup ของไฟล์ data directory อย่างสม่ำเสมอ (เช่น rsync หรือ snapshot)
Summary — Summary
บทความนี้ได้แนะนำวิธีตั้งค่า HashiCorp Vault บน Ubuntu ตั้งแต่การติดตั้งผ่าน APT หรือไบนารี, การกำหนดค่าพื้นฐาน, การ initialize & unseal, การเปิดใช้งาน KV engine จนถึงการจัดการ ACL และ Auth Methods
- เตรียมระบบ ให้เป็น Ubuntu 20.04+ พร้อม sudo
- เลือกวิธีติดตั้ง ที่เหมาะกับสภาพแวดล้อม (APT หรือ Binary)
- กำหนดไฟล์ config ใช้ storage แบบ file และ listener พื้นฐาน
- Initialize, Unseal, Login ด้วย Root Token ครั้งแรกเท่านั้น
- เปิด KV engine, สร้างและอ่าน Secrets ตัวอย่างได้สำเร็จ
- ตั้งค่า Policy & Auth ให้สอดคล้องกับหน้าที่การทำงานของผู้ใช้หรือแอปพลิเคชัน
- ตรวจสอบด้วย CLI และเพิ่ม audit device เพื่อความโปร่งใส
จำไว้ว่า Vault ต้องถูก lock down ด้วย TLS, MFA, และการสำรองข้อมูล เสมอ เพื่อลดความเสี่ยงและทำให้ระบบจัดการ Secrets ของคุณปลอดภัยอย่างแท้จริง.
แชร์บทความนี้:
ชอบบทความแบบนี้?
สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม
แหล่งข่าวต้นฉบับ
- ชื่อต้นฉบับ
- วิธีติดตั้งและกำหนดค่า HashiCorp Vault บน Ubuntu เพื่อจัดการ Secrets อย่างปลอดภัย
- ผู้เขียน
- กองบรรณาธิการ Thai Tech News
- แหล่ง
- บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
- วันที่เผยแพร่
- 14 กรกฎาคม 2569 เวลา 17:51
- URL ต้นฉบับ
- https://thaitech.news/articles/growth-989456



