
L'outil universel d'API GraphQL et de CSPM pour AWS, Azure, GCP, K8s et tencent.
CloudGraph est l'outil gratuit open-source universel d'API GraphQL et de gestion de la posture de sécurité cloud (CSPM) pour AWS, Azure, GCP et K8s. Avec CloudGraph, vous obtenez :
Cloud Graph vous permet de Connaître votre cloud en 5 minutes. Construit et maintenu avec amour par l'équipe de ❤️ AutoCloud ❤️
🌐 Site Web
💰 Soyez rémunéré pour construire des fournisseurs CloudGraph
** l'utilisation n'implique pas d'approbation
AWS, Azure et GCP ont fait un travail remarquable en construisant des solutions qui permettent aux ingénieurs comme nous de créer des systèmes pour alimenter notre monde de plus en plus interconnecté. Au cours des 15 dernières années, des produits tels qu'EC2, S3, RDS et Lambda ont fondamentalement changé notre façon de concevoir l'informatique, le stockage et les bases de données.
Avec la prolifération de Kubernetes et du Serverless au cours des 5 dernières années environ, les services cloud sont devenus de plus en plus abstraits au-dessus des racks de serveurs physiques. Pour les utilisateurs finaux, tout dans le cloud n'est qu'une API, donc il n'est pas nécessaire de savoir comment fonctionnent Lambda Functions ou EKS sous le capot pour les utiliser dans la construction d'applications. Avec un peu de documentation, un accès API ou console, et un tutoriel, n'importe qui peut à peu près créer tout ce dont il a besoin.
Ces abstractions ont conduit à des améliorations massives de la commodité globale et de l'étendue des offres de services CSP. Ce qui était autrefois un processus laborieux, chronophage et sujet aux erreurs pour provisionner de nouveaux serveurs, bases de données ou systèmes de fichiers peut désormais être réalisé en quelques secondes avec un simple clic de bouton ou un déploiement d'IaC. Puisque tout n'est qu'une abstraction API, lorsqu'un CAP est prêt à introduire un nouveau « produit », il lui suffit d'exposer une nouvelle API — oui, je simplifie un peu :)
Quiconque connaît les CSPs sait que les API de services sont presque toujours divisées en espaces de noms modulaires qui contiennent des dizaines, voire des centaines, de méthodes API distinctes pour des ressources uniques. Par exemple, le service AWS EC2 contient plus de 500 méthodes API différentes, avec de nouvelles ajoutées occasionnellement. Toute entreprise construisant des systèmes substantiels sur un CSP utilise probablement de nombreux services différents.
Bien que ce soit un chef-d'œuvre d'architecture de centre de données, ce choix de centaines de services et d'options de configuration fait peser sur nous, ingénieurs, la charge de savoir comment utiliser correctement ces services. En conséquence, nous devons constamment nous tenir à jour et apprendre toutes les offres de services ou les nouvelles modifications. Cela demande beaucoup de temps et d'énergie mentale. En tant que développeurs, il peut être difficile, chronophage et frustrant d'utiliser l'AWS CLI pour effectuer 5 appels API différents afin de décrire, par exemple, un cluster AWS ECS, ses services, définitions de tâches, tâches, définitions de conteneurs, etc. Nous nous retrouvons souvent perdus dans la documentation et devons utiliser une demi-douzaine d'API pour obtenir des réponses à des questions comme « Qu'est-ce qui tourne exactement dans ce VPC ? »
Cela signifie qu'AWS, Azure et GCP peuvent rapidement sembler écrasants, même pour des architectes cloud chevronnés. Alors que les CSP excellent dans la construction des services réels qui alimentent nos entreprises, peu de progrès ont été réalisés pour simplifier l'UX quotidienne d'interrogation de ces centaines de services de manière saine.
De nouvelles solutions comme l'API Cloud Control pour AWS ont tenté de créer une interface standardisée pour interroger de nombreux types différents de ressources AWS. Malheureusement, l'utilisation de l'API Cloud Control est sévèrement limitée, et les utilisateurs doivent encore savoir comment interroger correctement leurs données. Cela signifie plus de temps passé à lire la documentation et à comprendre comment les services fonctionnent et sont liés les uns aux autres.
Bien que la modularité des API CSP soit un excellent système d'organisation logique et ait du sens, elle représente un fardeau pour les utilisateurs finaux en termes de charge cognitive et de courbe d'apprentissage. Devoir se souvenir comment des centaines de services en constante évolution fonctionnent et sont connectés mène à une dépendance à la caféine et à du temps perdu à jouer les détectives.
Ne serait-il pas formidable que nous, ingénieurs DevOps/Cloud, ayons un moyen plus simple d'extraire nos données d'AWS, Azure, GCP et autres ? Un moyen qui reflète notre besoin d'interroger facilement n'importe quelle donnée sur n'importe quel service dans n'importe quel compte sans passer des heures sur la documentation ou Stack Overflow ?
C'est pour ces raisons que nous avons construit CloudGraph, l'API GraphQL pour tout le cloud. CloudGraph extrait, normalise, traite et enrichit vos données cloud, vous permettant d'accéder à des informations approfondies sur plusieurs fournisseurs sans effort. Consultez notre article de blog L'API GraphQL pour tout pour en savoir plus.
Notez que CloudGraph nécessite des autorisations EN LECTURE SEULE pour fonctionner et ne peut donc jamais modifier votre infrastructure cloud réelle. De plus, aucune information de votre environnement cloud n'est jamais envoyée ou partagée avec CloudGraph, AutoCloud ou tout autre tiers.
Sous le capot, CloudGraph contacte votre/vos fournisseur(s) cloud, aspire toutes les données de configuration, les traite et stocke une copie de ces données pour vous dans Dgraph. Il expose ensuite un point d'accès à http://localhost:8997 qui vous permet d'écrire des requêtes GraphQL sur vos données stockées. Ces requêtes vous permettent non seulement de faire tout ce que vous feriez avec, par exemple, le SDK/AWS CLI, mais elles vous permettent également d'exécuter des requêtes beaucoup plus puissantes. CloudGraph est livré avec des outils de requête GraphQL pré-packagés, notamment GraphQL Playground et Altair, mais vous pouvez également utiliser les vôtres. Il inclut également un outil de visualisation de schéma appelé Voyager afin que vous puissiez comprendre les relations entre les entités.
CloudGraph prend actuellement en charge AWS, Azure, GCP, K8s et Tencent (plusieurs autres à venir). CloudGraph a besoin d'autorisations de lecture pour ingérer vos données. Pour simplifier, vous pouvez utiliser les mêmes autorisations que nous utilisons en interne lorsque nous exécutons CloudGraph pour alimenter AutoCloud. Voici les guides d'authentification et les détails pour générer des identifiants pour chaque fournisseur (n'hésitez pas à laisser de côté la configuration spécifique à AutoCloud) :
Configuration système requise
Il y a 2 façons d'installer l'interface CLI CloudGraph
Vous pouvez installer CloudGraph via homebrew avec la commande suivante :
brew install cloudgraphdev/tap/cg
Utilisez cette commande pour installer et mettre à jour CloudGraph vers la dernière version.```bash npm i -g @cloudgraph/cli
<p align="center">
<a href="https://github.com/cloudgraphdev/cli/raw/main/docs/images/install.gif">
<img alt="installation" src="https://raw.githubusercontent.com/cloudgraphdev/cli/main/docs/images/install.gif" width="95%" style="display: block; margin: auto"/>
</a>
</p>
<br/>
Vous pouvez ensuite ajouter les fournisseurs que vous souhaitez (liens vers les dépôts des fournisseurs : [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
Vous pouvez également en ajouter autant que vous voulez en une seule fois.```bash cg init aws azure gcp k8s tencent
Et ajoutez des packs de politiques de conformité pour compléter vos données avec des informations de sécurité instantanées :```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
Vous pouvez trouver une liste des packs de politique actuellement pris en charge dans le dépôt Policy Packs
Vous pouvez démarrer avec trois commandes simples :
cg init
1. Ceci initialise la configuration de CloudGraph. Cette commande vous posera une série de questions sur les fournisseurs que vous utilisez et comment vous souhaitez configurer CloudGraph.
<p align="center">
<a href="https://github.com/cloudgraphdev/cli/raw/main/docs/images/init.gif">
<img alt="init" src="https://raw.githubusercontent.com/cloudgraphdev/cli/main/docs/images/init.gif" width="95%" style="display: block; margin: auto"/>
</a>
</p>
<br/>
---
<br/>```bash
cg launch
cg launch.Notez que si vous ne souhaitez pas utiliser cette commande, par exemple si vous voulez lancer le conteneur Dgraph en mode interactif, vous pouvez utiliser la commande docker ci-dessous.
docker run -it -p 8080:8080 -p 9080:9080 -v ~/dgraph:/dgraph dgraph/standalone:v21.03.0```bash docker run -it -p 8995:5080 -p 8996:6080 -p 8997:8080 -p 8998:9080 -p 8999:8000 --label cloudgraph-cli-dgraph-standalone -v ~/dgraph:/dgraph --name dgraph dgraph/standalone:v21.03.1
---
<br/>```bash
cg scan
cg scan, ceux-ci sont généralement causés par des problèmes de permissions. Cela dit, si vous rencontrez des erreurs problématiques lors de l'exécution de CloudGraph, vous pouvez ajouter CG_DEBUG=5 au début de votre commande, par exemple CG_DEBUG=5 cg scan. Cela affichera les journaux détaillés avec plus d'informations et sauvegardera la sortie dans cg-debug.log. Veuillez partager vos journaux avec nous soit en ouvrant un issue sur GitHub soit en nous contactant dans notre Espace Slack.Voilà, vous êtes prêt à commencer à interroger ! L'outil de requête que vous avez sélectionné lors de la commande cg init s'ouvrira ensuite dans votre navigateur préféré pour exécuter des requêtes, des mutations et des visualisations sur l'ensemble de votre infrastructure cloud ! Notez que si vous avez installé des packs de politiques, comme AWS CIS 1.2, les données d'analyse des packs de politiques seront automatiquement ajoutées à vos données cloud !
Notez que vous pouvez également utiliser n'importe quel outil de requête GraphQL de votre choix en le connectant à http://localhost:8997/graphql.
Pour arrêter l'instance Dgraph (arrêter le conteneur dgraph), exécutez :
```bash
cg teardown
<br />
De plus, si vous souhaitez supprimer le conteneur après l'avoir arrêté, exécutez :
<br />```bash
cg teardown --delete-image
CloudGraph stocke autant de versions précédentes de vos données que vous avez configuré dans la commande cg init. Pour charger et interroger une version précédente de vos données, exécutez simplement la commande cg load et sélectionnez la version de vos données que vous souhaitez inspecter comme suit :
Vous pouvez trouver la liste des services actuellement pris en charge pour chaque fournisseur dans les dépôts de fournisseurs suivants :
Lien vers la documentation complète : https://docs.cloudgraph.dev/overview.
Pour utiliser CloudGraph, vous devrez être familier avec GraphQL. Cette section contient quelques exemples de requêtes pour vous aider à démarrer mais n'est en aucun cas exhaustive. Si vous pouvez l'imaginer, vous pouvez l'interroger ! Notez que vous pouvez trouver des centaines d'exemples de requêtes supplémentaires dans la documentation.
Note : cette section se concentrera sur AWS, mais les mêmes idées s'appliquent aux autres fournisseurs comme Azure et GCP
Pour expliquer comment CloudGraph fonctionne, considérez la requête suivante que vous pouvez exécuter pour obtenir l'ID et l'ARN d'une seule instance EC2. Notez que pour les besoins de ces exemples, nous demanderons simplement les ID et ARN des ressources AWS pour rester concis, mais vous pouvez interroger les attributs de votre choix :
```graphql
query {
getawsEc2(
arn: "arn:aws:ec2:us-east-1:123445678997:instance/i-12345567889012234"
) {
id
arn
}
}
<br />
Cette requête retournera un payload `JSON` qui ressemble à ceci. Tous les exemples suivants feront de même :
<br />```json
{
"data": {
"getawsEc2": {
"id": "i-12345567889012234",
"arn": "arn:aws:ec2:us-east-1:123445678997:instance/i-12345567889012234"
}
},
"extensions": {
"touched_uids": 4
}
}
Obtenez l'ID et l'ARN de chaque EC2 dans tous les comptes AWS que vous avez analysés :```graphql
query {
queryawsEc2 {
id
arn
}
}
<br />
Récupérez les `ID` et `ARN` de toutes les instances `EC2` dans **un** de vos comptes AWS en filtrant l'accountId :```graphql
query {
queryawsEc2(filter: { accountId: { eq: "123456" } }) {
id
arn
}
}
Obtenez l'ID et l'ARN de chaque EC2 dans "us-east-1" en utilisant une expression régulière pour rechercher l'ARN :```graphql
query {
queryawsEc2(filter: { arn: { regexp: "/.us-east-1./" } }) {
id
arn
}
}
<br />
Faites la même chose mais en vérifiant que la `region` est égale à `"us-east-1"` au lieu d'utiliser une regex :```graphql
query {
queryawsEc2(filter: { region: { eq: "us-east-1" } }) {
id
arn
}
}
Faites la même chose mais en vérifiant que le region contient "us-east-1" dans le nom au lieu d'utiliser eq :```graphql
query {
queryawsEc2(filter: { region: { in: "us-east-1" } }) {
id
arn
}
}
Obtenez les `ID` et `ARN` de chaque `M5` série `EC2 instance` dans `"us-east-1"````graphql
query {
queryawsEc2(
filter: { region: { eq: "us-east-1" }, instanceType: { regexp: "/^m5a*/" } }
) {
id
arn
}
}
Faites la même chose mais ignorez le premier résultat trouvé (c.-à-d. offset: 1) puis ne renvoyez que les deux premiers résultats après cela (c.-à-d. first: 2) et ordonnez ces résultats par AZ en ordre croissant (order: { asc: availabilityZone }) afin que les instances dans "us-east-1a" soient renvoyées en haut de la liste.```graphql
query {
queryawsEc2(
filter: { region: { eq: "us-east-1" }, instanceType: { regexp: "/^m5a*/" } }
order: { asc: availabilityZone }
first: 2
offset: 1
) {
id
arn
}
}
<br />
Faites la même chose mais incluez également le `EBS Volume` qui est le disque de démarrage pour chaque `EC2 instance` :```graphql
query {
queryawsEc2(
filter: { region: { eq: "us-east-1" }, instanceType: { regexp: "/^m5a*/" } }
order: { asc: availabilityZone }
first: 2
offset: 1
) {
id
arn
ebs(filter: { isBootDisk: true }, first: 1) {
id
arn
isBootDisk
}
}
}
Faites la même chose, mais incluez également les SGs et les ALBs pour chaque EC2. Pour les ALBs, obtenez les EC2s auxquels ils sont connectés ainsi que l'ID et l'ARN de chaque instance EC2 trouvée (c'est-à-dire une requête circulaire).```graphql
query {
queryawsEc2(
filter: { region: { eq: "us-east-1" }, instanceType: { regexp: "/^m5a*/" } }
order: { asc: availabilityZone }
first: 2
offset: 1
) {
id
arn
ebs(filter: { isBootDisk: true }, first: 1) {
id
arn
isBootDisk
}
securityGroups {
id
arn
}
alb {
id
arn
ec2Instance {
id
arn
}
}
}
}
Obtenez chaque `VPC`, les `ALBs` et `Lambdas` dans ce `VPC`, ainsi qu'un ensemble de sous-données imbriquées également. Obtenez également chaque `S3 Bucket` dans `us-east-1`. Obtenez également la file d'attente `SQS` avec un `ARN` de `arn:aws:sqs:us-east-1:8499274828484:autocloud.fifo` et vérifiez le `approximateNumberOfMessages`. Vous voyez l'idée, CloudGraph est **extrêmement** puissant.```graphql
query {
queryawsVpc {
id
arn
alb {
id
arn
ec2Instance {
id
arn
ebs(filter: { isBootDisk: true }) {
id
arn
}
}
}
lambda {
id
arn
kms {
id
arn
}
}
}
queryawsS3(filter: { region: { eq: "us-east-1" } }) {
id
arn
}
getawsSqs(arn: "arn:aws:sqs:us-east-1:8499274828484:autocloud.fifo") {
approximateNumberOfMessages
}
}
Les Policy Packs CloudGraph garantissent la conformité de l'infrastructure existante pour un fournisseur de cloud donné. Les packs sont basés sur des ensembles de règles/référentiels fournis par des organisations de sécurité telles que le Center for Internet Security, dans le but de maintenir votre infrastructure à jour avec les normes de sécurité du secteur. Une fois que vous avez ajouté un policy pack à l'aide de la commande cg policy add (par exemple cg policy add aws-cis-1.2.0), chaque fois que vous exécutez une analyse, CloudGraph exécutera automatiquement vos politiques configurées. Ces résultats seront stockés dans Dgraph et liés à vos ressources existantes, ce qui facilite l'interrogation de vos résultats de conformité en même temps que vos ressources.
Pour plus d'informations sur les policy packs actuellement disponibles, veuillez consulter notre référentiel Policy Packs
Utilisez le Policy Pack CloudGraph pour AWS CIS 1.2 afin d'interroger tous vos résultats CIS pour l'ensemble de vos comptes AWS :```graphql query { queryawsCISFindings { id resourceId result rule { id description severity } } }
<br />
Si vous souhaitez interroger plusieurs résultats de conformité différents pour un fournisseur donné comme AWS à la fois, vous pouvez les demander comme ceci :```graphql
query {
queryawsFindings {
CISFindings {
id
resourceId
result
rule {
id
description
severity
}
}
AutoCloudFindings {
id
resourceId
result
rule {
id
description
severity
}
}
}
}
Pour chaque règle CIS, obtenez les ressources auxquelles la règle est associée, dans ce cas nous interrogeons les données des utilisateurs IAM pour voir lesquels passent et échouent :```graphql query { queryawsCISFindings { id resourceId result rule { id description severity } iamUser { id arn name } } }
<br />
Si vous souhaitiez comprendre les règles CIS qui s'appliquent à un utilisateur IAM particulier, vous pourriez utiliser la requête suivante :```graphql
query {
getawsIamUser(id: "123456789") {
name
CISFindings {
id
resourceId
result
rule {
id
description
severity
}
}
}
}
Même si vous n'avez installé aucun pack de politiques, vous pouvez toujours écrire des requêtes de sécurité puissantes comme celle-ci pour trouver tous les EBS Volumes non chiffrés :```graphql
query {
queryawsEbs(filter: { encrypted: false }) {
id
arn
availabilityZone
encrypted
}
}
<br />
Trouvez tous les publics `S3 Buckets` :```graphql
query {
queryawsS3(filter: { access: { eq: "Public" } }) {
id
arn
access
}
}
Trouvez tous les S3 Buckets qui sont eux-mêmes publics ou qui peuvent contenir des Objets publics en leur sein :```graphql
query {
queryawsS3(filter: { not: { access: { eq: "Private" } } }) {
id
arn
access
}
}
<br />
Trouver toutes les clés `KMS` dans `"us-east-1"` :```graphql
query {
queryawsKms(filter: { arn: { regexp: "/.*us-east-1.*/" } }) {
id
arn
description
keyRotationEnabled
tags {
key
value
}
}
}
Recherchez toutes les instances burstables de la série T :```graphql
query {
queryawsEc2(filter: { instanceType: { regexp: "/^t.*/" } }) {
id
arn
availabilityZone
instanceType
}
}
<br />
Trouver les `VPCs` par défaut :```graphql
query {
queryawsVpc(filter: { defaultVpc: true }) {
id
arn
defaultVpc
state
}
}
Trouvez les ALBs publics:```graphql
query {
queryawsAlb(filter: { scheme: { eq: "internet-facing" } }) {
id
arn
dnsName
createdAt
tags {
key
value
}
}
}
<br />
Trouvez toutes les `EC2s`, `Lambdas` et `VPCs` qui ont une valeur de `Tag` égale à `"Production"` :```graphql
query {
queryawsTag(filter: { value: { eq: "Production" } }) {
key
value
ec2Instance {
id
arn
}
lambda {
id
arn
}
vpc {
id
arn
}
}
}
Faites la même chose mais cherchez à la fois une key et une value :```graphql
query {
queryawsTag(
filter: { key: { eq: "Environment" }, value: { eq: "Production" } }
) {
key
value
ec2Instance {
id
arn
}
lambda {
id
arn
}
vpc {
id
arn
}
}
}
<br />
Faites de même en utilisant `getawsTag` au lieu de `queryawsTag`. Notez que lors de la recherche de tags avec `getawsTag`, vous devez spécifier **à la fois** la `key` et la `value` comme `id` comme c'est fait ci-dessous avec `"Environment:Production"` :```graphql
query {
getawsTag(id: "Environment:Production") {
key
value
ec2Instance {
id
arn
}
lambda {
id
arn
}
vpc {
id
arn
}
}
}
Notez que les données de facturation ne sont actuellement disponibles que pour AWS. Pour ingérer avec succès les données liées à FinOps, vous devez avoir activé l'API Cost Explorer dans votre compte AWS. Vous pouvez voir comment faire ici
Obtenez le total cost de votre compte AWS pour les last 30 days, le total cost de votre compte AWS month to date, une répartition de each service and its cost for the last 30 days, et une répartition de each service and its cost month to date ainsi que les coûts moyens monthly et month to date :```graphql
query {
queryawsBilling {
totalCostLast30Days {
cost
currency
formattedCost
}
totalCostMonthToDate {
cost
currency
formattedCost
}
monthToDate {
name
cost
currency
formattedCost
}
last30Days {
name
cost
currency
formattedCost
}
monthToDateDailyAverage {
name
cost
currency
formattedCost
}
last30DaysDailyAverage {
name
cost
currency
formattedCost
}
}
}
<br />
Cette requête renverra une charge utile `JSON` qui ressemble à ceci :```json
{
"data": {
"queryawsBilling": [
{
"totalCostLast30Days": {
"cost": 7088.87,
"currency": "USD",
"formattedCost": "$7088.87"
},
"totalCostMonthToDate": {
"cost": 7089.28,
"currency": "USD",
"formattedCost": "$7089.28"
},
"monthToDate": [
{
"name": "Amazon Relational Database Service",
"cost": 548.68,
"currency": "USD",
"formattedCost": "$548.68"
},
{
"name": "Amazon Managed Streaming for Apache Kafka",
"cost": 67.49,
"currency": "USD",
"formattedCost": "$67.49"
},
{
"name": "Amazon OpenSearch Service",
"cost": 1155.04,
"currency": "USD",
"formattedCost": "$1155.04"
}
...More Services
],
"last30Days": [
{
"name": "AWS Step Functions",
"cost": 330.20,
"currency": "USD",
"formattedCost": "$330.20"
},
{
"name": "Amazon Elastic Container Service for Kubernetes",
"cost": 194.40,
"currency": "USD",
"formattedCost": "$194.40"
},
{
"name": "AmazonCloudWatch",
"cost": 310.54,
"currency": "USD",
"formattedCost": "$310.54"
}
...More Services
],
"monthToDateDailyAverage": [
{
"name": "Amazon Relational Database Service",
"cost": 54.86,
"currency": "USD",
"formattedCost": "$54.86"
},
{
"name": "Amazon Managed Streaming for Apache Kafka",
"cost": 6.74,
"currency": "USD",
"formattedCost": "$6.74"
},
{
"name": "Amazon OpenSearch Service",
"cost": 115.50,
"currency": "USD",
"formattedCost": "$115.50"
}
...More Services
],
"last30DaysDailyAverage": [
{
"name": "AWS Step Functions",
"cost": 33.01,
"currency": "USD",
"formattedCost": "$33.01"
},
{
"name": "Amazon Elastic Container Service for Kubernetes",
"cost": 19.44,
"currency": "USD",
"formattedCost": "$19.44"
},
{
"name": "AmazonCloudWatch",
"cost": 31.05,
"currency": "USD",
"formattedCost": "$31.05"
}
...More Services
],
}
]
},
"extensions": {
"touched_uids": 212
}
}
Récupérez chaque EC2 instance dans votre compte AWS ainsi que son coût quotidien :```graphql
query {
queryawsEc2 {
arn
dailyCost {
cost
currency
formattedCost
}
}
}
<br />
Cette requête retournera une charge utile `JSON` qui ressemble à ceci. Tous les exemples suivants feront de même :```json
{
{
"data": {
"queryawsEc2": [
{
"arn": "arn:aws:ec2:us-east-1:12345678910:instance/i-0c8b3vhfgf8df923f",
"dailyCost": {
"cost": 2.06,
"currency": "USD",
"formattedCost": "$2.06"
}
},
{
"arn": "arn:aws:ec2:us-east-1:12345678910:instance/i-060b3dsfds7sdf62e3",
"dailyCost": {
"cost": 2.06,
"currency": "USD",
"formattedCost": "$2.06"
}
},
...More EC2 Instances
]
},
"extensions": {
"touched_uids": 28
}
}
Obtenez chaque NAT Gateway dans votre compte AWS ainsi que son coût quotidien :```graphql
query {
queryawsNatGateway {
arn
dailyCost {
cost
currency
formattedCost
}
}
}
<br />
## Exemple AWS CloudWatch:
CloudGraph ingère vos données de métriques CloudWatch et les stocke avec certains services AWS. Cette fonctionnalité est actuellement en bêta et fonctionnera uniquement pour EC2 :```graphql
query {
queryawsEc2 {
arn
cloudWatchMetricData {
lastWeek {
cpuUtilizationAverage
networkInAverage
networkOutAverage
networkPacketsInAverage
networkPacketsOutAverage
statusCheckFailedSum
statusCheckFailedInstanceSum
statusCheckFailedSystemSum
diskReadOpsAverage
diskWriteOpsAverage
diskReadBytesAverage
diskWriteBytesAverage
}
lastMonth {
cpuUtilizationAverage
networkInAverage
networkOutAverage
networkPacketsInAverage
networkPacketsOutAverage
statusCheckFailedSum
statusCheckFailedInstanceSum
statusCheckFailedSystemSum
diskReadOpsAverage
diskWriteOpsAverage
diskReadBytesAverage
diskWriteBytesAverage
}
last6Hours {
cpuUtilizationAverage
networkInAverage
networkOutAverage
networkPacketsInAverage
networkPacketsOutAverage
statusCheckFailedSum
statusCheckFailedInstanceSum
statusCheckFailedSystemSum
diskReadOpsAverage
diskWriteOpsAverage
diskReadBytesAverage
diskWriteBytesAverage
}
last24Hours {
cpuUtilizationAverage
networkInAverage
networkOutAverage
networkPacketsInAverage
networkPacketsOutAverage
statusCheckFailedSum
statusCheckFailedInstanceSum
statusCheckFailedSystemSum
diskReadOpsAverage
diskWriteOpsAverage
diskReadBytesAverage
diskWriteBytesAverage
}
}
}
}
Quand vous pensez « en termes de graphe », vous pouvez presque tout faire avec CloudGraph. Disons par exemple que vous voulez savoir quelles fonctions Lamba n'appartiennent pas à un VPC (c'est-à-dire qu'elles n'exploitent pas la mise en réseau VPC). Parce que CloudGraph connecte toutes les ressources qui ont des relations, comme les VPC parents à leurs enfants Lambda, vous pouvez répondre facilement à cette question. Il suffit de vérifier à quelles fonctions lambda le VPC est "connecté", et de comparer cela avec la liste de toutes les fonctions lambda comme ceci :```graphql query { queryawsVpc { id arn lambda { id arn } } queryawsLambda { id arn } }
<br />
## Limitations
<br />
Aujourd'hui, la plus grande limitation de CloudGraph et de nos capacités d'interrogation est que nous ne prenons pas encore en charge le filtrage imbriqué basé sur les attributs enfants. Ainsi, par exemple, aussi cool que cela serait de faire ce qui suit, ce n'est tout simplement pas encore possible :
<br />```graphql
query {
# This won't work just yet...
queryawsEc2(filter: { ebs: { isBootDisk: true } }) {
id
arn
ebs {
id
arn
}
}
# So you have to do this instead :(
queryawsEc2 {
id
arn
ebs(filter: { isBootDisk: true }) {
id
arn
}
}
}
Ce n'est en fait pas une limitation de CloudGraph, mais plutôt une fonctionnalité qui doit encore être implémentée avec Dgraph. Vous pouvez consulter et commenter le fil de discussion ici
CloudGraph est livré avec 2 excellents outils de requête et un explorateur de schéma GraphQL. N'oubliez pas que vous pouvez utiliser N'IMPORTE QUEL outil de requête GraphQL si vous préférez une autre option, connectez-le simplement à votre point de terminaison /graphql exposé !
GraphQL Playground offre une UX fluide et engageante, idéale pour interroger rapidement et simplement un schéma GraphQL. Il dispose d'une documentation générée automatiquement intégrée et d'une auto-complétion pendant que vous tapez. Pour accéder au playground, soit sélectionnez-le comme outil de requête préféré dans la commande init, soit visitez /playground dans le serveur que CG démarre.
Altair est un autre excellent outil de requête GraphQL qui regorge de fonctionnalités pour les utilisateurs avancés. Faites des choses comme l'auto-complétion des requêtes, l'ajout dynamique de fragments et l'exportation/importation de collections de requêtes. Pour accéder à Altair, sélectionnez-le comme outil de requête préféré dans la commande init ou visitez /altair dans le serveur que CG démarre.
GraphQL Voyager est un excellent moyen d'explorer le(s) schéma(s) de vos fournisseurs CG. Il vous offre un superbe graphique bidirectionnel contenant tous vos types et requêtes. Vous pouvez cliquer sur des entités ou des flèches pour découvrir des connexions, rechercher quelque chose de spécifique et obtenir une compréhension plus approfondie de votre schéma. Pour accéder à Voyager, visitez /voyager dans le serveur que CG démarre.
Des commentaires, des questions ou des retours ? Veuillez Rejoindre notre espace Slack, nous serions ravis de vous entendre.
Si vous êtes intéressé à contribuer à CloudGraph, veuillez consulter nos Directives de contribution.
Vous pouvez exécuter CloudGraph localement ou le déployer sur votre fournisseur cloud de choix. Les modules Terraform et les guides pour les déploiements cloud arrivent bientôt !
Intéressé par une version SaaS entièrement gérée / auto-hébergée de CloudGraph avec des capacités de visualisation 3D intégrées, des analyses automatisées et des centaines de vérifications de conformité supplémentaires ? Découvrez AutoCloud pour plus de détails.
Si vous rencontrez des erreurs lors de l'exécution de CloudGraph, vous pouvez ajouter CG_DEBUG=5 au début de votre commande, comme CG_DEBUG=5 cg scan. Cela affichera les journaux détaillés avec plus d'informations que vous pourrez ensuite utiliser pour ouvrir un problème sur GitHub ou nous en informer dans notre Espace Slack.
Il existe quelques erreurs courantes que vous pouvez rencontrer lors de l'exécution de CloudGraph, généralement liées à des problèmes d'autorisations ou de connexion.
⚠️ impossible d'établir certaines connexions - Cet avertissement dans le rapport d'analyse apparaît lorsque CG tente d'établir une connexion entre deux ressources et n'y parvient pas. Si vous voyez cela en utilisant l'un des fournisseurs officiellement supportés par CG, veuillez créer un nouveau problème afin que nous puissions le résoudre. La cause la plus fréquente de cette erreur est un bogue dans la logique de connexion des ressources du fournisseur sous-jacent.
🚫 impossible de stocker les données dans Dgraph - Cette erreur dans le rapport d'analyse apparaît lorsque CG tente d'insérer certaines données du fournisseur cloud dans la base de données de graphes et échoue. Tous les services avec cette erreur ne pourront pas être interrogés dans l'outil de requête GraphQL. Cela se produit généralement lorsque CG ne peut pas récupérer les données requises (telles qu'un ARN) pour une ressource en raison d'une erreur lors de l'appel au SDK du fournisseur, souvent due à un manque d'autorisation.
Provider {name}@${version} requires cli version {version} but cli version is ${version} - Cet avertissement signifie que vous avez des versions incompatibles de CG et du fournisseur que vous essayez d'utiliser. Essayez de mettre à jour CG npm install -g @cloudgraphdev/cli et le module fournisseur cg provider update pour que les deux soient à la dernière version. Vous pouvez également vérifier le pacakge.json du fournisseur pour voir quelles versions de CG le prennent en charge.
Manager failed to install plugin for {provider} - Cette erreur se produit lorsque le gestionnaire de plugins de CG ne trouve pas le module fournisseur que vous souhaitez utiliser. Le gestionnaire recherche dans le registre public NPM le module fournisseur. Pour les fournisseurs officiellement supportés, passez simplement le nom du fournisseur CG init aws. Pour les fournisseurs supportés par la communauté, vous devez également passer l'espace de noms CG init @{providerNamespace}/{provider}
cg help [COMMAND]cg init [PROVIDER]cg launch [PROVIDER]cg load [PROVIDER]cg policy [PROVIDER]cg policy add [PROVIDER]cg policy install [PROVIDER]cg policy list [PROVIDER]cg policy remove [PROVIDER]cg policy update [PROVIDER]cg provider [PROVIDER]cg help [COMMAND]Afficher l'aide pour cg.``` USAGE $ cg help [COMMAND] [-n]
ARGUMENTS COMMAND Command to show help for.
FLAGS -n, --nested-commands Include all nested commands in the output.
DESCRIPTION Display help for cg.
_Voir le code : [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.12/src/commands/help.ts)_
## `cg init [PROVIDER]`
Définir la configuration initiale pour les fournisseurs```
USAGE
$ cg init [PROVIDER] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p <value>]
[-q playground|altair] [-l <value>] [--use-roles] [-P <value>] [-r]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-r, --resources
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Set initial configuration for providers
EXAMPLES
$ cg init
$ cg init aws [Initialize AWS provider]
$ cg init aws -r [Specify resources to crawl]
Voir le code : src/commands/init.ts
cg launch [PROVIDER]Lancer une instance de Dgraph pour stocker des données``` USAGE $ cg launch [PROVIDER] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Launch an instance of Dgraph to store data
EXAMPLES $ cg launch
_Voir le code: [src/commands/launch.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/launch.ts)_
## `cg load [PROVIDER]`
Charger une version spécifique de vos données CloudGraph```
USAGE
$ cg load [PROVIDER] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p <value>]
[-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Load a specific version of your CloudGraph data
EXAMPLES
$ cg load [Load data for all providers configured]
$ cg load aws [Load data for AWS]
See code: src/commands/load.ts
cg policy [PROVIDER]Commandes pour gérer les modules de pack de politiques, exécutez $ cg policy pour plus d'informations.``` USAGE $ cg policy [PROVIDER] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Commands to manage policy pack modules, run $ cg policy for more info.
_See code: [src/commands/policy/index.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/policy/index.ts)_
## `cg policy add [PROVIDER]`
Ajouter de nouveaux packs de politiques```
USAGE
$ cg policy add [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Add new policy packs
ALIASES
$ cg add policy
EXAMPLES
$ cg policy add aws-cis-1.2.0
$ cg policy add [email protected]
cg policy install [PROVIDER]Installer les packs de politiques basés sur le fichier de verrouillage``` USAGE $ cg policy install [PROVIDER] [--no-save] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-save Set to not alter lock file, just delete plugin --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Install policy packs based on the lock file
ALIASES $ cg install policy
EXAMPLES $ cg policy install
## `cg policy list [PROVIDER]`
Liste les packs de politiques et versions actuellement installés```
USAGE
$ cg policy list [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
List currently installed policy packs and versions
ALIASES
$ cg ls policy
$ cg list policy
EXAMPLES
$ cg policy list
$ cg policy list aws
cg policy remove [PROVIDER]Supprimer le pack de politiques actuellement installé``` USAGE $ cg policy remove [PROVIDER] [--no-save] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-save Set to not alter lock file, just delete plugin --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Remove currently installed policy pack
ALIASES $ cg remove policy $ cg policy remove $ cg policy rm $ cg del policy $ cg rm policy
EXAMPLES $ cg policy remove
$ cg policy remove aws-cis-1.2.0
$ cg policy remove aws-cis-1.2.0 --no-save
## `cg policy update [PROVIDER]`
Mettre à jour les packs de politique actuellement installés```
USAGE
$ cg policy update [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Update currently installed policy packs
EXAMPLES
$ cg policy update
$ cg policy update aws-cis-1.2.0
$ cg policy update [email protected]
cg provider [PROVIDER]Commandes pour gérer les modules fournisseurs, exécutez $ cg provider pour plus d'informations.``` USAGE $ cg provider [PROVIDER] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Commands to manage provider modules, run $ cg provider for more info.
_Voir le code : [src/commands/provider/index.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/provider/index.ts)_
## `cg provider add [PROVIDER]`
Ajouter de nouveaux fournisseurs```
USAGE
$ cg provider add [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Add new providers
ALIASES
$ cg add provider
EXAMPLES
$ cg provider add aws
$ cg provider add [email protected]
cg provider install [PROVIDER]Installer les fournisseurs selon le fichier de verrouillage``` USAGE $ cg provider install [PROVIDER] [--no-save] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-save Set to not alter lock file, just delete plugin --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Install providers based on the lock file
ALIASES $ cg install provider
EXAMPLES $ cg provider install
## `cg provider list [PROVIDER]`
Liste les fournisseurs et versions actuellement installés```
USAGE
$ cg provider list [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
List currently installed providers and versions
ALIASES
$ cg ls provider
$ cg list provider
EXAMPLES
$ cg provider list
$ cg provider list aws
cg provider remove [PROVIDER]Supprime le fournisseur actuellement installé.``` USAGE $ cg provider remove [PROVIDER] [--no-save] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-save Set to not alter lock file, just delete plugin --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Remove currently installed provider
ALIASES $ cg remove provider $ cg provider remove $ cg provider rm $ cg del provider $ cg rm provider
EXAMPLES $ cg provider remove
$ cg provider remove aws
$ cg provider remove aws --no-save
## `cg provider update [PROVIDER]`
Mettre à jour les fournisseurs actuellement installés```
USAGE
$ cg provider update [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Update currently installed providers
EXAMPLES
$ cg provider update
$ cg provider update aws
$ cg provider update [email protected]
cg scan [PROVIDER]Analyse les données d'un ou plusieurs fournisseurs pour être interrogées via Dgraph``` USAGE $ cg scan [PROVIDER] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Scan one or multiple providers data to be queried through Dgraph
EXAMPLES $ cg scan
$ cg scan aws
$ cg scan aws --dgraph http://localhost:1000 [Save data in dgraph running on port 1000]
$ cg scan aws --no-serve [Do not start the query engine]
_Voir le code : [src/commands/scan.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/scan.ts)_
## `cg serve [PROVIDER]`
Sert un outil de requête GraphQL pour interroger vos données CloudGraph.```
USAGE
$ cg serve [PROVIDER] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p <value>]
[-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Serve a GraphQL query tool to query your CloudGraph data.
EXAMPLES
$ cg serve
Voir le code : src/commands/serve.ts
cg teardown [PROVIDER]Arrête le conteneur Docker Dgraph.``` USAGE $ cg teardown [PROVIDER] [--delete-image]
FLAGS --delete-image Remove dgraph docker image after stopping it
DESCRIPTION Stops the Dgraph Docker container.
EXAMPLES $ cg teardown
$ cg teardown --delete-image
_Voir le code : [src/commands/teardown.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/teardown.ts)_
## `cg update [PROVIDER]`
Mettre à niveau les plugins actuellement installés.```
USAGE
$ cg update [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Upgrade currently installed plugins.
ALIASES
$ cg update
EXAMPLES
$ cg update
Voir le code: src/commands/update.ts