การซื้อบัญชีองค์กร AWS: ใช้ AWS KMS (บริการจัดการคีย์) เพื่อทำการเข้ารหัสถังเก็บข้อมูล S3และ EBS บนคลาวด์
ในการประมวลผลแบบคลาวด์และสถาปัตยกรรมระดับองค์กร "ความปลอดภัยของข้อมูล" เป็นเส้นสีแดงที่ไม่สามารถหลีกเลี่ยงได้เสมอเมื่อหลายทีมย้ายธุรกิจไปที่ AWS เป็นครั้งแรกพวกเขามักจะมุ่งเน้นไปที่ไฟร์วอลล์เครือข่าย (กลุ่มรักษาความปลอดภัย ACL) เท่านั้นแต่ไม่สนใจขั้นตอนสุดท้ายของการป้องกัน-
การเข้ารหัสข้อมูลแบบคงที่ (Encryption at Rest)
。
ลองนึกภาพ: หากแฮ็กเกอร์ข้ามเครือข่ายอุปกรณ์ต่อพ่วงหรือพนักงานที่ลาออกคัดลอกสแนปชอตฮาร์ดไดรฟ์บนคลาวด์ EBS ของคุณโดยตรงด้วยวิธีการบางอย่างหรือสัญญาที่เป็นความลับในถังเก็บข้อมูล S3ของคุณรั่วไหลโดยไม่ได้ตั้งใจหากข้อมูลเป็นข้อความธรรมดาหากจัดเก็บไว้บริษัทจะต้องเผชิญกับหายนะโดยตรง
ในระบบนิเวศการรักษาความปลอดภัยของ AWS ส่วนประกอบจิตวิญญาณที่ใช้เป็นพิเศษเพื่อควบคุมคีย์การเข้ารหัสทั้งหมดและตระหนักถึง "การเข้ารหัสเมื่อข้อมูลลงจอด" เรียกว่า
Amazon KMS(Key Management Service, บริการจัดการคีย์)
。
วันนี้เราจะไม่พูดถึงสูตรการเข้ารหัสที่คลุมเครือเริ่มต้นจากการต่อสู้จริงมือจะพาคุณไปใช้ AWS KMS เพื่อให้สินทรัพย์จัดเก็บข้อมูลหลักสองรายการขององค์กร-
ถังเก็บ S3
กับ
ฮาร์ดไดรฟ์ EBS Cloud
, เชื่อมแนวป้องกัน "การเข้ารหัสด้วยปุ่มเดียว" ที่ไม่สามารถทำลายได้
ขั้นตอนแรก: ทุบด้านล่างทำความเข้าใจเทคโนโลยีสีดำ "การเข้ารหัสซองจดหมาย" ของ KMS
ก่อนที่จะกำหนดค่าคุณต้องเข้าใจวิธีเล่นรหัสผ่านที่ด้านล่างของ AWS มิฉะนั้นคุณจะตาบอดเมื่อคุณเลือกคีย์ในภายหลังแกน KMS ใช้
"การเข้ารหัสซองจดหมาย (Envelope Encryption)"
กลไก:
คีย์หลักของลูกค้า (KMS Key / CMK): นี่คือ "คีย์แม่" ของคุณ KMS มีหน้าที่รับผิดชอบในการสร้างและปกป้องภายในโมดูลความปลอดภัยของฮาร์ดแวร์เฉพาะ (HSM) ไม่มีใคร (รวมถึงคุณและเจ้าหน้าที่ AWS) สามารถดาวน์โหลดคีย์หลักนี้ลงในเครื่องได้
Data Key: เมื่อคุณต้องการเข้ารหัสไฟล์10GB คีย์หลักจะไม่เล่นโดยตรง KMS จะใช้คีย์หลักเพื่อรับ "คีย์ข้อมูล" แบบเรียลไทม์
บรรจุภัณฑ์และการจัดเก็บ: คีย์ข้อมูลมีหน้าที่ในการเข้ารหัสไฟล์หลังจากการเข้ารหัสเสร็จสิ้นข้อความธรรมดาของคีย์ข้อมูลจะถูกทำลายทันทีเหลือเพียงข้อความรหัสข้อมูลที่เข้ารหัสโดยคีย์หลักและวางไว้กับไฟล์ที่เข้ารหัส
ข้อสรุปด้านความปลอดภัยหลัก: นี่เหมือนกับการล็อคสร้อยคอล้ำค่าไว้ในตู้เซฟ (การเข้ารหัสข้อมูล) จากนั้นใส่กุญแจตู้เซฟลงในซองจดหมายขนาดเล็กจากนั้นล็อคซองจดหมายด้วยการล็อคขั้นสูง (คีย์หลัก) หากไม่ได้รับอนุญาตจากคีย์หลักใครก็ตามที่ได้รับฮาร์ดไดรฟ์พื้นฐานหรือไฟล์ S3จะเห็นอักขระที่อ่านไม่ออกผิดปกติ
ขั้นตอนที่สอง: การฝึกซ้อมการต่อสู้จริง-ล็อคถังเก็บ S3ด้วยปุ่มเดียว
ถังเก็บข้อมูล S3มักใช้เพื่อจัดเก็บรูปภาพของบริษัทเอกสารประจำตัวที่ละเอียดอ่อนหรืองบการเงินที่อัปโหลดโดยผู้ใช้ในอดีตการเข้ารหัส S3จำเป็นต้องพัฒนาตรรกะการเข้ารหัสที่ซับซ้อนในการเขียนโค้ดตอนนี้ AWS อยู่ที่ด้านล่าง
เลเยอร์บรรลุ "การเข้ารหัสแบบไม่ใช้เซ็นเซอร์ในคลิกเดียว"
1.เข้าใจความแตกต่างระหว่างคีย์ทั้งสอง
เมื่อกำหนดค่าการเข้ารหัส S3คอนโซลจะให้คุณเลือกหนึ่งในสอง:
AWS โฮสติ้งคีย์ (aws/s3): ฟรี AWS จะช่วยคุณจัดการโดยอัตโนมัติข้อเสียคือไม่สามารถอนุญาตข้ามบัญชีได้และคุณไม่สามารถควบคุมกลยุทธ์การหมุนเวียนได้
คีย์การจัดการลูกค้า (SSE-KMS): มาตรฐานระดับองค์กรสร้างโดยคุณใน KMS สนับสนุนการควบคุมสิทธิ์ IAM แบบละเอียดและการตรวจสอบพฤติกรรม CloudTrail ที่สมบูรณ์แบบ
2.การเข้ารหัสเชื่อมโยงไปถึง S3การสื่อสารความเร็วสามขั้นตอน
ลงชื่อเข้าใช้คอนโซล AWS เข้าสู่บริการ KMS คลิก "Create Key" เลือก "Symmetric Key" ตั้งชื่อ Company-S3-Key และสร้างขั้นตอนต่อไปให้เสร็จสมบูรณ์
เปลี่ยนเป็นคอนโซล S3และคลิกเพื่อเข้าสู่ถังเก็บข้อมูลที่คุณจัดเก็บข้อมูลหลัก
คลิกที่แท็บ "Properties" เลื่อนลงเพื่อค้นหา "Default encryption" คลิกแก้ไข: ประเภทการเข้ารหัส: เลือก "ใช้คีย์บริการการจัดการ AWS เริ่มต้น (SSE-KMS)" คีย์ KMS: เลือก "เลือกจากคีย์ KMS ที่คุณมีอยู่" เพื่อเลือก Company-S3-Key ที่คุณเพิ่งสร้างขึ้น Bucket Key: เลือก "เปิดใช้งาน" คู่มือการประหยัดเงินและพลังงานสูงเพื่อหลีกเลี่ยงหลุม: หาก S3ของคุณมีการอ่านและเขียนหลายล้านครั้งต่อวันการเคาะประตู KMS บ่อยๆจะทำให้เกิดค่าธรรมเนียมคำขอ KMS จำนวนมากหลังจากเปิด "Bucket Key" S3จะแคชคีย์ชั่วคราวที่ระดับบาร์เรลและช่วยคุณตัดบิลข้อมูล KMS ได้มากกว่า90% โดยตรง
คลิกบันทึกจากนั้นไฟล์ใดๆที่อัปโหลดไปยังถังนี้ผ่านคอนโซลหรือ API จะถูกเข้ารหัสโดยอัตโนมัติในขณะที่วางดิสก์และเมื่อคุณดาวน์โหลดไฟล์ด้วยแอปแบ็คเอนด์ที่ได้รับอนุญาต S3จะค้นหา KMS ในพื้นหลังโดยอัตโนมัติเพื่อถอดรหัส
การปรับเปลี่ยนโค้ดฝั่งแอปพลิเคชันเป็นศูนย์โดยไม่รู้สึกเลย
。
ขั้นตอนที่สาม: การฝึกซ้อมการต่อสู้จริง2-การเข้ารหัสทั่วโลกของฮาร์ดดิสก์บนคลาวด์ EBS และสแนปชอต
ฮาร์ดดิสก์บนคลาวด์ EBS (เทียบเท่ากับไดรฟ์ C และ D ของเซิร์ฟเวอร์) ที่ติดตั้งบนเซิร์ฟเวอร์ EC2มีระบบปฏิบัติการข้อมูลฐานข้อมูลและบันทึกแอปพลิเคชันของคุณ
1.สถานการณ์ A: การเข้ารหัสด้วยคลิกเดียวเมื่อซื้อเซิร์ฟเวอร์ใหม่
เมื่อซื้ออินสแตนซ์ EC2 Configuration Storage (Storage) ให้ขยายตัวเลือกขั้นสูง:
ทำเครื่องหมาย "Encryption"
คีย์เลือกคีย์ KMS ที่คุณกำหนดเองด้วยวิธีนี้ตั้งแต่วันที่เซิร์ฟเวอร์ถือกำเนิดดิสก์ระบบทั้งหมดจะอยู่ในสถานะการเข้ารหัสทางกายภาพ
2.ฉาก B: ฮาร์ดไดรฟ์ข้อความธรรมดาเก่าจะถูกเข้ารหัสกลางคันได้อย่างไร?
AWS ไม่อนุญาตให้ "เข้ารหัสในแหล่งกำเนิด" โดยตรงกับฮาร์ดไดรฟ์ EBS แบบข้อความธรรมดาที่มีอยู่หากคุณมีดิสก์ข้อมูลข้อความธรรมดาที่ทำงานมาครึ่งปีแล้ว
จะเข้ารหัสอย่างปลอดภัยได้อย่างไร? เราใช้ "วิธีการกระโดดสแนปชอต"
กระบวนการปฏิบัติงานมาตรฐานระดับสูงสุดสำหรับการดำเนินงานและบำรุงรักษา:
ถ่ายภาพ: ในหน้าอินสแตนซ์ EC2ให้เลือกฮาร์ดดิสก์ข้อความธรรมดาและคลิกการดำเนินการ-> "สร้างสแนปชอต"
สำเนาเอกสารการสอบข้าม (การเข้ารหัสแบบฉีด): ไปที่ "รายการสแนปชอต" เพื่อค้นหาสแนปชอตที่สร้างขึ้นใหม่คลิกการดำเนินการ-> "คัดลอกสแนปชอต" ในหน้าต่างป๊อปอัปให้เลือก "เข้ารหัสสแนปชอลนี้" และเลือกคีย์การจัดการลูกค้า KMS ของคุณคลิกคัดลอก AWS จะคัดลอกข้อมูลที่ด้านล่างในขณะที่ใช้คีย์ KMS ของคุณเพื่อรวบรวมสแนปชอตใหม่
กู้คืนดิสก์ใหม่จากสแนปชอตที่เข้ารหัส: เลือกสแนปชอตใหม่ที่คัดลอกด้วยคำว่า "เข้ารหัส" แล้วคลิกการดำเนินการ-> "สร้างไดรฟ์ข้อมูลจากสแนปชอต" ถอนการติดตั้งฮาร์ดไดรฟ์ข้อความธรรมดาเดิมจากเซิร์ฟเวอร์ (Detach) และติดตั้งฮาร์ดไดรฟ์ใหม่ที่เข้ารหัสด้วยเลือดเต็มนี้
งานเสร็จสมบูรณ์เซิร์ฟเวอร์ทั้งหมดทำการอัปเกรดทางกายภาพจากข้อความธรรมดาเป็นไซเวิร์เท็กซ์โดยไม่รู้ตัวและข้อมูลก็ไม่เสียหาย
ขั้นตอนที่สี่: การเล่นเกมระดับไฮเอนด์ระดับโรงงานขนาดใหญ่-เปิด "กฎเหล็กของการเข้ารหัสที่บังคับ" ในระดับบัญชี
ในฐานะหัวหน้าสถาปนิกสิ่งที่คุณกลัวที่สุดต้องเป็น: "แม้ว่าฉันจะกำหนดข้อกำหนดด้านความปลอดภัยไว้แล้วแต่แผนการพัฒนาใหม่ของฉันก็ช่วยประหยัดปัญหาได้เมื่อสร้างเซิร์ฟเวอร์ใหม่หรือถังเก็บข้อมูลใหม่ฉันลืมตรวจสอบการเข้ารหัสซึ่งทำให้ปลาที่หลุดลอดตาข่ายในที่สาธารณะสตรีทออนไลน์”
AWS มีกลยุทธ์การป้องกันทั่วโลกที่สามารถกำจัดอันตรายที่ซ่อนอยู่นี้ได้จากแหล่งที่มา:
1.เปิดการเข้ารหัสอัตโนมัติทั่วโลก EBS
ทางด้านขวาของคอนโซล EC2คลิก
"การตั้งค่าข้อมูล"-> "การตั้งค่า EC2"-> "การเข้ารหัสโดยค่าเริ่มต้น"
。
ติ๊กเปิดใช้งานและระบุคีย์ KMS เริ่มต้นของคุณหลังจากเปิดสวิตช์นี้
ในภูมิภาคนี้แม้ว่าใครก็ตามที่พลาดหรือลืมเข้ารหัส AWS จะบังคับให้มีการเข้ารหัสเต็มรูปแบบบนฮาร์ดไดรฟ์ EBS ที่สร้างขึ้นใหม่ทั้งหมดที่ด้านล่าง
ปฏิเสธที่จะสร้างโดยไม่ต้องเข้ารหัส
2.เขียน S3กลยุทธ์ถังเก็บ (Bucket Policy) สำหรับการป้องกันทางกายภาพ
ใน "สิทธิ์" ของถังเก็บข้อมูล S3ให้วางกลยุทธ์ต่อไปนี้ตรรกะของมันคือ:
ตราบใดที่คุณพบว่าไม่มีส่วนหัวของคำขอเข้ารหัสในคำขออัปโหลด (นั่นคือคุณต้องการส่งไฟล์ข้อความ) คุณจะถูกปฏิเสธโดยไม่มีเงื่อนไข (Deny)
:
JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyUnencryptedObjectUploads",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3 ::: ของคุณ
ชื่อถังเก็บ/* ",
"Condition": {
"StringNotEquals": {
"S3: x-amz-server-side-encryption": "aws:kms"
}
}
}
]
}
ขั้นตอนที่ห้า: ประวัติเลือดและน้ำตาของการหลีกเลี่ยง陷阱ในการปฏิบัติการและบำรุงรักษาประจำวัน
อย่าลบคีย์โดยไม่ได้ตั้งใจนั่นคือพฤติกรรมการฆ่าตัวตาย: เพื่อป้องกันการลบคีย์การจัดการลูกค้า KMS โดยไม่ได้ตั้งใจเมื่อคุณคลิกลบระบบจะไม่ลบทันทีแต่จะบังคับให้เข้าสู่7ถึง30วัน "กำลังรอการลบระยะเวลาการแยก". คำเตือนเลือดและน้ำตา: หากไม่มีใครจับมันในช่วงเวลานี้เมื่อคีย์ถูกทำลายจริงจะไม่มีใครในโลกสามารถดึงไฟล์ S3ที่เข้ารหัสและฮาร์ดไดรฟ์ EBS ได้! แม้แต่การหาผู้เชี่ยวชาญด้านความปลอดภัยชั้นนำที่สำนักงานใหญ่ของ AWS ก็ไม่ช่วยอะไรดังนั้นคีย์ KMS ของสภาพแวดล้อมการผลิตจะต้องมาพร้อมกับสิทธิ์ IAM ซึ่งติดขัด kms:ScheduleKeyDeletion
การหมุนคีย์อัตโนมัติของคีย์ KMS: เพื่อจัดการกับการตรวจสอบการปฏิบัติตามข้อกำหนด (เช่นการรับรอง PCI-DSS ระดับการเงิน) เมื่อสร้างคีย์อย่าลืมตรวจสอบ "การหมุนคีย์นี้โดยอัตโนมัติ" AWS จะช่วยให้คุณได้รับคีย์หลักเวอร์ชันใหม่โดยอัตโนมัติทุกปีในพื้นหลังเพื่อเข้ารหัสข้อมูลใหม่ในขณะที่เวอร์ชันเก่าใช้เพื่อถอดรหัสข้อมูลเก่ากระบวนการทั้งหมดยังไม่ส่งผลกระทบต่อธุรกิจใดๆและดำเนินการโดยอัตโนมัติ
สรุป
การใช้ AWS KMS สำหรับการเข้ารหัสข้อมูลแบบคงที่เสน่ห์ที่ยิ่งใหญ่ที่สุดอยู่ที่ "ฮาร์ดคอร์มากที่ด้านล่างและคนโง่เพียงคลิกเดียวบนพื้นผิว" ด้วยค่าธรรมเนียมการโฮสต์คีย์ KMS ที่ต่ำมากและเทคโนโลยีการประหยัดเงินคีย์ S3 Bucket คุณสามารถใส่ฮาร์ดไดรฟ์และดิสก์เครือข่ายทั้งหมดของบริษัทด้วยชุดเกราะที่แม้แต่แฮกเกอร์ก็ทำอะไรไม่ถูกในช่วงบ่ายการรักษาความปลอดภัยไม่ได้เกี่ยวกับความโชคดีถือความโดดเด่นไว้ในมือของคุณเองและเข้ารหัสรหัสเมื่อคุณลงจอดจากนั้นไม่ว่าคุณจะพบการตรวจสอบการปฏิบัติตามข้อกำหนดใดๆคุณก็สามารถมีเสถียรภาพได้
