วิธีติดตั้งและกำหนดค่า HashiCorp Vault บน Ubuntu เพื่อจัดการ Secrets อย่างปลอดภัย

ที่มาภาพ: 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

Related

บทความที่เกี่ยวข้อง

วิธีตั้งค่าและใช้งาน Docker Desktop ร่วมกับ WSL 2 บน Windows เพื่อพัฒนาแอปพลิเคชัน Linux อย่างปลอดภัยGrowth
14 กรกฎาคม 2569 เวลา 11:30

วิธีตั้งค่าและใช้งาน Docker Desktop ร่วมกับ WSL 2 บน Windows เพื่อพัฒนาแอปพลิเคชัน Linux อย่างปลอดภัย

การพัฒนาแอปพลิเคชัน Linux บน Windows ไม่จำเป็นต้องใช้เครื่องเสมือนเต็มรูปแบบอีกต่อไป Docker Desktop ร่วมกับ WSL 2 ให้สภาพแวดล้อมที่ใกล้เคียงกับระบบ Linux จริง ๆ พร้อมประสิทธิภาพสูงและการตั้งค่าที่ปลอด…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
วิธีเปิดใช้งานและตั้งค่า Dependabot ใน GitHub เพื่อตรวจจับและแก้ไขช่องโหว่ของแพคเกจโดยอัตโนมัติGrowth
13 กรกฎาคม 2569 เวลา 20:30

วิธีเปิดใช้งานและตั้งค่า Dependabot ใน GitHub เพื่อตรวจจับและแก้ไขช่องโหว่ของแพคเกจโดยอัตโนมัติ

**บทความนี้จะพาคุณเข้าใจวิธีเปิดใช้งานและตั้งค่า Dependabot บน GitHub เพื่อให้ระบบตรวจจับช่องโหว่ของแพคเกจโดยอัตโนมัติ พร้อมแนวทางแก้ไขอย่างรวดเร็ว**

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
วิธีตั้งค่า Git Credential Manager Core เพื่อจัดการรหัสผ่านและโทเคนอย่างปลอดภัยบนทุกระบบปฏิบัติการGrowth
13 กรกฎาคม 2569 เวลา 19:00

วิธีตั้งค่า Git Credential Manager Core เพื่อจัดการรหัสผ่านและโทเคนอย่างปลอดภัยบนทุกระบบปฏิบัติการ

Git Credential Manager Core (GCM Core) เป็นเครื่องมือที่ช่วยให้ Git เก็บและเรียกใช้ **รหัสผ่าน** หรือ **โทเคน** แบบอัตโนมัติบน Windows, macOS และ Linux อย่างปลอดภัย ลดความเสี่ยงจากการบันทึกข้อมูลแบบ p…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
วิธีใช้งาน Git Bisect เพื่อตรวจหา bug ที่ทำให้โปรเจกต์เสียหายอย่างมีประสิทธิภาพGrowth
13 กรกฎาคม 2569 เวลา 11:30

วิธีใช้งาน Git Bisect เพื่อตรวจหา bug ที่ทำให้โปรเจกต์เสียหายอย่างมีประสิทธิภาพ

Git Bisect เป็นเครื่องมือใน Git ที่ช่วยแยกหาต้นเหตุของ bug ได้อย่างเป็นระบบและรวดเร็ว การใช้ Bisect ทำให้คุณไม่ต้องค้นหาโค้ดด้วยตนเองทีละบรรทัด เพียงกำหนดจุด “ดี” และ “เสีย” ระบบจะทำการตรวจสอบ commit…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ5 นาที
คัดลอกลิงก์แล้ว!