Сервісний аккаунт Google потрібен, коли AI-сервіс, n8n-сценарій, CRM-інтеграція або власний бот мають працювати з Google API без ручного входу в акаунт. Наприклад, агент має читати Google Sheets, оновлювати звіт, створювати файли в Drive або запускати автоматизацію за розкладом.

У цьому гайді розберемо, як створити service account у Google Cloud, отримати JSON-ключ, дати доступ до потрібного Google-файлу та не зробити типових помилок із безпекою.

📌 Service account — це технічний акаунт для застосунку, скрипта або AI-агента. Він не замінює особистий Google-акаунт користувача, а дає сервісу окрему ідентичність з конкретними правами доступу.

Коли потрібен сервісний аккаунт Google

Сервісний аккаунт Google варто використовувати тоді, коли інтеграція працює від імені системи, а не від імені конкретної людини. Це зручно для серверних сценаріїв, нічних синхронізацій, AI-агентів, ботів і no-code автоматизацій.

Типові приклади:

  • AI-агент читає заявки з Google Sheets і передає їх у CRM;
  • n8n щодня оновлює звіт у таблиці;
  • Telegram-бот записує дані клієнта в Google Sheets;
  • бекенд-сервіс створює файли або папки в Google Drive;
  • скрипт перевіряє статуси задач і надсилає нагадування менеджеру.

Якщо задача повʼязана з Google Sheets, подивіться також статтю про автоматизацію звітів і дашбордів через Google Sheets + n8n. Там добре видно, як такі доступи використовуються в реальному бізнес-процесі.

Що підготувати перед створенням

Перед стартом потрібні чотири речі:

  1. Google-акаунт з доступом до Google Cloud Console.
  2. Проєкт у Google Cloud або право створити новий проєкт.
  3. Розуміння, до якого API потрібен доступ: Sheets API, Drive API, Gmail API, Calendar API тощо.
  4. Список мінімальних прав, які справді потрібні інтеграції.

Google у своїй документації наголошує: для створення service account потрібна роль Create Service Accounts або інші права, які містять відповідний дозвіл. Для створення JSON-ключів окремо потрібна роль Service Account Key Admin.

Як створити сервісний аккаунт Google: покроково

Крок 1. Відкрийте Google Cloud Console

Перейдіть у Google Cloud Console і виберіть потрібний проєкт. Якщо проєкту ще немає, створіть новий. Для більшості AI-інтеграцій краще мати окремий проєкт під конкретний сайт, клієнта або внутрішню систему.

Не змішуйте всі інтеграції в одному проєкті без потреби. Окремий проєкт простіше контролювати: видно API, квоти, білінг, ключі та активність.

Крок 2. Увімкніть потрібні API

Відкрийте розділ APIs & Services → Library і увімкніть API, з яким буде працювати сервіс.

Найчастіше для AI-сервісів потрібні:

  • Google Sheets API — читання та оновлення таблиць;
  • Google Drive API — робота з файлами, папками, доступами;
  • Google Calendar API — створення подій і нагадувань;
  • Gmail API — робота з поштою, якщо це дозволено політикою безпеки.

Якщо API не увімкнений, навіть правильно створений ключ не допоможе: інтеграція отримає помилку доступу або повідомлення про вимкнений сервіс.

Крок 3. Створіть service account

У Google Cloud Console відкрийте IAM & Admin → Service Accounts і натисніть Create service account.

Заповніть поля:

  • Service account name — зрозуміла назва, наприклад ai-sheets-agent або n8n-google-sync;
  • Service account ID — технічний ID, який стане частиною email-адреси;
  • Description — коротко напишіть, для чого акаунт створений.

Після створення Google згенерує email у форматі name@project-id.iam.gserviceaccount.com. Саме цю адресу потім потрібно буде додавати в доступи до таблиць, папок або інших ресурсів.

Крок 4. Дайте мінімальні IAM-ролі

На цьому етапі важливо не видати зайвого. Для роботи з конкретною Google Sheets-таблицею часто не потрібно давати service account широкі права на весь Google Cloud проєкт. Достатньо увімкнути API, створити ключ і поділитися конкретною таблицею з email-адресою сервісного акаунта.

Сценарій Що дати Чого уникати
Робота з однією Google Sheets Поділитися таблицею з email service account Не давати Editor на весь Cloud-проєкт
Робота з папкою Drive Поділитися конкретною папкою Не відкривати весь Drive без потреби
Серверна інтеграція Окремий service account під один сервіс Не використовувати один ключ для всіх клієнтів
AI-агент для лідів Доступ лише до таблиць, заявок або CRM-ресурсів Не давати повні адмінські ролі

Це той самий принцип, який важливий і в AI-автоматизаціях: агент має бачити тільки ті дані, які потрібні для задачі. Якщо ви будуєте агента для відбору заявок, корисно почати з логіки з матеріалу про AI-кваліфікацію лідів.

Крок 5. Створіть JSON-ключ

Відкрийте створений service account, перейдіть у вкладку Keys, натисніть Add key → Create new key, виберіть тип JSON і натисніть Create.

Google одразу завантажить JSON-файл. Важливий момент: після створення ключ не можна завантажити повторно. Якщо файл втрачено, доведеться створити новий ключ і видалити старий.

Усередині JSON будуть поля на кшталт:

{
  "type": "service_account",
  "project_id": "your-project-id",
  "private_key_id": "...",
  "private_key": "-----BEGIN PRIVATE KEY-----...",
  "client_email": "name@project-id.iam.gserviceaccount.com",
  "token_uri": "https://oauth2.googleapis.com/token"
}

Не публікуйте цей файл у GitHub, не пересилайте його в чатах і не вставляйте в публічні issue. JSON-ключ фактично дозволяє сервісу діяти від імені service account.

Крок 6. Дайте доступ до Google Sheets або Drive

Якщо AI-сервіс має працювати з конкретною таблицею, відкрийте цю таблицю в Google Sheets, натисніть Share і додайте email сервісного акаунта.

Для читання достатньо ролі Viewer. Для оновлення клітинок потрібен Editor. Якщо інтеграція має працювати з папкою Drive, аналогічно поділіться папкою з email service account.

Це часта причина помилок: ключ створений правильно, API увімкнений, але сама таблиця не поділена з service account. У такому випадку скрипт може бачити авторизацію, але не бачити файл.

Як підключити JSON-ключ до AI-сервісу або n8n

Конкретний інтерфейс залежить від сервісу, але логіка майже всюди однакова:

  1. Відкрийте налаштування credentials або integrations.
  2. Виберіть Google Service Account.
  3. Завантажте JSON-файл або вставте його в захищене поле.
  4. Вкажіть потрібні scopes, якщо сервіс просить їх окремо.
  5. Перевірте доступ на тестовій таблиці або папці.

Для n8n та схожих платформ service account часто використовують у сценаріях, де автоматизація працює без участі людини: оновлює CRM, збирає дані в таблиці, створює задачі, надсилає повідомлення. Якщо ви ще вибираєте платформу, подивіться порівняння n8n, Make та Zapier для бізнесу.

Безпека: що обовʼязково зробити

Сервісний аккаунт Google з JSON-ключем потрібно сприймати як технічного користувача з реальними правами. Якщо ключ потрапить до сторонньої людини, вона зможе робити все, що дозволено цьому акаунту.

Google у best practices для service accounts рекомендує створювати окремі акаунти під окремі застосунки, уникати default service accounts і не давати зайвих прав.

Практичний мінімум:

  • створюйте окремий service account для кожного сервісу або клієнта;
  • давайте доступ тільки до конкретних таблиць, папок або API;
  • не зберігайте JSON-ключ у репозиторії;
  • кладіть ключ у секрети: .env, vault, secret manager або захищене поле платформи;
  • періодично перевіряйте активні ключі й видаляйте ті, які вже не використовуються;
  • якщо ключ міг бути скомпрометований, одразу створіть новий і видаліть старий.

📌 Найкраща практика — не “дати ключу все”, а спочатку описати задачу інтеграції, потім видати мінімальний доступ і протестувати тільки потрібний сценарій.

Типові помилки

1. API не увімкнений

Service account створений, ключ є, але Google Sheets API або Drive API не активований у проєкті. Рішення: перевірити APIs & Services → Enabled APIs & services.

2. Таблиця не поділена з service account

Сервісний акаунт — це окрема ідентичність. Якщо таблиця лежить у вашому особистому Google Drive, її треба явно поширити на email service account.

3. Видали занадто широкі права

Роль Owner або Editor на весь проєкт майже ніколи не потрібна для простої інтеграції з таблицею. Починайте з мінімального доступу.

4. JSON-ключ потрапив у GitHub

Якщо ключ випадково закомітили, не достатньо просто видалити файл з репозиторію. Потрібно видалити сам ключ у Google Cloud Console і створити новий.

5. Один service account для всіх задач

Це зручно на старті, але погано для аудиту й безпеки. Коли щось ламається або ключ треба відкликати, складно зрозуміти, які процеси постраждають.

FAQ

Чи можна використовувати один сервісний аккаунт Google для кількох AI-сервісів?

Технічно можна, але краще створювати окремий service account для кожного сервісу або сценарію. Так простіше обмежувати права, відкликати доступ і розуміти, яка інтеграція виконувала дію.

Чим service account відрізняється від OAuth?

OAuth зазвичай використовується, коли сервіс працює від імені конкретного користувача після його згоди. Service account більше підходить для серверних сценаріїв, де інтеграція працює як технічний акаунт без ручного входу.

Чи потрібно додавати service account у Google Workspace?

Для базової роботи з конкретною таблицею зазвичай достатньо поділитися файлом з email-адресою service account. Для складніших сценаріїв у Workspace може знадобитися domain-wide delegation, але це вже окреме налаштування з підвищеними вимогами до безпеки.

Де зберігати JSON-ключ?

У захищеному сховищі секретів: server environment variables, Secret Manager, vault або credentials-сховище вашої automation-платформи. Не зберігайте ключ у відкритому коді, Google Drive-папці “для всіх” або публічному чаті.

Ключова думка

Сервісний аккаунт Google — базовий інструмент для AI-сервісів, які мають стабільно працювати з Google Sheets, Drive, Calendar або іншими API. Але його сила саме в контрольованому доступі: окремий акаунт під окрему задачу, мінімальні права, захищений JSON-ключ і регулярна перевірка активних доступів.

Якщо ви плануєте підключити Google-сервіси до AI-агента, CRM або n8n-сценарію, починайте не з ключа, а з карти процесу: які дані потрібні, хто їх читає, хто оновлює і що буде, якщо доступ треба швидко відкликати. Це економить час і зменшує ризики ще до запуску автоматизації.