Menggunakan Banyak Akun AWS di Satu Komputer
Dalam praktik sehari-hari, sangat umum bagi seorang software engineer atau DevOps untuk mengelola lebih dari satu akun AWS dari satu komputer. Contohnya:
- Akun development untuk eksperimen dan development
- Akun staging untuk testing sebelum rilis
- Akun production untuk sistem live
- Akun klien yang terpisah
Tanpa konfigurasi yang rapi, risiko terbesar adalah menjalankan perintah di akun yang salah, yang bisa berujung pada kesalahan fatal (misalnya menghapus resource production).
Untungnya, AWS CLI menyediakan mekanisme profile yang memungkinkan kita menggunakan banyak akun AWS secara aman dan terstruktur dalam satu komputer.
Konsep Dasar AWS Profile
AWS CLI menyimpan konfigurasi dalam dua file utama:
~/.aws/credentials→ menyimpan Access Key & Secret Key~/.aws/config→ menyimpan region, output, dan pengaturan tambahan
Dengan menggunakan profile, kita bisa menyimpan banyak kredensial AWS dan memilih akun mana yang aktif saat menjalankan perintah.
Contoh Konfigurasi credentials
Misalkan kita memiliki tiga akun AWS berbeda: default, staging, dan production.
Isi file ~/.aws/credentials:
[default]
aws_access_key_id = AKIADEFAULTEXAMPLE
aws_secret_access_key = secretdefaultkey
[staging]
aws_access_key_id = AKIASTAGINGEXAMPLE
aws_secret_access_key = secretstagingkey
[production]
aws_access_key_id = AKIAPRODEXAMPLE
aws_secret_access_key = secretproductionkey
Penjelasan
defaultakan digunakan jika tidak ada profile yang ditentukan- Profile lain hanya aktif jika dipanggil secara eksplisit
Mengatur Region di File config
Agar setiap akun menggunakan region yang sesuai, kita dapat mengatur file ~/.aws/config:
[default]
region = us-west-2
output = json
[profile staging]
region = us-east-1
output = json
[profile production]
region = ap-southeast-1
output = json
⚠️ Perhatikan bahwa pada file config, nama profile harus diawali dengan kata profile.
Mengaktifkan Profile AWS
Menggunakan Variabel Lingkungan (Direkomendasikan)
macOS / Linux:
export AWS_PROFILE=staging
Windows (PowerShell):
$Env:AWS_PROFILE="staging"
Setelah ini, semua perintah AWS CLI akan otomatis menggunakan akun staging.
Contoh Penggunaan AWS CLI dengan Profile
Melihat daftar S3 bucket
aws s3 ls --profile staging
Menggunakan profile lewat environment
export AWS_PROFILE=production
aws iam list-users
Catatan: Kamu tidak bisa menjalankan dua profile aktif sekaligus dalam satu command. Profile harus ditentukan per command atau lewat environment variable.
Menggunakan Multiple AWS Account di Kode Aplikasi
Contoh di Node.js
const AWS = require('aws-sdk');
const credentials = new AWS.SharedIniFileCredentials({
profile: 'staging',
});
AWS.config.credentials = credentials;
const s3 = new AWS.S3();
Dengan konfigurasi ini, aplikasi akan selalu menggunakan akun AWS staging.
Best Practice
Gunakan Nama Profile yang Konsisten
Contoh penamaan yang aman:
devstagingprod
Hindari nama ambigu agar tidak salah konteks.
Hindari Hardcode Kredensial
Jangan pernah menyimpan Access Key langsung di kode. Selalu gunakan:
- AWS Profile
- AWS SSO
- Assume Role (IAM Role)
Pertimbangkan AWS SSO & Assume Role
Untuk tim besar atau banyak akun:
- AWS SSO → login sekali, akses banyak akun
- AssumeRole → akses lintas akun tanpa menyimpan banyak access key
Ini jauh lebih aman dan scalable.
Kesimpulan
Menggunakan multiple AWS account dalam satu komputer adalah kebutuhan umum dan sudah difasilitasi dengan baik oleh AWS melalui mekanisme profile.
Dengan konfigurasi yang benar:
- ✅ Risiko salah akun bisa diminimalkan
- ✅ Workflow lebih rapi dan aman
- ✅ Tidak perlu login–logout berulang kali
Jika kamu bekerja dengan banyak environment atau klien, AWS profile adalah setup wajib yang seharusnya ada sejak awal proyek.