DEV Community

Cover image for Postman เก็บ API Keys ของคุณไหม: สิ่งที่คุณต้องรู้
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

Postman เก็บ API Keys ของคุณไหม: สิ่งที่คุณต้องรู้

สรุป

ใช่ Postman จัดเก็บคีย์ API และข้อมูลรับรองอื่นๆ เมื่อคุณบันทึกไว้ในตัวแปรสภาพแวดล้อมที่เปิดใช้งานการซิงค์บนคลาวด์ ซึ่งเป็นค่าเริ่มต้น คุณควรเข้าใจว่าข้อมูลรับรองเหล่านี้จะถูกเก็บไว้บนเซิร์ฟเวอร์ของบุคคลที่สามเพื่อประเมินความเหมาะสมกับข้อกำหนดด้านความปลอดภัยของคุณ และพิจารณาเครื่องมือที่เน้นการทำงานในเครื่องอย่าง Apidog หากต้องการเพิ่มความมั่นใจด้านความปลอดภัย

ลองใช้ Apidog วันนี้

💡 Apidog เป็นแพลตฟอร์มการพัฒนา API แบบครบวงจรที่ใช้งานฟรี Apidog จัดเก็บตัวแปรสภาพแวดล้อมและคีย์ API ในเครื่องตามค่าเริ่มต้น ดังนั้นข้อมูลรับรองของคุณจะยังคงอยู่ในอุปกรณ์ของคุณเว้นแต่คุณจะเปิดใช้งานการซิงค์กับทีมอย่างชัดเจน ลองใช้ Apidog ฟรี ไม่ต้องใช้บัตรเครดิต

บทนำ

คำถามที่ว่า “Postman เก็บ API keys ของฉันหรือไม่” มักจะเกิดขึ้นในชุมชนนักพัฒนา คำถามนี้มักเกิดจากการตรวจสอบด้านความปลอดภัยหรือแนะนำโดยทีมรักษาความปลอดภัย หลายคนกังวลเพราะคีย์ API เปรียบเสมือนรหัสผ่าน หากรั่วไหลอาจนำไปสู่ความเสียหายทางการเงินหรือข้อมูล

นักพัฒนาส่วนใหญ่ทราบดีว่าไม่ควรคอมมิตคีย์ API ไปยังที่เก็บ GitHub สาธารณะ แต่หลายคนกลับไม่รู้จักลักษณะการจัดเก็บคีย์ในเครื่องมือ API client อย่าง Postman ที่มีผู้ใช้มากกว่า 30 ล้านคน บทความนี้จะตอบคำถามเชิงเทคนิคเกี่ยวกับการจัดเก็บคีย์ API และสิ่งที่ควรทำเพื่อความปลอดภัย

คำตอบโดยตรง: ใช่ พร้อมบริบทที่สำคัญ

Postman จัดเก็บคีย์ API ในกรณีต่อไปนี้:

  • ตัวแปรสภาพแวดล้อม (environment variables): ถ้าคุณตั้งค่า เช่น API_KEY=sk-abc123... ใน environment variable แล้วเปิดซิงค์บนคลาวด์ (ค่าเริ่มต้น) ค่านั้นจะถูกส่งไปยังเซิร์ฟเวอร์ของ Postman
  • ตัวแปรคอลเลกชัน (collection variables): ตัวแปรในระดับคอลเลกชันจะถูกซิงค์เช่นเดียวกัน
  • ตัวแปรส่วนกลาง (global variables): ซิงค์กับบัญชี Postman ของคุณ
  • ข้อมูลรับรองใน request bodies หรือ headers: หากใส่ข้อมูลรับรองลงใน header เช่น Authorization: Bearer sk-abc123... แล้วบันทึกคอลเลกชันนั้น ก็จะถูกซิงค์ด้วย

สิ่งที่ไม่ซิงค์ตามค่าเริ่มต้น: ค่าที่เก็บใน Postman Vault จะอยู่เฉพาะในเครื่อง

“การซิงค์บนคลาวด์” หมายถึงอะไร

การซิงค์บนคลาวด์ใน Postman คือการที่สำเนาของ workspace ของคุณจะถูกเก็บไว้บนเซิร์ฟเวอร์ของ Postman อัตโนมัติ ไม่ต้องคลิก “บันทึก” หรือ “ซิงค์” การเปลี่ยนแปลงจะถูกอัปโหลดทันที

ข้อดี: รองรับการทำงานร่วมกันและ backup อัตโนมัติ

ข้อเสีย: คีย์ API ของคุณจะถูกเก็บทั้งในเครื่องและในคลาวด์ของ Postman

Postman เข้ารหัสข้อมูลนี้ด้วย AES-256 (data at rest) และ TLS (data in transit) แต่บริษัทสามารถเข้าถึงข้อมูลเพื่อให้บริการได้ หากบัญชีของคุณถูกบุกรุก ข้อมูลรับรองก็อาจโดนขโมยได้

นโยบายความเป็นส่วนตัวของ Postman

Postman ระบุว่าตัวเองเป็น data processor ไม่ใช่ data controller สำหรับ workspace ของคุณ และใช้ข้อมูลเพื่อให้บริการและปรับปรุงบริการเท่านั้น ไม่ขายข้อมูลให้บุคคลที่สาม

ประเด็นสำคัญ:

  • การจำกัดวัตถุประสงค์: ใช้ข้อมูลเฉพาะเพื่อให้บริการ ไม่ใช่การตลาด
  • ผู้ประมวลผลช่วง: ใช้ third-party services สำหรับโครงสร้างพื้นฐานและ analytics
  • คำขอของรัฐบาล: ข้อมูลบนเซิร์ฟเวอร์ในสหรัฐฯ อาจถูกบังคับให้เปิดเผยตามกฎหมาย
  • แจ้งเตือนการละเมิด: หากข้อมูลของคุณเกี่ยวข้องกับ incident จะได้รับแจ้ง
  • การลบข้อมูล: เมื่อคุณลบบัญชี ข้อมูลของคุณจะถูกลบตามกำหนด backup

องค์กรของคุณควรตรวจสอบว่านโยบายเหล่านี้ตรงกับข้อกำหนดด้านความปลอดภัยหรือไม่

มิติการมองเห็นพื้นที่ทำงาน

ความเสี่ยงอีกอย่างคือ “การมองเห็น workspace” ของ Postman

  • Public: ใครก็เข้าถึงได้ผ่าน Postman public API network
  • Team: สมาชิกในทีมเข้าถึงได้ทั้งหมด
  • Private: เฉพาะเจ้าของ

ปี 2023 มีการค้นพบ workspace สาธารณะมากกว่า 30,000 แห่งที่มีคีย์ API จริง การตั้ง workspace เป็น Public โดยไม่ได้ตั้งใจอาจนำไปสู่การรั่วไหลของข้อมูลรับรอง

ใครมีความเสี่ยงมากที่สุด

กลุ่มที่ควรระวังเป็นพิเศษ:

  • ผู้ที่จัดเก็บ production credentials ใน Postman
  • ทีมที่มีสิทธิ์เข้าถึง workspace กว้างขวาง
  • องค์กรในอุตสาหกรรมที่มีการควบคุม (เช่น การเงิน สุขภาพ)
  • คีย์ API ที่มีสิทธิ์สูง
  • ฟรีแลนซ์/ที่ปรึกษาที่เก็บคีย์ลูกค้าในบัญชีส่วนตัว

Postman Vault เปลี่ยนแปลงสถานการณ์อย่างไร

Postman Vault เป็นพื้นที่เก็บข้อมูลรับรองในเครื่อง ไม่ซิงค์กับคลาวด์ของ Postman ใช้ไวยากรณ์ {{vault:variable_name}} ใน request แทนตัวแปรสภาพแวดล้อม

ข้อดี: ข้อมูลรับรองไม่ออกนอกเครื่อง

ข้อจำกัด:

  • สมาชิกทีมแต่ละคนต้องตั้งค่า Vault เอง
  • ข้อมูลรับรองจะไม่ sync ผ่านทีม
  • ไม่ครอบคลุมข้อมูลรับรองที่ฮาร์ดโค้ดใน header หรือ body

เครื่องมือที่เน้นการทำงานในเครื่องและทางเลือกอื่น

ความแตกต่างหลัก:

  • Postman: ซิงค์บนคลาวด์เป็นค่าเริ่มต้น ต้องใช้ Vault สำหรับความปลอดภัยสูง
  • Apidog: ข้อมูลอยู่ในเครื่อง SQLite database โดยไม่ซิงค์ออกนอกเครื่อง ยกเว้นจะเปิดใช้เอง
  • Bruno: ทุกอย่างเก็บเป็นไฟล์ local ไม่มี cloud option

ตัวอย่างโค้ดการตั้งค่าตัวแปรใน Apidog (local):

{
  "environments": {
    "default": {
      "API_KEY": "sk-abc123..."
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Apidog เหมาะกับผู้ที่ต้องการความปลอดภัยตั้งแต่ค่าเริ่มต้น ไม่ต้องตั้งค่า Vault เพิ่มเติม

คำแนะนำที่เป็นประโยชน์

  • ตรวจสอบสิ่งที่คุณจัดเก็บ: เปิด environment, collection, global variable ของ Postman แล้วค้นหาคีย์/โทเค็น/รหัสผ่าน
  • ย้ายข้อมูลรับรองไปยัง Vault: สำหรับข้อมูลที่ต้องเก็บใน Postman ให้ใช้ Vault และอัปเดตขั้นตอน onboarding ของทีม
  • ใช้คีย์ที่มีขอบเขตจำกัด: สำหรับการทดสอบ ให้ใช้คีย์ที่มีสิทธิ์ขั้นต่ำ
  • ตรวจสอบ workspace visibility: ตั้ง workspace เป็น private เสมอ
  • ประเมินรูปแบบภัยคุกคาม: สำหรับ production/ข้อมูลสำคัญ ใช้เครื่องมือที่เน้น local-first เช่น Apidog หรือ Bruno

คำถามที่พบบ่อย

Postman ขายคีย์ API หรือข้อมูลพื้นที่ทำงานของฉันไหม?

ไม่ ข้อมูลของคุณถูกใช้เพื่อให้บริการเท่านั้น

หากบัญชี Postman ถูกแฮก คีย์ API จะโดนหรือไม่?

ถ้าคีย์อยู่ใน environment/global/collection variable และ sync เปิดอยู่ ผู้โจมตีเข้าถึงได้ ดังนั้นควรใช้ Vault และเปิด MFA

Postman รองรับ MFA หรือไม่?

รองรับ MFA ผ่านแอป Authenticator เปิดใช้เพื่อลดความเสี่ยง

คีย์ใน Postman Vault ปลอดภัยแค่ไหน?

คีย์อยู่ในเครื่องคุณ หากอุปกรณ์ถูกแฮก ข้อมูลใน Vault ก็โดนได้ แต่ถ้าบัญชี Postman ถูกแฮก ข้อมูลใน Vault จะไม่ถูก sync ออกไป

ถ้าห้ามเก็บคีย์ API ใน cloud ควรใช้อะไร?

Bruno ไม่มี cloud เลย

Apidog ในโหมด local เก็บทุกอย่างในเครื่อง

Hoppscotch หรือ Apidog แบบ self-hosted ก็เป็นทางเลือก

จะลบคีย์ API ออกจาก Postman cloud ได้อย่างไร?

ลบตัวแปรที่มีข้อมูลรับรองใน environment/collection/global variable และแทนที่ด้วย Vault ถ้าต้องการลบข้อมูล sync เก่า ให้ลบ workspace และข้อมูลที่เกี่ยวข้องจากบัญชี Postman


สรุป: Postman จะเก็บ API keys ของคุณใน cloud ภายใต้ค่าเริ่มต้นและการใช้งานปกติ หากคุณมีข้อกำหนดด้านความปลอดภัยสูง ควรใช้ Vault หรือเลือกเครื่องมือที่เน้น local-first อย่าง Apidog

Top comments (0)