Cloud & IT Cert Prep · Pelajaran

Senario Seni Bina Selamat

Jawab soalan senario tentang keistimewaan minimum IAM, penyulitan, pengasingan VPC dan WAF/Shield untuk mengukuhkan pengetahuan domain keselamatan anda.

Pelajaran 1 daripada 413 langkah

Senario Seni Bina Selamat ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Senario 1: Access EC2 S3 dengan Keistimewaan Minimum

Senario: Satu tika EC2 menjalankan aplikasi web yang perlu membaca objek daripada bucket S3 tertentu. Pasukan keselamatan memerlukan supaya tiada kelayakan jangka panjang disimpan pada tika tersebut dan Access mematuhi prinsip keistimewaan minimum. Penyelesaian: Cipta peranan IAM dengan dasar yang hanya membenarkan s3:GetObject pada ARN bucket tertentu. Lampirkan peranan itu pada tika EC2 sebagai profil tika. Aplikasi menggunakan perkhidmatan metadata tika (IMDS) untuk mendapatkan kelayakan sementara secara automatik — tiada kunci yang disimpan diperlukan.

# 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

Senario 2: Menyulitkan Data dalam Pangkalan Data RDS

Senario: Sebuah syarikat menyimpan PII pelanggan dalam pangkalan data RDS PostgreSQL. Pasukan pematuhan memerlukan penyulitan semasa rehat dengan keupayaan untuk mengaudit penggunaan kunci. Penyelesaian: Enable penyulitan RDS menggunakan AWS KMS dengan Customer Managed Key (CMK). CMK membolehkan pasukan keselamatan mengawal putaran kunci, melihat penggunaan kunci dalam CloudTrail dan membatalkan Access jika perlu. Nota: penyulitan mesti diaktifkan semasa penciptaan tika RDS — Anda tidak boleh menyulitkan tika RDS sedia ada yang tidak disulitkan secara terus. Untuk menyulitkan pangkalan data sedia ada, ambil snapshot, salinnya dengan penyulitan diaktifkan dan pulihkan daripada snapshot yang disulitkan.

# 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

Senario 3: Bucket S3 — Block Public Access

Senario: Seorang pembangun secara tidak sengaja menjadikan bucket S3 awam dan mendedahkan data pelanggan. Pasukan keselamatan mahu memastikan tiada bucket S3 dalam account boleh dijadikan awam, walaupun pembangun cuba berbuat demikian. Penyelesaian: Enable S3 Block Public Access pada peringkat account. Tetapan ini mengatasi sebarang dasar atau ACL pada peringkat bucket yang memberikan Access awam, tanpa mengira konfigurasi setiap pasukan. Gabungkan tetapan ini dengan peraturan AWS Config (s3-bucket-public-read-prohibited) untuk mengesan dan memberi amaran secara berterusan tentang bucket yang tidak mematuhi peraturan.

# 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"}}'

Senario 4: Pengasingan VPC untuk Peringkat Pangkalan Data

Senario: Sebuah syarikat mahu memastikan pangkalan data RDS mereka hanya boleh diakses daripada pelayan aplikasi dan bukan dari Internet. Penyelesaian: Letakkan RDS dalam subnet Private tanpa laluan gateway Internet. Cipta kumpulan keselamatan untuk RDS yang hanya membenarkan trafik masuk pada port 5432 (PostgreSQL) daripada kumpulan keselamatan pelayan aplikasi — bukan daripada sebarang julat alamat IP. Ini memastikan bahawa walaupun pelayan aplikasi terjejas, penyerang tidak boleh mencapai pangkalan data dari luar VPC dan pergerakan sisi dihadkan oleh peraturan kumpulan keselamatan.

# 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

Senario 5: Memutar Kelayakan Pangkalan Data

Senario: Kod aplikasi kini mempunyai kelayakan pangkalan data yang ditetapkan terus dalam fail konfigurasi. Audit keselamatan menandakan perkara ini sebagai risiko kritikal. Penyelesaian: Simpan kelayakan dalam AWS Secrets Manager dan konfigurasikan putaran automatik (Secrets Manager mempunyai fungsi putaran Lambda terbina dalam untuk RDS). Kemas kini aplikasi supaya mendapatkan kelayakan daripada Secrets Manager semasa masa jalan menggunakan SDK. Aplikasi menerima kelayakan baharu secara automatik tanpa penggunaan semula pada setiap putaran. Enable templat putaran rahsia RDS untuk putaran kelayakan terurus sepenuhnya tanpa masa 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

Senario 6: Mengesan Aktiviti API yang Luar Biasa

Senario: Sebuah syarikat mahu mengesan jika kelayakan account AWS telah terjejas dan digunakan dari lokasi yang tidak dijangka. Penyelesaian: Enable Amazon GuardDuty di semua Region. GuardDuty menganalisis peristiwa CloudTrail, log aliran VPC dan log DNS menggunakan pembelajaran mesin untuk mengesan anomali: panggilan API dari lokasi geografi luar biasa, corak perlombongan Bitcoin pada EC2, komunikasi dengan nod keluar Tor atau corak penyeludupan kelayakan. GuardDuty menjana penemuan yang boleh mencetuskan peraturan EventBridge untuk memberitahu pasukan keselamatan secara automatik melalui SNS atau mencipta tiket sokongan.

# 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]}]}
  }'

Senario 7: WAF untuk Menyekat Permintaan Berniat Jahat

Senario: Aplikasi web yang berjalan di belakang ALB menerima serangan suntikan SQL. Aplikasi itu tidak boleh diubah dengan segera. Penyelesaian: Kaitkan AWS WAF dengan ALB. Deploy kumpulan peraturan AWS Managed Rules for Common Threats (Core Rule Set + kumpulan peraturan SQL Database), yang merangkumi pengesanan suntikan SQL terbina dalam. WAF memeriksa permintaan HTTP sebelum permintaan tersebut sampai ke ALB dan menyekat permintaan yang sepadan dengan corak serangan — tiada perubahan kod aplikasi diperlukan. Enable logging WAF ke Kinesis Firehose untuk analisis keselamatan.

# 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

Senario 8: AssumeRole Merentas Account

Senario: Satu account keselamatan pusat memerlukan Access baca sahaja kepada semua account beban kerja dalam AWS Organisation untuk menjalankan audit keselamatan. Penyelesaian: Dalam setiap account beban kerja, cipta peranan IAM dengan dasar kepercayaan yang membenarkan account keselamatan (mengikut ID account) untuk AssumeRole. Lampirkan dasar baca sahaja (contohnya, dasar terurus AWS SecurityAudit). Pasukan keselamatan dalam account pusat menggunakan STS AssumeRole untuk mengambil peranan itu buat sementara waktu dalam setiap account beban kerja. Cara ini mematuhi prinsip keistimewaan minimum — tiada pengguna IAM kekal dicipta dalam account 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

Senario 9: Mengehadkan Tindakan dengan SCP

Senario: Sebuah syarikat menggunakan AWS Organizations dan mahu menghalang mana-mana account dalam OU bukan produksi daripada melancarkan tika GPU yang mahal. Penyelesaian: Cipta Service Control Policy (SCP) yang menafikan ec2:RunInstances untuk keluarga tika GPU (p3, p4, g4, g5) dan lampirkannya pada OU bukan produksi. SCP terpakai walaupun kepada pengguna root dan pengguna IAM peringkat Administrator dalam account ahli — SCP bertindak sebagai pengawal keselamatan yang tidak boleh diatasi oleh mana-mana identiti dalam account tersebut. Ini menghalang perbelanjaan besar secara tidak sengaja atau berniat jahat dalam account pembangunan/ujian.

# 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.*']
      }
    }
  }]
}

Senario 10: Jejak Audit untuk Pematuhan

Senario: Sebuah syarikat perkhidmatan kewangan mesti membuktikan kepada juruaudit bahawa semua panggilan API AWS dilogkan, tidak boleh diubah suai dan disimpan selama 7 tahun. Penyelesaian: Cipta jejak AWS CloudTrail berbilang Region yang menghantar log ke bucket S3 khusus dalam account logging. Enable Log File Integrity Validation (fail digest kriptografi yang mengesan pengubahan log). Tetapkan dasar Object Lock S3 dalam mod Compliance dengan tempoh penyimpanan 7 tahun pada bucket logging. Ini memastikan log tidak boleh dipadam atau diubah suai — walaupun oleh pengguna root — sepanjang tempoh penyimpanan yang diperlukan.

# 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

Senario 11: VPC Endpoint untuk Access S3 Private

Senario: Tika EC2 dalam VPC Private perlu mengakses S3 tanpa trafik merentasi Internet awam. NAT Gateway sedang digunakan dan kosnya tinggi disebabkan oleh bayaran pemprosesan data NAT Gateway. Penyelesaian: Cipta S3 Gateway VPC Endpoint. Tambahkan entri laluan pada jadual laluan subnet Private yang menghalakan senarai awalan S3 ke endpoint tersebut. Trafik ke S3 kini kekal sepenuhnya dalam rangkaian teras AWS — tiada NAT Gateway atau gateway Internet diperlukan. S3 Gateway Endpoint adalah percuma (tidak seperti Interface Endpoint yang mengenakan kos setiap jam bagi setiap AZ). Ini juga meningkatkan keselamatan dengan mengeluarkan Access S3 daripada laluan Internet awam.

# 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 Ringkas

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

Rumusan Pelajaran

Dalam pelajaran ini, Anda telah meneliti senario yang merangkumi: peranan IAM dan profil Instance untuk akses EC2 tanpa kelayakan, Secrets Manager untuk penggiliran kelayakan Database secara automatik, AWS WAF untuk menyekat serangan suntikan tanpa perubahan kod, dan CloudTrail dengan S3 Object Lock untuk log pematuhan yang kalis gangguan. Seterusnya, kita akan membincangkan senario seni bina yang berdaya tahan dan berketersediaan tinggi.

Percuma untuk bermula

Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
150
Pelajaran
600

Soalan Lazim

Adakah pelajaran “Senario Seni Bina Selamat” percuma?

Ya — teks penuh “Senario Seni Bina Selamat” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Senario Seni Bina Selamat”?

Jawab soalan senario tentang keistimewaan minimum IAM, penyulitan, pengasingan VPC dan WAF/Shield untuk mengukuhkan pengetahuan domain keselamatan anda. Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Senario Seni Bina Selamat” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Senario Seni Bina Selamat
  2. Senario Seni Bina Berdaya Tahan dan Berketersediaan Tinggi
  3. Senario Prestasi Tinggi dan Dioptimumkan Kos
  4. Peperiksaan Mini Penuh Domain Campuran
← Kembali ke Cloud & IT Cert Prep