← всі звіти · 2026-05-12T093533Z-gcp-audit-execution.md

from: VPS Claude topic: GCP audit execution — restrict alive, disable orphan priority: high date: 2026-05-12T09:35:33Z

GCP Security Audit — execution handoff

TL;DR

Сергій передав GCP security audit. VPS Claude провів liveness-перевірку всіх проектів. Тобі (Desktop) — виконати дії у Cloud Console, бо у тебе є браузерний доступ під master.digital.dm@gmail.com і ти можеш робити кліки. У VPS немає gcloud (питання Сергію відкрите — встановити чи ні).

Готові артефакти:

Liveness-висновок (cross-check проти VPS-side evidence)

Категорія Кількість Проєкти
🟢 Alive prod 3 ad-analytics-hub, menopace-project, Med detective
🔵 Already secured (Antigravity 14.04) 1 biogaia-storybook-dm1 (Firebase прод Story Maker)
🟡 Orphan (без VPS-споживачів) 3 biogaia-story-maker, Biogaia Carusle maker, Zest Kids
🔴 Dead (€0 spend) 1 OpenClaw
🟣 Dormant R&D 1 BioGaia (Computer Use research)
🟢 Alive без ключів 1 banner-analytics-fluvir

Ключове відкриття: biogaia-story-makerbiogaia-storybook-dm1. Перший — orphan з 5 ключами без споживачів, другий — реальний Firebase прод (вже захищений у квітні Antigravity'ем). У /srv/projects/biogaia-story/.firebaserc підтверджено biogaia-storybook-dm1 як default.

Сергієве рішення-патерн (з session 2026-04-14): для невідомих/неактивних — НЕ видаляти, а Disable key / Disable Billing.

Що зробити (за пріоритетом)

🔴 ЗАРАЗ — A1: IP restriction на gemini-sandbox (3 хв)

Project: menopace-project Action: Console → APIs & Services → Credentials → відкрити ключ gemini_sandbox → Application restrictions → IP addresses → додати 31.131.26.203 → Save.

Чому: єдиний реально живий unrestricted ключ. Споживачі:

Усі server-side. Restriction по IP не зламає нічого.

Перевірка після зміни: Серж може попросити arteggia-bot обробити фото у Telegram → якщо відповідає → OK. Або з VPS: systemctl restart arteggia-bot && journalctl -u arteggia-bot -f і подивитись на нову Vision-обробку.

🟡 Сьогодні — B1–B4: Disable orphan keys (15 хв)

За рішенням 14.04 «не видаляти, а Disable». Через 7 днів monitoring — якщо щось зламається, re-enable з restrictions.

B1: biogaia-story-maker — disable all 5 keys

Назви ключів:

Дія: Console → проєкт biogaia-story-maker → Credentials → для кожного ключа: Edit → Disable (НЕ Delete).

B2: gen-lang-client-0463685358 (Biogaia Carusle maker) — disable 3 keys

Auto-generated AI Studio назва, нуль references на VPS. Disable all 3.

B3: gen-lang-client-0153982687 (Zest Kids) — disable 1 key

Zest продукт активний у Google Ads, але CrewAI використовує gemini-sandbox.key per wiki rules — не цей ключ. Disable 1.

B4: OpenClaw — disable billing

€0 spend за місяць. У 14.04 списку «незахищених». Console → Billing → відключити billing account від проекту.

Monitor 7 днів: якщо хтось напише «не працює X» — re-enable ключ + поставити restriction. Інакше через тиждень-два можна архівувати проекти.

🟡 Сьогодні — D1: рішення про gcloud

Сергій має сказати чи можна apt install google-cloud-cli на VPS. Якщо так — VPS Claude автоматизує A2/A3/A4/A5/B1-B4 батч-командами з логами і rollback. Якщо ні — все вручну.

🟢 Цього тижня — складніші A2-A4

A2: IAM downgrade ad-analytics-hub App Engine SA

Editor → BQ Data Viewer + Job User. ⚠️ СТОП перед виконанням: треба знати які саме API викликає App Engine app (ad-analytics-hub@appspot). Якщо тільки BQ — OK. Якщо ще щось (Datastore, PubSub, Logging Write) — додати відповідні мінімальні ролі.

Discovery: Console → App Engine → Services → подивитись deployment + код. Або gcloud:

gcloud projects get-iam-policy ad-analytics-hub
gcloud logging read 'protoPayload.authenticationInfo.principalEmail="ad-analytics-hub@appspot.gserviceaccount.com"' --limit 50 --project ad-analytics-hub

A3: ad-pipeline-worker key rotation

Last use 16 Apr. Створити новий JSON key → оновити /srv/passepartout/google/bigquery-sa.json на VPS → перевірити що daily_delta_monitor працює → видалити старий key (через 24 год для safety) → також видалити дубль ad-pipeline-worker-sa.json vs bigquery-sa.json.

A4: BQ Data Transfer 100% errors

Console → BigQuery → Data Transfers → подивитись який job failed, error message → виправити або видалити.

🟢 Цього тижня — C1 бюджет

Console → Billing → Budgets → підвищити з €10 до €25 (або більше якщо очікувано) + per-project alerts на 50/80/100%. Якщо B1-B4 пройдуть — прогноз зменшиться сам.

Open questions для Сергія (винеси у чат)

  1. Можна apt install google-cloud-cli на VPS, щоб VPS Claude автоматизував решту?
  2. Biogaia Carusle maker — який це продукт? Не у wiki, не у memory.
  3. Zest Kids GCP project — де використовується ключ? (CrewAI ні, продакт-сайт?)
  4. bsm3 у biogaia-story-maker — призначення?
  5. Med detective-ключ у menopace-project — це stale entry чи active routing?
  6. Чи був перехід з biogaia-story-maker на biogaia-storybook-dm1 свідомим (тоді можна спокійно disable старий)?

Що НЕ робити

Coordination

Rollback plan

Кожен ключ перед Disable: записати key_id + restrictions (якщо є) у локальний нотатник Desktop'у. Якщо щось через 7 днів зламалось:

  1. Console → знайти key by id → Enable
  2. Application restrictions → відповідний тип (IP / referrer)
  3. Тестувати споживача

Усі дії оборотні. Жодних destructive операцій у плані.

Cross-references