0Pricing
AWS Solutions Architect · Pelajaran

Skenario Arsitektur Aman

Kerjakan pertanyaan skenario tentang hak akses paling rendah IAM, enkripsi, isolasi VPC, dan WAF/Shield untuk memperkuat pengetahuan domain keamanan Anda.

Skenario Arsitektur Aman adalah pelajaran AWS Solutions Architect gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AWS Solutions Architect, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AWS Solutions Architect mencakup 4 pelajaran total.

Skenario 1: Akses EC2 ke S3 dengan Hak Minimum

Skenario: Sebuah instans EC2 menjalankan aplikasi web yang perlu membaca objek dari bucket S3 tertentu. Tim keamanan mengharuskan agar tidak ada kredensial jangka panjang yang disimpan di instans dan akses mengikuti prinsip hak minimum. Solusi: Buat peran IAM dengan kebijakan yang hanya mengizinkan s3:GetObject pada ARN bucket tertentu. Lampirkan peran tersebut ke instans EC2 sebagai profil instans. Aplikasi menggunakan layanan metadata instans (IMDS) untuk mengambil kredensial sementara secara otomatis — tidak diperlukan kunci yang disimpan.

# IAM policy for least-privilege EC2 -> S3 read
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Action': ['s3:GetObject'],
    'Resource': 'arn:aws:s3:::my-app-bucket/*'
  }]
}

# Attach role to EC2 instance
aws ec2 associate-iam-instance-profile \
  --instance-id i-1234567890abcdef0 \
  --iam-instance-profile Name=EC2S3ReadRole

Skenario 2: Mengenkripsi Data dalam Basis Data RDS

Skenario: Sebuah perusahaan menyimpan PII pelanggan dalam basis data RDS PostgreSQL. Tim kepatuhan mengharuskan enkripsi saat data tersimpan, dengan kemampuan untuk mengaudit penggunaan kunci. Solusi: Aktifkan enkripsi RDS menggunakan AWS KMS dengan Customer Managed Key (CMK). CMK memungkinkan tim keamanan mengendalikan rotasi kunci, melihat penggunaan kunci di CloudTrail, dan mencabut akses bila diperlukan. Catatan: enkripsi harus diaktifkan saat pembuatan instans RDS — Anda tidak dapat mengenkripsi instans RDS yang sudah ada dan belum terenkripsi secara langsung. Untuk mengenkripsi basis data yang sudah ada, buat snapshot, salin snapshot tersebut dengan enkripsi diaktifkan, lalu pulihkan dari snapshot yang terenkripsi.

# Create an encrypted RDS instance
aws rds create-db-instance \
  --db-instance-identifier prod-postgres \
  --db-instance-class db.t3.medium \
  --engine postgres \
  --master-username admin \
  --master-user-password SecurePass123! \
  --storage-encrypted \
  --kms-key-id arn:aws:kms:us-east-1:123456789012:key/mrk-abc123 \
  --allocated-storage 100

Skenario 3: Bucket S3 — Memblokir Akses Publik

Skenario: Seorang pengembang tidak sengaja menjadikan bucket S3 dapat diakses publik sehingga data pelanggan terekspos. Tim keamanan ingin memastikan bahwa tidak ada bucket S3 dalam akun yang dapat dijadikan publik, meskipun seorang pengembang mencoba melakukannya. Solusi: Aktifkan S3 Block Public Access pada tingkat akun. Fitur ini mengesampingkan kebijakan atau ACL tingkat bucket apa pun yang memberikan akses publik, terlepas dari konfigurasi tiap tim. Gabungkan dengan aturan AWS Config (s3-bucket-public-read-prohibited) untuk terus mendeteksi dan memberi peringatan tentang bucket yang tidak mematuhi ketentuan.

# Block all public access at account level
aws s3control put-public-access-block \
  --account-id 123456789012 \
  --public-access-block-configuration \
    'BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true'

# Deploy Config rule to detect violations
aws configservice put-config-rule \
  --config-rule '{"ConfigRuleName": "s3-bucket-public-read-prohibited", "Source": {"Owner": "AWS", "SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"}}'

Skenario 4: Isolasi VPC untuk Tingkat Basis Data

Skenario: Sebuah perusahaan ingin memastikan bahwa basis data RDS hanya dapat diakses dari server aplikasinya dan tidak dari internet. Solusi: Tempatkan RDS dalam subnet privat tanpa rute ke gateway internet. Buat grup keamanan untuk RDS yang hanya mengizinkan lalu lintas masuk pada port 5432 (PostgreSQL) dari grup keamanan server aplikasi — bukan dari rentang alamat IP mana pun. Dengan demikian, meskipun server aplikasi disusupi, penyerang tidak dapat menjangkau basis data dari luar VPC, dan pergerakan lateral dibatasi oleh aturan grup keamanan.

# Create RDS security group allowing only the app tier SG as source
aws ec2 create-security-group \
  --group-name rds-sg \
  --description 'RDS security group' \
  --vpc-id vpc-abc123

aws ec2 authorize-security-group-ingress \
  --group-id sg-rds \
  --protocol tcp \
  --port 5432 \
  --source-group sg-app  # app tier security group ID only

Skenario 5: Merotasi Kredensial Basis Data

Skenario: Kode aplikasi saat ini menyimpan kredensial basis data secara langsung dalam berkas konfigurasi. Audit keamanan menandai hal ini sebagai risiko kritis. Solusi: Simpan kredensial di AWS Secrets Manager dan konfigurasikan rotasi otomatis (Secrets Manager memiliki fungsi Lambda bawaan untuk rotasi RDS). Perbarui aplikasi agar mengambil kredensial dari Secrets Manager saat berjalan menggunakan SDK. Aplikasi secara otomatis memperoleh kredensial baru tanpa penerapan apa pun setiap kali rotasi berlangsung. Aktifkan templat rotasi rahasia RDS untuk rotasi kredensial terkelola sepenuhnya tanpa waktu henti.

# Store RDS credentials in Secrets Manager
aws secretsmanager create-secret \
  --name prod/myapp/rds \
  --secret-string '{"username":"admin","password":"OldPass123!","host":"rds-endpoint.amazonaws.com","port":5432}'

# Enable automatic rotation every 30 days
aws secretsmanager rotate-secret \
  --secret-id prod/myapp/rds \
  --rotation-lambda-arn arn:aws:lambda:us-east-1:123:function:SecretsManagerRDSPostgreSQLRotationSingleUser \
  --rotation-rules AutomaticallyAfterDays=30

Skenario 6: Mendeteksi Aktivitas API yang Tidak Biasa

Skenario: Sebuah perusahaan ingin mendeteksi apakah kredensial akun AWS telah disusupi dan digunakan dari lokasi yang tidak terduga. Solusi: Aktifkan Amazon GuardDuty di semua Region. GuardDuty menganalisis peristiwa CloudTrail, VPC Flow Logs, dan log DNS menggunakan pembelajaran mesin untuk mendeteksi anomali: panggilan API dari wilayah geografis yang tidak biasa, pola penambangan Bitcoin pada EC2, komunikasi dengan node keluar Tor, atau pola pencurian kredensial. GuardDuty menghasilkan temuan yang dapat memicu aturan EventBridge untuk secara otomatis memberi tahu tim keamanan melalui SNS atau membuat tiket dukungan.

# Enable GuardDuty in a Region
aws guardduty create-detector \
  --enable \
  --finding-publishing-frequency FIFTEEN_MINUTES

# EventBridge rule to react to GuardDuty HIGH severity findings
aws events put-rule \
  --name guardduty-high-severity \
  --event-pattern '{
    "source": ["aws.guardduty"],
    "detail-type": ["GuardDuty Finding"],
    "detail": {"severity": [{"numeric": [">=", 7]}]}
  }'

Skenario 7: WAF untuk Memblokir Permintaan Berbahaya

Skenario: Aplikasi web yang berjalan di belakang ALB menerima serangan injeksi SQL. Aplikasi tersebut tidak dapat segera diubah. Solusi: Kaitkan AWS WAF dengan ALB. Terapkan grup aturan AWS Managed Rules for Common Threats (Core Rule Set + grup aturan SQL Database) yang mencakup deteksi injeksi SQL bawaan. WAF memeriksa permintaan HTTP sebelum mencapai ALB dan memblokir permintaan yang cocok dengan pola serangan — tidak diperlukan perubahan kode aplikasi. Aktifkan juga logging WAF ke Kinesis Firehose untuk analisis keamanan.

# Create WAF Web ACL with SQL injection protection
aws wafv2 create-web-acl \
  --name AppProtection \
  --scope REGIONAL \
  --default-action Allow={} \
  --rules '[{
    "Name": "AWSManagedRulesSQLiRuleSet",
    "Priority": 1,
    "Statement": {
      "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesSQLiRuleSet"
      }
    },
    "OverrideAction": {"None": {}},
    "VisibilityConfig": {"SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "SQLi"}
  }]' \
  --region us-east-1

Skenario 8: AssumeRole Lintas Akun

Skenario: Sebuah akun keamanan pusat memerlukan akses hanya-baca ke semua akun beban kerja dalam AWS Organisation untuk menjalankan audit keamanan. Solusi: Di setiap akun beban kerja, buat peran IAM dengan kebijakan kepercayaan yang mengizinkan akun keamanan (berdasarkan ID akun) untuk mengambil peran tersebut. Lampirkan kebijakan hanya-baca (misalnya, kebijakan terkelola AWS SecurityAudit). Tim keamanan di akun pusat menggunakan STS AssumeRole untuk mengambil peran tersebut sementara di setiap akun beban kerja. Cara ini mengikuti prinsip hak minimum — tidak ada pengguna IAM permanen yang dibuat di akun beban kerja.

# Trust policy in workload account (allows security account to assume role)
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Principal': {
      'AWS': 'arn:aws:iam::SECURITY_ACCOUNT_ID:root'
    },
    'Action': 'sts:AssumeRole'
  }]
}

# From security account: assume role in workload account
aws sts assume-role \
  --role-arn arn:aws:iam::WORKLOAD_ACCOUNT_ID:role/SecurityAuditRole \
  --role-session-name audit-2024-01

Skenario 9: Membatasi Tindakan dengan SCP

Skenario: Sebuah perusahaan menggunakan AWS Organizations dan ingin mencegah akun mana pun dalam OU non-produksi meluncurkan instans GPU yang mahal. Solusi: Buat Service Control Policy (SCP) yang menolak ec2:RunInstances untuk keluarga instans GPU (p3, p4, g4, g5), lalu lampirkan ke OU non-produksi. SCP berlaku bahkan untuk pengguna root dan pengguna IAM tingkat Administrator dalam akun anggota — SCP berfungsi sebagai pagar pengaman yang tidak dapat ditimpa oleh identitas mana pun dalam akun. Hal ini mencegah pengeluaran besar yang tidak disengaja atau berbahaya dalam akun pengembangan/pengujian.

# SCP to deny GPU instance types in non-prod OU
{
  'Version': '2012-10-17',
  'Statement': [{
    'Sid': 'DenyGPUInstances',
    'Effect': 'Deny',
    'Action': 'ec2:RunInstances',
    'Resource': 'arn:aws:ec2:*:*:instance/*',
    'Condition': {
      'StringLike': {
        'ec2:InstanceType': ['p3.*', 'p4d.*', 'g4.*', 'g5.*']
      }
    }
  }]
}

Skenario 10: Jejak Audit untuk Kepatuhan

Skenario: Sebuah perusahaan jasa keuangan harus membuktikan kepada auditor bahwa semua panggilan API AWS dicatat, tahan terhadap perubahan, dan disimpan selama 7 tahun. Solusi: Buat jejak AWS CloudTrail multiwilayah yang mengirimkan log ke bucket S3 khusus dalam akun logging. Aktifkan Validasi Integritas Berkas Log (berkas intisari kriptografis yang mendeteksi perubahan pada log). Tetapkan kebijakan Object Lock S3 dalam mode Compliance dengan masa penyimpanan 7 tahun pada bucket logging. Dengan demikian, log tidak dapat dihapus atau diubah — bahkan oleh pengguna root — selama masa penyimpanan yang diwajibkan.

# Create multi-region trail with integrity validation
aws cloudtrail create-trail \
  --name compliance-trail \
  --s3-bucket-name central-audit-logs-123 \
  --is-multi-region-trail \
  --enable-log-file-validation \
  --include-global-service-events

aws cloudtrail start-logging --name compliance-trail

Skenario 11: VPC Endpoint untuk Akses S3 Privat

Skenario: Instans EC2 dalam VPC privat perlu mengakses S3 tanpa lalu lintas melewati internet publik. Saat ini NAT Gateway digunakan dan biayanya tinggi karena biaya pemrosesan data NAT Gateway. Solusi: Buat S3 Gateway VPC Endpoint. Tambahkan entri rute ke tabel rute subnet privat yang mengarahkan daftar awalan S3 ke endpoint tersebut. Lalu lintas menuju S3 kini sepenuhnya tetap berada dalam jaringan inti AWS — tidak diperlukan NAT Gateway maupun gateway internet. S3 Gateway Endpoints gratis (berbeda dengan Interface Endpoints yang mengenakan biaya per jam per AZ). Hal ini juga meningkatkan keamanan dengan menghapus akses S3 dari jalur internet publik.

# Create S3 Gateway VPC Endpoint
aws ec2 create-vpc-endpoint \
  --vpc-id vpc-abc123 \
  --service-name com.amazonaws.us-east-1.s3 \
  --route-table-ids rtb-private-1a rtb-private-1b

# Result: route table automatically gets a route:
# Destination: pl-63a5400a (S3 prefix list)
# Target: vpce-xyz456 (the Gateway Endpoint)
# EC2 instances now reach S3 privately at no endpoint cost

Pemeriksaan Cepat

Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini, Anda mempelajari berbagai skenario yang mencakup: peran IAM dan profil instance untuk akses EC2 tanpa kredensial, Secrets Manager untuk rotasi kredensial Database secara otomatis, AWS WAF untuk memblokir serangan injeksi tanpa perubahan kode, serta CloudTrail dengan S3 Object Lock untuk log kepatuhan yang tahan terhadap manipulasi. Selanjutnya, kita akan membahas skenario arsitektur yang tangguh dan memiliki ketersediaan tinggi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Skenario Arsitektur Aman” gratis?

Ya — teks lengkap “Skenario Arsitektur Aman” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AWS Solutions Architect, upgrade ke CoddyKit PRO. Kursus AWS Solutions Architect mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Skenario Arsitektur Aman”?

Kerjakan pertanyaan skenario tentang hak akses paling rendah IAM, enkripsi, isolasi VPC, dan WAF/Shield untuk memperkuat pengetahuan domain keamanan Anda. Kamu berlatih AWS Solutions Architect dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AWS Solutions Architect?

Tidak diperlukan pengalaman sebelumnya. AWS Solutions Architect di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Skenario Arsitektur Aman” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AWS Solutions Architect ini?

Ya. Setiap pelajaran AWS Solutions Architect menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Skenario Arsitektur Aman
  2. Skenario Arsitektur Tangguh dan Berketersediaan Tinggi
  3. Skenario Kinerja Tinggi dan Teroptimasi Biaya
  4. Ujian Mini Lengkap Lintas Domain
← Kembali ke AWS Solutions Architect