CloudGraph 是一个免费的开源通用 GraphQL API 和云安全态势管理(CSPM)工具,支持 AWS、Azure、GCP 和 K8s。通过 CloudGraph,您可以获得:
Cloud Graph 让您在 5 分钟内 了解您的云。由 ❤️ AutoCloud 团队精心构建和维护 ❤️
🌐 网站
💻 文档
** 使用不代表认可
AWS、Azure 和 GCP 在构建解决方案方面做得非常出色,这些方案让我们这样的工程师能够创建系统来驱动日益互联的世界。在过去的 15 年中,EC2、S3、RDS 和 Lambda 等产品从根本上改变了我们对计算、存储和数据库的思考方式。
随着过去大约 5 年间 Kubernetes 和无服务器技术的普及,云服务在物理服务器机架之上变得越来越抽象。对于最终用户来说,云上的所有内容都只是一个 API,因此我们不一定需要了解 Lambda 函数或 EKS 的底层工作原理才能使用它们来构建应用程序。只要有一些文档、API 或控制台访问权限以及教程,几乎任何人都可以创建他们所需的任何东西。
这些抽象带来了 CSP 服务产品整体便利性和广度的巨大提升。曾经需要费力、耗时且易出错的新服务器、数据库或文件系统配置过程,现在只需点击按钮或部署 IAC 即可在几秒钟内完成。由于一切都是 API 抽象,当 CAP 准备推出新“产品”时,他们只需要暴露一个新的 API——是的,我当然是稍微简化了一下 :)
熟悉 CSP 的人都知道,服务 API 几乎总是被拆分为模块化的命名空间,其中包含数十甚至数百个针对单个资源的独立 API 方法。例如,AWS EC2 服务包含超过 500 种不同的 API 方法,并且不时会添加新的方法。任何在 CSP 上构建大型系统的公司都可能使用许多不同的服务。
尽管这是数据中心架构的杰作,但数百种服务和配置选项的选择将如何正确使用这些服务的知识负担完全压在了我们工程师身上。结果,我们发现自己不得不不断更新并学习所有服务产品或新变化。这花费了大量的时间和脑力。作为开发者,使用 AWS CLI 进行 5 次不同的 API 调用来描述(例如)一个 AWS ECS 集群、其服务、任务定义、任务、容器定义等,可能既困难又耗时且令人沮丧。我们经常迷失在文档中,需要使用半打 API 来回答诸如“这个 VPC 中到底运行着什么?”之类的问题。
这意味着即使对于经验丰富的云架构师来说,AWS、Azure 和 GCP 也可能很快让人感到不知所措。虽然 CSP 在构建实际驱动我们业务的服务方面非常出色,但在简化以合理方式查询这数百种服务的日常用户体验方面,进展并不多。
像 AWS 的 Cloud Control API 这样的新解决方案试图创建一个标准化的接口来查询许多不同类型的 AWS 资源。不幸的是,Cloud Control API 的使用受到严重限制,用户仍然需要知道如何正确查询他们的数据。这意味着更多时间花在阅读文档和理解服务如何工作以及如何相互关联上。
虽然 CSP API 的模块化是一个很好的逻辑组织系统,也确实有意义,但这对于最终用户来说在认知负担和学习曲线上是一个负担。不得不记住数百个不断变化的服务如何工作以及如何连接,会导致咖啡因成瘾和浪费时间去当侦探。
如果我们作为 DevOps/云工程师有一种更简单的方法来从 AWS、Azure、GCP 和其他云获取数据,那岂不是很棒?一种能够轻松查询任何账户中任何服务的任何数据,而无需花费数小时查阅文档或 Stack Overflow 的方法?
正是出于这些原因,我们构建了 CloudGraph,即万物云的 GraphQL API。CloudGraph 提取、规范化、处理并丰富您的云数据,使您能够毫不费力地跨多个提供商获得深入洞察。请查看我们的博客文章 万物云的 GraphQL API 了解更多信息。
请注意,CloudGraph 需要 只读 权限才能运行,因此 绝不可能 修改您的实际云基础设施。此外,您的云环境信息绝不会发送给或与 CloudGraph、AutoCloud 或任何第三方共享。
在底层,CloudGraph 会连接到您的云提供商,获取所有配置数据,进行处理,并将这些数据的副本存储在 Dgraph 中供您使用。然后,它在 http://localhost:8997 上暴露一个端点,允许您针对存储的数据编写 GraphQL 查询。这些查询不仅允许您执行任何您在使用 AWS SDK/CLI 等工具时能做的事情,还允许您运行更强大的查询。CloudGraph 附带了预封装的 GraphQL 查询工具,包括 GraphQL Playground 和 Altair,但您也可以随意使用自己的工具。它还包含一个名为 Voyager 的架构可视化工具,以便您理解实体之间的关系。
CloudGraph 目前支持 AWS、Azure、GCP、K8s 和腾讯云(其他几个即将推出)。CloudGraph 需要读取权限才能摄取您的数据。为了简便起见,您可以使用我们在内部运行 CloudGraph 为 AutoCloud 提供动力时使用的相同权限。以下是每个提供商的认证指南和生成凭据的详细信息(可以随意省略 AutoCloud 特定的配置):
系统要求
安装 CloudGraph CLI 有两种方式
您可以使用 homebrew 通过以下命令安装 CloudGraph:
brew install cloudgraphdev/tap/cg
使用以下命令安装并将 CloudGraph 更新到最新版本。```bash npm i -g @cloudgraph/cli
<p align="center">
<a href="https://github.com/cloudgraphdev/cli/raw/main/docs/images/install.gif">
<img alt="安装" src="https://raw.githubusercontent.com/cloudgraphdev/cli/main/docs/images/install.gif" width="95%" style="display: block; margin: auto"/>
</a>
</p>
<br/>
然后你可以添加你想要的提供商(提供商仓库链接: [AWS](https://github.com/cloudgraphdev/cloudgraph-provider-aws), [Azure](https://github.com/cloudgraphdev/cloudgraph-provider-azure), [GCP](https://github.com/cloudgraphdev/cloudgraph-provider-gcp), [K8s](https://github.com/cloudgraphdev/cloudgraph-provider-k8s), [Tencent Docs](https://github.com/cloudgraphdev/cloudgraph-provider-tencent)):```bash
cg init aws
cg init azure
cg init gcp
cg init k8s
cg init tencent
你也可以一次性添加任意多个。```bash cg init aws azure gcp k8s tencent
并添加合规策略包,以通过即时安全洞察补充您的数据:```bash
cg policy add gcp-cis-1.2.0
cg policy add azure-cis-1.3.1
cg policy add aws-cis-1.2.0
cg policy add aws-cis-1.3.0
cg policy add aws-cis-1.2.0
cg policy add aws-pci-dss-3.2.1
cg policy add aws-nist-800-53-rev4
你可以在Policy Packs 仓库中找到当前支持的策略包列表
您可以通过三个简单的命令快速上手:
cg init
1. 此命令用于初始化 CloudGraph 的配置。它会询问您一系列问题,了解您正在使用的提供商以及您希望如何配置 CloudGraph。