การเข้ารหัสข้อมูลผู้ใช้ AWS EC2

Aug 18 2020

เรามีกรณีการป้อนข้อมูลซึ่งรวมถึงรหัสผ่านจากผู้ใช้และส่งต่อไปยังอินสแตนซ์ EC2 จากด้วยในอินสแตนซ์ Ec2 เราเข้าสู่ URL -http://169.254.169.254/latest/user-data/ และรับข้อมูลผู้ใช้และตั้งรหัสผ่านที่เหมาะสม

ปัญหาคือข้อมูลผู้ใช้สามารถมองเห็นได้โดยเครื่องมือ AWS CLI:

aws ec2 describe-instance-attribute --instance-id --attribute userData --output text --query "UserData.Value" | base64 --decode

สิ่งนี้ทำให้เกิดความเสี่ยงด้านความปลอดภัยอย่างมาก

วิธีใดเป็นวิธีที่ดีที่สุดในการส่งข้อมูลที่ละเอียดอ่อน / ลับ

ฉันพยายามสร้างคู่คีย์ซึ่งสร้างคีย์ส่วนตัวบนอินสแตนซ์ท้องถิ่นและคีย์สาธารณะบน EC2 วิธีใดคือวิธีที่ถูกต้องในการเข้ารหัส / ถอดรหัสโดยใช้ PowerShell และดึงกลับมาใน EC2

คำตอบ

1 ChrisWilliams Aug 18 2020 at 00:39

แนวทางที่แนะนำคือการจัดเก็บความลับใด ๆ ในแหล่งภายนอก

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

หรือคุณสามารถใช้บริการAWS SSM Parameter Storeโดยจัดเก็บความลับเป็นประเภทSecureString สิ่งนี้จะทำงานคล้ายกับตัวจัดการความลับโดยคุณดึงข้อมูลลับผ่าน AWS CLIแล้วใช้ในสคริปต์ของคุณ

นอกจากนี้ยังมีโซลูชันของบุคคลที่สามเช่นHashicorp Vaultที่มีฟังก์ชันการทำงานที่คล้ายคลึงกันหากคุณไม่ต้องการเก็บความลับของคุณไว้ในโซลูชัน AWS