DO - Basic Information

Soutenir HackTricks

Informations de base

DigitalOcean est une plateforme de cloud computing qui fournit aux utilisateurs une variété de services, y compris des serveurs privés virtuels (VPS) et d'autres ressources pour construire, déployer et gérer des applications. Les services de DigitalOcean sont conçus pour être simples et faciles à utiliser, ce qui les rend populaires parmi les développeurs et les petites entreprises.

Certaines des caractéristiques clés de DigitalOcean incluent :

  • Serveurs privés virtuels (VPS) : DigitalOcean fournit des VPS qui peuvent être utilisés pour héberger des sites Web et des applications. Ces VPS sont connus pour leur simplicité et leur facilité d'utilisation, et peuvent être déployés rapidement et facilement à l'aide d'une variété de "droplets" préconçus ou de configurations personnalisées.

  • Stockage : DigitalOcean propose une gamme d'options de stockage, y compris le stockage d'objets, le stockage en bloc et les bases de données gérées, qui peuvent être utilisées pour stocker et gérer des données pour des sites Web et des applications.

  • Outils de développement et de déploiement : DigitalOcean fournit une gamme d'outils qui peuvent être utilisés pour construire, déployer et gérer des applications, y compris des API et des droplets préconçus.

  • Sécurité : DigitalOcean accorde une grande importance à la sécurité et propose une gamme d'outils et de fonctionnalités pour aider les utilisateurs à protéger leurs données et applications. Cela inclut le chiffrement, les sauvegardes et d'autres mesures de sécurité.

Dans l'ensemble, DigitalOcean est une plateforme de cloud computing qui fournit aux utilisateurs les outils et les ressources dont ils ont besoin pour construire, déployer et gérer des applications dans le cloud. Ses services sont conçus pour être simples et faciles à utiliser, ce qui les rend populaires parmi les développeurs et les petites entreprises.

Principales différences avec AWS

L'une des principales différences entre DigitalOcean et AWS est la gamme de services qu'ils offrent. DigitalOcean se concentre sur la fourniture de serveurs privés virtuels (VPS) simples et faciles à utiliser, de stockage et d'outils de développement et de déploiement. AWS, en revanche, propose une gamme de services beaucoup plus large, y compris des VPS, du stockage, des bases de données, de l'apprentissage automatique, de l'analyse et de nombreux autres services. Cela signifie qu'AWS est plus adapté aux applications complexes de niveau entreprise, tandis que DigitalOcean est plus adapté aux petites entreprises et aux développeurs.

Une autre différence clé entre les deux plateformes est la structure tarifaire. Les tarifs de DigitalOcean sont généralement plus simples et plus faciles à comprendre que ceux d'AWS, avec une gamme de plans tarifaires basés sur le nombre de droplets et d'autres ressources utilisées. AWS, en revanche, a une structure tarifaire plus complexe qui est basée sur une variété de facteurs, y compris le type et la quantité de ressources utilisées. Cela peut rendre plus difficile la prévision des coûts lors de l'utilisation d'AWS.

Hiérarchie

Utilisateur

Un utilisateur est ce à quoi vous vous attendez, un utilisateur. Il peut créer des équipes et être membre de différentes équipes.

Équipe

Une équipe est un groupe d'utilisateurs. Lorsqu'un utilisateur crée une équipe, il a le rôle de propriétaire de cette équipe et il configure initialement les informations de facturation. D'autres utilisateurs peuvent ensuite être invités à l'équipe.

À l'intérieur de l'équipe, il peut y avoir plusieurs projets. Un projet est juste un ensemble de services en cours d'exécution. Il peut être utilisé pour séparer différentes étapes d'infrastructure, comme prod, staging, dev...

Projet

Comme expliqué, un projet est juste un conteneur pour tous les services (droplets, espaces, bases de données, kubernetes...) fonctionnant ensemble à l'intérieur de celui-ci. Un projet Digital Ocean est très similaire à un projet GCP sans IAM.

Permissions

Équipe

Fondamentalement, tous les membres d'une équipe ont accès aux ressources DO dans tous les projets créés au sein de l'équipe (avec plus ou moins de privilèges).

Rôles

Chaque utilisateur au sein d'une équipe peut avoir l'un des trois rôles suivants :

RôleRessources partagéesInformations de facturationParamètres de l'équipe

Propriétaire

Accès complet

Accès complet

Accès complet

Facturier

Pas d'accès

Accès complet

Pas d'accès

Membre

Accès complet

Pas d'accès

Pas d'accès

Le propriétaire et le membre peuvent lister les utilisateurs et vérifier leurs rôles (le facturier ne peut pas).

Accès

Nom d'utilisateur + mot de passe (MFA)

Comme dans la plupart des plateformes, pour accéder à l'interface graphique, vous pouvez utiliser un ensemble de nom d'utilisateur et mot de passe valides pour accéder aux ressources cloud. Une fois connecté, vous pouvez voir toutes les équipes dont vous faites partie sur https://cloud.digitalocean.com/account/profile. Et vous pouvez voir toute votre activité sur https://cloud.digitalocean.com/account/activity.

MFA peut être activé pour un utilisateur et imposé à tous les utilisateurs d'une équipe pour accéder à l'équipe.

Clés API

Pour utiliser l'API, les utilisateurs peuvent générer des clés API. Celles-ci auront toujours des permissions de lecture, mais les permissions d'écriture sont optionnelles. Les clés API ressemblent à ceci :

dop_v1_1946a92309d6240274519275875bb3cb03c1695f60d47eaa1532916502361836

L'outil cli est doctl. Initialisez-le (vous avez besoin d'un jeton) avec :

doctl auth init # Asks for the token
doctl auth init --context my-context # Login with a different token
doctl auth list # List accounts

Par défaut, ce jeton sera écrit en texte clair sur Mac dans /Users/<username>/Library/Application Support/doctl/config.yaml.

Clés d'accès aux Spaces

Ce sont des clés qui donnent accès aux Spaces (comme S3 dans AWS ou Storage dans GCP).

Elles sont composées d'un nom, d'un keyid et d'un secret. Un exemple pourrait être :

Name: key-example
Keyid: DO00ZW4FABSGZHAABGFX
Secret: 2JJ0CcQZ56qeFzAJ5GFUeeR4Dckarsh6EQSLm87MKlM

OAuth Application

Les applications OAuth peuvent se voir accorder l'accès à Digital Ocean.

Il est possible de créer des applications OAuth sur https://cloud.digitalocean.com/account/api/applications et de vérifier toutes les applications OAuth autorisées sur https://cloud.digitalocean.com/account/api/access.

SSH Keys

Il est possible d'ajouter des clés SSH à une équipe Digital Ocean depuis la console sur https://cloud.digitalocean.com/account/security.

De cette façon, si vous créez un nouveau droplet, la clé SSH sera définie dessus et vous pourrez vous connecter via SSH sans mot de passe (notez que les clés SSH nouvellement téléchargées ne sont pas définies dans les droplets déjà existants pour des raisons de sécurité).

Functions Authentication Token

La façon de déclencher une fonction via l'API REST (toujours activée, c'est la méthode utilisée par le cli) est de déclencher une requête avec un jeton d'authentification comme :

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

Les logs d'un utilisateur peuvent être trouvés à https://cloud.digitalocean.com/account/activity

Team logs

Les logs d'une équipe peuvent être trouvés à https://cloud.digitalocean.com/account/security

References

Support HackTricks

Last updated