DO - Basic Information

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

D'autres façons de 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 la construction, le déploiement et la gestion d'applications. Les services de DigitalOcean sont conçus pour être simples et faciles à utiliser, ce qui les rend populaires auprès des développeurs et des petites entreprises.

Certaines des principales caractéristiques 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 de divers "droplets" pré-construits ou de configurations personnalisées.

  • Stockage : DigitalOcean propose une gamme d'options de stockage, y compris le stockage d'objets, le stockage de blocs 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é-construits.

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

En résumé, 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 auprès des développeurs et des petites entreprises.

Principales différences par rapport à AWS

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), de stockage et d'outils de développement et de déploiement simples et faciles à utiliser. AWS, en revanche, propose une gamme beaucoup plus large de services, 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 convient davantage aux petites entreprises et aux développeurs.

Une autre différence clé entre les deux plateformes est la structure de tarification. La tarification de DigitalOcean est généralement plus simple et plus facile à comprendre que celle 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 de tarification plus complexe 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 de 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 dans l'équipe.

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

Projet

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

Autorisations

Équipe

Essentiellement, 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 un des trois rôles suivants à l'intérieur :

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

Propriétaire

Accès complet

Accès complet

Accès complet

Facturier

Aucun accès

Accès complet

Aucun accès

Membre

Accès complet

Aucun accès

Aucun 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 auxquelles vous appartenez dans https://cloud.digitalocean.com/account/profile. Et vous pouvez voir toute votre activité dans https://cloud.digitalocean.com/account/activity.

MFA peut être activé pour un utilisateur et imposé pour que tous les utilisateurs d'une équipe y accèdent.

Clés API

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

dop_v1_1946a92309d6240274519275875bb3cb03c1695f60d47eaa1532916502361836

L'outil en ligne de commande 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 à 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 identifiant de clé et d'un secret. Un exemple pourrait être :

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

Application OAuth

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

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

Clés SSH

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

De cette manière, si vous créez un nouveau droplet, la clé SSH sera configurée 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 configurées dans les droplets déjà existants pour des raisons de sécurité](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-existing-droplet/)).

Jeton d'authentification des fonctions

La manière de déclencher une fonction via l'API REST (toujours activée, c'est la méthode utilisée par l'interface en ligne de commande) est de déclencher une requête avec un jeton d'authentification comme suit :

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="

Journaux

Journaux d'utilisateur

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

Journaux d'équipe

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

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks:

Dernière mise à jour