01001010 10110101 11001100 00110010
กรรมสิทธิ์และความปลอดภัย

สิทธิ์และการเข้าถึงเว็บไซต์ | ให้สิทธิ์ Maad Dev อย่างปลอดภัย

วิธีให้สิทธิ์ทีม Maad Dev เข้าไปติดตั้งเว็บไซต์ให้อย่างปลอดภัย ตั้งค่าระบบอัปเดตอัตโนมัติและระบบแก้ไขเนื้อหา และวิธียกเลิกสิทธิ์นั้นได้เองทุกเมื่อ

สิทธิ์และการเข้าถึงเว็บไซต์

บัญชี GitHub และ Cloudflare เป็นของคุณตั้งแต่ต้น Maad Dev ไม่มีสิทธิ์เข้าอะไรเลย จนกว่าคุณจะ "เชิญ" เราเข้าไปช่วยติดตั้ง และคุณสามารถ ยกเลิกสิทธิ์นั้นได้เองทุกเมื่อ โดยไม่ต้องรอทีมงาน

ทำไมต้องให้สิทธิ์เรา

ช่วงติดตั้งเว็บไซต์ ทีมงานต้องเข้าไปวางโค้ด ตั้งค่า และเชื่อมต่อระบบให้ ซึ่งต้องมีสิทธิ์เข้าถึงชั่วคราว — เหมือนการให้กุญแจช่างเข้ามาต่อเติมบ้าน ไม่ใช่การยกบ้านให้

ขั้นตอนให้สิทธิ์ (ช่วงติดตั้งเท่านั้น)

ทำให้ครบทั้ง 2 ระบบด้านล่างในคราวเดียว แล้วแจ้งทีมงาน — ที่เหลือทั้งหมด (ระบบอัปเดตอัตโนมัติ และระบบแก้ไขเนื้อหา) ทีมงานจะตั้งค่าให้ครบในคราวเดียว คุณไม่ต้องยุ่งกับโค้ดหรือเครื่องมือใดๆเลย

1. GitHub

  • สมัครด้วยอีเมล Google ของคุณ
  • สร้าง repository แบบ Private
  • ไปที่ Settings → Collaborators → เชิญด้วยอีเมล [email protected]

    บัญชี GitHub ส่วนบุคคลไม่มีตัวเลือกระดับสิทธิ์แบบละเอียด (Read/Write/Admin) เหมือนบัญชี Organization แต่การเชิญแบบนี้ลบ repository หรือโอนความเป็นเจ้าของไม่ได้อยู่ดี เพียงพอสำหรับงานติดตั้งทั้งหมด

2. Cloudflare

  • สมัครด้วยอีเมล Google เดียวกัน
  • ไปที่ Manage Account → Members → เชิญด้วยอีเมล [email protected]
  • เลือก role เฉพาะ "Workers Platform Admin" เท่านั้น แล้วกด Create policy — ครอบคลุมงานติดตั้งทั้งหมดโดยไม่แตะข้อมูลการเงิน
  • หลีกเลี่ยงสิทธิ์ Billing และ Super Administrator — ทีมงานไม่จำเป็นต้องเห็นข้อมูลการเงินหรือบัตรเครดิตของคุณเลย
  • สร้าง Account API Token ที่ Manage Account → Account API tokens ขอบเขต Developer Platform → Pages: Edit, Token expiration ตั้งเป็น No expire
  • ส่งค่า Account Id & Token ให้ทีมงานผ่านช่องทางที่ปลอดภัยเช่นกัน

Token และ Client Secret เหล่านี้ให้สิทธิ์เท่าที่จำเป็นสำหรับงานติดตั้งเท่านั้น ไม่แตะข้อมูลการเงินหรือส่วนอื่นของบัญชี และคุณสร้างใหม่หรือเพิกถอนได้เองทุกเมื่อจากหน้าบัญชีของคุณ ไม่ต้องรอทีมงาน

หลังจากนั้น ทีมงานจะต่อระบบอัปเดตอัตโนมัติให้ครบ (แก้ไข = เว็บอัปเดตเอง) แล้วนำเว็บไซต์ของคุณขึ้นออนไลน์ให้ดูได้ทันที — ยังไม่ต้องยุ่งกับระบบแก้ไขเนื้อหาในขั้นนี้เลย

หลักการที่เราใช้เสมอ: ให้สิทธิ์เท่าที่จำเป็นสำหรับงาน ไม่ใช่สิทธิ์เต็มระบบ

ต่อระบบแก้ไขเนื้อหา (Studio) — ทำทีหลังได้ เมื่อเว็บไซต์ออนไลน์และมีโดเมนจริงแล้ว

ก่อนขั้นตอนนี้ ระบบแก้ไขเนื้อหายังไม่ถูกเปิดใช้งานเลย — เว็บไซต์แสดงผลได้ปกติทุกอย่าง เพียงแต่หน้าแก้ไขเนื้อหายังเข้าไม่ได้ (ปลอดภัยโดยอัตโนมัติ ไม่ต้องตั้งค่าอะไรเพิ่มเพื่อป้องกัน) รอให้คุณมีโดเมนจริงพร้อมใช้แล้วค่อยทำตามนี้:

  • สร้าง GitHub OAuth App ที่ GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
    • Homepage URL: โดเมนจริงของคุณ
    • Authorization callback URL: https://โดเมนของคุณ/__nuxt_studio/auth/github
  • ส่ง Client ID และ Client Secret ที่ได้ให้ทีมงานผ่านช่องทางที่ปลอดภัย (ไม่ใช่แชทสาธารณะ)
  • ทีมงานจะตั้งค่า 3 ตัวแปรนี้ให้ครบพร้อมกันในคราวเดียวแล้ว Redeploy ให้: STUDIO_GITHUB_CLIENT_ID, STUDIO_GITHUB_CLIENT_SECRET, และ STUDIO_GITHUB_MODERATORS (ตั้งเป็นอีเมล GitHub ของคุณ) — ต้องตั้งทั้ง 3 ค่าพร้อมกันเสมอ ถ้าตั้งแค่ 2 ตัวแรกแต่ลืม Moderators ใครก็ตามที่มีบัญชี GitHub จะเข้าหน้าแก้ไขเนื้อหาได้ทันที

คุณควบคุมสิทธิ์เหล่านี้ได้เองเสมอ

ไม่ใช่แค่ตอนส่งมอบงานเสร็จ — ตลอดเวลาที่เว็บไซต์ใช้งานอยู่ คุณจัดการ เปลี่ยนแปลง หรือเพิกถอนสิทธิ์เหล่านี้เองได้ทุกเมื่อ โดยไม่ต้องขอหรือรอทีมงาน เช่น สร้าง API Token ใหม่แทนตัวเดิม เปลี่ยนอีเมลผู้มีสิทธิ์แก้ไขเนื้อหา หรือลด/เพิ่มสิทธิ์สมาชิกใน Cloudflare — ทุกบัญชีเป็นของคุณ 100% ทีมงานไม่มีทางล็อกหรือจำกัดสิทธิ์เหล่านี้ได้เอง

ยกเลิกสิทธิ์ทีมงานเมื่อไหร่ก็ได้

หลังเว็บไซต์ออนไลน์และคุณตรวจรับงานเรียบร้อย แนะนำให้ถอดสิทธิ์ทีมงานออกทันที (ทำเองได้ ไม่ต้องขออนุญาตใคร):

  • GitHub: Settings → Collaborators → กด Remove ข้างชื่อทีมงาน
  • Cloudflare: Manage Account → Members → กด Remove

ใช้เวลาไม่ถึง 2 นาที และเว็บไซต์ของคุณยังทำงานปกติทุกอย่าง รวมถึงระบบอัปเดตอัตโนมัติด้วย เพราะ API Token ถูกเก็บอยู่ใน repository ของคุณเองตั้งแต่ตอนติดตั้ง ไม่ได้ผูกกับสิทธิ์การเข้าถึงของทีมงานเลย ถอดสิทธิ์เราออกได้โดยเว็บไซต์ไม่สะดุด

ตรวจสอบย้อนหลังได้เสมอ (โปร่งใส)

ทุกการแก้ไขเว็บไซต์ถูกบันทึกเป็นประวัติ (Git history) — ดูได้ว่าใครแก้อะไร เมื่อไหร่ และย้อนกลับเวอร์ชันก่อนหน้าได้ตลอด ไม่มีการเปลี่ยนแปลงใดที่มองไม่เห็น

ความปลอดภัยที่ดี เริ่มจากการควบคุมสิทธิ์ที่ชัดเจน — และคุณคือคนควบคุมเสมอ