ส่งมอบงานอย่างปลอดภัย

การใช้ AWS Security สำหรับนักพัฒนา

Rahul Singh

Technical Product Manager

เช็กลิสต์นี้มีไว้ทำอะไร

การ์ดสองใบวางเรียงกันเหนือแถบ deploy ที่กว้างเต็มพื้นที่ การ์ดด้านซ้ายมีป้ายกำกับการตั้งค่า บรรจุค่าคอนฟิกสามค่าที่แต่ละค่ามีเครื่องหมายถูกสีเขียว และมีคำบรรยายว่าค่าที่ถูกต้องหนึ่งค่า การ์ดด้านขวามีป้ายกำกับคำถาม บรรจุเครื่องหมายคำถามสามอันคู่กับช่องคำตอบเส้นประที่ว่างเปล่า และมีคำบรรยายว่าคำตอบของคุณ ลูกศรจากการ์ดทั้งสองใบพุ่งลงสู่แถบ deploy ด้านล่าง

  • คำถามหกข้อ ที่ต้องถามก่อนส่งมอบ
  • ไม่ใช่การตั้งค่าหกอย่าง ที่ต้องเปิดใช้งาน
การใช้ AWS Security สำหรับนักพัฒนา

คำถามหกข้อ เรียงตามลำดับคำขอ

ถามตามลำดับนี้

  1. ใครเป็นผู้ตรวจสอบโทเคนของผู้เรียก
  2. AWS กำลังตรวจสอบตัวตนใด

บริการรายงานผู้เช่าเริ่มถูกวาดเป็นเส้นทางแนวตั้ง ได้แก่ ผู้ใช้ของผู้เช่า ตามด้วย API Gateway และฟังก์ชันรายงาน เครื่องหมายหมายเลข 1 และ 2 อยู่ในสองตำแหน่งที่คำถามแต่ละข้อใช้ได้

การใช้ AWS Security สำหรับนักพัฒนา

คำถามหกข้อ เรียงตามลำดับคำขอ

ถามตามลำดับนี้

  1. ใครเป็นผู้ตรวจสอบโทเคนของผู้เรียก
  2. AWS กำลังตรวจสอบตัวตนใด
  3. อะไรที่ป้องกันไม่ให้ผู้เช่ารายหนึ่งอ่านข้อมูลแถวของอีกราย
  4. รหัสผ่านฐานข้อมูลเก็บอยู่ที่ไหน

บริการรายงานผู้เช่าถูกวาดเป็นเส้นทางแนวตั้ง ได้แก่ ผู้ใช้ของผู้เช่า, API Gateway, ฟังก์ชันรายงาน และ DynamoDB โดยมี Secrets Manager แยกออกไปด้านข้าง เครื่องหมายหมายเลข 1 ถึง 4 อยู่ในสี่ตำแหน่งที่คำถามแต่ละข้อใช้ได้

การใช้ AWS Security สำหรับนักพัฒนา

คำถามหกข้อ เรียงตามลำดับคำขอ

ถามตามลำดับนี้

  1. ใครเป็นผู้ตรวจสอบโทเคนของผู้เรียก
  2. AWS กำลังตรวจสอบตัวตนใด
  3. อะไรที่ป้องกันไม่ให้ผู้เช่ารายหนึ่งอ่านข้อมูลแถวของอีกราย
  4. รหัสผ่านฐานข้อมูลเก็บอยู่ที่ไหน
  5. ใครถือกุญแจ และใครเป็นคนใช้มัน
  6. การดาวน์โหลดในวันพรุ่งนี้จะทิ้งบันทึกไว้หรือไม่

บริการรายงานผู้เช่าถูกวาดเป็นเส้นทางแนวตั้ง ได้แก่ ผู้ใช้ของผู้เช่า, API Gateway, ฟังก์ชันรายงาน, DynamoDB และ S3 reports โดยมี Secrets Manager และ KMS key แยกออกไปด้านข้าง เครื่องหมายหมายเลขหกอันอยู่ในหกตำแหน่งที่คำถามแต่ละข้อใช้ได้ ขอบเขตเส้นประล้อมรอบบริการทั้งหมด และเชื่อมต่อลงไปยังกล่อง CloudTrail เส้นประด้านล่าง

การใช้ AWS Security สำหรับนักพัฒนา

ติ๊กถูกแล้ว ไม่ได้แปลว่าปลอดภัย

สามข้อจากบริการนี้

  1. Role ไม่ใช่ key: อ่านทุกอ็อบเจ็กต์ได้

ชิ้นส่วนที่มีหมายเลขกำกับสามส่วนของบริการรายงาน ในส่วนแรก ฟังก์ชันรายงานมีเครื่องหมายถูกสีเขียว และเส้นประสีส้มพาดผ่านส่วนนำหน้าของผู้เช่าทั้งสามส่วนในบัคเก็ต ในส่วนที่สอง มีตัวกรองผู้เช่าสีเขียวอยู่ภายในฟังก์ชัน ขณะที่ประตูสีส้มว่างเปล่าอยู่บนเส้นทางคำขอด้านนอก ในส่วนที่สาม บัคเก็ตมีเครื่องหมายถูกสีเขียว และเส้นทางเส้นประสีส้มจากผู้ตรวจสอบไปยัง AWS managed key ถูกหยุดไว้ก่อนถึงปลายทาง

การใช้ AWS Security สำหรับนักพัฒนา

ติ๊กถูกแล้ว ไม่ได้แปลว่าปลอดภัย

สามข้อจากบริการนี้

  1. Role ไม่ใช่ key: อ่านทุกอ็อบเจ็กต์ได้
  2. คอลัมน์ผู้เช่า: ตัวกรองอยู่ในโค้ด
  3. เปิดใช้การเข้ารหัส: key ไม่สามารถแชร์ได้

ชิ้นส่วนที่มีหมายเลขกำกับสามส่วนของบริการรายงาน ในส่วนแรก ฟังก์ชันรายงานมีเครื่องหมายถูกสีเขียว และเส้นประสีส้มพาดผ่านส่วนนำหน้าของผู้เช่าทั้งสามส่วนในบัคเก็ต ในส่วนที่สอง มีตัวกรองผู้เช่าสีเขียวอยู่ภายในฟังก์ชัน ขณะที่ประตูสีส้มว่างเปล่าอยู่บนเส้นทางคำขอด้านนอก ในส่วนที่สาม บัคเก็ตมีเครื่องหมายถูกสีเขียว และเส้นทางเส้นประสีส้มจากผู้ตรวจสอบไปยัง AWS managed key ถูกหยุดไว้ก่อนถึงปลายทาง

การใช้ AWS Security สำหรับนักพัฒนา

ช่องว่างที่คอนฟิกบอกไม่ได้

กล่องด้านนอกหนึ่งกล่องมีป้ายกำกับได้รับสิทธิ์ บรรจุกล่องด้านในสองกล่องที่ไม่ทับซ้อนกัน กล่องทึบสีเขียวมีป้ายกำกับใช้งานแล้ว บรรจุ IAM action สามรายการที่ role เรียกใช้ กล่องเส้นประสีส้มมีป้ายกำกับไม่เคยถูกเรียก บรรจุ IAM action สามรายการที่ไม่เคยถูกเรียกใช้

  • ถูกต้องในวันที่เขียนขึ้น: ทุกแอ็กชันที่บริการเรียกใช้ในตอนนั้น
การใช้ AWS Security สำหรับนักพัฒนา

ช่องว่างที่คอนฟิกบอกไม่ได้

กล่องด้านนอกหนึ่งกล่องมีป้ายกำกับได้รับสิทธิ์ บรรจุกล่องด้านในสองกล่องที่ไม่ทับซ้อนกัน กล่องทึบสีเขียวมีป้ายกำกับใช้งานแล้ว บรรจุ IAM action สามรายการที่ role เรียกใช้ กล่องเส้นประสีส้มมีป้ายกำกับไม่เคยถูกเรียก บรรจุ IAM action สามรายการที่ไม่เคยถูกเรียกใช้

  • ถูกต้องในวันที่เขียนขึ้น: ทุกแอ็กชันที่บริการเรียกใช้ในตอนนั้น
  • กว้างเกินไปในตอนนี้: ครึ่งหนึ่งที่เลิกเรียกใช้ไปแล้ว
  • ทางแก้: ให้สิทธิ์เท่าที่ trail ย้อนหลัง 90 วันแสดงว่าใช้งานจริง
การใช้ AWS Security สำหรับนักพัฒนา

บันทึกเหตุผล ไม่ใช่แค่ค่าที่ตั้ง

สองด้านของการตัดสินใจหนึ่งเดียว

  • ค่าที่โค้ดกำหนด
  • เหตุผลที่กำหนดค่านั้น

บรรทัดคอนฟิกหนึ่งบรรทัด มีป้ายกำกับอยู่ในรีพอสิทอรี อยู่เหนือกล่องเส้นประว่างเปล่าที่มีป้ายกำกับเหตุผล และมีคำบรรยายว่าไม่ได้บันทึกไว้ ลูกศรวิ่งลงจากตรงนั้นไปยังการ์ดบันทึกสีเขียวที่มีช่องกำกับสี่ช่อง ได้แก่ เลือก, ปฏิเสธ, จะเปลี่ยนถ้า และวันที่

การใช้ AWS Security สำหรับนักพัฒนา

บันทึกเหตุผล ไม่ใช่แค่ค่าที่ตั้ง

สองด้านของการตัดสินใจหนึ่งเดียว

  • ค่าที่โค้ดกำหนด
  • เหตุผลที่กำหนดค่านั้น

 

  • บันทึกไว้และได้รับการยอมรับ: คือการตัดสินใจ
  • ไม่บันทึกไว้: คือเรื่องที่ทำให้แปลกใจภายหลัง

บรรทัดคอนฟิกหนึ่งบรรทัด มีป้ายกำกับอยู่ในรีพอสิทอรี อยู่เหนือกล่องเส้นประว่างเปล่าที่มีป้ายกำกับเหตุผล และมีคำบรรยายว่าไม่ได้บันทึกไว้ ลูกศรวิ่งลงจากตรงนั้นไปยังการ์ดบันทึกสีเขียวที่มีช่องกำกับสี่ช่อง ได้แก่ เลือก, ปฏิเสธ, จะเปลี่ยนถ้า และวันที่

การใช้ AWS Security สำหรับนักพัฒนา

คำถามชุดเดิม กับผู้เรียกแบบใหม่

สามแถวภายใต้สองหัวข้อ ผู้กระทำ และผู้เรียก แต่ละแถวจับคู่ผู้กระทำกับผู้เรียกที่มันเริ่มทำงาน ได้แก่ คนหนึ่งกับ browser session ซึ่งแสดงเป็นสีจางในฐานะกรณีที่คุ้นเคย, commit หนึ่งกับ pipeline, และ request หนึ่งกับ agent ทั้งสามแถวมาบรรจบกันที่ประตูสีฟ้าเดียว มีคำบรรยายว่าประตูเดียว และมีเครื่องหมายหมายเลขสามอัน

  • Workload identity: ตัวตนสำหรับผู้เรียกที่ไม่ใช่คน
การใช้ AWS Security สำหรับนักพัฒนา

คำถามชุดเดิม กับผู้เรียกแบบใหม่

สามแถวภายใต้สองหัวข้อ ผู้กระทำ และผู้เรียก แต่ละแถวจับคู่ผู้กระทำกับผู้เรียกที่มันเริ่มทำงาน ได้แก่ คนหนึ่งกับ browser session ซึ่งแสดงเป็นสีจางในฐานะกรณีที่คุ้นเคย, commit หนึ่งกับ pipeline, และ request หนึ่งกับ agent ทั้งสามแถวมาบรรจบกันที่ประตูสีฟ้าเดียว มีคำบรรยายว่าประตูเดียว และมีเครื่องหมายหมายเลขสามอัน

  • Workload identity: ตัวตนสำหรับผู้เรียกที่ไม่ใช่คน
  • คำถามสามข้อเดิม: ตัวตนที่ AWS ตรวจสอบได้ ขอบเขตที่ไม่กว้างเกินงาน และบันทึกสิ่งที่มันทำ
  • สิ่งที่เปลี่ยนไป: คือผู้เรียก
การใช้ AWS Security สำหรับนักพัฒนา

ขั้นต่อไปจากนี้

แถบสองแถบเรียงซ้อนกัน แถบบนมีป้ายกำกับบัญชี บรรจุกล่องสี่กล่องขนาดเท่ากัน ได้แก่ GuardDuty, Security Hub, AWS Config และ Organizations ใต้เส้นแบ่งแบบเส้นประ แถบล่างมีป้ายกำกับบริการของคุณ บรรจุเครื่องหมายหมายเลขหกอันแบบเดียวกับที่ใช้ก่อนหน้านี้ในวิดีโอ

  • บริการของคุณ: คำถามหกข้อ
  • บัญชีที่อยู่เหนือขึ้นไป: GuardDuty, Security Hub, AWS Config, Organizations
การใช้ AWS Security สำหรับนักพัฒนา

มาฝึกกันเถอะ!

การใช้ AWS Security สำหรับนักพัฒนา

Preparing Video For Download...