
วิธีตั้งค่าการจำกัด IP สำหรับ GenU
สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ
ครั้งนี้จะมาแนะนำเกี่ยวกับ GenU โดยเราสามารถตั้งค่าการจำกัด IP ได้ ทำให้สามารถใช้งาน GenU ได้อย่างปลอดภัยยิ่งขึ้น
วิธีการจำกัด IP
การดำเนินการนี้จะจำกัด IP โดยใช้ฟีเจอร์ AWS WAF ในบริการ "WAF & Shield"
ดังนั้นค่าใช้จ่ายรายเดือนของ GenU จะเพิ่มขึ้นตามค่าบริการการใช้งานของ AWS WAF
ค่าใช้จ่ายรายเดือนจะเพิ่มขึ้นประมาณ $5.00 ต่อเดือน
ดูรายละเอียดค่าใช้จ่ายได้ที่ลิงก์ด้านล่างนี้
วิธีการติดตั้งพื้นฐานและข้อมูลเกี่ยวกับ GenU
ครั้งนี้จะตั้งค่าและติดตั้ง GenU ตามลิงก์บทความด้านล่างนี้
เราจะอธิบายเฉพาะความแตกต่างจากบทความข้างต้นเท่านั้น โปรดตรวจสอบให้แน่ใจว่าคุณเข้าใจวิธีการตั้งค่าพื้นฐานจากบทความข้างต้น
การดึง Source Code และตั้งค่า
ดูตัวอย่างได้ที่ลิงก์บทความด้านล่างนี้
ดูรายละเอียดเพิ่มเติมได้ที่เฉพาะหัวข้อนี้: การดึง Source Code และตั้งค่า
※วิธีตั้งค่าข้างต้นมีการเปลี่ยนแปลงเล็กน้อยโดยเพิ่มการตั้งค่า Hostname ในฟังก์ชัน
dev
ก่อนอื่นรันคำสั่งสร้าง Directory และโคลน Repository ตามนี้
# สร้าง Directory และโคลน Repository
mkdir ~/git
cd ~/git
git clone https://github.com/aws-samples/generative-ai-use-cases.git
แล้ววาง Source Code ไว้ที่ ~/git/generative-ai-use-cases
เตรียมไว้ล่วงหน้า
และเข้าไปยังหน้าจอแก้ไขไฟล์ parameter.ts
# ย้ายตำแหน่งไปยังโฟลเดอร์ generative-ai-use-cases
cd ~/git/generative-ai-use-cases
# เข้าไปยังหน้าจอแก้ไขไฟล์ parameter.ts
vi packages/cdk/parameter.ts
หมายเหตุ: ก่อนรันคำสั่ง Deploy กรุณาแก้ไขค่า
allowedIpV4AddressRanges
และallowedIpV6AddressRanges
ให้เป็น IP Address ของคุณเอง
dev: {
region: "ap-southeast-1",
ragEnabled: false,
modelIds: [
'us.anthropic.claude-3-7-sonnet-20250219-v1:0',
'us.amazon.nova-pro-v1:0',
],
imageGenerationModelIds: [
'stability.sd3-5-large-v1:0',
],
modelRegion: "us-west-2",
selfSignUpEnabled: false,
allowedIpV4AddressRanges: ["192.168.0.0/24"],
allowedIpV6AddressRanges: ["2001:0db8::/32"],
},
รันคำสั่งด้านล่างนี้เช่นเดียวกับรูปแบบ Simple
# ติดตั้ง npm package
npm ci
# CDK Bootstrap
npx -w packages/cdk cdk bootstrap
รันคำสั่งตามด้านล่างนี้
npx -w packages/cdk cdk bootstrap aws://[aws_account_id]/us-east-1
npx -w packages/cdk cdk bootstrap aws://[aws_account_id]/[modelRegion]
รันคำสั่ง Deploy GenU
# ตั้งค่าสภาพแวดล้อมเป็น dev และ Deploy
npm run cdk:deploy -- -c env=dev
ตรวจสอบการเสร็จสิ้นการ Deploy
หลังจาก Deploy เสร็จแล้ว ให้คลิกเปิด URL เพื่อเข้าไปหน้าจอ Login
https://xxxxxxxxxxxxxx.cloudfront.net
แล้วจะเข้ามาที่หน้าจอ Login แบบนี้ ก็ถือว่าการ Deploy สำเร็จ
ต่อไปให้สร้าง User สำหรับ Login GenU และทดสอบ Login GenU ในขั้นตอนถัดไป
สร้าง User สำหรับ Login GenU
ให้สร้าง User สำหรับ Login ในบริการ Amazon Cognito ตามบทความด้านล่างนี้
ทดสอบ Login GenU ที่ตั้งค่าจำกัด IP
เมื่อสร้าง User เสร็จแล้ว เราจะทดสอบ Login GenU ทั้งสองแบบตามนี้
ทดสอบ Login ผ่าน IP ที่กำหนดไว้
กลับมาที่หน้าจอ Login GenU แล้วป้อน Username และ Password
แล้วเปลี่ยน Password ตามที่ระบบแนะนำ ก็จะสามารถ Login GenU ได้
จากนั้น Sign Out เตรียมไว้โดยคลิกไอคอน Setting ตรง Username ด้านซ้ายล่างสุด แล้วคลิก Sign Out
ด้านขวาล่างสุด
ทดสอบ Login ผ่าน IP ที่ไม่ได้กำหนดไว้
ขั้นตอนนี้จะทำการทดสอบการทำงานโดยเปลี่ยน IP Address ของสภาพแวดล้อมการใช้งานด้วยวิธีใดวิธีหนึ่ง
อย่างไรก็ตาม เนื่องจากไม่ใช่จุดประสงค์หลักของบทความนี้ จึงจะไม่อธิบายวิธีการเปลี่ยน IP Address
ทั้งนี้ การเปลี่ยน IP Address สามารถทำได้ด้วยวิธีต่างๆ เช่น ใช้บริการ VPN หรือใช้การเชื่อมต่อผ่านเครือข่ายมือถือของ Smartphone เป็นต้น
จากนั้นกลับมาที่หน้าจอ Login GenU แล้วตรวจสอบ My IP Address เพื่อให้แน่ใจว่า IP ถูกเปลี่ยนไปแล้ว
แล้ว Reload หน้าจอ 1 ครั้ง แล้วป้อน Username และ Password จะเห็นว่าไม่สามารถ Login ได้
หากการตั้งค่า WAF ทำงานถูกต้อง เมื่อพยายาม Login ต่อให้ป้อน Username และ Password ถูกต้องก็ตาม ก็จะเกิด Error ตามรูปภาพ
ลบ Resource
ดูตัวอย่างได้ที่ลิงก์บทความด้านล่างนี้
ลบ Resource เพิ่มเติม
WAF & Shield
เข้ามาที่หน้าจอบริการ "WAF & Shield" แล้วลบตามนี้
① เลือก Web ACLs
จากเมนูด้านซ้าย
② เลือก Region Global (CloudFront)
③ ติ๊ก Name ที่จะลบ ครั้งนี้คือ WebAcl-CloudFrontWafStackdevWebAclCloudFrontWafStackdevFD98BEF7
④ คลิก Delete
และยืนยันการลบตามคำแนะนำ
สรุป
เราสามารถจำกัด IP ที่ต้องการเพื่อเพิ่มความปลอดภัยในการใช้งาน GenU ใน Parameter dev: ได้อย่างง่ายดาย
ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ
POP (Tinnakorn Maneewong) จากบริษัท Classmethod (Thailand) ครับ !