วิธีจัดการความลับโดยใช้ AWS Secrets Manager และ RDS

Withi Cadkar Khwam Lab Doy Chi Aws Secrets Manager Laea Rds



Amazon Relational Database เป็นหนึ่งในบริการฐานข้อมูลเชิงสัมพันธ์ที่ง่ายต่อการใช้งานและเรียกใช้การสืบค้นที่ซับซ้อน ตามไวยากรณ์ของการสืบค้น SQL บริการของ AWS นี้เร็วกว่าฐานข้อมูลแบบดั้งเดิมและปรับขนาดฐานข้อมูลอัตโนมัติตามความต้องการของแอปพลิเคชัน ด้วย AWS RDS ไม่จำเป็นต้องตั้งค่าฮาร์ดแวร์แบบกำหนดเองหรือกำหนดค่าซอฟต์แวร์เพื่อเรียกใช้การสืบค้น

บทความนี้สาธิตวิธีจัดการข้อมูลลับโดยใช้ AWS Secrets Manager และ RDS

ผู้จัดการความลับคืออะไร?

ภัยคุกคามด้านความปลอดภัยและข้อกังวลด้านความเป็นส่วนตัวได้รับการหยิบยกมาจากผู้เชี่ยวชาญและผู้คนทั่วโลก เพื่อปกป้องความลับดิจิทัลของคุณ เช่น ข้อมูลรับรองฐานข้อมูล, API และโทเค็น AWS Secret Manager คือเครื่องมือที่คุณนำไปใช้เพื่อจุดประสงค์นี้







AWS Secret Manager ช่วยให้บริษัทและองค์กรปกป้องทรัพยากรและบริการของตนจากเจตนาร้ายและการโจมตีทางไซเบอร์เพื่อแย่งชิงหรือขโมยข้อมูลที่ละเอียดอ่อน บริการนี้เพิ่มการรักษาความปลอดภัยอีกชั้นพิเศษให้กับทรัพยากร และช่วยให้คุณสามารถปรับขนาดและจัดการความลับได้อย่างง่ายดาย



วิธีจัดการความลับโดยใช้ AWS Secret Manager และ RDS

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



ด้วยการใช้ Secret Manager คุณสามารถกำหนดวงจรการใช้งานของข้อมูลลับเหล่านี้ และรวมเข้ากับรีซอร์สอื่นได้ ในบทความนี้ เราจะเพิ่ม AWS Secret Manager พร้อมฟังก์ชัน Lambda ให้กับคลัสเตอร์ RDS ของเรา





ด้านล่างนี้เป็นขั้นตอนบางส่วนเพื่อจุดประสงค์นี้:

ขั้นตอนที่ 1: สร้างคลัสเตอร์ RDS

Secret Manager ถูกนำมาใช้กันอย่างแพร่หลายในการปกป้องข้อมูลรับรองฐานข้อมูล ขั้นตอนแรกคือการสร้างคลัสเตอร์ RDS เพื่อจุดประสงค์นี้ โปรดอ่านบทความนี้: “ จะสร้างคลัสเตอร์ RDS บน AWS ได้อย่างไร '. เรามีคลัสเตอร์ RDS และทำงานอยู่:



ขั้นตอนที่ 2: AWS Secret Manager

บน AWS Management Console ค้นหาและเลือก “ ผู้จัดการความลับ ”:

บนอินเทอร์เฟซ Secret Manager ให้คลิกที่ “เก็บความลับใหม่” ปุ่ม:

ใน ประเภทความลับ ให้เลือก “ข้อมูลรับรองสำหรับฐานข้อมูล Amazon RDS” ตัวเลือกในขณะที่เรากำลังกำหนดค่าสำหรับ RDS:

ต่อไปก็คือ ข้อมูลรับรอง ส่วน. ในส่วนนี้ ให้ระบุ ชื่อผู้ใช้ และ รหัสผ่าน สำหรับฐานข้อมูล RDS ที่เราเพิ่งสร้างขึ้น:

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

ระบุชื่อที่ไม่ซ้ำสำหรับ 'ความลับ' ซึ่งจะช่วยให้เราระบุได้ในภายหลัง คำอธิบายเป็นทางเลือก อย่างไรก็ตาม ผู้ใช้ยังสามารถให้คำอธิบายที่กำหนดเองได้ที่นี่:

บนอินเทอร์เฟซ , ผู้จัดการความลับยังอำนวยความสะดวกให้เราในการทำซ้ำความลับอีกด้วย สำหรับสิ่งนี้ ให้เลือกภูมิภาคที่คุณต้องการสร้างการจำลอง ในการสาธิตนี้ เราไม่จำเป็นต้องมีการจำลองใดๆ ดังนั้นโดยคงการตั้งค่าที่เหลือไว้เป็นค่าเริ่มต้น ให้แตะ 'ต่อไป' ปุ่ม:

ด้วยการรักษาค่าเริ่มต้น ขณะนี้เราจะตรวจสอบและแก้ไขข้อมูล หลังจากยืนยันข้อมูลที่ให้มา ให้คลิกที่ 'เก็บ' ปุ่มเพื่อสร้างและจัดเก็บข้อมูลลับ:

ที่นี่ความลับอยู่ สร้างสำเร็จแล้ว . คลิกที่ ' ชื่อความลับ ” เพื่อดูการกำหนดค่า:

เลื่อนลงมาที่อินเทอร์เฟซ เราจะมีส่วนโค้ดตัวอย่าง ในส่วนนี้ รหัสจะถูกสร้างขึ้นโดย ผู้จัดการความลับ คัดลอกโค้ดนี้เพื่อใช้ใน ฟังก์ชั่นแลมบ์ดา:

// ใช้ข้อมูลโค้ดนี้ ใน แอปของคุณ
// ถ้าคุณต้องการ มากกว่า ข้อมูลเกี่ยวกับการกำหนดค่าหรือการนำโค้ดตัวอย่างไปใช้ โปรดไปที่เอกสาร AWS:
// https: // docs.aws.amazon.com / sdk-for-javascript / v3 / คู่มือนักพัฒนา / เริ่มต้นใช้งาน.html

นำเข้า {
SecretsManagerไคลเอนต์
รับ SecretValueCommand,
} จาก '@aws-sdk/client-secrets-manager' ;

const Secret_name = 'มายซีเคร็ต1/ช' ;

ลูกค้า const = SecretsManagerClient ใหม่ ( {
ภูมิภาค: 'ap-ตะวันออกเฉียงใต้-1' ,
} ) ;

อนุญาต การตอบสนอง;

พยายาม {
การตอบสนอง = รอไคลเอนต์ส่ง (
GetSecretValueCommand ใหม่ ( {
รหัสลับ: Secret_name,
เวอร์ชันขั้นตอน: 'AWSCURRENT' , // VersionStage มีค่าเริ่มต้นเป็น AWSCURRENT ถ้า ไม่ระบุ
} )
) ;
} จับ ( ข้อผิดพลาด ) {
// สำหรับรายการข้อยกเว้น โปรดดูที่
// https: // docs.aws.amazon.com / ผู้จัดการความลับ / ล่าสุด / ความสมบูรณ์ /
API_GetSecretValue.html
ข้อผิดพลาดในการโยน;
}

const ลับ = การตอบสนอง SecretString;

// รหัสของคุณอยู่ที่นี่

ขั้นตอนที่ 3: สร้างฟังก์ชัน Lambda

บนอินเทอร์เฟซฟังก์ชัน Lambda ให้คลิกที่ ' สร้างฟังก์ชัน ' ปุ่ม:

คลิกที่ “ผู้เขียนตั้งแต่เริ่มต้น” ตัวเลือกจาก “สร้างฟังก์ชั่น” อินเตอร์เฟซ:

ต่อไปเราจะมุ่งหน้าสู่. 'ข้อมูลพื้นฐาน' ส่วน. ระบุชื่อฟังก์ชันใน “ชื่อฟังก์ชั่น” สนามแล้วจัดเตรียม “รันไทม์” สิ่งแวดล้อม. ที่นี่เราได้เลือก “Node.js 16.x” ในช่องรันไทม์:

คลิกที่ “สร้างฟังก์ชั่น” ปุ่ม:

ที่นี่เราได้วางโค้ดที่สร้างขึ้นโดย ผู้จัดการความลับ . หลังจากวางโค้ดแล้วให้คลิกที่ 'ปรับใช้' ปุ่ม:

หลังจากปรับใช้การเปลี่ยนแปลงทั้งหมดแล้ว ให้คลิกที่ “การกำหนดค่า” แท็บเพื่ออนุญาตสิทธิ์สำหรับ Secret Manager:

คลิกที่ “สิทธิ์” ตัวเลือกจาก “การกำหนดค่า” แท็บ ซึ่งจะแสดงข้อความ “ บทบาทการดำเนินการ” อินเทอร์เฟซและคลิกที่ลิงค์ต่อไปนี้ใต้ “ชื่อบทบาท” สนาม:

ใน “นโยบายการอนุญาต” ส่วนให้คลิกที่ “เพิ่มการอนุญาต” ปุ่ม. จากเมนูแบบเลื่อนลง คลิกที่ “แนบนโยบาย” ตัวเลือก:

ใน “นโยบายการอนุญาตอื่นๆ” ค้นหาและเลือกส่วน “ผู้จัดการความลับอ่านเขียน” ตัวเลือก. ตี “เพิ่มการอนุญาต” ปุ่ม:

นโยบายนี้ได้รับการแนบและกำหนดค่าเรียบร้อยแล้ว:

ขั้นตอนที่ 4: ตรวจสอบการเข้าถึงข้อมูลลับ

ตอนนี้ไปที่อินเทอร์เฟซแดชบอร์ด Lambda คลิกที่ 'ทดสอบ' แท็บ:

ในอินเทอร์เฟซถัดไป ให้ระบุชื่อสำหรับเหตุการณ์การทดสอบใน “ชื่อกิจกรรม” สนาม. คลิกที่ 'บันทึก' ปุ่มเพื่อใช้การกำหนดค่า:

ที่นี่การทดสอบได้รับการกำหนดค่าเรียบร้อยแล้ว คลิกที่ 'ทดสอบ' ปุ่ม:

ที่นี่เราจะคลิกที่ 'ทดสอบ' อีกครั้ง และจะแสดงผลลัพธ์ต่อไปนี้:

นั่นคือทั้งหมดจากคู่มือนี้

บทสรุป

ในการจัดการข้อมูลลับใน Secret Manager ให้สร้างคลัสเตอร์ RDS แนบคลัสเตอร์นั้นกับ Secret Manager จากนั้นรันโค้ดนั้นในฟังก์ชัน Lambda ที่กำหนดค่าไว้ ฟังก์ชัน Lambda จะกำหนดว่าสามารถเข้าถึงข้อมูลลับได้หรือไม่โดยการรันโค้ดในนั้นซึ่งมีข้อกำหนดเฉพาะของคลัสเตอร์ RDS บทความนี้เป็นคำแนะนำทีละขั้นตอนในการจัดการข้อมูลลับโดยใช้ AWS Secret Manager และ RDS