DO - Basic Information

支持 HackTricks

基本信息

DigitalOcean 是一个云计算平台,为用户提供各种服务,包括虚拟专用服务器(VPS)和其他资源,用于构建、部署和管理应用程序。DigitalOcean 的服务设计简单易用,因此受开发人员和小型企业欢迎

DigitalOcean 的一些关键特点包括:

  • 虚拟专用服务器 (VPS):DigitalOcean 提供 VPS,可用于托管网站和应用程序。这些 VPS 以其简单性和易用性而闻名,可以使用各种预构建的“droplets”或自定义配置快速轻松地部署。

  • 存储:DigitalOcean 提供一系列存储选项,包括对象存储、块存储和托管数据库,可用于存储和管理网站和应用程序的数据。

  • 开发和部署工具:DigitalOcean 提供一系列工具,可用于构建、部署和管理应用程序,包括 API 和预构建的 droplets。

  • 安全性:DigitalOcean 极为重视安全性,并提供一系列工具和功能,帮助用户保护其数据和应用程序安全。这包括加密、备份和其他安全措施。

总的来说,DigitalOcean 是一个云计算平台,为用户提供构建、部署和管理云中应用程序所需的工具和资源。其服务设计简单易用,因此受开发人员和小型企业欢迎。

与 AWS 的主要区别

DigitalOcean 和 AWS 之间的主要区别之一是它们提供的服务范围DigitalOcean 专注于提供简单且易于使用的虚拟专用服务器 (VPS)、存储和开发部署工具。AWS则提供更广泛的服务范围,包括 VPS、存储、数据库、机器学习、分析等许多其他服务。这意味着 AWS 更适用于复杂的企业级应用程序,而 DigitalOcean 更适合小型企业和开发人员。

两个平台之间的另一个关键区别是定价结构DigitalOcean 的定价通常更为简单易懂,基于使用的 droplets 和其他资源数量的一系列定价计划。而 AWS 则具有更复杂的定价结构,基于多种因素,包括使用的资源类型和数量。这可能使在使用 AWS 时更难预测成本。

层次结构

用户

用户就是您期望的用户。他可以创建团队成为不同团队的成员

团队

团队是一组用户。当用户创建一个团队时,他在该团队上拥有所有者角色,并最初设置计费信息。然后可以邀请其他用户加入团队。

团队内可能有多个项目。项目只是一组一起运行的服务。它可用于区分不同的基础设施阶段,如生产、暂存、开发...

项目

如前所述,项目只是所有服务(droplets、spaces、数据库、kubernetes 等)一起运行的容器。 Digital Ocean 项目与 GCP 项目非常相似,但没有 IAM。

权限

团队

基本上,团队的所有成员都可以访问团队内创建的所有项目中的 DO 资源(权限多少不等)

角色

团队内的每个用户可以在其中担任以下三个角色之一:

角色共享资源计费信息团队设置

所有者

完全访问

完全访问

完全访问

负责人

无访问权限

完全访问

无访问权限

成员

完全访问

无访问权限

无访问权限

所有者成员可以列出用户并检查他们的角色(负责人无法)。

访问

用户名 + 密码(MFA)

与大多数平台一样,在访问 GUI 时,您可以使用一组有效的用户名和密码访问资源。登录后,您可以在 https://cloud.digitalocean.com/account/profile 中看到您所在的所有团队。 您可以在 https://cloud.digitalocean.com/account/activity 中查看您的所有活动。

可以在用户中启用 MFA,并强制对所有团队的用户启用 MFA以访问该团队。

API 密钥

为了使用 API,用户可以生成 API 密钥。这些密钥始终具有读取权限,但写入权限是可选的。 API 密钥如下所示:

dop_v1_1946a92309d6240274519275875bb3cb03c1695f60d47eaa1532916502361836

这个命令行工具是doctl。使用以下命令进行初始化(需要一个令牌):

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/<username>/Library/Application Support/doctl/config.yaml

Spaces 访问密钥

这些是提供对 Spaces(类似于 AWS 中的 S3 或 GCP 中的存储)的访问权限的密钥。

它们由一个名称、一个keyid和一个secret组成。一个示例可能是:

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

OAuth 应用程序

OAuth 应用程序可以被授予访问 Digital Ocean的权限。

可以在https://cloud.digitalocean.com/account/api/applications创建OAuth应用程序,并在https://cloud.digitalocean.com/account/api/access中查看所有允许的OAuth应用程序

SSH 密钥

可以从https://cloud.digitalocean.com/account/security控制台中向Digital Ocean团队添加SSH密钥

这样,如果您创建一个新的Droplet,SSH密钥将被设置在其中,您将能够通过SSH登录而无需密码(请注意,由于安全原因,新上传的SSH密钥不会设置在已存在的Droplets中)。

函数身份验证令牌

通过使用类似以下的身份验证令牌来触发通过REST API调用函数(始终启用,这是CLI使用的方法):

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

日志

用户日志

用户的日志 可以在 https://cloud.digitalocean.com/account/activity 找到

团队日志

团队的日志 可以在 https://cloud.digitalocean.com/account/security 找到

参考资料

支持 HackTricks

Last updated