อัพเดทบริการ AWS Service Catalog ในปี 2025
บทความนี้แปลมาจากบทความภาษาญี่ปุ่นชื่อว่า AWS 入門ブログリレー 2024 〜AWS Service Catalog編〜 โดยเจ้าของบทความนี้คือ คุณ 鈴木純
AWS Service Catalog คืออะไร
Service Catalog เป็นบริการที่ช่วยให้คุณสามารถสร้างและจัดการแคตาล็อกของบริการ IT ที่ได้รับการอนุมัติบน AWS
บริการ IT ในที่นี้หมายถึงบริการของ AWS โดยคุณสามารถจัดทำแคตาล็อกของบริการที่ใช้งานเป็นประจำ เช่น EC2, VPC, RDS และอื่นๆ เพื่อนำเสนอให้ผู้ใช้ในรูปแบบที่ใช้งานได้สะดวก
แคตาล็อกนี้สามารถสร้างได้โดยใช้ CloudFormation Template หรือ Terraform Cloud
ภาพรวมของ AWS Service Catalog
Service Catalog ประกอบด้วยองค์ประกอบหลายส่วน ซึ่งมีความซับซ้อนพอสมควร ดังนั้นผมจะอธิบายอย่างง่ายๆ ดังต่อไปนี้
Characters
มีสองประเภทคือ Catalog Administrator และ End User
Catalog Administrator
คือผู้ที่จัดการอย่างครอบคลุมในการสร้าง product และกำหนดสิทธิ์การเข้าถึงเพื่อให้ End User สามารถใช้งานได้
สำหรับสิทธิ์การเข้าถึง จำเป็นต้องมี policy เทียบเท่ากับ "AWSServiceCatalogAdminFullAccess"
เนื่องจาก Catalog Administrator จำเป็นต้องทำการตั้งค่าทั้งหมดของ Service Catalog ดังนั้นจึงควรทำความเข้าใจองค์ประกอบของ Service Catalog ที่จะกล่าวถึงต่อไปอย่างละเอียด
End User
End User เพียงแค่เรียกใช้ product ที่ได้รับอนุญาตให้เข้าถึงเท่านั้น โดยจำเป็นต้องมีสิทธิ์เทียบเท่ากับ "AWSServiceCatalogEndUserFullAccess"
ข้อควรระวัง: แม้จะมีสิทธิ์ที่จำเป็น แต่หากไม่ได้รับการอนุญาตให้เข้าถึงพอร์ตโฟลิโอจาก Catalog Administrator ก็จะไม่สามารถใช้งานได้
องค์ประกอบของ Service Catalog
Catalog Administrator จำเป็นต้องเข้าใจองค์ประกอบต่อไปนี้ เพื่อให้ End User สามารถใช้งานแคตาล็อกได้
Portfolio
Portfolio เป็นกลุ่มของ product ซึ่งรวมถึงข้อมูลการตั้งค่าที่เกี่ยวข้อง (เช่น ข้อจำกัดและสิทธิ์การเข้าถึง) เมื่อใช้งาน Service Catalog คุณจะต้องตั้งค่าตามหน่วยของ Portfolio ดังนั้นให้คิดว่าเป็นสิ่งที่รวมทุกอย่างไว้ด้วยกัน
Portfolio จะถูกแจกจ่ายให้ End User ดังนั้น End User จะเลือกและเรียกใช้ product จากภายใน Portfolio ที่ได้รับ
โปรดจำไว้ว่า product และข้อจำกัดทั้งหมดที่จะกล่าวถึงต่อไปจะรวมอยู่ใน Portfolio เมื่อแชร์กับบัญชี AWS อื่นๆ ก็จะแชร์เป็น Portfolio เช่นกัน
Product
คุณสามารถสร้าง Product จาก CloudFormation Template หรือ Terraform Cloud และใช้งานโดยเชื่อมโยงกับ Portfolio
Product ที่เชื่อมโยงแล้วจะถูกรวมอยู่ใน Portfolio ที่แจกจ่าย เมื่อเรียกใช้ Product จะทำให้บริการ AWS ถูก deploy
มี Product ที่เตรียมไว้ล่วงหน้าเรียกว่า "Introduction Library" ซึ่งคุณสามารถนำมาใช้ประโยชน์ได้
Product สามารถจัดการเวอร์ชันได้ เมื่ออัปเดต Product แล้ว End User จะสามารถอัปเดต Product ที่กำลังใช้งานอยู่เป็นเวอร์ชันใหม่ได้
Product ที่ End User เรียกใช้แล้วสามารถตรวจสอบได้จาก "Provisioned Products"
Constraints
Constraints เป็นฟังก์ชันที่ช่วยให้คุณสามารถเพิ่มข้อจำกัดต่อหน่วย product ได้ โดยมีรูปแบบดังต่อไปนี้:
- Launch (การเรียกใช้)
- Notification (การแจ้งเตือน)
- Tag update (การอัปเดตแท็ก)
- StackSet
- Template (เทมเพลต)
การใช้ประโยชน์จากสิ่งเหล่านี้ช่วยให้คุณสามารถควบคุมพารามิเตอร์เมื่อเรียกใช้product หรือระบุสิทธิ์เมื่อเรียกใช้ได้
Access Permissions
การให้สิทธิ์การเข้าถึง Portfolio โดยการกำหนดสิทธิ์ให้กับ IAM Principal (user/group/role) หรือชื่อ Principal ทำให้ End User สามารถเรียกใช้ product ได้
ในกรณีที่ให้สิทธิ์การเข้าถึงด้วยชื่อ Principal สามารถใช้ wildcard (* และ ?) ในการให้สิทธิ์ได้
End User จำเป็นต้องมีสิทธิ์เทียบเท่ากับ "AWSServiceCatalogEndUserFullAccess" ตามที่อธิบายไว้ในตอนต้น นอกจากนี้ โปรดทราบว่าเฉพาะผู้ใช้ที่ได้รับสิทธิ์การเข้าถึงจาก Catalog Administrator เท่านั้นที่จะสามารถเรียกใช้ product ได้
Sharing
คุณสามารถแชร์ Portfolio กับบัญชี AWS อื่นๆ ได้ นอกจากการแชร์ตามหน่วยบัญชี AWS แล้ว หากอยู่ในสภาพแวดล้อม Organizations คุณยังสามารถแชร์ภายใน organization ได้อีกด้วย
หากคุณแชร์กับบัญชี AWS ที่ไม่ได้เป็นสมาชิกของ organization ฝั่งผู้รับจะต้องทำการ import เพื่อใช้งาน
Tags
แท็กที่ตั้งค่าให้กับ Portfolio โปรดทราบว่าแท็กเหล่านี้จะถูกตั้งค่าให้กับตัว Portfolio เท่านั้น หากคุณต้องการกำหนดแท็กให้กับทรัพยากร AWS ของ product ที่ End User สร้างขึ้น โปรดใช้ฟังก์ชัน TagOptions ที่จะกล่าวถึงต่อไป
TagOptions
TagOptions คือกลุ่มเทมเพลตแท็กสำหรับบริการ AWS ที่ถูก deploy จาก product โดยการเชื่อมโยง TagOption ที่สร้างขึ้นกับ Portfolio คุณสามารถบังคับให้มีการกำหนดแท็กให้กับทรัพยากรของ product ที่ End User เรียกใช้
ลองทำดู
แม้ว่าจะมีฟีเจอร์มากมายตามที่แนะนำในส่วนองค์ประกอบ แต่สิ่งที่จำเป็นขั้นต่ำในการใช้งาน Service Catalog มีเพียง 3 อย่างเท่านั้น ส่วนรายการอื่นๆ สามารถใช้ตามความจำเป็น:
การสร้าง Portfolio
การสร้าง product และเชื่อมโยงกับ Portfolio
การให้สิทธิ์การเข้าถึงแก่ End User
เพื่อให้เห็นภาพว่าเป็นบริการแบบไหน เราจะลองเริ่มต้นด้วย Portfolio และ product ขั้นพื้นฐาน
การสร้าง Portfolio
เปิด Portfolio จากคอนโซล Service Catalog แล้วสร้าง Portfolio
กรอกชื่อ Portfolio และเจ้าของ เจ้าของเป็นเพียงข้อมูลที่แสดงผู้สร้าง Portfolio ไม่มีกฎเกณฑ์ที่ชัดเจน บางกรณีอาจใส่ชื่อแผนกตามการดำเนินงานของคุณ
การสร้าง product และเชื่อมโยงกับ Portfolio
ขั้นตอนต่อไปคือการเพิ่ม product ลงใน Portfolio คุณสามารถเพิ่ม product ที่สร้างจาก CloudFormation Template ของคุณเองได้ แต่ในครั้งนี้เราจะลองเพิ่ม product จาก Introduction Library
เปิด Introduction Library และในช่องค้นหา พิมพ์ "Amazon S3 Private Encrypted Bucket" จากนั้นเพิ่ม product ที่ปรากฏลงใน Portfolio
เลือก Portfolio ที่คุณเพิ่งสร้างจากรายการ Portfolio ที่มีอยู่และเพิ่มเข้าไป ตอนนี้ product ได้ถูกเชื่อมโยงกับ Portfolio แล้ว
การให้สิทธิ์การเข้าถึงแก่ End User
ขั้นตอนสุดท้ายคือการให้สิทธิ์การเข้าถึง Portfolio ที่สร้างขึ้นแก่ End User ในกรณีนี้ เนื่องจาก Catalog Administrator เป็น End User ที่ต้องการเรียกใช้ product ด้วย เราจึงจะให้สิทธิ์ IAM role ที่กำลังล็อกอินอยู่
หากไม่มีสิทธิ์การเข้าถึง แม้จะตรวจสอบที่ Provisioning > Products ก็จะไม่พบ product ที่สามารถเรียกใช้ได้
เปิดรายละเอียดของ Portfolio ที่คุณสร้างขึ้น แล้วให้สิทธิ์การเข้าถึงจากแท็บ Access (การเข้าถึง)
เลือก IAM Principal ที่คุณต้องการให้สิทธิ์การเข้าถึงและทำการให้สิทธิ์
ตอนนี้คุณได้ให้สิทธิ์การเข้าถึง Portfolio แก่ IAM role ที่กำลังล็อกอินอยู่แล้ว
เมื่อตรวจสอบว่าสามารถเรียกใช้ product ได้หรือไม่ คุณจะเห็นว่า product ที่เชื่อมโยงกับ Portfolio แสดงขึ้นมาแล้ว
ขั้นตอนต่อไปเพียงแค่เรียกใช้ product แล้วทรัพยากรจะถูกสร้างขึ้นจาก CloudFormation Template ที่เชื่อมโยงกับ product
การแชร์ภายใน organization
จนถึงตอนนี้เราได้อธิบายฟังก์ชันพื้นฐานแล้ว แต่ Service Catalog ยังมีกรณีที่ใช้งานร่วมกับ Organizations ด้วย เนื่องจากมีหลายสถานการณ์ที่ Service Catalog มีประโยชน์ในการดำเนินงานแบบหลายบัญชี จึงขอกล่าวถึงเรื่องนี้สั้นๆ
การมอบหมาย Service Catalog
เช่นเดียวกับบริการ AWS อื่นๆ Service Catalog ก็สามารถมอบหมายผู้ดูแลระบบได้ แนวปฏิบัติที่ดีที่สุดคือการไม่ให้สิทธิ์มากเกินไปกับบัญชีการจัดการ ดังนั้นจึงแนะนำให้มีการมอบหมายผู้ดูแล
สำหรับการแชร์จากผู้ดูแลที่ได้รับมอบหมาย โปรดดูที่หน้าเว็บอย่างเป็นทางการด้านล่าง
Sharing with AWS Organizations
การแชร์ชื่อ Principal
เมื่อแชร์ Portfolio มีฟังก์ชันสำหรับการแชร์ภายใน organization เมื่อแชร์ภายใน organization คุณสามารถแชร์พร้อมกับชื่อ Principal ได้
การแชร์ชื่อ Principal ช่วยให้คุณสามารถแชร์ Portfolio ที่ได้รับสิทธิ์การเข้าถึงแล้ว
เนื่องจากสามารถใช้ wildcard กับชื่อ Principal ได้ คุณจึงสามารถแชร์ชื่อบทบาทที่สร้างขึ้นใน IAM Identity Center ได้ด้วย ในกรณีนี้ ผู้ใช้สามารถเรียกใช้ product ได้โดยไม่ต้องให้สิทธิ์การเข้าถึงบนบัญชีสมาชิก
ดังนั้น เมื่อสร้าง Portfolio เพื่อแชร์กับ organization ควรพิจารณาถึง Principal ที่ End User จะใช้งาน
Sharing Principal Names when sharing portfolios
ค่าใช้จ่าย
ค่าใช้จ่ายของ Service Catalog ขึ้นอยู่กับจำนวนการเรียก API ที่บัญชีของคุณทำต่อ Service Catalog
การเรียก API จำนวน 1-1,000 ครั้งแรกไม่มีค่าใช้จ่าย หลังจากนั้นคิดค่าบริการ 0.0007 USD ต่อครั้ง
สำหรับรายละเอียดเพิ่มเติม โปรดดูที่หน้าเว็บอย่างเป็นทางการ
Service Catalog เองไม่มีค่าใช้จ่ายมากนัก แต่โปรดระวังว่าทรัพยากรที่คุณ deploy จะมีค่าใช้จ่ายตามปกติ
สรุป
AWS Service Catalog เป็นเครื่องมือที่มีประโยชน์สำหรับองค์กรที่ต้องการจัดการการใช้งาน AWS อย่างเป็นระบบ โดยเฉพาะในสภาพแวดล้อมที่มีหลายบัญชีหรือมีผู้ใช้งานจำนวนมาก ด้วยการกำหนดสิทธ์ในการเข้าถึงทรัพยากรนั้นๆ
บทความต้นฉบับ
- AWS 入門ブログリレー 2024 〜AWS Service Catalog編〜(ภาษาญี่ปุ่น)