
AWS、Azure、GCP、K8s、tencent向けのユニバーサルなGraphQL APIおよびCSPMツール
CloudGraphは、AWS、Azure、GCP、K8s向けの無料のオープンソースユニバーサル GraphQL API および Cloud Security Posture Management (CSPM) ツールです。CloudGraphを使用すると、以下の機能が得られます。
CloudGraphを使用すると、5分でクラウドを把握できます。❤️ AutoCloud ❤️のチームが愛情を込めて構築・メンテナンスしています。
🌐 Website
💰 Get paid to build CloudGraph providers
** 使用は推薦を意味するものではありません
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を使用して、例えばAWS ECSクラスター、そのサービス、タスク定義、タスク、コンテナ定義などを記述するために5つの異なるAPIコールを行うことは、難しく、時間がかかり、イライラすることがあります。私たちはしばしばドキュメントに迷い込み、「このVPCでは実際に何が実行されているのか?」といった質問に対する答えを得るために、半ダースものAPIを使用しなければなりません。
これは、AWS、Azure、GCPが、経験豊富なクラウドアーキテクトでさえすぐに圧倒されてしまう可能性があることを意味します。
AWSのCloud Control APIのような新しいソリューションは、多くの異なるタイプのAWSリソースをクエリするための標準化されたインターフェースを作成しようと試みています。残念ながら、Cloud Control APIの使用は厳しく制限されており、ユーザーは依然としてデータを正しくクエリする方法を知っておく必要があります。つまり、ドキュメントを読んだり、サービスがどのように機能し互いに関連しているかを理解するためにより多くの時間を費やすことになります。
CSP APIのモジュール性は優れた論理的な組織システムであり理にかなっていますが、認知的なオーバーヘッドと学習曲線の点でエンドユーザーにとって負担となっています。常に変化する何百ものサービスがどのように機能し接続されているかを覚えなければならないことは、カフェイン中毒と探偵ごっこに時間を浪費することにつながります。
もしDevOps/クラウドエンジニアである私たちが、AWS、Azure、GCPなどからデータを取得するより簡単な方法を持っていたら素晴らしいと思いませんか?ドキュメントやスタックオーバーフローに何時間も費やすことなく、任意のアカウントの任意のサービスに関するデータを簡単にクエリできる方法です。
これらの理由から、私たちはあらゆるクラウドのためのGraphQL APIであるCloudGraphを構築しました。CloudGraphは、クラウドデータを抽出、正規化、処理、強化し、複数のプロバイダーにわたる深い洞察に簡単にアクセスできるようにします。詳細については、ブログ記事「あらゆるもののためのGraphQL API」をご覧ください。
CloudGraphの実行には読み取り専用権限が必要であり、そのため実際のクラウドインフラストラクチャを決して変更することはできません。また、お客様のクラウド環境情報がCloudGraph、AutoCloud、またはその他の第三者に送信されたり共有されたりすることは決してありません。
内部的には、CloudGraphはクラウドプロバイダーに接続し、すべての構成データを吸い上げ、処理し、このデータのコピーをDgraphに保存します。その後、http://localhost:8997でエンドポイントを公開し、保存されたデータに対してGraphQLクエリを作成できるようにします。これらのクエリを使用すると、AWS SDK/CLIなどで行うことだけでなく、はるかに強力なクエリも実行できます。CloudGraphにはGraphQL PlaygroundやAltairなどのパッケージ化されたGraphQLクエリツールが同梱されていますが、独自のものを自由に使用することもできます。また、エンティティ間の関係を理解できるようにするスキーマ可視化ツールVoyagerも含まれています。
CloudGraphは現在、AWS、Azure、GCP、K8s、Tencentをサポートしています(他にもいくつか近日公開予定)。CloudGraphはデータを取り込むために読み取り権限が必要です。簡単にするために、AutoCloudを動かすためにCloudGraphを実行する際に内部で使用しているのと同じ権限を使用できます。各プロバイダーの認証情報を生成するための認証ガイドと詳細は以下の通りです(AutoCloud固有の設定は省略しても構いません)。
システム要件
CloudGraph CLIをインストールするには2つの方法があります。
以下のコマンドで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="install" src="https://raw.githubusercontent.com/cloudgraphdev/cli/main/docs/images/install.gif" width="95%" style="display: block; margin: auto"/>
</a>
</p>
<br/>