API Keys ที่กระจายใน .env บน Server ที่ Agent หรือ Pipeline เข้าถึงได้ เป็นปัญหาที่เจอบ่อย — เป้าหมายของ Secrets Manager คือ เอา Credentials ออกจาก Plaintext บน Disk แล้ว Deploy แบบ Centralized
บทความนี้อธิบาย Bitwarden Secrets Manager (BWS) ตั้งแต่แนวคิดจนถึงลงมือสร้าง Vault บน Web และทดสอบด้วย CLI
Bitwarden Secrets Manager คืออะไร
Bitwarden Secrets Manager (BWS) ช่วย Developer, DevOps และทีม Security เก็บ จัดการ และ Deploy Secrets แบบ Centralized — แยกจาก Password Manager ปกติ ออกแบบมาสำหรับ Infrastructure Secrets ไม่ใช่ Personal Passwords
BWS ออกแบบมาสำหรับสภาพแวดล้อม Dev ที่มีสิทธิ์สูง เช่น Server, CI และ Agent ที่ทำงานกับ Secrets
Human กับ Machine ต้อง Authenticate ก่อน และมี Permission ที่ถูกต้อง ถึงจะ View หรือ Modify Secrets ใน Vault ได้
Key concepts ด้านล่างแปลจาก Secrets Manager Overview ของ Bitwarden
Key concepts
BWS จัดความสัมพันธ์ระหว่างสี่สิ่งหลัก:
| Concept | Meaning |
|---|---|
| Secrets | คู่ Key–Value ที่ Sensitive เช่น API Keys ที่ Organization ต้องเก็บอย่างปลอดภัย — ไม่ควร Expose ใน Plain Code หรือส่งผ่าน Unencrypted Channel |
| Projects | กลุ่ม Secrets ที่จัดรวมตาม Logic เพื่อให้ทีม DevOps และ Security จัดการ Access |
| Machine accounts | Non-human เช่น App หรือ Deployment Pipeline ที่ต้อง Programmatic Access ไปยัง Secrets เฉพาะชุดที่กำหนด |
| Access tokens | ชุด Keys ที่ให้ Machine Account Access และ Decrypt (หรือ Edit/Create ตาม Permission) Secrets ใน Vault ได้ |
Clients
Bitwarden Secrets Manager มี Client 3 ทาง — Web Vault สำหรับตั้ง Project, Secrets และ Machine Account; CLI (bws) สำหรับ Inject Secrets เข้า App; SDK สำหรับ Build Integration เอง
บทความนี้ใช้ Web + CLI ตาม Secrets Manager Quick Start และ Secrets Manager CLI
Workflow
BWS แบ่งงานคร่าว ๆ สองช่วง — Setup บน Web Vault (Project, Secret, Machine Account, Access Token) แล้ว Inject ผ่าน CLI ตอน App รัน:

ช่วง Setup — Member ที่มีสิทธิ์ใน Secrets Manager สร้าง Machine Account และออก Access Token ให้ App หรือ Machine
ช่วง Inject — App หรือ Machine ใช้ Access Token เรียก API ดึง Secrets เข้า Memory โดยไม่เก็บ Plaintext บน Disk
Prerequisites
- Bitwarden Account — สมัครฟรี ได้ถ้ายังไม่มี
- Organization — BWS ทำงานใน Organization ไม่ใช่ Personal Vault; สร้าง Free Organization จาก Admin Console ได้ถ้ายังไม่มี (ดู Sign up for Secrets Manager)
Families plan ใช้ Secrets Manager โดยตรงไม่ได้ — สร้าง Free Organization แยกตาม docs ด้านบน
เปิดใช้ Secrets Manager (Subscription)
ก่อนเข้า Secrets Manager ต้อง Subscribe ใน Organization ก่อน — Free Tier ใช้ได้ แต่ Free Organization แชร์ Secrets กับ Member ได้อีก 1 คน (เฉพาะ Organization Owner Subscribe ได้ ตาม Quick Start)
- Log in vault.bitwarden.com (EU: vault.bitwarden.eu)
- Product switcher → Admin Console
- Billing → Subscription
- ใน More from Bitwarden ติ๊ก Subscribe to Secrets Manager
- Free Organization → Submit · Plan แบบ Teams/Enterprise → กรอก seats / machine accounts แล้ว Save

รูปด้านบนคือหน้า หลังเปิดใช้แล้ว — ตอนยังไม่ Subscribe จะเห็น checkbox ใน More from Bitwarden แทนรายการ Secrets Manager ใน Details
ถ้าเป็น Member ให้ Owner Subscribe ก่อน แล้ว Owner หรือ Admin ไป Members → ⋮ → Activate Secrets Manager ให้คุณ — จากนั้น Refresh Browser ถึงจะเห็น Secrets Manager ใน Product switcher
เปิด Secrets Manager บน Web Vault
- Product switcher ด้านซ้ายล่าง → Secrets Manager
- เมนูซ้ายจะมี Projects, Secrets, Machine accounts — นี่คือหน้าหลักของ BWS
ครั้งแรก Vault จะว่าง — ต้องสร้าง Project ก่อน แล้วค่อยใส่ Secrets
สร้าง Project และ Secret
สร้าง Project
- ปุ่ม New → Project
- ตั้งชื่อ เช่น
demo-app→ Save
- จด Project ID (UUID) — สามารถดูได้จาก
bws project listหรือใน UI โดยการกด Projects ซ้ายบน เพื่อย้อนกลับไปหน้ารวม Projects
ถ้ามีทีม — แท็บ People ใน Project เพิ่ม Member และตั้ง Can read / Can read, write ตาม Quick Start
สร้าง Secret
- ปุ่ม New → Secret (หรือเปิด Project
demo-appแล้วเพิ่ม Secret) - ใส่ Name (เช่น
MY_API_KEY) และ Value — เลือก Projectdemo-app - Save — Value ดู/แก้บน Web ได้ภายหลังถ้ามี Permission (ต่างจาก Access Token ที่ดูซ้ำไม่ได้)

สร้าง Machine Account และ Access Token
Machine Account คือตัวตน Non-human ที่ App หรือ CLI ใช้ดึง Secrets — Human สร้าง Account แล้วออก Token ให้ Server
สร้าง Machine Account
- ปุ่ม New → Machine account (หรือเมนู Machine accounts)
- ตั้งชื่อ เช่น
demo-app-server→ Save - แท็บ Projects → เพิ่ม Project
demo-app→ เลือก Permission:- Can read — ดึง Secret ได้อย่างเดียว (แนะนำสำหรับ Production)
- Can read, write — สร้าง/แก้ Secret ได้ (ใช้ชั่วคราวตอน Migrate)

สร้าง Access Token
- เปิด Machine Account → แท็บ Access tokens → Create access token
- ตั้งชื่อ Token และวันหมดอายุ (Default: Never)
- Create — Copy Token ทันที Bitwarden ไม่เก็บ Token ไว้ให้ดูซ้ำ

เก็บ Token ชั่วคราวในที่ปลอดภัย — ขั้นต่อไปใช้เป็น BWS_ACCESS_TOKEN
ติดตั้งและทดสอบ CLI
CLI ชื่อ bws (ไม่ใช่ bw ของ Password Manager) — ดาวน์โหลดจาก GitHub Releases หรือ:
# Linux / macOS
curl https://bws.bitwarden.com/install | sh
bws --version
Account EU ต้องตั้ง Server ก่อน (US ข้ามได้):
bws config server-base https://vault.bitwarden.eu
# หรือส่งทุกคำสั่ง: bws secret list --server-url https://vault.bitwarden.eu
Authenticate
export BWS_ACCESS_TOKEN="0.xxxxx..." # Token จากขั้นก่อน
Token ผูกกับ Machine Account — อ่าน/เขียนได้แค่ใน Scope ที่ Account มี Permission
คำสั่งพื้นฐาน
List Projects (หา Project ID):
bws project list
List Secrets ทั้ง Vault หรือเฉพาะ Project:
bws secret list
bws secret list <PROJECT_ID>
Create Secret (ต้องมี Write Permission):
bws secret create MY_API_KEY "your-secret-value" <PROJECT_ID>
Get Secret เดี่ยว (ได้ JSON มี value):
bws secret get <SECRET_ID>
ทดสอบว่า Setup ครบ — bws secret list ควรเห็น MY_API_KEY ที่สร้างบน Web หรือ CLI
Inject: ใส่ Secrets เข้า Process
หลัง Setup แล้ว App ไม่ควรเก็บ API Keys ใน File — ใช้ Token ดึงตอน Runtime
bws run — Inject Secrets เป็น Env Var แล้วรันคำสั่ง:
bws run --project-id <PROJECT_ID> -- 'node server.js'
# หรือเฉพาะ Project: Secrets ใน Project นั้นกลายเป็น Env Var ตาม Name
bws run -- 'echo "$MY_API_KEY"' # ทดสอบว่า Inject ได้ (ระวัง Log หลุดค่า)
ถัดไป
ตอนนี้มี Project, Secrets, Machine Account, Access Token และ CLI ที่ List ได้แล้ว — พร้อม Integrate กับ App, CI หรือ Container ผ่าน bws run และ Integrations เช่น GitHub Actions หรือ Terraform Provider
อ่านต่อ: Developer Quick Start · Secrets Manager CLI
Credits
- Architecture diagram: Secrets Manager Overview — Bitwarden
- UI screenshots: captured from Bitwarden Secrets Manager Web Vault and Admin Console (bitwarden.com)
- Bitwarden® and the Bitwarden logo are trademarks of Bitwarden, Inc.