Skip to main content

> Jitrak Blog

>_Bitwarden Secrets Manager: Key Concepts and Getting Started

#แนวคิด BWS, Workflow, ตั้ง Project/Secret/Machine Account บน Web Vault และใช้ bws CLI — ก่อน Integrate กับ App จริง

@Yosapol Jitrak|28 Jun 2026 07:00

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 จัดความสัมพันธ์ระหว่างสี่สิ่งหลัก:

ConceptMeaning
Secretsคู่ Key–Value ที่ Sensitive เช่น API Keys ที่ Organization ต้องเก็บอย่างปลอดภัย — ไม่ควร Expose ใน Plain Code หรือส่งผ่าน Unencrypted Channel
Projectsกลุ่ม Secrets ที่จัดรวมตาม Logic เพื่อให้ทีม DevOps และ Security จัดการ Access
Machine accountsNon-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 รัน:

Bitwarden Secrets Manager diagram

ช่วง 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)

  1. Log in vault.bitwarden.com (EU: vault.bitwarden.eu)
  2. Product switcher → Admin Console
  3. BillingSubscription
  4. ใน More from Bitwarden ติ๊ก Subscribe to Secrets Manager
  5. Free OrganizationSubmit · Plan แบบ Teams/Enterprise → กรอก seats / machine accounts แล้ว Save

หลัง Subscribe แล้ว — หน้า Subscription แสดง Secrets Manager — Free Organization

รูปด้านบนคือหน้า หลังเปิดใช้แล้ว — ตอนยังไม่ 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

  1. Product switcher ด้านซ้ายล่าง → Secrets Manager
Product switcher — เลือก Secrets Manager
  1. เมนูซ้ายจะมี Projects, Secrets, Machine accounts — นี่คือหน้าหลักของ BWS
Secrets Manager — เมนู Projects, Secrets, Machine accounts

ครั้งแรก Vault จะว่าง — ต้องสร้าง Project ก่อน แล้วค่อยใส่ Secrets

สร้าง Project และ Secret

สร้าง Project

  1. ปุ่ม NewProject
ปุ่ม New — เลือก Project
  1. ตั้งชื่อ เช่น demo-appSave
New project — ตั้งชื่อ demo-app
  1. จด Project ID (UUID) — สามารถดูได้จาก bws project list หรือใน UI โดยการกด Projects ซ้ายบน เพื่อย้อนกลับไปหน้ารวม Projects
หน้า Project demo-app — กด Projects เพื่อกลับไปดู Project ID

ถ้ามีทีม — แท็บ People ใน Project เพิ่ม Member และตั้ง Can read / Can read, write ตาม Quick Start

สร้าง Secret

  1. ปุ่ม NewSecret (หรือเปิด Project demo-app แล้วเพิ่ม Secret)
  2. ใส่ Name (เช่น MY_API_KEY) และ Value — เลือก Project demo-app
  3. Save — Value ดู/แก้บน Web ได้ภายหลังถ้ามี Permission (ต่างจาก Access Token ที่ดูซ้ำไม่ได้)

สร้าง Secret ใน Project

สร้าง Machine Account และ Access Token

Machine Account คือตัวตน Non-human ที่ App หรือ CLI ใช้ดึง Secrets — Human สร้าง Account แล้วออก Token ให้ Server

สร้าง Machine Account

  1. ปุ่ม NewMachine account (หรือเมนู Machine accounts)
  2. ตั้งชื่อ เช่น demo-app-serverSave
  3. แท็บ Projects → เพิ่ม Project demo-app → เลือก Permission:
    • Can read — ดึง Secret ได้อย่างเดียว (แนะนำสำหรับ Production)
    • Can read, write — สร้าง/แก้ Secret ได้ (ใช้ชั่วคราวตอน Migrate)

Machine Account + Project Permission

สร้าง Access Token

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

สร้าง Access Token (Copy ก่อนปิดหน้าต่าง)

เก็บ 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

— EOF —

Post feedback

~/feedback

Comments

~/shortcuts

> Keyboard shortcuts

  • Toggle this help?H
  • Back to topT
  • Hold to scroll downJ
  • Hold to scroll upK
  • Forward (newer post or next page)F
  • Back (older post or previous page)B
  • Close helpEsc

Navigation

  • Blog (post list)L
  • AboutA
  • PlayP
  • Tags,