Compute i storage: EC2, S3, RDS
EC2, S3 i RDS to "wielka trójka" AWS — większość obciążeń opiera się o te trzy usługi. W tej lekcji poznasz ich rolę i najważniejsze kontrole bezpieczeństwa, które ZEUS weryfikuje.
EC2 — maszyny wirtualne
Elastic Compute Cloud to wirtualne serwery. Wybierasz AMI (obraz),
typ instancji (CPU/RAM, np. t3.medium, m6i.large) i podsieć. Dostęp
najlepiej przez SSM Session Manager, nie SSH.
aws ec2 run-instances \
--image-id ami-0abc123 --instance-type t3.medium \
--subnet-id subnet-xxxx --security-group-ids sg-xxxx \
--iam-instance-profile Name=ssm-role \
--tag-specifications 'ResourceType=instance,Tags=[{Key=env,Value=prod}]'
Kluczowe kontrole: szyfrowanie dysków EBS, brak publicznego IP tam, gdzie zbędny, oraz IMDSv2 wymuszony (ochrona przed kradzieżą credentiali).
S3 — storage obiektowy
Simple Storage Service trzyma obiekty w bucketach. Najczęstsze źródło wycieków danych w całej chmurze publicznej, dlatego kontrole są krytyczne:
- Block Public Access włączony na poziomie konta i bucketa,
- szyfrowanie (SSE-S3 lub SSE-KMS) domyślnie,
- wymuszony TLS w bucket policy.
# Zablokuj publiczny dostęp do bucketa
aws s3api put-public-access-block --bucket zeus-data \
--public-access-block-configuration \
BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true
# Domyślne szyfrowanie
aws s3api put-bucket-encryption --bucket zeus-data \
--server-side-encryption-configuration \
'{"Rules":[{"ApplyServerSideEncryptionByDefault":{"SSEAlgorithm":"AES256"}}]}'
Wskazówka: publiczny bucket S3 to klasyk nagłówków o wyciekach danych. ZEUS flaguje każdy bucket z publicznym dostępem jako krytyczny finding.
RDS — zarządzane bazy relacyjne
Relational Database Service prowadzi zarządzane bazy: PostgreSQL, MySQL, SQL Server, MariaDB, Oracle (oraz Aurora). Bez patchowania, z automatycznymi backupami i Multi-AZ. Kontrole bezpieczeństwa:
PubliclyAccessible = false— baza tylko w prywatnej podsieci,- szyfrowanie at-rest (KMS),
- wymuszony SSL/TLS w połączeniach.
aws rds create-db-instance \
--db-instance-identifier zeus-pg --engine postgres \
--db-instance-class db.t3.medium --allocated-storage 50 \
--master-username zeusadmin --manage-master-user-password \
--no-publicly-accessible --storage-encrypted
Porównanie
| Usługa | Typ | Najczęstszy misconfig |
|---|---|---|
| EC2 | compute | publiczne IP + otwarty SSH |
| S3 | storage obiektowy | publiczny bucket, brak szyfrowania |
| RDS | baza relacyjna | publiczny dostęp, brak szyfrowania |
Jak to widzi ZEUS
Przez Boto3 ZEUS inwentaryzuje instancje EC2 (publiczne IP, stan IMDS, szyfrowanie EBS), buckety S3 (Block Public Access, szyfrowanie, polityki) i instancje RDS (publiczny dostęp, szyfrowanie). Te kontrole zasilają zarówno posture, jak i frameworki compliance — szyfrowanie danych i brak publicznej ekspozycji to bezpośrednie wymagania ISO 27001 i NIS2.
W następnej lekcji wejdziemy w automatyzację z Boto3 w Pythonie.