Menyimpan kredensial AWS dengan aman di mesin pribadi

10

Bagaimana saya bisa menyimpan kredensial AWS dengan aman di mesin pribadi?

Secara terperinci:

Semua orang di tim kami membutuhkan kredensial keamanan AWS untuk melakukan tugas administratif (kredensial dipisahkan oleh peran). Kredensial ini biasanya disimpan dalam plaintext di beberapa file konfigurasi pada disk. Saya pikir ini sangat tidak aman, terutama mengingat kredensial dibagikan kepada anggota tim, berakhir di cadangan dll.

Saya lebih suka menyimpan kredensial ini dalam bentuk terenkripsi (mirip dengan kunci ssh, misalnya). Apakah ada cara otomatis untuk melakukannya? Atau apakah saya perlu meretas beberapa skrip bash yang digunakan misalnya openssl untuk mengenkripsi data?

Ada banyak informasi di web tentang cara mengamankan kredensial pada instance EC2. Bahkan ada fungsi peran IAM Amazon ini , tetapi juga berlaku hanya untuk EC2.

arnuschky
sumber
1
Ini adalah pertanyaan yang bagus dan saya sangat tertarik dengan jawabannya.
ceejayoz

Jawaban:

4

https://github.com/realestate-com-au/credulous mungkin perlu diselidiki. Dari deskripsi proyek:

kredibel adalah alat baris perintah yang mengelola Kredensial AWS (IAM) dengan aman . Tujuannya adalah untuk mengenkripsi kredensial menggunakan pengguna publik SSH Key sehingga hanya pengguna yang memiliki yang sesuai kunci SSH swasta mampu melihat dan menggunakannya. Selanjutnya alat ini juga akan memungkinkan pengguna untuk dengan mudah memutar identitasnya saat tanpa melanggar pengguna alur kerja saat ini.

Ada artikel blog pengantar di http://techblog.realestate.com.au/protecting-your-aws-keys-with-credulous/ .

mvermaes
sumber
Luar biasa, ini persis apa yang saya cari (dan apa yang tidak bisa saya temukan sendiri ...)
arnuschky
Lihat juga github.com/99designs/aws-vault
Yves M.
4

Pertanyaan yang bagus - dan tergantung pada orang yang menjawab, Anda mungkin akan memiliki beberapa rute untuk ditempuh. Saya akan memberi Anda contoh apa yang kami gunakan:

  1. Buat peran IAM berdasarkan pengguna (pengembang, infrastruktur, keamanan, audit, dll) - sesuaikan kebijakan untuk mengizinkan atau menolak tindakan spesifik berdasarkan akses pengguna.

Contoh: izinkan semua tindakan EC2 untuk administrator. Atau hanya izinkan akses berdasarkan tag atau subnet untuk pengembang, dll.

  1. Luncurkan instance ec2 Linux menggunakan peran IAM tertentu. Luncurkan instance untuk setiap peran atau pengguna tertentu (sesuaikan ukuran / jenis instance sesuai dengan kebutuhan, anggaran, dll)

  2. Konfigurasikan grup keamanan untuk setiap instance untuk hanya membolehkan subnet atau IP individu tertentu, sehingga Anda dapat mengunci masuknya lalu lintas ke SSH.

  3. Tetapkan pengguna khusus / kata sandi untuk SSH atau bergabung ke domain.

  4. Mintalah setiap pengguna masuk atau SSH ke instance Linux ditugaskan untuk peran atau akses pengguna mereka.

  5. Kunci dan akses API sekarang diwarisi dari peran IAM itu sendiri - membuat kebutuhan untuk menyimpan kunci pengguna menjadi tidak relevan. Pastikan untuk mengunci grup keamanan, hanya berikan akses ke pengguna tertentu di kotak Linux. Pengguna harus dapat menulis skrip menggunakan AWS API / menggunakan fungsionalitas API tools seperti biasa.

Kami telah menggunakan metode ini selama sekitar satu tahun sekarang - dengan tweak keamanan tambahan, seperti waktu akses sewaan, dibeli di AWS HSM dan ini bekerja dengan baik.

Semoga ini bisa membantu Anda atau orang lain di luar sana.

Scott Moore
sumber
Ide bagus, terima kasih! Tidak memikirkan itu. Tidak ada pilihan bagi kami saat ini karena biaya yang terlibat, tetapi saya akan mengingatnya.
arnuschky