วิธีตั้งค่าการจำกัด IP สำหรับ GenU

วิธีตั้งค่าการจำกัด IP สำหรับ GenU

เราสามารถสร้าง GenU โดยตั้งค่าการจำกัด IP ที่เราต้องการได้ ในบทความนี้จะมาแนะนำเนื้อหาไปพร้อมกับการใช้งานจริง

สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ

ครั้งนี้จะมาแนะนำเกี่ยวกับ GenU โดยเราสามารถตั้งค่าการจำกัด IP ได้ ทำให้สามารถใช้งาน GenU ได้อย่างปลอดภัยยิ่งขึ้น

วิธีการจำกัด IP

การดำเนินการนี้จะจำกัด IP โดยใช้ฟีเจอร์ AWS WAF ในบริการ "WAF & Shield"
ดังนั้นค่าใช้จ่ายรายเดือนของ GenU จะเพิ่มขึ้นตามค่าบริการการใช้งานของ AWS WAF

ค่าใช้จ่ายรายเดือนจะเพิ่มขึ้นประมาณ $5.00 ต่อเดือน

ดูรายละเอียดค่าใช้จ่ายได้ที่ลิงก์ด้านล่างนี้
https://aws.amazon.com/th/waf/pricing/

วิธีการติดตั้งพื้นฐานและข้อมูลเกี่ยวกับ GenU

ครั้งนี้จะตั้งค่าและติดตั้ง GenU ตามลิงก์บทความด้านล่างนี้
https://dev.classmethod.jp/articles/generative-ai-use-cases-jp-genu-installation-guide-th/

เราจะอธิบายเฉพาะความแตกต่างจากบทความข้างต้นเท่านั้น โปรดตรวจสอบให้แน่ใจว่าคุณเข้าใจวิธีการตั้งค่าพื้นฐานจากบทความข้างต้น

การดึง Source Code และตั้งค่า

ดูตัวอย่างได้ที่ลิงก์บทความด้านล่างนี้

ดูรายละเอียดเพิ่มเติมได้ที่เฉพาะหัวข้อนี้: การดึง Source Code และตั้งค่า

※วิธีตั้งค่าข้างต้นมีการเปลี่ยนแปลงเล็กน้อยโดยเพิ่มการตั้งค่า Hostname ในฟังก์ชัน dev

ก่อนอื่นรันคำสั่งสร้าง Directory และโคลน Repository ตามนี้

รันคำสั่งใน Session Manager
# สร้าง 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

รันคำสั่งใน Session Manager
# ย้ายตำแหน่งไปยังโฟลเดอร์ generative-ai-use-cases
cd ~/git/generative-ai-use-cases

# เข้าไปยังหน้าจอแก้ไขไฟล์ parameter.ts
vi packages/cdk/parameter.ts

หมายเหตุ: ก่อนรันคำสั่ง Deploy กรุณาแก้ไขค่า allowedIpV4AddressRanges และ allowedIpV6AddressRanges ให้เป็น IP Address ของคุณเอง

ตัวอย่างหน้าจอแก้ไขไฟล์ใน Session Manager
  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

รันคำสั่งใน Session Manager
# ติดตั้ง npm package
npm ci

# CDK Bootstrap
npx -w packages/cdk cdk bootstrap

รันคำสั่งตามด้านล่างนี้

รันคำสั่งใน Session Manager
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

รันคำสั่งใน Session Manager
# ตั้งค่าสภาพแวดล้อมเป็น dev และ Deploy
npm run cdk:deploy -- -c env=dev

ตรวจสอบการเสร็จสิ้นการ Deploy

หลังจาก Deploy เสร็จแล้ว ให้คลิกเปิด URL เพื่อเข้าไปหน้าจอ Login

https://xxxxxxxxxxxxxx.cloudfront.net

result_ip_genu

แล้วจะเข้ามาที่หน้าจอ Login แบบนี้ ก็ถือว่าการ Deploy สำเร็จ
login_ip_genu

ต่อไปให้สร้าง User สำหรับ Login GenU และทดสอบ Login GenU ในขั้นตอนถัดไป

สร้าง User สำหรับ Login GenU

ให้สร้าง User สำหรับ Login ในบริการ Amazon Cognito ตามบทความด้านล่างนี้
https://dev.classmethod.jp/articles/genu-user-management-with-cognito-th/

ทดสอบ Login GenU ที่ตั้งค่าจำกัด IP

เมื่อสร้าง User เสร็จแล้ว เราจะทดสอบ Login GenU ทั้งสองแบบตามนี้

ทดสอบ Login ผ่าน IP ที่กำหนดไว้

กลับมาที่หน้าจอ Login GenU แล้วป้อน Username และ Password
แล้วเปลี่ยน Password ตามที่ระบบแนะนำ ก็จะสามารถ Login GenU ได้
result_ip_genu_after_login

จากนั้น Sign Out เตรียมไว้โดยคลิกไอคอน Setting ตรง Username ด้านซ้ายล่างสุด แล้วคลิก Sign Out ด้านขวาล่างสุด
test_login_genu_2-1

ทดสอบ 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 ตามรูปภาพ
test_login_genu_2-2

ลบ Resource

ดูตัวอย่างได้ที่ลิงก์บทความด้านล่างนี้
https://dev.classmethod.jp/articles/generative-ai-use-cases-jp-genu-deletion-guide-th/

ลบ Resource เพิ่มเติม

WAF & Shield

เข้ามาที่หน้าจอบริการ "WAF & Shield" แล้วลบตามนี้
① เลือก Web ACLs จากเมนูด้านซ้าย
② เลือก Region Global (CloudFront)
③ ติ๊ก Name ที่จะลบ ครั้งนี้คือ WebAcl-CloudFrontWafStackdevWebAclCloudFrontWafStackdevFD98BEF7
④ คลิก Delete และยืนยันการลบตามคำแนะนำ
delete_web_acls

สรุป

เราสามารถจำกัด IP ที่ต้องการเพื่อเพิ่มความปลอดภัยในการใช้งาน GenU ใน Parameter dev: ได้อย่างง่ายดาย

ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ

POP (Tinnakorn Maneewong) จากบริษัท Classmethod (Thailand) ครับ !

บทความที่เกี่ยวข้อง

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.