Код-ревью Middle Облако и контейнеры обновлено

Ревью: Terraform для хранилища и сети

Вопрос

Найдите проблемы безопасности в конфигурации Terraform.

resource "aws_s3_bucket" "exports" {
  bucket = "acme-customer-exports"
}

resource "aws_s3_bucket_acl" "exports" {
  bucket = aws_s3_bucket.exports.id
  acl    = "public-read"
}

resource "aws_security_group_rule" "db" {
  type        = "ingress"
  from_port   = 5432
  to_port     = 5432
  protocol    = "tcp"
  cidr_blocks = ["0.0.0.0/0"]
  security_group_id = aws_security_group.db.id
}

resource "aws_iam_role_policy" "app" {
  role   = aws_iam_role.app.id
  policy = jsonencode({ Statement = [{ Effect = "Allow", Action = "*", Resource = "*" }] })
}

Коротко

Это три самые частые облачные ошибки: публичное хранилище, открытая база и права «на всё». Сканеры IaC (Checkov, tfsec, Trivy) находят их до применения.

Что должен найти ревьюер

  1. Безопасностьстрока 7
    Бакет с выгрузками клиентов публичен для чтения. Закрыть, включить блокировку публичного доступа на уровне аккаунта, отдавать файлы подписанными ссылками.
  2. Безопасностьстрока 1
    Нет настроек шифрования ключом KMS, версионирования и логирования доступа к бакету.
  3. Безопасностьстрока 15
    Порт PostgreSQL открыт всему интернету. Разрешить только подсети приложений.
  4. Безопасностьстрока 20
    Политика роли Action = "*" на Resource = "*": права администратора аккаунта у приложения.

Разбор

Это три самые частые облачные ошибки: публичное хранилище, открытая база и права «на всё». Сканеры IaC (Checkov, tfsec, Trivy) находят их до применения.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.