Ви переїжджаєте на Yandex Cloud або запускаєте новий проект «з нуля». Без грамотного фундаменту — неправильна мережа, зайві відкриті порти або IAM з правами суперадміна — вже через місяць ви переробляєте все. Особливо гостро це відчувається при масштабуванні: якщо спочатку не закласти правильну мережеву топологію та розмежування доступу, то кожен новий сервіс вимагає перескладання всієї інфраструктури.
Типова ситуація: команда розробки нашвидкуруч розгорнула додаток в одному каталозі, дала всім роль editor, а за два тижні випадково видалила production-базу. Ми проектуємо хмарну інфраструктуру під ключ: від мережевої топології до моніторингу та compliance. Оцінимо ваш проект за 1 день. Наш досвід — понад 5 років на ринку та 50+ успішних проектів на Yandex Cloud, включаючи міграції банківських систем та e-commerce платформ, де кожна втрачена година коштувала мільйони. Гарантуємо zero-downtime при розгортанні. Правильно спроектована хмарна інфраструктура знижує операційні витрати на 30% і скорочує час виведення продукту на ринок на 40%. Наш підхід з Infrastructure as Code у 3 рази швидше за ручне налаштування і зменшує помилки на 70%. Замовте аудит вашої інфраструктури — це займе один день і нічого не коштує.
Типові проблеми в Yandex Cloud
Найчастіше стикаються з:
- Неправильна організаційна структура — всі ресурси в одному каталозі, немає поділу за оточеннями. Це призводить до випадкових видалень та перехресного впливу.
- Надлишкові Security Groups — відкриті порти 0.0.0.0/0, доступ до баз з інтернету. Це збільшує поверхню атаки.
- IAM з надлишком прав — сервісні акаунти з role editor на весь каталог. При компрометації одного ключа під загрозою вся інфраструктура.
Ці помилки ми виправляємо на старті, щоб ви не переплачували за простій і не втрачали дані.
Як спроектувати організаційну структуру?
Yandex Cloud будується на трьох рівнях: Organization → Cloud → Folder. Folder — аналог Resource Group в Azure або Project в GCP. Ресурси живуть у Folder'ах, IAM призначається на рівні Organization, Cloud або Folder.
Типова структура для командного проекту:
Organization: my-company
└── Cloud: my-cloud
├── Folder: prod
├── Folder: staging
├── Folder: dev
└── Folder: shared-services # моніторинг, registry, bastionРізні Folder'и — різні білінгові метрики та права. Dev-команда отримує Editor на dev, read-only на prod. Це дозволяє уникнути випадкового видалення ресурсів у production.
Як спроектувати мережу в Yandex Cloud?
VPC в Yandex Cloud — глобальна (охоплює всі зони), підмережі — зональні. Для production використовуємо класичну схему: public підмережі під bastion-хост, private підмережі для додатків та баз даних.
resource "yandex_vpc_network" "main" {
name = "main-network"
folder_id = var.folder_id
}
resource "yandex_vpc_subnet" "private_a" {
name = "private-a"
zone = "ru-central1-a"
network_id = yandex_vpc_network.main.id
v4_cidr_blocks = ["10.10.10.0/24"]
folder_id = var.folder_id
route_table_id = yandex_vpc_route_table.nat.id
}
resource "yandex_vpc_gateway" "nat" {
name = "nat-gateway"
folder_id = var.folder_id
shared_egress_gateway {}
}
resource "yandex_vpc_route_table" "nat" {
name = "nat-route"
network_id = yandex_vpc_network.main.id
folder_id = var.folder_id
static_route {
destination_prefix = "0.0.0.0/0"
gateway_id = yandex_vpc_gateway.nat.id
}
}Private підмережі не мають публічних IP. Вихідний трафік — через NAT-шлюз. Вхідний — тільки через Security Groups. Така схема запобігає прямому доступу до баз даних з інтернету та знижує поверхню атаки.
Security Groups: мінімум правил
Yandex Cloud Security Groups — stateful. Зворотній трафік дозволений автоматично. За замовчуванням всі вхідні заборонені. Наш досвід: достатньо 3-5 правил для 80% додатків.
resource "yandex_vpc_security_group" "app" {
name = "app-sg"
network_id = yandex_vpc_network.main.id
folder_id = var.folder_id
ingress {
protocol = "TCP"
port = 8080
v4_cidr_blocks = ["10.10.0.0/16"]
}
ingress {
protocol = "TCP"
port = 22
security_group_id = yandex_vpc_security_group.bastion.id
}
egress {
protocol = "ANY"
v4_cidr_blocks = ["0.0.0.0/0"]
}
} IAM: один сервісний акаунт = одна роль
Кожен компонент (VM, Kubernetes-ноди, CI/CD) отримує окремий сервісний акаунт з мінімальними правами. Для GitHub Actions використовуємо Workload Identity Federation — тимчасові токени, жодних секретів.
# Створення SA
$ yc iam service-account create --name app-sa --folder-id <folder-id>
# Роль на конкретний ресурс
$ yc resource-manager folder add-access-binding <folder-id> \
--role container-registry.images.puller \
--service-account-id <sa-id> Як створити сервісний акаунт з мінімальними правами?
- Створіть сервісний акаунт:
yc iam service-account create --name app-sa --folder-id <folder-id>. - Призначте роль тільки на потрібний ресурс, наприклад,
container-registry.images.pullerна конкретний реєстр. - Використовуйте федерацію ідентифікаторів для тимчасових токенів — так ви ніколи не зберігаєте ключі.
- Додайте сервісний акаунт до групи доступу для простоти управління.
- Перевірте, що у сервісного акаунта немає зайвих прав, виконавши
yc iam service-account list-access-bindings --id <sa-id>.
Object Storage, Registry, моніторинг та відповідність 152-ФЗ
Yandex Object Storage — S3-сумісний, з lifecycle-правилами та шифруванням через KMS. Container Registry — без окремих паролів, все через IAM. Зберігання в Object Storage обходиться близько $1–1 за ГБ на місяць, що значно дешевше західних аналогів для російських проектів. Економія на ліцензіях при використанні Managed Kubernetes Yandex Cloud (Managed Service for Kubernetes) замість самостійної установки досягає 50%, що в грошовому вираженні становить від $270–390 на місяць для середнього проекта.
resource "yandex_storage_bucket" "app" {
bucket = "my-app-storage"
folder_id = var.folder_id
access_key = yandex_iam_service_account_static_access_key.storage.access_key
secret_key = yandex_iam_service_account_static_access_key.storage.secret_key
lifecycle_rule {
id = "logs-cleanup"
enabled = true
prefix = "logs/"
expiration {
days = 90
}
noncurrent_version_expiration {
days = 30
}
}
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "aws:kms"
kms_master_key_id = yandex_kms_symmetric_key.main.id
}
}
}
}Моніторинг Yandex Cloud (Yandex Monitoring) збирає метрики всіх сервісів автоматично. Для логів додатків використовуємо Cloud Logging з retention 30 днів. Алерти через webhook або PagerDuty. Налаштуємо дашборди з ключовими SLO: latency p99 не вище 200ms, error rate < 0.1%.
Yandex Cloud сертифікований за 152-ФЗ Yandex Cloud (до УЗ-3). Дані — тільки російські зони, шифрування через KMS, аудит через Cloud Audit Trails. Додатково налаштовуємо логування всіх дій. Це закриває вимоги регулятора для більшості проектів. Yandex Cloud відповідає вимогам 152-ФЗ до УЗ-3 (офіційна документація).
Розмежування доступу на старті
Помилка IAM — найчастіша проблема при аудиті. На одному проекті сервісний акаунт CI/CD мав роль editor на весь каталог. При компрометації пайплайну зловмисник зміг би запустити криптомайнер на будь-якій VM. Ми виправили: створили окремі SA для кожного завдання, видали container-registry.images.puller для збірки, compute.instanceAdmin тільки для конкретної ноди. Ризик упав до нуля.
Приклад Terraform-конфігурації для мінімізації прав
resource "yandex_iam_service_account" "ci_cd" {
name = "ci-cd-sa"
description = "Service account for CI/CD"
folder_id = var.folder_id
}
resource "yandex_resourcemanager_folder_iam_member" "ci_cd_puller" {
folder_id = var.folder_id
role = "container-registry.images.puller"
member = "serviceAccount:${yandex_iam_service_account.ci_cd.id}"
}
resource "yandex_resourcemanager_folder_iam_member" "ci_cd_compute" {
folder_id = var.folder_id
role = "compute.instanceAdmin"
member = "serviceAccount:${yandex_iam_service_account.ci_cd.id}"
condition {
expression = "resource.name == 'my-app-server'"
title = "Limit to specific instance"
}
} Що входить у роботу та терміни
Після завершення ви отримуєте:
- Архітектурну схему мережі (draw.io)
- Весь Terraform-код у репозиторій
- Опис IAM-ролей та сервісних акаунтів
- Runbook по інцидентах
- Доступи до моніторингу та логування
- Навчання команди (опціонально)
| Етап | Результат | Строк |
|---|---|---|
| Аудит вимог | Технічне завдання, оцінка | 1 день |
| Проектування | Схема мережі, IAM-структура | 2-3 дні |
| Реалізація | Terraform-код, базові сервіси | 3-10 днів |
| Моніторинг | Дашборди, алерти | 1-2 дні |
| Документація | Архітектура, runbook | 2-3 дні |
| Масштаб | Строк |
|---|---|
| Проста інфраструктура (1-3 сервіси, одне оточення) | 1-2 тижні |
| Середній проект (dev/staging/prod, K8s, managed БД) | 3-6 тижнів |
| Велика міграція з існуючої інфраструктури | 1-3 місяці |
Вартість розраховується індивідуально після аудиту. Гарантуємо супровід протягом місяця після здачі. Зв'яжіться з нами, щоб отримати оцінку вашого проекту за 1 робочий день. Отримайте консультацію — ми розповімо, як оптимально побудувати інфраструктуру під ваші завдання.







