ความฉลาดทางข้อมูลเชิงกำเนิด

ผสานรวมคลัสเตอร์ HyperPod เข้ากับ Active Directory เพื่อการเข้าสู่ระบบแบบหลายผู้ใช้ได้อย่างราบรื่น อเมซอนเว็บเซอร์วิส

วันที่:

Amazon SageMaker ไฮเปอร์พอด สร้างขึ้นโดยมีจุดประสงค์เพื่อเร่งการฝึกอบรมโมเดลพื้นฐาน (FM) โดยขจัดการยกของหนักที่ไม่แตกต่างซึ่งเกี่ยวข้องกับการจัดการและเพิ่มประสิทธิภาพคลัสเตอร์การประมวลผลการฝึกอบรมขนาดใหญ่ ด้วย SageMaker HyperPod คุณสามารถฝึกอบรม FM เป็นเวลาหลายสัปดาห์และหลายเดือนโดยไม่มีการหยุดชะงัก

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

เพื่อแก้ปัญหาจุดปวดนี้เราสามารถใช้ โปรโตคอลการเข้าถึงไดเรกทอรีที่มีน้ำหนักเบา (LDAP) และ LDAP ผ่าน TLS/SSL (LDAPS) เพื่อรวมเข้ากับบริการไดเร็กทอรีเช่น บริการไดเรกทอรี AWS สำหรับ Microsoft Active Directory- ด้วยบริการไดเร็กทอรี คุณสามารถรักษาผู้ใช้และกลุ่มและการอนุญาตจากส่วนกลางได้

ในโพสต์นี้ เราขอแนะนำโซลูชันในการรวมคลัสเตอร์ HyperPod เข้ากับ AWS Managed Microsoft AD และอธิบายวิธีสร้างสภาพแวดล้อมการเข้าสู่ระบบแบบหลายผู้ใช้ที่ราบรื่นด้วยไดเร็กทอรีที่ได้รับการดูแลจากส่วนกลาง

ภาพรวมโซลูชัน

โซลูชันใช้บริการและทรัพยากรของ AWS ต่อไปนี้:

เรายังใช้ การก่อตัวของ AWS Cloud เพื่อปรับใช้สแต็กเพื่อสร้างข้อกำหนดเบื้องต้นสำหรับคลัสเตอร์ HyperPod: VPC, ซับเน็ต, กลุ่มความปลอดภัย และ Amazon FSx สำหรับความมันวาว ปริมาณ

ไดอะแกรมต่อไปนี้แสดงสถาปัตยกรรมโซลูชันระดับสูง

แผนภาพสถาปัตยกรรมสำหรับการผสานรวม HyperPod และ Active Directory

ในโซลูชันนี้ อินสแตนซ์คลัสเตอร์ HyperPod ใช้โปรโตคอล LDAPS เพื่อเชื่อมต่อกับ AWS Managed Microsoft AD ผ่านทาง NLB เราใช้ การยุติ TLS โดยการติดตั้งใบรับรองให้กับ NLB หากต้องการกำหนดค่า LDAPS ในอินสแตนซ์คลัสเตอร์ HyperPod สคริปต์วงจรการใช้งานจะติดตั้งและกำหนดค่า ภูตบริการรักษาความปลอดภัยระบบ (SSSD)—ซอฟต์แวร์ไคลเอนต์โอเพ่นซอร์สสำหรับ LDAP/LDAPS

เบื้องต้น

โพสต์นี้ถือว่าคุณรู้วิธีสร้างคลัสเตอร์ HyperPod พื้นฐานโดยไม่ต้องใช้ SSSD แล้ว สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีสร้างคลัสเตอร์ HyperPod โปรดดูที่ เริ่มต้นใช้งาน SageMaker HyperPod และ เวิร์กช็อปไฮเปอร์พอด.

นอกจากนี้ ในขั้นตอนการตั้งค่า คุณจะใช้เครื่อง Linux เพื่อสร้างใบรับรองที่ลงนามด้วยตนเอง และรับรหัสผ่านที่สับสนสำหรับผู้ใช้โปรแกรมอ่าน AD หากคุณไม่มีเครื่อง Linux คุณสามารถสร้างอินสแตนซ์ EC2 Linux หรือใช้งานได้ AWS CloudShell.

สร้าง VPC ซับเน็ต และกลุ่มความปลอดภัย

ทำตามคำแนะนำในไฟล์ บัญชีของตัวเอง ส่วนหนึ่งของเวิร์กช็อป HyperPod คุณจะปรับใช้สแต็ก CloudFormation และสร้างทรัพยากรที่จำเป็นเบื้องต้น เช่น VPC, ซับเน็ต, กลุ่มความปลอดภัย และ FSx สำหรับไดรฟ์ข้อมูล Luster คุณต้องสร้างทั้งซับเน็ตหลักและซับเน็ตสำรองเมื่อปรับใช้สแต็ก CloudFormation เนื่องจาก AWS Managed Microsoft AD ต้องการเครือข่ายย่อยอย่างน้อยสองเครือข่าย ด้วย Availability Zone ที่แตกต่างกัน

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

สร้าง AWS Managed Microsoft AD บนบริการไดเรกทอรี

ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าไดเร็กทอรีของคุณ:

  1. เกี่ยวกับ คอนโซลบริการไดเรกทอรีเลือก ไดเรกทอรี ในบานหน้าต่างนำทาง
  2. Choose ตั้งค่าไดเรกทอรี.
  3. สำหรับ ประเภทไดเร็กทอรีให้เลือก AWS จัดการ Microsoft AD.
  4. Choose ถัดไป.
    หน้าจอการเลือกประเภทไดเร็กทอรี
  5. สำหรับ ฉบับที่ให้เลือก เป็น Standard Edition.
  6. สำหรับ ชื่อ DNS ของไดเรกทอรีป้อนชื่อ DNS ไดเรกทอรีที่คุณต้องการ (เช่น hyperpod.abc123.com).
  7. สำหรับ รหัสผ่านผู้ดูแลระบบธตั้งรหัสผ่านและบันทึกไว้เพื่อใช้ในภายหลัง
  8. Choose ถัดไป.
    หน้าจอการกำหนดค่าการสร้างไดเร็กทอรี
  9. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ระบบเครือข่าย ให้ระบุ VPC และเครือข่ายย่อยส่วนตัวสองรายการที่คุณสร้างขึ้น
  10. Choose ถัดไป.
    หน้าจอการกำหนดค่าเครือข่ายไดเร็กทอรี
  11. ตรวจสอบการกำหนดค่าและราคา จากนั้นเลือก สร้างไดเรกทอรี.
    หน้าจอยืนยันการสร้างไดเร็กทอรี
    การสร้างไดเร็กทอรีเริ่มต้นขึ้น รอจนกระทั่งสถานะเปลี่ยนจาก การสร้าง ไปยัง ใช้งานซึ่งอาจใช้เวลาประมาณ 20–30 นาที
  12. เมื่อสถานะเปลี่ยนเป็น ใช้งานให้เปิดหน้ารายละเอียดของไดเร็กทอรีและจดที่อยู่ DNS ไว้ใช้ในภายหลังหน้าจอรายละเอียดไดเร็กทอรี

สร้าง NLB หน้า Directory Service

เมื่อต้องการสร้าง NLB ให้ทำตามขั้นตอนต่อไปนี้:

  1. เกี่ยวกับ คอนโซล Amazon EC2เลือก กลุ่มเป้าหมาย ในบานหน้าต่างนำทาง
  2. Choose สร้างกลุ่มเป้าหมาย.
  3. สร้างกลุ่มเป้าหมายด้วยพารามิเตอร์ต่อไปนี้:
    1. สำหรับ เลือกประเภทเป้าหมายให้เลือก ที่อยู่ IP.
    2. สำหรับ ชื่อกลุ่มเป้าหมายป้อน LDAP.
    3. สำหรับ โปรโตคอล: พอร์ตเลือก TCP และป้อน 389.
    4. สำหรับ ประเภทที่อยู่ IPให้เลือก IPv4.
    5. สำหรับ วี.พี.ซีเลือก SageMaker ไฮเปอร์พอด VPC (ซึ่งคุณสร้างด้วยเทมเพลต CloudFormation)
    6. สำหรับ โปรโตคอลการตรวจสุขภาพเลือก TCP.
  4. Choose ถัดไป.
    หน้าจอการกำหนดค่าการสร้างเป้าหมายการปรับสมดุลโหลด
  5. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ลงทะเบียนเป้าหมาย ให้ลงทะเบียนที่อยู่ DNS ของบริการไดเรกทอรีเป็นเป้าหมาย
  6. สำหรับ พอร์ตเลือก รวมเป็นรอดำเนินการด้านล่าง.หน้าจอการลงทะเบียนเป้าหมายการปรับสมดุลโหลดที่อยู่จะถูกเพิ่มเข้าไปใน ทบทวนเป้าหมาย ส่วนกับ กำลังดำเนินการ สถานะ
  7. Choose สร้างกลุ่มเป้าหมาย.หน้าจอตรวจสอบเป้าหมายการปรับสมดุลโหลด
  8. เกี่ยวกับ คอนโซลโหลดบาลานเซอร์เลือก สร้างตัวจัดสรรภาระงาน.
  9. ภายใต้ ตัวจัดสรรภาระงานเครือข่ายเลือก สร้างบัญชีตัวแทน.หน้าจอเลือกประเภทโหลดบาลานเซอร์
  10. กำหนดค่า NLB ด้วยพารามิเตอร์ต่อไปนี้:
    1. สำหรับ ชื่อตัวจัดสรรภาระงานป้อนชื่อ (เช่น nlb-ds).
    2. สำหรับ โครงการให้เลือก ภายใน.
    3. สำหรับ ประเภทที่อยู่ IPให้เลือก IPv4.ส่วนการกำหนดค่าพื้นฐานของการสร้าง NLB
    4. สำหรับ วี.พี.ซีเลือก SageMaker ไฮเปอร์พอด VPC (ซึ่งคุณสร้างด้วยเทมเพลต CloudFormation)
    5. ภายใต้ แมปเลือกเครือข่ายย่อยส่วนตัว 2 รายการและช่วง CIDR (ซึ่งคุณสร้างด้วยเทมเพลต CloudFormation)
    6. สำหรับ กลุ่มความปลอดภัยเลือก CfStackName-SecurityGroup-XYZXYZ (ซึ่งคุณสร้างด้วยเทมเพลต CloudFormation)การแม็ปเครือข่ายการสร้าง NLB และการกำหนดค่ากลุ่มความปลอดภัย
  11. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ผู้ฟังและการกำหนดเส้นทาง ส่วน ระบุพารามิเตอร์ต่อไปนี้:
    1. สำหรับ โปรโตคอลเลือก TCP.
    2. สำหรับ ท่าเรือป้อน 389.
    3. สำหรับ การกระทำเริ่มต้นให้เลือกกลุ่มเป้าหมายที่ชื่อ LDAP.

    ที่นี่ เรากำลังเพิ่ม Listener สำหรับ LDAP เราจะเพิ่ม LDAPS ในภายหลัง

  12. Choose สร้างตัวจัดสรรภาระงาน.หน้าจอการกำหนดค่าการกำหนดเส้นทางผู้ฟัง NLBรอจนกระทั่งสถานะเปลี่ยนจาก การจัดเตรียม เป็น Active ซึ่งอาจใช้เวลา 3–5 นาที
  13. เมื่อสถานะเปลี่ยนเป็น ใช้งานเปิดหน้ารายละเอียดของ NLB ที่จัดเตรียมไว้ และจดชื่อ DNS (xyzxyz.elb.region-name.amazonaws.com) เพื่อใช้ในภายหลังหน้าจอรายละเอียด NLB

สร้างใบรับรองที่ลงนามด้วยตนเองและนำเข้าไปยังตัวจัดการใบรับรอง

หากต้องการสร้างใบรับรองที่ลงนามด้วยตนเอง ให้ทำตามขั้นตอนต่อไปนี้:

  1. ในสภาพแวดล้อมที่ใช้ Linux (แล็ปท็อปในเครื่อง, อินสแตนซ์ EC2 Linux หรือ CloudShell) ให้ดำเนินการต่อไปนี้ OpenSSL คำสั่งเพื่อสร้างใบรับรองที่ลงนามด้วยตนเองและคีย์ส่วนตัว:
    $ openssl genrsa 2048 > ldaps.key
    
    $ openssl req -new -key ldaps.key -out ldaps_server.csr
    
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:US
    State or Province Name (full name) [Some-State]:Washington
    Locality Name (eg, city) []:Bellevue
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:CorpName
    Organizational Unit Name (eg, section) []:OrgName
    Common Name (e.g., server FQDN or YOUR name) []:nlb-ds-abcd1234.elb.region.amazonaws.com
    Email Address []:[email protected]
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    
    $ openssl x509 -req -sha256 -days 365 -in ldaps_server.csr -signkey ldaps.key -out ldaps.crt
    
    Certificate request self-signature ok
    subject=C = US, ST = Washington, L = Bellevue, O = CorpName, OU = OrgName, CN = nlb-ds-abcd1234.elb.region.amazonaws.com, emailAddress = [email protected]
    
    $ chmod 600 ldaps.key

  2. เกี่ยวกับ คอนโซลตัวจัดการใบรับรองเลือก นำเข้า.
  3. ป้อนเนื้อหาใบรับรองและคีย์ส่วนตัวจากเนื้อหาของ ldaps.crt และ ldaps.key ตามลำดับ
  4. Choose ถัดไป.หน้าจอการนำเข้าใบรับรอง
  5. เพิ่มแท็กเสริม จากนั้นเลือก ถัดไป.หน้าจอการแก้ไขแท็กใบรับรอง
  6. ตรวจสอบการกำหนดค่าและเลือก นำเข้า.หน้าจอตรวจสอบการนำเข้าใบรับรอง

เพิ่มผู้ฟัง LDAPS

เราได้เพิ่มผู้ฟังสำหรับ LDAP ไว้ใน NLB แล้ว ตอนนี้เราเพิ่ม Listener สำหรับ LDAPS ด้วยใบรับรองที่นำเข้า ทำตามขั้นตอนต่อไปนี้:

  1. เกี่ยวกับ คอนโซลโหลดบาลานเซอร์นำทางไปยังหน้ารายละเอียด NLB
  2. เกี่ยวกับ ฟัง เลือกแท็บ เพิ่มผู้ฟัง.หน้าจอรายการ NLB พร้อมปุ่มเพิ่มผู้ฟัง
  3. กำหนดค่า Listener ด้วยพารามิเตอร์ต่อไปนี้:
    1. สำหรับ โปรโตคอลเลือก TLS.
    2. สำหรับ ท่าเรือป้อน 636.
    3. สำหรับ การกระทำเริ่มต้นเลือก LDAP.
    4. สำหรับ แหล่งที่มาของใบรับรองให้เลือก จาก พลอากาศเอก.
    5. สำหรับ ใบรับรองให้ป้อนสิ่งที่คุณนำเข้าใน ACM
  4. Choose เพิ่ม.หน้าจอการกำหนดค่าตัวฟัง NLBขณะนี้ NLB ฟังทั้ง LDAP และ LDAPS ขอแนะนำให้ลบ Listener LDAP เนื่องจากจะส่งข้อมูลโดยไม่มีการเข้ารหัส ซึ่งต่างจาก LDAPSรายชื่อผู้ฟัง NLB พร้อม LDAP และ LDAPS

สร้างอินสแตนซ์ EC2 Windows เพื่อจัดการผู้ใช้และกลุ่มใน AD

หากต้องการสร้างและรักษาผู้ใช้และกลุ่มใน AD ให้ทำตามขั้นตอนต่อไปนี้:

  1. บนคอนโซล Amazon EC2 ให้เลือก อินสแตนซ์ ในบานหน้าต่างนำทาง
  2. Choose เรียกใช้อินสแตนซ์.
  3. สำหรับ Nameป้อนชื่อสำหรับอินสแตนซ์ของคุณ
  4. สำหรับ ภาพเครื่องอเมซอนเลือก ฐาน Microsoft Windows Server 2022.
  5. สำหรับ ประเภทอินสแตนซ์เลือก t2.micro.
  6. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ตั้งค่าเครือข่าย ส่วน ให้ระบุพารามิเตอร์ต่อไปนี้:
    1. สำหรับ วี.พี.ซีเลือก SageMaker ไฮเปอร์พอด VPC (ซึ่งคุณสร้างด้วยเทมเพลต CloudFormation)
    2. สำหรับ ซับเน็ตให้เลือกเครือข่ายย่อยใดเครือข่ายหนึ่งจากสองเครือข่ายที่คุณสร้างด้วยเทมเพลต CloudFormation
    3. สำหรับ กลุ่มความปลอดภัยทั่วไปเลือก CfStackName-SecurityGroup-XYZXYZ (ซึ่งคุณสร้างด้วยเทมเพลต CloudFormation)
  7. สำหรับ กำหนดค่าพื้นที่เก็บข้อมูลให้ตั้งค่าพื้นที่เก็บข้อมูลเป็น 30 GB gp2
  8. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร รายละเอียดขั้นสูง ส่วนสำหรับ ไดเรกทอรีเข้าร่วมโดเมนธเลือกโฆษณาที่คุณสร้าง
  9. สำหรับ โปรไฟล์อินสแตนซ์ IAMเลือกไฟล์ AWS Identity และการจัดการการเข้าถึง (IAM) อย่างน้อยที่สุด AmazonSSMManagedEC2InstanceDefaultPolicy นโยบาย.
  10. ตรวจสอบบทสรุปและเลือก เรียกใช้อินสแตนซ์.

สร้างผู้ใช้และกลุ่มใน AD โดยใช้อินสแตนซ์ EC2 Windows

กับ Remote Desktopให้เชื่อมต่อกับอินสแตนซ์ EC2 Windows ที่คุณสร้างในขั้นตอนก่อนหน้า แนะนำให้ใช้ไคลเอ็นต์ RDP แทนการใช้เดสก์ท็อประยะไกลบนเบราว์เซอร์ เพื่อให้คุณสามารถแลกเปลี่ยนเนื้อหาของคลิปบอร์ดกับเครื่องในพื้นที่ของคุณโดยใช้การคัดลอกและวาง สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการเชื่อมต่อกับอินสแตนซ์ EC2 Windows โปรดดูที่ เชื่อมต่อกับอินสแตนซ์ Windows ของคุณ.

หากคุณได้รับพร้อมท์ให้ใส่ข้อมูลรับรองการเข้าสู่ระบบ ให้ใช้ hyperpodAdmin (ในกรณีที่ hyperpod เป็นส่วนแรกของชื่อ DNS ไดเรกทอรีของคุณ) เป็นชื่อผู้ใช้ และใช้รหัสผ่านผู้ดูแลระบบที่คุณตั้งให้กับบริการไดเรกทอรี

  1. เมื่อหน้าจอเดสก์ท็อป Windows เปิดขึ้น ให้เลือก จัดการเซิร์ฟเวอร์ จาก เริ่มต้น เมนูหน้าจอแดชบอร์ดบน Server Manager
  2. Choose เซิร์ฟเวอร์ท้องถิ่น ในบานหน้าต่างนำทาง และยืนยันว่าโดเมนคือสิ่งที่คุณระบุไว้ในบริการไดเร็กทอรีหน้าจอ Local Server บน Server Manager
  3. เกี่ยวกับ จัดการ เมนูให้เลือก เพิ่มบทบาทและคุณสมบัติ.เมนูแบบเลื่อนลงที่เปิดจากปุ่มจัดการ
  4. Choose ถัดไป จนกว่าคุณจะอยู่ที่ คุณสมบัติ หน้า.เพิ่มวิซาร์ดและส่วนกำหนดค่า
  5. ขยายคุณสมบัติ เครื่องมือการดูแลระบบเซิร์ฟเวอร์ระยะไกลขยาย เครื่องมือการบริหารบทบาทและเลือก AD DS และ AD LDS Tools และ บริการการจัดการสิทธิ์ Active Directory.
  6. Choose ถัดไป และ การติดตั้ง.หน้าจอเลือกคุณสมบัติการติดตั้งคุณลักษณะเริ่มต้นขึ้น
  7. เมื่อติดตั้งเสร็จแล้ว ให้เลือก ปิดหน้านี้.หน้าจอความคืบหน้าการติดตั้งคุณสมบัติ
  8. จุดเปิด ผู้ใช้ Active Directory และคอมพิวเตอร์ จาก เริ่มต้น เมนูหน้าต่างผู้ใช้ Active Directory และคอมพิวเตอร์
  9. ภายใต้ hyperpod.abc123.comขยาย hyperpod.
  10. เลือก (คลิกขวา) hyperpodเลือก ใหม่และเลือก หน่วยขององค์กร.เมนูบริบทที่เปิดอยู่เพื่อสร้างหน่วยองค์กร
  11. สร้างหน่วยองค์กรที่เรียกว่า Groups.กล่องโต้ตอบการยุติหน่วยองค์กร
  12. เลือก (คลิกขวา) กลุ่มเลือก ใหม่และเลือก บัญชีกลุ่ม.เมนูบริบทที่เปิดอยู่เพื่อสร้างกลุ่ม
  13. สร้างกลุ่มชื่อ ClusterAdmin.กล่องโต้ตอบการสร้างกลุ่มสำหรับ ClusterAdmin
  14. สร้างกลุ่มที่สองชื่อ ClusterDev.กล่องโต้ตอบการสร้างกลุ่มสำหรับ ClusterDev
  15. เลือก (คลิกขวา) ผู้ใช้เลือก ใหม่และเลือก ผู้ใช้งาน.
  16. สร้างผู้ใช้ใหม่กล่องโต้ตอบการสร้างผู้ใช้
  17. เลือก (คลิกขวา) ผู้ใช้และเลือก เพิ่มเข้ากลุ่ม.เมนูบริบทเปิดขึ้นเพื่อเพิ่มผู้ใช้ลงในกลุ่ม
  18. เพิ่มผู้ใช้ของคุณในกลุ่ม ClusterAdmin or ClusterDev.หน้าจอการเลือกกลุ่มเพื่อเพิ่มผู้ใช้เข้ากลุ่มผู้ใช้ที่ถูกเพิ่มเข้าไปใน ClusterAdmin กลุ่มจะมี sudo สิทธิพิเศษบนคลัสเตอร์

สร้างผู้ใช้แบบอ่านอย่างเดียวใน AD

สร้างผู้ใช้ชื่อ ReadOnly ภายใต้ Users. ReadOnly คลัสเตอร์ใช้ผู้ใช้เพื่อเข้าถึงผู้ใช้และกลุ่มใน AD โดยทางโปรแกรม

กล่องโต้ตอบการสร้างผู้ใช้เพื่อสร้างผู้ใช้แบบอ่านอย่างเดียว

จดรหัสผ่านเพื่อใช้ในภายหลัง

หน้าจอป้อนรหัสผ่านสำหรับผู้ใช้แบบอ่านอย่างเดียว

(สำหรับการตรวจสอบสิทธิ์คีย์สาธารณะ SSH) เพิ่มคีย์สาธารณะ SSH ให้กับผู้ใช้

ด้วยการจัดเก็บคีย์สาธารณะ SSH ให้กับผู้ใช้ใน AD คุณสามารถเข้าสู่ระบบได้โดยไม่ต้องป้อนรหัสผ่าน คุณสามารถใช้คู่คีย์ที่มีอยู่ หรือคุณสามารถสร้างคู่คีย์ใหม่ด้วย OpenSSH ได้ ssh-keygen สั่งการ. สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างคู่คีย์ โปรดดูที่ สร้างคู่คีย์สำหรับอินสแตนซ์ Amazon EC2 ของคุณ.

  1. In ผู้ใช้ Active Directory และคอมพิวเตอร์บน รายละเอียด เมนูเปิดใช้งาน คุณลักษณะขั้นสูง.เมนูมุมมองเปิดขึ้นเพื่อเปิดใช้งานคุณสมบัติขั้นสูง
  2. เปิด อสังหาริมทรัพย์ โต้ตอบของผู้ใช้
  3. เกี่ยวกับ ตัวแก้ไขแอตทริบิวต์ เลือกแท็บ altSecurityIdentities เลือก Edit.แท็บตัวแก้ไขแอตทริบิวต์ในกล่องโต้ตอบคุณสมบัติผู้ใช้
  4. สำหรับ มูลค่าเพิ่มเลือก เพิ่ม.
  5. สำหรับ ความคุ้มค่าให้เพิ่มคีย์สาธารณะ SSH
  6. Choose OK.กล่องโต้ตอบการแก้ไขแอตทริบิวต์สำหรับ altSecurityIdentitiesยืนยันว่ารหัสสาธารณะ SSH ปรากฏเป็นแอตทริบิวต์แท็บตัวแก้ไขแอตทริบิวต์ที่มีการกำหนดค่า altSecurityIdentities

รับรหัสผ่านที่สับสนสำหรับผู้ใช้แบบอ่านอย่างเดียว

เพื่อหลีกเลี่ยงการรวมรหัสผ่านข้อความธรรมดาในไฟล์การกำหนดค่า SSSD คุณจะต้องสร้างรหัสผ่านให้สับสน สำหรับขั้นตอนนี้ คุณต้องมีสภาพแวดล้อม Linux (แล็ปท็อปในเครื่อง, อินสแตนซ์ EC2 Linux หรือ CloudShell)

ติดตั้ง sssd-tools แพ็คเกจบนเครื่อง Linux เพื่อติดตั้งโมดูล Python pysss เพื่อทำให้สับสน:

# Ubuntu
$ sudo apt install sssd-tools

# Amazon Linux
$ sudo yum install sssd-tools

เรียกใช้สคริปต์ Python หนึ่งบรรทัดต่อไปนี้ ใส่รหัสผ่านของ ReadOnly ผู้ใช้ คุณจะได้รับรหัสผ่านที่สับสน

$ python3 -c "import getpass,pysss; print(pysss.password().encrypt(getpass.getpass('AD reader user password: ').strip(), pysss.password().AES_256))"
AD reader user password: (Enter ReadOnly user password) 
AAAQACK2....

สร้างคลัสเตอร์ HyperPod ด้วยสคริปต์วงจรการใช้งานที่เปิดใช้งาน SSSD

จากนั้น คุณสร้างคลัสเตอร์ HyperPod ที่มีการผสานรวม LDAPS/Active Directory

  1. ค้นหาไฟล์การกำหนดค่า config.py ในไดเร็กทอรีสคริปต์ lifecycle ของคุณ ให้เปิดด้วยโปรแกรมแก้ไขข้อความ และแก้ไขคุณสมบัติใน Config ชั้นเรียนและ SssdConfig ระดับ:
    1. ชุด True for enable_sssd เพื่อเปิดใช้งานการตั้งค่า SSSD
    2. พื้นที่ SssdConfig คลาสมีพารามิเตอร์การกำหนดค่าสำหรับ SSSD
    3. ตรวจสอบให้แน่ใจว่าคุณใช้รหัสผ่านที่สับสนสำหรับ ldap_default_authtok คุณสมบัติ ไม่ใช่รหัสผ่านข้อความธรรมดา
    # Basic configuration parameters
    class Config:
             :
        # Set true if you want to install SSSD for ActiveDirectory/LDAP integration.
        # You need to configure parameters in SssdConfig as well.
        enable_sssd = True
    # Configuration parameters for ActiveDirectory/LDAP/SSSD
    class SssdConfig:
    
        # Name of domain. Can be default if you are not sure.
        domain = "default"
    
        # Comma separated list of LDAP server URIs
        ldap_uri = "ldaps://nlb-ds-xyzxyz.elb.us-west-2.amazonaws.com"
    
        # The default base DN to use for performing LDAP user operations
        ldap_search_base = "dc=hyperpod,dc=abc123,dc=com"
    
        # The default bind DN to use for performing LDAP operations
        ldap_default_bind_dn = "CN=ReadOnly,OU=Users,OU=hyperpod,DC=hyperpod,DC=abc123,DC=com"
    
        # "password" or "obfuscated_password". Obfuscated password is recommended.
        ldap_default_authtok_type = "obfuscated_password"
    
        # You need to modify this parameter with the obfuscated password, not plain text password
        ldap_default_authtok = "placeholder"
    
        # SSH authentication method - "password" or "publickey"
        ssh_auth_method = "publickey"
    
        # Home directory. You can change it to "/home/%u" if your cluster doesn't use FSx volume.
        override_homedir = "/fsx/%u"
    
        # Group names to accept SSH login
        ssh_allow_groups = {
            "controller" : ["ClusterAdmin", "ubuntu"],
            "compute" : ["ClusterAdmin", "ClusterDev", "ubuntu"],
            "login" : ["ClusterAdmin", "ClusterDev", "ubuntu"],
        }
    
        # Group names for sudoers
        sudoers_groups = {
            "controller" : ["ClusterAdmin", "ClusterDev"],
            "compute" : ["ClusterAdmin", "ClusterDev"],
            "login" : ["ClusterAdmin", "ClusterDev"],
        }
    

  2. คัดลอกไฟล์ใบรับรอง ldaps.crt ไปยังไดเร็กทอรีเดียวกัน (โดยที่ config.py มีอยู่)
  3. อัปโหลดไฟล์สคริปต์วงจรการใช้งานที่แก้ไขแล้วไปยังของคุณ บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (Amazon S3) และสร้างคลัสเตอร์ HyperPod ด้วย
  4. รอจนกระทั่งสถานะเปลี่ยนเป็น อยู่ในการให้บริการ.

การตรวจสอบ

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

ตัวเลือกที่ 1: เข้าสู่ระบบ SSH ผ่าน AWS Systems Manager

คุณสามารถใช้ได้ ผู้จัดการระบบ AWS เป็นพร็อกซีสำหรับการเชื่อมต่อ SSH เพิ่มรายการโฮสต์ลงในไฟล์การกำหนดค่า SSH ~/.ssh/config โดยใช้ตัวอย่างต่อไปนี้ สำหรับ HostName ระบุชื่อเป้าหมาย Systems Manger ในรูปแบบ sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]. สำหรับ IdentityFile ระบุเส้นทางไฟล์ไปยังคีย์ส่วนตัว SSH ของผู้ใช้ ฟิลด์นี้ไม่จำเป็นหากคุณเลือกการตรวจสอบสิทธิ์ด้วยรหัสผ่าน

Host MyCluster-LoginNode
    HostName sagemaker-cluster:abcd1234_LoginGroup-i-01234567890abcdef
    User user1
    IdentityFile ~/keys/my-cluster-ssh-key.pem
    ProxyCommand aws --profile default --region us-west-2 ssm start-session --target %h --document-name AWS-StartSSHSession --parameters portNumber=%p

เรียกใช้ ssh คำสั่งโดยใช้ชื่อโฮสต์ที่คุณระบุ ยืนยันว่าคุณสามารถเข้าสู่ระบบอินสแตนซ์กับผู้ใช้ที่ระบุได้

$ ssh MyCluster-LoginNode
   :
   :
   ____              __  ___     __             __ __                  ___          __
  / __/__ ____ ____ /  |/  /__ _/ /_____ ____  / // /_ _____  ___ ____/ _ ___  ___/ /
 _ / _ `/ _ `/ -_) /|_/ / _ `/  '_/ -_) __/ / _  / // / _ / -_) __/ ___/ _ / _  /
/___/_,_/_, /__/_/  /_/_,_/_/___/_/   /_//_/_, / .__/__/_/ /_/   ___/_,_/
         /___/                                    /___/_/
You're on the controller
Instance Type: ml.m5.xlarge
user1@ip-10-1-111-222:~$

ณ จุดนี้ ผู้ใช้ยังคงสามารถใช้เซสชันเชลล์ดีฟอลต์ของ Systems Manager เพื่อล็อกอินเข้าสู่คลัสเตอร์ได้ ssm-user ด้วยสิทธิพิเศษของผู้ดูแลระบบ หากต้องการบล็อกการเข้าถึงเชลล์ของ Systems Manager เริ่มต้นและบังคับใช้การเข้าถึง SSH คุณสามารถกำหนดค่านโยบาย IAM ของคุณโดยอ้างอิงจากตัวอย่างต่อไปนี้:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:TerminateSession"
            ],
            "Resource": [
                "arn:aws:sagemaker:us-west-2:123456789012:cluster/abcd1234efgh",
                "arn:aws:ssm:us-west-2:123456789012:document/AWS-StartSSHSession"
            ],
            "Condition": {
                "BoolIfExists": {
                    "ssm:SessionDocumentAccessCheck": "true"
                }
            }
        }
    ]
}

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการบังคับใช้การเข้าถึง SSH โปรดดูที่ เริ่มต้นเซสชันด้วยเอกสารโดยระบุเอกสารเซสชันในนโยบาย IAM.

ตัวเลือกที่ 2: เข้าสู่ระบบ SSH ผ่านโฮสต์ป้อมปราการ

ตัวเลือกอื่นในการเข้าถึงคลัสเตอร์คือการใช้ โฮสต์ป้อมปราการ เป็นตัวแทน คุณสามารถใช้ตัวเลือกนี้เมื่อผู้ใช้ไม่มีสิทธิ์ในการใช้เซสชัน Systems Manager หรือเพื่อแก้ไขปัญหาเมื่อ Systems Manager ไม่ทำงาน

  1. สร้างกลุ่มรักษาความปลอดภัยป้อมปราการที่อนุญาตการเข้าถึง SSH ขาเข้า (พอร์ต TCP 22) จากสภาพแวดล้อมในพื้นที่ของคุณ
  2. อัปเดตกลุ่มความปลอดภัยสำหรับคลัสเตอร์เพื่ออนุญาตการเข้าถึง SSH ขาเข้าจากกลุ่มความปลอดภัยของป้อมปราการ
  3. สร้างอินสแตนซ์ EC2 Linux
  4. สำหรับ ภาพเครื่องอเมซอนเลือก เซิร์ฟเวอร์ Ubuntu 20.04 LTS.
  5. สำหรับ ประเภทอินสแตนซ์เลือก t3.เล็ก.
  6. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ตั้งค่าเครือข่าย ส่วน ให้ระบุพารามิเตอร์ต่อไปนี้:
    1. สำหรับ วี.พี.ซีเลือก SageMaker ไฮเปอร์พอด VPC (ซึ่งคุณสร้างด้วยเทมเพลต CloudFormation)
    2. สำหรับ ซับเน็ตให้เลือกเครือข่ายย่อยสาธารณะที่คุณสร้างด้วยเทมเพลต CloudFormation
    3. สำหรับ กลุ่มความปลอดภัยทั่วไปให้เลือกกลุ่มความปลอดภัยของป้อมปราการที่คุณสร้างขึ้น
  7. สำหรับ กำหนดค่าพื้นที่เก็บข้อมูลให้ตั้งค่าพื้นที่เก็บข้อมูลเป็น 8 GB
  8. ระบุที่อยู่ IP สาธารณะของโฮสต์ Bastion และที่อยู่ IP ส่วนตัวของอินสแตนซ์เป้าหมาย (เช่น โหนดเข้าสู่ระบบของคลัสเตอร์) และเพิ่มรายการโฮสต์สองรายการในการกำหนดค่า SSH โดยอ้างอิงจากตัวอย่างต่อไปนี้:
    Host Bastion
        HostName 11.22.33.44
        User ubuntu
        IdentityFile ~/keys/my-bastion-ssh-key.pem
    
    Host MyCluster-LoginNode-with-Proxy
        HostName 10.1.111.222
        User user1
        IdentityFile ~/keys/my-cluster-ssh-key.pem
        ProxyCommand ssh -q -W %h:%p Bastion

  9. เรียกใช้ ssh คำสั่งโดยใช้ชื่อโฮสต์เป้าหมายที่คุณระบุไว้ก่อนหน้านี้ และยืนยันว่าคุณสามารถเข้าสู่ระบบอินสแตนซ์ด้วยผู้ใช้ที่ระบุ:
    $ ssh MyCluster-LoginNode-with-Proxy
       :
       :
       ____              __  ___     __             __ __                  ___          __
      / __/__ ____ ____ /  |/  /__ _/ /_____ ____  / // /_ _____  ___ ____/ _ ___  ___/ /
     _ / _ `/ _ `/ -_) /|_/ / _ `/  '_/ -_) __/ / _  / // / _ / -_) __/ ___/ _ / _  /
    /___/_,_/_, /__/_/  /_/_,_/_/___/_/   /_//_/_, / .__/__/_/ /_/   ___/_,_/
             /___/                                    /___/_/
    You're on the controller
    Instance Type: ml.m5.xlarge
    user1@ip-10-1-111-222:~$

ทำความสะอาด

ทำความสะอาดทรัพยากรตามลำดับต่อไปนี้:

  1. ลบคลัสเตอร์ HyperPod
  2. ลบ Network Load Balancer
  3. ลบกลุ่มเป้าหมายที่ปรับสมดุลโหลด
  4. ลบใบรับรองที่นำเข้าไปยังตัวจัดการใบรับรอง
  5. ลบอินสแตนซ์ EC2 Windows
  6. ลบอินสแตนซ์ EC2 Linux สำหรับโฮสต์ป้อมปราการ
  7. ลบ AWS Managed Microsoft AD
  8. ลบสแต็ก CloudFormation สำหรับ VPC, ซับเน็ต, กลุ่มความปลอดภัย และ FSx สำหรับโวลุ่ม Luster

สรุป

โพสต์นี้ระบุขั้นตอนในการสร้างคลัสเตอร์ HyperPod ที่ผสานรวมกับ Active Directory โซลูชันนี้ขจัดความยุ่งยากในการบำรุงรักษาผู้ใช้บนคลัสเตอร์ขนาดใหญ่ และช่วยให้คุณสามารถจัดการผู้ใช้และกลุ่มจากส่วนกลางได้ในที่เดียว

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ HyperPod โปรดดูที่ เวิร์กช็อปไฮเปอร์พอด และ คู่มือนักพัฒนา SageMaker HyperPod- แสดงความคิดเห็นของคุณเกี่ยวกับโซลูชันนี้ในส่วนความเห็น


เกี่ยวกับผู้เขียน

โทโมโนริ ชิโมมูระ เป็นสถาปนิกโซลูชันอาวุโสในทีม Amazon SageMaker ซึ่งเขาให้คำปรึกษาทางเทคนิคเชิงลึกแก่ลูกค้า SageMaker และแนะนำการปรับปรุงผลิตภัณฑ์ให้กับทีมผลิตภัณฑ์ ก่อนที่จะมาร่วมงานกับ Amazon เขาเคยทำงานเกี่ยวกับการออกแบบและพัฒนาซอฟต์แวร์แบบฝังตัวสำหรับคอนโซลวิดีโอเกม และตอนนี้เขาใช้ทักษะเชิงลึกของเขาในเทคโนโลยีด้านคลาวด์ ในเวลาว่าง เขาสนุกกับการเล่นวิดีโอเกม อ่านหนังสือ และเขียนซอฟต์แวร์

จูเซปเป้ แองเจโล พอร์เชลลี เป็นสถาปนิกโซลูชันผู้เชี่ยวชาญด้านการเรียนรู้ของเครื่องหลักสำหรับ Amazon Web Services ด้วยเวลาหลายปีด้านวิศวกรรมซอฟต์แวร์และพื้นหลัง ML เขาทำงานร่วมกับลูกค้าทุกขนาดเพื่อทำความเข้าใจความต้องการทางธุรกิจและทางเทคนิคของพวกเขา และออกแบบโซลูชัน AI และ ML ที่ใช้ประโยชน์สูงสุดจาก AWS Cloud และ Amazon Machine Learning stack เขาทำงานในโครงการต่างๆ ในโดเมนต่างๆ รวมถึง MLOps, คอมพิวเตอร์วิทัศน์ และ NLP ที่เกี่ยวข้องกับชุดบริการต่างๆ ของ AWS ในเวลาว่าง Giuseppe ชอบเล่นฟุตบอล

มณฑิภา จักรบอร์ตี ปัจจุบันทำหน้าที่เป็นวิศวกรพัฒนาซอฟต์แวร์อาวุโสที่ Amazon Web Services (AWS) โดยเฉพาะภายในทีม SageMaker HyperPod เธอมุ่งมั่นที่จะช่วยเหลือลูกค้าด้วยการออกแบบและใช้งานระบบที่แข็งแกร่งและปรับขนาดได้ซึ่งแสดงให้เห็นถึงความเป็นเลิศในการปฏิบัติงาน ด้วยประสบการณ์การพัฒนาซอฟต์แวร์เกือบทศวรรษ Monidipa ได้มีส่วนร่วมในภาคส่วนต่างๆ ภายใน Amazon รวมถึงวิดีโอ การค้าปลีก Amazon Go และ AWS SageMaker

สาธิต ปสุมาธี เป็นนักพัฒนาซอฟต์แวร์ที่ Amazon Web Services ด้วยประสบการณ์ด้านวิศวกรรมซอฟต์แวร์และพื้นฐาน ML มาหลายปี เขาชอบที่จะเชื่อมช่องว่างระหว่าง ML และระบบ และมีความหลงใหลที่จะสร้างระบบที่ทำให้การฝึกอบรมโมเดลขนาดใหญ่เป็นไปได้ เขาเคยทำงานในโครงการต่างๆ ในหลากหลายโดเมน รวมถึงเฟรมเวิร์กการเรียนรู้ของเครื่อง การวัดประสิทธิภาพโมเดล การสร้างไฮเปอร์พอดเบต้าที่เกี่ยวข้องกับชุดบริการของ AWS ที่หลากหลาย ในเวลาว่าง สาธิตชอบเล่นแบดมินตัน

จุด_img

ข่าวกรองล่าสุด

จุด_img

แชทกับเรา

สวัสดี! ฉันจะช่วยคุณได้อย่างไร?