RAM User: สร้างผู้ใช้ แบ่งสิทธิ์ เปิด MFA บน Alibaba Cloud
คำตอบสั้น ๆ: สร้าง RAM User และ User Group บน Alibaba Cloud แทนการใช้บัญชีหลัก ผูกสิทธิ์แบบน้อยที่สุดเท่าที่จำเป็น เปิด MFA และดูแล AccessKey ให้ปลอดภัย
คู่มือนี้อธิบาย RAM User ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
RAM User คือบัญชีผู้ใช้ย่อยในบริการ Resource Access Management (RAM) ของ Alibaba Cloud ที่ใช้ล็อกอินคอนโซลหรือเรียก API แทนบัญชีหลัก (Alibaba Cloud account หรือที่มักเรียกว่า root) บัญชีหลักมีสิทธิ์เต็มทุกอย่างรวมถึงการเงิน ถ้ารหัสผ่านหรือ AccessKey ของบัญชีหลักหลุด ผู้ไม่หวังดีจะลบหรือสร้างทรัพยากรได้ทั้งหมด
คู่มือนี้เหมาะกับผู้ดูแลบัญชี Alibaba Cloud ขององค์กรที่มีคนหลายฝ่ายต้องเข้าใช้งาน เมื่อทำครบ คุณจะมีบัญชีหลักที่ล็อกไว้ด้วย MFA มี User Group แยกตามหน้าที่ มี RAM User รายบุคคลที่ได้สิทธิ์เท่าที่จำเป็น และมีแนวทางสร้าง หมุนเวียน และยกเลิก AccessKey ของโปรแกรมอย่างเป็นระบบ
ผูกสิทธิ์ที่กลุ่ม ไม่ใช่ที่ตัวบุคคล โปรแกรมใช้ RAM User แยกที่สิทธิ์แคบที่สุด
สิ่งที่ต้องเตรียม
สิทธิ์เข้าบัญชีหลัก หรือ RAM User ที่มีนโยบาย AliyunRAMFullAccess สำหรับจัดการผู้ใช้และสิทธิ์
รายชื่อผู้ใช้งานและหน้าที่ของแต่ละคน เช่น นักพัฒนาที่ดูแล ECS ฝ่ายบัญชีที่ดูบิล และโปรแกรมที่ต้องอัปโหลดไฟล์ขึ้น OSS
แอป Authenticator บนมือถือ เช่น Google Authenticator หรือ Microsoft Authenticator สำหรับ MFA
ถ้ายังไม่มีบัญชี ดูวิธีเปิดใช้ Alibaba Cloud กับ THAI DATA CLOUD ก่อน
หลักการที่ใช้ตลอดคู่มือคือ least privilege ให้สิทธิ์เท่าที่งานต้องใช้ ผูกสิทธิ์กับกลุ่มแทนรายคน และให้คนกับโปรแกรมใช้บัญชีแยกกันเสมอ
ขั้นตอนที่ 1: ล็อกบัญชีหลักให้แน่นหนาก่อน
ล็อกอินด้วยบัญชีหลัก คลิกรูปโปรไฟล์มุมขวาบนแล้วเข้าหน้าตั้งค่าความปลอดภัยของบัญชี (Security Settings) เปิด MFA ด้วยแอป Authenticator และตรวจว่าอีเมลกับเบอร์มือถือสำหรับกู้บัญชียังเป็นของบริษัท ไม่ใช่ของพนักงานที่ลาออกไปแล้ว
จากนั้นเปิดเมนู AccessKey ในเมนูโปรไฟล์เดียวกัน ถ้าพบ AccessKey ของบัญชีหลัก ให้หาก่อนว่าโปรแกรมใดใช้อยู่ ย้ายโปรแกรมนั้นไปใช้ RAM User (ขั้นตอนที่ 6) แล้วจึงปิด (Disable) และลบคีย์ของบัญชีหลักทิ้ง เพราะคีย์ของบัญชีหลักจำกัดสิทธิ์ไม่ได้เลย
บัญชีหลักใช้เฉพาะงานระดับบัญชี งานประจำวันทั้งหมดใช้ RAM User
ขั้นตอนที่ 2: สร้าง User Group ตามหน้าที่งาน
เปิด RAM console ที่เมนูซ้ายเลือก Identities > User Groups (คอนโซลบางเวอร์ชันแสดงเป็น Groups) คลิก Create User Group แล้วกรอก Group Name เช่น developers Display Name และ Note สั้น ๆ ว่ากลุ่มนี้ทำอะไร จากนั้นคลิก OK
สร้างกลุ่มให้ตรงกับหน้าที่ เช่น developers สำหรับทีมที่ดูแล ECS, finance สำหรับฝ่ายที่ดูค่าใช้จ่าย และ readonly-audit สำหรับผู้ตรวจสอบ การผูกสิทธิ์กับกลุ่มทำให้เวลารับหรือย้ายพนักงาน คุณแค่เพิ่มหรือนำชื่อออกจากกลุ่ม ไม่ต้องไล่แก้สิทธิ์ทีละคน
ขั้นตอนที่ 3: ผูกนโยบายสิทธิ์แบบน้อยที่สุดให้กลุ่ม
ไปที่ Permissions > Grants คลิก Grant Permission ในช่อง Principal เลือกกลุ่มที่สร้างไว้ ช่อง Resource Scope เลือก Account level ถ้าใช้กับทรัพยากรทั้งบัญชี หรือ Resource group level ถ้าต้องการจำกัดเฉพาะ Resource Group หนึ่ง แล้วค้นหาและเลือก Policy ที่ต้องการ คลิก Confirm และ Close
ทีมพัฒนาที่ดูอย่างเดียว: AliyunECSReadOnlyAccess
ฝ่ายบัญชีที่ดูบิลอย่างเดียว: AliyunBSSReadOnlyAccess
หลีกเลี่ยง AdministratorAccess ยกเว้นผู้ดูแลระบบไม่กี่คน เพราะคอนโซลเองจัดว่าเป็นนโยบายความเสี่ยงสูง
ถ้านโยบายสำเร็จรูปกว้างเกินไป ให้สร้างนโยบายเองที่ Permissions > Policies > Create Policy แล้วเลือกแท็บ JSON ตัวอย่างนี้อนุญาตให้อ่านและเขียนไฟล์ได้เฉพาะบัคเก็ต example-backup
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["oss:GetObject", "oss:PutObject", "oss:ListObjects"],
"Resource": [
"acs:oss:*:*:example-backup",
"acs:oss:*:*:example-backup/*"
]
}
]
}
ขั้นตอนที่ 4: สร้าง RAM User สำหรับแต่ละคน
ไปที่ Identities > Users คลิก Create User แล้วกรอกส่วน User Account Information
Logon Name : ใช้ได้ทั้งตัวอักษร ตัวเลข จุด ขีดกลาง และขีดล่าง ยาวไม่เกิน 64 ตัว เช่น somchai.dev ระบบจะต่อท้ายด้วยโดเมนของบัญชีเป็น [email protected]
Display Name : ชื่อที่อ่านเข้าใจ เช่น Somchai (Dev)
Access Mode : เลือก Console Access สำหรับคน แล้วให้ระบบสร้าง Logon Password ให้ ติ๊ก Password Reset ให้ผู้ใช้ตั้งรหัสใหม่ตอนล็อกอินครั้งแรก และคง Enable MFA เป็นแบบบังคับ
คอนโซลแนะนำให้เลือกโหมดเดียวต่อผู้ใช้ อย่าเปิดทั้ง Console Access และ Permanent AccessKey ให้คนเดียวกัน เมื่อกดยืนยัน ระบบจะแสดงรหัสผ่านเพียงครั้งเดียว ให้ส่งให้ผู้ใช้ผ่านช่องทางที่ปลอดภัย ผู้ใช้ใหม่ยังไม่มีสิทธิ์ใดจนกว่าจะถูกเพิ่มเข้ากลุ่มหรือได้รับ Policy
สร้าง RAM User สำหรับคนด้วย Console Access และบังคับ MFA (ภาพจำลอง)
ขั้นตอนที่ 5: เพิ่ม RAM User เข้ากลุ่มและบังคับ MFA
เปิด Identities > User Groups คลิกชื่อกลุ่ม แล้วเพิ่มสมาชิกจากรายชื่อผู้ใช้ เมื่อผู้ใช้ล็อกอินครั้งแรก ระบบจะให้ผูกอุปกรณ์ MFA (ผู้ใช้ทำเองได้ที่เมนูโปรไฟล์ > Security Information แล้วคลิก Bind VMFA) Alibaba Cloud เริ่มทยอยบังคับ MFA ตอนล็อกอินสำหรับผู้ใช้ย่อยทุกคนตั้งแต่เดือนมีนาคม 2025 แต่คุณควรตรวจนโยบาย MFA ระดับบัญชีให้เปิดไว้เองด้วย ไม่ต้องรอระบบ
ให้ผู้ใช้ทดลองล็อกอินผ่านลิงก์สำหรับ RAM User ที่หน้า Overview ของ RAM console แล้วเปิดบริการที่ได้รับสิทธิ์ ถ้าเห็นข้อความว่าไม่มีสิทธิ์ แปลว่ายังไม่ได้อยู่ในกลุ่ม หรือ Policy ผูกไว้คนละ Resource Group
ขั้นตอนที่ 6: แยก RAM User สำหรับโปรแกรมและดูแล AccessKey
โปรแกรม สคริปต์ และ CI/CD ควรมี RAM User ของตัวเอง เช่น ci-deploy สร้างด้วย Access Mode แบบ Permanent AccessKey ติ๊กยืนยันว่าต้องการสร้างคีย์ แล้วเก็บ AccessKey Secret ทันที เพราะระบบแสดงให้เห็นครั้งเดียว ผูกสิทธิ์ให้แคบที่สุด เช่น นโยบาย example-backup จากขั้นตอนที่ 3
ถ้าโปรแกรมรันบน ECS ให้ใช้ RAM Role ของเครื่อง หรือ STS token ชั่วคราวแทนคีย์ถาวรเมื่อทำได้
RAM User หนึ่งคนมี AccessKey ได้สูงสุด 2 ชุด ไว้สำหรับหมุนเวียน: สร้างคีย์ใหม่ เปลี่ยนในโปรแกรม ปิดคีย์เก่า (Disable) รอดูสักระยะว่าไม่มีอะไรพัง แล้วจึงลบ
ห้ามใส่คีย์ในโค้ดหรือ Git ให้เก็บใน secret ของ CI หรือไฟล์ตั้งค่าที่จำกัดสิทธิ์อ่าน
ตรวจว่าโปรแกรมใช้ตัวตนถูกต้องด้วย Alibaba Cloud CLI ผลลัพธ์ต้องแสดง IdentityType เป็น RAMUser ไม่ใช่บัญชีหลัก
aliyun configure --profile ci-deploy
aliyun sts GetCallerIdentity --profile ci-deploy
Arn ต้องลงท้ายด้วย user/ชื่อ RAM User ถ้าไม่ใช่ แปลว่ายังใช้คีย์ของบัญชีหลักอยู่
ปัญหาที่พบบ่อยเกี่ยวกับ RAM User
RAM User ล็อกอินได้แต่ทุกหน้าขึ้นว่าไม่มีสิทธิ์ ต้องแก้ที่ไหน?
เปิด Identities > Users คลิกชื่อผู้ใช้แล้วดูแท็บสิทธิ์และกลุ่มที่สังกัด ถ้าไม่มี Policy เลยให้เพิ่มเข้ากลุ่มที่ถูกต้อง ถ้ามี Policy แต่ผูกแบบ Resource group level ผู้ใช้ต้องสลับ Resource Group ที่แถบด้านบนของคอนโซลให้ตรงก่อนจึงจะเห็นทรัพยากร
ลืมเก็บ AccessKey Secret ตอนสร้าง ดูย้อนหลังได้ไหม?
ดูไม่ได้ ระบบแสดง Secret เพียงครั้งเดียว ให้สร้าง AccessKey ชุดใหม่ให้ผู้ใช้เดิม เปลี่ยนค่าในโปรแกรม แล้วปิดและลบชุดที่หาย ถ้ามีคีย์ครบ 2 ชุดแล้วต้องลบชุดที่ไม่ใช้ก่อน
พนักงานทำมือถือหาย เข้า MFA ไม่ได้ ทำอย่างไร?
ผู้ดูแลที่มีสิทธิ์ RAM เปิดหน้าผู้ใช้คนนั้นแล้วยกเลิกการผูกอุปกรณ์ MFA เดิม จากนั้นให้ผู้ใช้ล็อกอินใหม่และผูกอุปกรณ์ใหม่ ก่อนยกเลิกควรยืนยันตัวตนพนักงานทางช่องทางอื่น เพราะนี่คือจุดที่มิจฉาชีพมักแอบอ้าง
พนักงานลาออก ควรลบ RAM User ทันทีหรือไม่?
ให้ปิดการล็อกอินคอนโซลและปิด AccessKey ทันทีก่อน แล้วตรวจว่ามีสคริปต์ใดใช้คีย์ของคนนั้นอยู่หรือไม่ เมื่อแน่ใจแล้วจึงนำออกจากกลุ่มและลบบัญชี การปิดก่อนลบช่วยให้ย้อนกลับได้ถ้าพบว่ามีระบบพัง
ถ้าต้องการให้ช่วยออกแบบโครงสร้างกลุ่มและสิทธิ์ของบัญชี Alibaba Cloud หรือย้ายระบบเดิมออกจากบัญชีหลัก ติดต่อทีมงาน THAI DATA CLOUD ดูบริการเพิ่มเติมได้ที่หน้า Alibaba Cloud และอ่านรายละเอียดฟีเจอร์ได้จากเอกสาร Create a RAM user ของ Alibaba Cloud
อ่านเพิ่มเติมเกี่ยวกับ RAM User