Enkripsi data pengguna AWS EC2
Kami memiliki kasus penggunaan untuk mengambil input yang mencakup kata sandi dari pengguna dan meneruskannya ke instans EC2. Dari dengan dalam contoh Ec2 kami menekan URL -http://169.254.169.254/latest/user-data/ dan dapatkan data pengguna dan setel sandi yang sesuai.
Masalahnya adalah data pengguna terlihat oleh alat AWS CLI:
aws ec2 describe-instance-attribute --instance-id --attribute userData --output text --query "UserData.Value" | base64 --decode
Ini menimbulkan risiko keamanan yang sangat besar.
Apa cara terbaik untuk mengirim data sensitif / rahasia?
Saya mencoba membuat pasangan kunci, yang membuat kunci pribadi pada instans lokal dan kunci publik di EC2. Apa cara yang benar untuk mengenkripsi / mendekripsi menggunakan PowerShell dan mengambilnya kembali di EC2?
Jawaban
Pendekatan yang disarankan adalah menyimpan rahasia apa pun di sumber eksternal.
AWS memiliki layanan untuk menyimpan rahasia, Manajer Rahasia . Dengan menggunakan layanan ini, Anda akan membuat rahasia yang berisi rahasia yang perlu diakses instance Anda di data penggunanya. Kemudian berikan instance Anda peran IAM dengan hak istimewa untuk mendapatkan nilai rahasia, melalui AWS CLI .
Sebagai alternatif, Anda juga dapat menggunakan layanan AWS SSM Parameter Store , menyimpan rahasia sebagai jenis SecureString . Ini akan bekerja mirip dengan pengelola rahasia dengan Anda mengambil rahasia melalui AWS CLI dan kemudian menggunakannya di skrip Anda.
Ada juga solusi pihak ketiga seperti Hashicorp Vault yang menyediakan fungsionalitas serupa jika Anda tidak ingin menyimpan rahasia Anda dalam solusi AWS.