DO - Basic Information

Suporte HackTricks

Informações Básicas

DigitalOcean é uma plataforma de computação em nuvem que fornece aos usuários uma variedade de serviços, incluindo servidores privados virtuais (VPS) e outros recursos para construir, implantar e gerenciar aplicações. Os serviços da DigitalOcean são projetados para serem simples e fáceis de usar, tornando-os populares entre desenvolvedores e pequenas empresas.

Algumas das principais características da DigitalOcean incluem:

  • Servidores privados virtuais (VPS): A DigitalOcean fornece VPS que podem ser usados para hospedar sites e aplicações. Esses VPS são conhecidos por sua simplicidade e facilidade de uso, e podem ser rapidamente e facilmente implantados usando uma variedade de "droplets" pré-construídos ou configurações personalizadas.

  • Armazenamento: A DigitalOcean oferece uma gama de opções de armazenamento, incluindo armazenamento de objetos, armazenamento em bloco e bancos de dados gerenciados, que podem ser usados para armazenar e gerenciar dados para sites e aplicações.

  • Ferramentas de desenvolvimento e implantação: A DigitalOcean fornece uma variedade de ferramentas que podem ser usadas para construir, implantar e gerenciar aplicações, incluindo APIs e droplets pré-construídos.

  • Segurança: A DigitalOcean coloca uma forte ênfase na segurança e oferece uma gama de ferramentas e recursos para ajudar os usuários a manter seus dados e aplicações seguros. Isso inclui criptografia, backups e outras medidas de segurança.

No geral, a DigitalOcean é uma plataforma de computação em nuvem que fornece aos usuários as ferramentas e recursos de que precisam para construir, implantar e gerenciar aplicações na nuvem. Seus serviços são projetados para serem simples e fáceis de usar, tornando-os populares entre desenvolvedores e pequenas empresas.

Principais Diferenças em Relação ao AWS

Uma das principais diferenças entre DigitalOcean e AWS é a variedade de serviços que oferecem. A DigitalOcean se concentra em fornecer servidores privados virtuais (VPS) simples e fáceis de usar, armazenamento e ferramentas de desenvolvimento e implantação. A AWS, por outro lado, oferece uma gama muito mais ampla de serviços, incluindo VPS, armazenamento, bancos de dados, aprendizado de máquina, análises e muitos outros serviços. Isso significa que a AWS é mais adequada para aplicações complexas de nível empresarial, enquanto a DigitalOcean é mais adequada para pequenas empresas e desenvolvedores.

Outra diferença importante entre as duas plataformas é a estrutura de preços. Os preços da DigitalOcean são geralmente mais diretos e fáceis de entender do que os da AWS, com uma variedade de planos de preços baseados no número de droplets e outros recursos utilizados. A AWS, por outro lado, tem uma estrutura de preços mais complexa que é baseada em uma variedade de fatores, incluindo o tipo e a quantidade de recursos utilizados. Isso pode dificultar a previsão de custos ao usar a AWS.

Hierarquia

Usuário

Um usuário é o que você espera, um usuário. Ele pode criar Equipes e ser membro de diferentes equipes.

Equipe

Uma equipe é um grupo de usuários. Quando um usuário cria uma equipe, ele tem o papel de proprietário nessa equipe e inicialmente configura as informações de cobrança. Outros usuários podem então ser convidados para a equipe.

Dentro da equipe, pode haver vários projetos. Um projeto é apenas um conjunto de serviços em execução. Ele pode ser usado para separar diferentes estágios de infraestrutura, como produção, homologação, desenvolvimento...

Projeto

Como explicado, um projeto é apenas um contêiner para todos os serviços (droplets, spaces, bancos de dados, kubernetes...) executando juntos dentro dele. Um projeto da Digital Ocean é muito semelhante a um projeto do GCP sem IAM.

Permissões

Equipe

Basicamente, todos os membros de uma equipe têm acesso aos recursos DO em todos os projetos criados dentro da equipe (com mais ou menos privilégios).

Papéis

Cada usuário dentro de uma equipe pode ter um dos seguintes três papéis dentro dela:

Proprietário e membro podem listar os usuários e verificar seus papéis (faturador não pode).

Acesso

Nome de usuário + senha (MFA)

Como na maioria das plataformas, para acessar a GUI você pode usar um conjunto de nome de usuário e senha válidos para acessar os recursos da nuvem. Uma vez logado, você pode ver todas as equipes das quais você faz parte em https://cloud.digitalocean.com/account/profile. E você pode ver toda a sua atividade em https://cloud.digitalocean.com/account/activity.

MFA pode ser ativado em um usuário e exigido para todos os usuários em uma equipe para acessar a equipe.

Chaves de API

Para usar a API, os usuários podem gerar chaves de API. Estas sempre virão com permissões de leitura, mas permissões de gravação são opcionais. As chaves de API se parecem com isto:

dop_v1_1946a92309d6240274519275875bb3cb03c1695f60d47eaa1532916502361836

A ferramenta cli é doctl. Inicialize-a (você precisa de um token) com:

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

Por padrão, este token será escrito em texto claro no Mac em /Users/<username>/Library/Application Support/doctl/config.yaml.

Chaves de acesso do Spaces

Estas são chaves que dão acesso aos Spaces (como S3 na AWS ou Storage no GCP).

Elas são compostas por um nome, um keyid e um secret. Um exemplo poderia ser:

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

OAuth Application

Aplicações OAuth podem ser concedidas acesso sobre a Digital Ocean.

É possível criar aplicações OAuth em https://cloud.digitalocean.com/account/api/applications e verificar todas as aplicações OAuth permitidas em https://cloud.digitalocean.com/account/api/access.

SSH Keys

É possível adicionar chaves SSH a um Time da Digital Ocean a partir do console em https://cloud.digitalocean.com/account/security.

Dessa forma, se você criar um novo droplet, a chave SSH será configurada nele e você poderá fazer login via SSH sem senha (note que as novas chaves SSH carregadas não são configuradas em droplets já existentes por razões de segurança).

Functions Authentication Token

A maneira de acionar uma função via REST API (sempre habilitado, é o método que o cli usa) é acionando uma solicitação com um token de autenticação 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

Os logs de um usuário podem ser encontrados em https://cloud.digitalocean.com/account/activity

Team logs

Os logs de uma equipe podem ser encontrados em https://cloud.digitalocean.com/account/security

References

Support HackTricks

Last updated