การเข้ารหัสข้อมูลผู้ใช้ AWS EC2
เรามีกรณีการป้อนข้อมูลซึ่งรวมถึงรหัสผ่านจากผู้ใช้และส่งต่อไปยังอินสแตนซ์ 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
คำตอบ
แนวทางที่แนะนำคือการจัดเก็บความลับใด ๆ ในแหล่งภายนอก
AWS มีบริการสำหรับการจัดเก็บความลับเป็นผู้จัดการลับ เมื่อใช้บริการนี้คุณจะสร้างความลับที่มีความลับซึ่งอินสแตนซ์ของคุณจะต้องเข้าถึงในข้อมูลผู้ใช้ แล้วให้อินสแตนซ์มีบทบาท IAM ที่มีสิทธิ์จะได้รับค่าความลับผ่านทาง AWS CLI
หรือคุณสามารถใช้บริการAWS SSM Parameter Storeโดยจัดเก็บความลับเป็นประเภทSecureString สิ่งนี้จะทำงานคล้ายกับตัวจัดการความลับโดยคุณดึงข้อมูลลับผ่าน AWS CLIแล้วใช้ในสคริปต์ของคุณ
นอกจากนี้ยังมีโซลูชันของบุคคลที่สามเช่นHashicorp Vaultที่มีฟังก์ชันการทำงานที่คล้ายคลึงกันหากคุณไม่ต้องการเก็บความลับของคุณไว้ในโซลูชัน AWS