AWS IAM Key merupakan salah satu alat yang digunakan untuk berinteraksi dengan AWS API. Biasanya di AWS, IAM user entah itu user yang akan digunakan untuk human-to-machine interaction atau machine-to-machine interaction diberikan akses ke AWS Key yang terdiri dari AWS Access Key dan AWS Secret Key.
Secara keamanan, IAM key ini sebaiknya dirotasi misalkan setiap 90 hari. Tujuannya adalah untuk meminimalisir celah keamanan, misalkan tidak sengaja ada yang ter-expose. Karena dengan IAM key ini, setiap orang yang memiliki key tersebut dapat mengakses AWS API sesuai dengan privilege dari AWS key tersebut dan kita tidak ingin orang tidak berkepentingan mengakses akun AWS kita.
Melalui blogpost ini, saya ingin memperkenalkan sebuah tools yang dapat digunakan untuk melakukan pengecekan atau notifikasi terkait AWS IAM key yang umurnya sudah lebih dari waktu yang ditentukan. Tools ini bernama kuncen-aws-iam
Prasyarat
Untuk menjalankan kuncen-aws-iam, mohon siapkan hal berikut:
- Docker Engine yang sudah ter-install atau berjalan
- Pull lanandra/steampipe-container-agent container image. Container image ini akan menjalankan Steampipe untuk melakukan query ke AWS IAM API
- Memiliki AWS API credentials (misalkan: AWS Access Key dan AWS Secret Key) yang memiliki privilege ke AWS IAM service
Cara Menggunakan
-
Clone source code kuncen-aws-iam
-
Dari terminal anda, export AWS credentials (AWS_ACCESS_KEY_ID & AWS_SECRET_ACCESS_KEY)
export AWS_ACCESS_KEY_ID="AWS_ACCESS_KEY_ID"
export AWS_SECRET_ACCESS_KEY="AWS_SECRET_ACCESS_KEY"
- Masuk ke directory dimana kuncen-aws-iam berada. Kemudian jalankan script
cd path/to/kuncen-aws-iam/
./kuncen-aws-iam.sh
- Atau jika anda ingin kuncen-aws-iam berjalan dimanapun di terminal anda, silahkan buat symlink untuk script di atas. Contoh:
sudo ln -s path/to/kuncen-aws-iam/kuncen-aws-iam.sh /usr/local/bin/kuncen-aws-iam
- Contoh hasil output kuncen-aws-iam
Catatan
- Secara default, kuncen-aws-iam akan menampilkan output IAM key age yang sudah melebihi 90 hari. Namun, jika anda perlu merubah waktu intervalnya, anda dapat merubahnya dengan mendefinisikan environment variable seperti cara berikut:
export KUNCEN_AWS_IAM_INTERVAL=int
example:
export KUNCEN_AWS_IAM_INTERVAL=180
- kuncen-aws-iam menggunakan Steampipe untuk melakukan query ke AWS IAM API. Secara default Steampipe menampilkan query dengan format output table. Namun Steampipe memiliki alternatif format output diantaranya: line, csv, json or table. Jika anda memerlukan format output selain table, anda dapat mendefinisikan environment variable berikut:
export KUNCEN_AWS_IAM_OUTPUT=string
example:
export KUNCEN_AWS_IAM_OUTPUT=json
Contoh output:
Kesimpulan
- IAM key sebaiknya dirotasi untuk melakukan pencegahan celah keamanan
- kuncen-aws-iam dapat membantu mengidentifikasi IAM key yang umurnya sudah melebihi dari threshold misalkan lebih dari 90 hari
Tinggalkan Balasan