# DO - Основна інформація {{#include ../../banners/hacktricks-training.md}} ## Основна інформація DigitalOcean є **хмарною обчислювальною платформою, яка надає користувачам різноманітні послуги**, включаючи віртуальні приватні сервери (VPS) та інші ресурси для створення, розгортання та управління додатками. **Послуги DigitalOcean розроблені так, щоб бути простими та зручними у використанні**, що робить їх **популярними серед розробників та малих підприємств**. Деякі з ключових функцій DigitalOcean включають: - **Віртуальні приватні сервери (VPS)**: DigitalOcean надає VPS, які можна використовувати для хостингу вебсайтів та додатків. Ці VPS відомі своєю простотою та зручністю у використанні, і їх можна швидко та легко розгорнути за допомогою різноманітних попередньо налаштованих "дроплетів" або користувацьких конфігурацій. - **Сховище**: DigitalOcean пропонує ряд варіантів зберігання, включаючи об'єктне зберігання, блочне зберігання та керовані бази даних, які можна використовувати для зберігання та управління даними для вебсайтів та додатків. - **Інструменти для розробки та розгортання**: DigitalOcean надає ряд інструментів, які можна використовувати для створення, розгортання та управління додатками, включаючи API та попередньо налаштовані дроплети. - **Безпека**: DigitalOcean надає велике значення безпеці та пропонує ряд інструментів і функцій, щоб допомогти користувачам зберігати свої дані та додатки в безпеці. Це включає шифрування, резервне копіювання та інші заходи безпеки. В цілому, DigitalOcean є хмарною обчислювальною платформою, яка надає користувачам інструменти та ресурси, необхідні для створення, розгортання та управління додатками в хмарі. Його послуги розроблені так, щоб бути простими та зручними у використанні, що робить їх популярними серед розробників та малих підприємств. ### Основні відмінності від AWS Одна з основних відмінностей між DigitalOcean та AWS полягає в **діапазоні послуг, які вони пропонують**. **DigitalOcean зосереджується на наданні простих** та зручних у використанні віртуальних приватних серверів (VPS), сховищ та інструментів для розробки та розгортання. **AWS**, з іншого боку, пропонує **набагато ширший спектр послуг**, включаючи VPS, сховища, бази даних, машинне навчання, аналітику та багато інших послуг. Це означає, що AWS більше підходить для складних, корпоративних додатків, тоді як DigitalOcean більше підходить для малих підприємств та розробників. Ще одна ключова відмінність між двома платформами - це **структура ціноутворення**. **Ціноутворення DigitalOcean зазвичай є більш зрозумілим та простим** для розуміння, ніж у AWS, з рядом цінових планів, які базуються на кількості дроплетів та інших використовуваних ресурсів. AWS, з іншого боку, має більш складну структуру ціноутворення, яка базується на різноманітних факторах, включаючи тип та кількість використовуваних ресурсів. Це може ускладнити прогнозування витрат при використанні AWS. ## Ієрархія ### Користувач Користувач - це те, що ви очікуєте, користувач. Він може **створювати команди** та **бути членом різних команд.** ### **Команда** Команда - це група **користувачів**. Коли користувач створює команду, він має **роль власника цієї команди** і спочатку **налаштовує платіжну інформацію**. **Інші** користувачі можуть бути **запрошені** до команди. У команді може бути кілька **проектів**. Проект - це просто **набір послуг, що працюють**. Його можна використовувати для **розділення різних етапів інфраструктури**, таких як продакшн, стадія, розробка... ### Проект Як було пояснено, проект - це просто контейнер для всіх **послуг** (дроплети, простори, бази даних, kubernetes...), **які працюють разом всередині нього**.\ Проект Digital Ocean дуже схожий на проект GCP без IAM. ## Дозволи ### Команда В основному всі члени команди мають **доступ до ресурсів DO у всіх проектах, створених у межах команди (з більшою або меншою кількістю привілеїв).** ### Ролі Кожен **користувач у команді** може мати **одну** з трьох наступних **ролей**: | Роль | Спільні ресурси | Платіжна інформація | Налаштування команди | | ---------- | ---------------- | ------------------- | ------------- | | **Власник** | Повний доступ | Повний доступ | Повний доступ | | **Біллер** | Немає доступу | Повний доступ | Немає доступу | | **Член** | Повний доступ | Немає доступу | Немає доступу | **Власник** та **член можуть переглядати користувачів** та перевіряти їх **ролі** (біллер не може). ## Доступ ### Ім'я користувача + пароль (MFA) Як і на більшості платформ, для доступу до GUI ви можете використовувати набір **дійсних імені користувача та пароля** для **доступу** до хмарних **ресурсів**. Після входу ви можете бачити **всі команди, до яких ви належите** на [https://cloud.digitalocean.com/account/profile](https://cloud.digitalocean.com/account/profile).\ І ви можете бачити всю свою активність на [https://cloud.digitalocean.com/account/activity](https://cloud.digitalocean.com/account/activity). **MFA** може бути **увімкнено** для користувача та **зобов'язано** для всіх користувачів у **команді** для доступу до команди. ### API ключі Для використання API користувачі можуть **генерувати API ключі**. Вони завжди матимуть права на читання, але **права на запис є необов'язковими**.\ API ключі виглядають так: ``` dop_v1_1946a92309d6240274519275875bb3cb03c1695f60d47eaa1532916502361836 ``` Інструмент командного рядка - це [**doctl**](https://github.com/digitalocean/doctl#installing-doctl). Ініціалізуйте його (вам потрібен токен) за допомогою: ```bash doctl auth init # Asks for the token doctl auth init --context my-context # Login with a different token doctl auth list # List accounts ``` За замовчуванням цей токен буде записаний у відкритому вигляді на Mac у `/Users//Library/Application Support/doctl/config.yaml`. ### Ключі доступу до Spaces Це ключі, які надають **доступ до Spaces** (як S3 в AWS або Storage в GCP). Вони складаються з **імені**, **keyid** та **secret**. Приклад може бути: ``` Name: key-example Keyid: DO00ZW4FABSGZHAABGFX Secret: 2JJ0CcQZ56qeFzAJ5GFUeeR4Dckarsh6EQSLm87MKlM ``` ### OAuth Application OAuth додатки можуть отримати **доступ до Digital Ocean**. Можливо **створити OAuth додатки** в [https://cloud.digitalocean.com/account/api/applications](https://cloud.digitalocean.com/account/api/applications) та перевірити всі **дозволені OAuth додатки** в [https://cloud.digitalocean.com/account/api/access](https://cloud.digitalocean.com/account/api/access). ### SSH Keys Можливо додати **SSH ключі до команди Digital Ocean** з **консолі** в [https://cloud.digitalocean.com/account/security](https://cloud.digitalocean.com/account/security). Таким чином, якщо ви створите **новий дроплет, SSH ключ буде налаштований** на ньому, і ви зможете **увійти через SSH** без пароля (зверніть увагу, що нові [завантажені SSH ключі не налаштовуються в уже існуючих дроплетах з міркувань безпеки](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-existing-droplet/)). ### Functions Authentication Token Спосіб **викликати функцію через REST API** (завжди увімкнено, це метод, який використовує cli) полягає у виклику запиту з **токеном аутентифікації** на зразок: ```bash curl -X POST "https://faas-lon1-129376a7.doserverless.co/api/v1/namespaces/fn-c100c012-65bf-4040-1230-2183764b7c23/actions/functionname?blocking=true&result=true" \ -H "Content-Type: application/json" \ -H "Authorization: Basic MGU0NTczZGQtNjNiYS00MjZlLWI2YjctODk0N2MyYTA2NGQ4OkhwVEllQ2t4djNZN2x6YjJiRmFGc1FERXBySVlWa1lEbUxtRE1aRTludXA1UUNlU2VpV0ZGNjNqWnVhYVdrTFg=" ``` ## Logs ### User logs **Логи користувача** можна знайти за адресою [**https://cloud.digitalocean.com/account/activity**](https://cloud.digitalocean.com/account/activity) ### Team logs **Логи команди** можна знайти за адресою [**https://cloud.digitalocean.com/account/security**](https://cloud.digitalocean.com/account/security) ## References - [https://docs.digitalocean.com/products/teams/how-to/manage-membership/](https://docs.digitalocean.com/products/teams/how-to/manage-membership/) {{#include ../../banners/hacktricks-training.md}}