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ługaTypNajczęstszy misconfig
EC2computepubliczne IP + otwarty SSH
S3storage obiektowypubliczny bucket, brak szyfrowania
RDSbaza relacyjnapubliczny 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.