Menggunakan Banyak Akun AWS di Satu Komputer
3 min read

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

  • default akan 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:

  • dev
  • staging
  • prod

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.