DO - Basic Information

Support HackTricks

Información Básica

DigitalOcean es una plataforma de computación en la nube que proporciona a los usuarios una variedad de servicios, incluyendo servidores privados virtuales (VPS) y otros recursos para construir, desplegar y gestionar aplicaciones. Los servicios de DigitalOcean están diseñados para ser simples y fáciles de usar, lo que los hace populares entre desarrolladores y pequeñas empresas.

Algunas de las características clave de DigitalOcean incluyen:

  • Servidores privados virtuales (VPS): DigitalOcean proporciona VPS que pueden ser utilizados para alojar sitios web y aplicaciones. Estos VPS son conocidos por su simplicidad y facilidad de uso, y pueden ser desplegados rápida y fácilmente utilizando una variedad de "droplets" preconstruidos o configuraciones personalizadas.

  • Almacenamiento: DigitalOcean ofrece una gama de opciones de almacenamiento, incluyendo almacenamiento de objetos, almacenamiento en bloque y bases de datos gestionadas, que pueden ser utilizados para almacenar y gestionar datos para sitios web y aplicaciones.

  • Herramientas de desarrollo y despliegue: DigitalOcean proporciona una variedad de herramientas que pueden ser utilizadas para construir, desplegar y gestionar aplicaciones, incluyendo APIs y droplets preconstruidos.

  • Seguridad: DigitalOcean pone un fuerte énfasis en la seguridad, y ofrece una gama de herramientas y características para ayudar a los usuarios a mantener sus datos y aplicaciones seguros. Esto incluye cifrado, copias de seguridad y otras medidas de seguridad.

En general, DigitalOcean es una plataforma de computación en la nube que proporciona a los usuarios las herramientas y recursos que necesitan para construir, desplegar y gestionar aplicaciones en la nube. Sus servicios están diseñados para ser simples y fáciles de usar, lo que los hace populares entre desarrolladores y pequeñas empresas.

Principales Diferencias con AWS

Una de las principales diferencias entre DigitalOcean y AWS es la gama de servicios que ofrecen. DigitalOcean se centra en proporcionar servidores privados virtuales (VPS) simples y fáciles de usar, almacenamiento y herramientas de desarrollo y despliegue. AWS, por otro lado, ofrece una gama de servicios mucho más amplia, incluyendo VPS, almacenamiento, bases de datos, aprendizaje automático, análisis y muchos otros servicios. Esto significa que AWS es más adecuado para aplicaciones complejas a nivel empresarial, mientras que DigitalOcean es más adecuado para pequeñas empresas y desarrolladores.

Otra diferencia clave entre las dos plataformas es la estructura de precios. Los precios de DigitalOcean son generalmente más sencillos y fáciles de entender que los de AWS, con una variedad de planes de precios que se basan en el número de droplets y otros recursos utilizados. AWS, por otro lado, tiene una estructura de precios más compleja que se basa en una variedad de factores, incluyendo el tipo y la cantidad de recursos utilizados. Esto puede dificultar la predicción de costos al usar AWS.

Jerarquía

Usuario

Un usuario es lo que esperas, un usuario. Puede crear Equipos y ser miembro de diferentes equipos.

Equipo

Un equipo es un grupo de usuarios. Cuando un usuario crea un equipo, tiene el rol de propietario en ese equipo y inicialmente configura la información de facturación. Otros usuarios pueden ser invitados al equipo.

Dentro del equipo puede haber varios proyectos. Un proyecto es solo un conjunto de servicios en ejecución. Puede ser utilizado para separar diferentes etapas de infraestructura, como producción, staging, desarrollo...

Proyecto

Como se explicó, un proyecto es solo un contenedor para todos los servicios (droplets, espacios, bases de datos, kubernetes...) que se ejecutan juntos dentro de él. Un proyecto de Digital Ocean es muy similar a un proyecto de GCP sin IAM.

Permisos

Equipo

Básicamente, todos los miembros de un equipo tienen acceso a los recursos de DO en todos los proyectos creados dentro del equipo (con más o menos privilegios).

Roles

Cada usuario dentro de un equipo puede tener uno de los siguientes tres roles dentro de él:

El propietario y el miembro pueden listar los usuarios y verificar sus roles (el facturador no puede).

Acceso

Nombre de usuario + contraseña (MFA)

Como en la mayoría de las plataformas, para acceder a la GUI puedes usar un conjunto de nombre de usuario y contraseña válidos para acceder a los recursos de la nube. Una vez que inicies sesión, puedes ver todos los equipos de los que eres parte en https://cloud.digitalocean.com/account/profile. Y puedes ver toda tu actividad en https://cloud.digitalocean.com/account/activity.

MFA puede ser habilitado en un usuario y exigido para todos los usuarios en un equipo para acceder al equipo.

Claves API

Para utilizar la API, los usuarios pueden generar claves API. Estas siempre vendrán con permisos de lectura, pero los permisos de escritura son opcionales. Las claves API se ven así:

dop_v1_1946a92309d6240274519275875bb3cb03c1695f60d47eaa1532916502361836

La herramienta de línea de comandos es doctl. Inicialízala (necesitas un token) con:

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

Por defecto, este token se escribirá en texto claro en Mac en /Users/<username>/Library/Application Support/doctl/config.yaml.

Claves de acceso a Spaces

Estas son claves que dan acceso a los Spaces (como S3 en AWS o Storage en GCP).

Se componen de un nombre, un keyid y un secret. Un ejemplo podría ser:

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

OAuth Application

Las aplicaciones OAuth pueden recibir acceso a Digital Ocean.

Es posible crear aplicaciones OAuth en https://cloud.digitalocean.com/account/api/applications y verificar todas las aplicaciones OAuth permitidas en https://cloud.digitalocean.com/account/api/access.

SSH Keys

Es posible agregar claves SSH a un equipo de Digital Ocean desde la consola en https://cloud.digitalocean.com/account/security.

De esta manera, si creas un nuevo droplet, la clave SSH se configurará en él y podrás iniciar sesión a través de SSH sin contraseña (ten en cuenta que las claves SSH recién subidas no se configuran en droplets ya existentes por razones de seguridad).

Functions Authentication Token

La forma de activar una función a través de REST API (siempre habilitado, es el método que utiliza el cli) es activando una solicitud con un token de autenticación como:

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

Los registros de un usuario se pueden encontrar en https://cloud.digitalocean.com/account/activity

Team logs

Los registros de un equipo se pueden encontrar en https://cloud.digitalocean.com/account/security

References

Support HackTricks

Last updated