
Универсальный инструмент GraphQL API и CSPM для AWS, Azure, GCP, K8s и tencent.
CloudGraph — это бесплатный универсальный инструмент с открытым исходным кодом для GraphQL API и управления положением безопасности в облаке (CSPM) для AWS, Azure, GCP и K8s. С CloudGraph вы получаете:
Cloud Graph позволяет вам узнать своё облако за 5 минут. Создано и поддерживается с любовью командой ❤️ AutoCloud ❤️
🌐 Веб-сайт
💰 Получите вознаграждение за создание провайдеров CloudGraph
** использование не подразумевает одобрения
AWS, Azure и GPC проделали замечательную работу по созданию решений, которые позволяют таким инженерам, как мы, создавать системы для управления нашим всё более взаимосвязанным миром. За последние 15 лет такие продукты, как EC2, S3, RDS и Lambda, коренным образом изменили наше представление о вычислениях, хранении данных и базах данных.
С распространением Kubernetes и Serverless за последние примерно 5 лет облачные сервисы стали всё более абстрактными поверх стоек физических серверов. Для конечных пользователей всё в облаке — это просто API, поэтому нам не обязательно знать, как работают Lambda Functions или EKS под капотом, чтобы использовать их для создания приложений. С небольшой документацией, доступом к API или консоли и учебным пособием любой может создать практически всё, что ему нужно.
Эти абстракции привели к значительному улучшению общего удобства и широты предложений облачных сервисов. То, что когда-то было трудоёмким, затратным по времени и подверженным ошибкам процессом предоставления новых серверов, баз данных или файловых систем, теперь можно сделать за секунды одним нажатием кнопки или развёртыванием IAC. Поскольку всё это абстракция API, когда CAP готов представить новый «продукт», ему просто нужно предоставить новый API — да, конечно, я немного упрощаю :)
Любой, кто знаком с CSP, знает, что API сервисов почти всегда разделены на модульные пространства имён, содержащие десятки, если не сотни, отдельных методов API для отдельных ресурсов. Например, сервис AWS EC2 содержит более 500 различных методов API, и время от времени добавляются новые. Любая компания, создающая серьёзные системы на CSP, скорее всего, использует множество разных сервисов.
Хотя это шедевр архитектуры центров обработки данных, выбор сотен сервисов и опций конфигурации возлагает бремя знаний о том, как правильно использовать эти сервисы, непосредственно на нас, инженеров. В результате нам приходится постоянно быть в курсе и изучать все предложения сервисов или новые изменения. Это требует значительного времени и умственных усилий. Как разработчикам, бывает сложно, трудоёмко и раздражает использовать AWS CLI для выполнения 5 различных вызовов API для описания, например, кластера AWS ECS, его сервисов, определений задач, задач, определений контейнеров и т.д. Мы часто оказываемся в документации и вынуждены использовать полдюжины API, чтобы получить ответы на вопросы вроде «Что именно работает в этой VPC?»
Это означает, что AWS, Azure и GCP могут быстро показаться ошеломляющими даже опытным облачным архитекторам. Хотя CSP отлично справляются с созданием реальных сервисов, обеспечивающих работу нашего бизнеса, не так много прогресса было достигнуто в упрощении повседневного пользовательского опыта при запросах к этим сотням сервисов разумным образом.
Новые решения, такие как Cloud Control API для AWS, попытались создать стандартизированный интерфейс для запросов к множеству различных типов ресурсов AWS. К сожалению, использование Cloud Control API сильно ограничено, и пользователям всё равно нужно знать, как правильно запрашивать свои данные. Это означает больше времени на чтение документации и понимание того, как работают сервисы и как они связаны друг с другом.
Хотя модульность API CSP — отличная логическая система организации и имеет смысл, она является бременем для конечных пользователей с точки зрения когнитивной нагрузки и кривой обучения. Необходимость помнить, как работают сотни постоянно меняющихся сервисов и как они связаны, приводит к кофеиновой зависимости и потере времени на поиски.
Разве не было бы здорово, если бы мы, DevOps/облачные инженеры, имели более простой способ получать наши данные из AWS, Azure, GCP и других? Такой, который отражал бы нашу потребность легко запрашивать любые данные о любом сервисе в любой учётной записи, не тратя часы на документацию или Stack Overflow?
Именно по этим причинам мы создали CloudGraph — GraphQL API для всего облачного. CloudGraph извлекает, нормализует, обрабатывает и обогащает ваши облачные данные, позволяя вам без усилий получать глубокие инсайты по нескольким провайдерам. Ознакомьтесь с нашей статьёй в блоге The GraphQL API for everything чтобы узнать больше.
Обратите внимание, что CloudGraph требует только для чтения разрешения для работы и, таким образом, никогда не может изменить вашу реальную облачную инфраструктуру. Кроме того, никакая информация о вашем облачном окружении никогда не отправляется и не передаётся CloudGraph, AutoCloud или любым другим третьим сторонам.
Под капотом CloudGraph обращается к вашему облачному провайдеру(ам), собирает все данные конфигурации, обрабатывает их и сохраняет копию этих данных для вас в Dgraph. Затем он предоставляет конечную точку http://localhost:8997, которая позволяет вам писать GraphQL-запросы к сохранённым данным. Эти запросы не только позволяют вам делать всё, что вы делали бы, скажем, с AWS SDK/CLI, но также позволяют выполнять гораздо более мощные запросы. CloudGraph поставляется с предварительно упакованными инструментами запросов GraphQL, включая GraphQL Playground и Altair, но вы также можете свободно использовать свои собственные. Он также включает инструмент визуализации схемы Voyager, чтобы вы могли понимать связи между сущностями.
CloudGraph в настоящее время поддерживает AWS, Azure, GCP, K8s и Tencent (ещё несколько скоро появятся). CloudGraph нужны разрешения на чтение для приёма ваших данных. Чтобы всё было просто, вы можете использовать те же разрешения, которые мы используем внутри, когда запускаем CloudGraph для работы AutoCloud. Вот руководства по аутентификации и подробности о том, как сгенерировать учётные данные для каждого провайдера (не стесняйтесь опустить конфигурацию, специфичную для AutoCloud):
Системные требования
Существует 2 способа установки CLI CloudGraph
Вы можете установить CloudGraph с помощью homebrew следующей командой:
brew install cloudgraphdev/tap/cg
Use this command to install and update CloudGraph to the latest 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="установка" 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.
<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.Обратите внимание, что если вы не хотите использовать эту команду, например, если хотите запустить контейнер Dgraph в интерактивном режиме, вы можете использовать команду docker ниже.```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 — абсолютно нормально, они обычно вызваны проблемами с правами доступа. Тем не менее, если вы столкнетесь с какими-либо критическими ошибками при запуске CloudGraph, вы можете добавить CG_DEBUG=5 в начало вашей команды, например: CG_DEBUG=5 cg scan. Это выведет подробные логи с дополнительной информацией и сохранит вывод в файл cg-debug.log. Пожалуйста, поделитесь с нами вашими логами, либо открыв issue на GitHub, либо сообщив нам в нашем Slack Workspace.Вот и всё, вы готовы начинать запросы! Инструмент запросов, который вы выбрали во время команды cg init, будет открыт в вашем браузере по умолчанию для выполнения запросов, мутаций и визуализаций всей вашей облачной инфраструктуры! Обратите внимание, что если вы установили какие-либо пакеты политик (policy packs), например AWS CIS 1.2, данные аналитики пакетов политик будут автоматически добавлены к вашим облачным данным!
Обратите внимание, что вы также можете использовать любой инструмент запросов GraphQL, подключив его к http://localhost:8997/graphql.
Чтобы остановить экземпляр Dgraph (остановить контейнер dgraph), выполните:
```bash
cg teardown
<br />
Кроме того, если вы хотите удалить контейнер после его остановки, выполните:
<br />```bash
cg teardown --delete-image
CloudGraph хранит столько предыдущих версий ваших данных, сколько вы настроили в команде cg init. Чтобы загрузить и выполнить запрос к предыдущей версии ваших данных, просто выполните команду cg load и выберите версию данных, которую хотите проверить, как показано ниже:
Вы можете найти список сервисов, поддерживаемых в настоящее время для каждого провайдера, в следующих репозиториях провайдеров:
Ссылка на полную документацию: https://docs.cloudgraph.dev/overview.
Для использования CloudGraph вам необходимо быть знакомым с GraphQL. Этот раздел содержит несколько примеров запросов, чтобы помочь вам начать работу, но он ни в коем случае не является исчерпывающим. Если вы можете это придумать, вы можете это запросить! Обратите внимание, что вы можете найти сотни дополнительных примеров запросов в документации.
Примечание: в этом разделе основное внимание уделяется AWS, но те же идеи применимы и к другим провайдерам, таким как Azure и GCP.
Чтобы объяснить, как работает CloudGraph, рассмотрим следующий запрос, который можно выполнить, чтобы получить ID и ARN одного EC2 instance. Обратите внимание, что в этих примерах мы будем запрашивать только ID и ARN ресурсов AWS для краткости, но вы можете запрашивать любые атрибуты:
```graphql
query {
getawsEc2(
arn: "arn:aws:ec2:us-east-1:123445678997:instance/i-12345567889012234"
) {
id
arn
}
}
<br />
Этот запрос вернёт полезную нагрузку `JSON`, которая выглядит следующим образом. Все последующие примеры будут следовать тому же принципу:
<br />```json
{
"data": {
"getawsEc2": {
"id": "i-12345567889012234",
"arn": "arn:aws:ec2:us-east-1:123445678997:instance/i-12345567889012234"
}
},
"extensions": {
"touched_uids": 4
}
}
Получите ID и ARN каждого EC2 во всех AWS-аккаунтах, которые вы просканировали:```graphql
query {
queryawsEc2 {
id
arn
}
}
<br />
Получите `ID` и `ARN` всех экземпляров `EC2` в **одном** из ваших аккаунтов AWS, отфильтровав по accountId:```graphql
query {
queryawsEc2(filter: { accountId: { eq: "123456" } }) {
id
arn
}
}
Получить ID и ARN каждого EC2 в "us-east-1", используя регулярное выражение для поиска ARN:```graphql
query {
queryawsEc2(filter: { arn: { regexp: "/.us-east-1./" } }) {
id
arn
}
}
<br />
Сделайте то же самое, но проверяя, что `region` равно `"us-east-1"` вместо использования регулярного выражения:```graphql
query {
queryawsEc2(filter: { region: { eq: "us-east-1" } }) {
id
arn
}
}
Сделайте то же самое, но проверьте, что region содержит "us-east-1" в имени вместо использования eq```graphql
query {
queryawsEc2(filter: { region: { in: "us-east-1" } }) {
id
arn
}
}
<br />
Получить `ID` и `ARN` каждого `EC2 instance` серии `M5` в `"us-east-1"````graphql
query {
queryawsEc2(
filter: { region: { eq: "us-east-1" }, instanceType: { regexp: "/^m5a*/" } }
) {
id
arn
}
}
Сделайте то же самое, но пропустите первый найденный результат (т.е. offset: 1), затем верните только первые два результата после этого (т.е. first: 2) и отсортируйте эти результаты по AZ в порядке возрастания (order: { asc: availabilityZone }), чтобы экземпляры в "us-east-1a" оказались вверху списка.```graphql
query {
queryawsEc2(
filter: { region: { eq: "us-east-1" }, instanceType: { regexp: "/^m5a*/" } }
order: { asc: availabilityZone }
first: 2
offset: 1
) {
id
arn
}
}
<br />
Сделайте то же самое, но также включите `EBS Volume`, который является загрузочным диском для каждого `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
}
}
}
Сделайте то же самое, но также включите SGs и ALBs для каждого EC2. Для ALBs получите EC2, к которым они подключены, вместе с ID и ARN каждого найденного 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
}
securityGroups {
id
arn
}
alb {
id
arn
ec2Instance {
id
arn
}
}
}
}
<br />
Получите каждый `VPC`, а также `ALBs` и `Lambdas` в этом `VPC`, затем кучу вложенных подданных. Также получите каждый `S3 Bucket` в `us-east-1`. Также получите очередь `SQS` с `ARN` равным `arn:aws:sqs:us-east-1:8499274828484:autocloud.fifo` и проверьте `approximateNumberOfMessages`. Вы поняли идею, CloudGraph **чрезвычайно** мощный.```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
}
}
Policy Packs CloudGraph гарантируют соответствие существующей инфраструктуры требованиям для данного облачного провайдера. Пакеты основаны на наборах правил/эталонов, предоставляемых такими организациями по безопасности, как Центр интернет-безопасности, с целью поддержания вашей инфраструктуры в актуальном состоянии в соответствии с отраслевыми стандартами безопасности. После добавления пакета политик с помощью команды cg policy add (например, cg policy add aws-cis-1.2.0) при каждом запуске сканирования CloudGraph будет автоматически выполнять ваши настроенные политики. Результаты будут сохранены в Dgraph и связаны с вашими существующими ресурсами, что упрощает запрос результатов соответствия вместе с вашими ресурсами.
Для получения дополнительной информации о доступных в настоящее время пакетах политик посетите наш репозиторий Policy Packs
Используйте Policy Pack CloudGraph для AWS CIS 1.2, чтобы запросить все результаты CIS для всех ваших учетных записей AWS:```graphql query { queryawsCISFindings { id resourceId result rule { id description severity } } }
<br />
Если вы хотите запросить сразу несколько различных результатов проверки соответствия для данного поставщика, такого как AWS, вы можете запросить их следующим образом:```graphql
query {
queryawsFindings {
CISFindings {
id
resourceId
result
rule {
id
description
severity
}
}
AutoCloudFindings {
id
resourceId
result
rule {
id
description
severity
}
}
}
}
Для каждого правила CIS получаем ресурсы, с которыми это правило связано. В данном случае мы запрашиваем данные пользователей IAM, чтобы узнать, какие из них проходят проверку, а какие нет:```graphql query { queryawsCISFindings { id resourceId result rule { id description severity } iamUser { id arn name } } }
<br />
Если вы хотите понять, какие правила CIS применяются к конкретному пользователю IAM, вы можете использовать следующий запрос:```graphql
query {
getawsIamUser(id: "123456789") {
name
CISFindings {
id
resourceId
result
rule {
id
description
severity
}
}
}
}
Даже если у вас не установлены никакие пакеты политик, вы всё равно можете писать мощные запросы безопасности, например, чтобы найти все незашифрованные EBS Volumes:```graphql
query {
queryawsEbs(filter: { encrypted: false }) {
id
arn
availabilityZone
encrypted
}
}
<br />
Найдите все публичные `S3 Buckets`:```graphql
query {
queryawsS3(filter: { access: { eq: "Public" } }) {
id
arn
access
}
}
Найдите все S3 Buckets, которые сами являются публичными или могут содержать объекты, которые являются публичными в них:```graphql
query {
queryawsS3(filter: { not: { access: { eq: "Private" } } }) {
id
arn
access
}
}
<br />
Найти все ключи `KMS` в `"us-east-1"`:```graphql
query {
queryawsKms(filter: { arn: { regexp: "/.*us-east-1.*/" } }) {
id
arn
description
keyRotationEnabled
tags {
key
value
}
}
}
Найдите все экземпляры серии T с возможностью burst:```graphql
query {
queryawsEc2(filter: { instanceType: { regexp: "/^t.*/" } }) {
id
arn
availabilityZone
instanceType
}
}
<br />
Найдите `VPCs` по умолчанию:```graphql
query {
queryawsVpc(filter: { defaultVpc: true }) {
id
arn
defaultVpc
state
}
}
Найдите публичные ALBs:```graphql
query {
queryawsAlb(filter: { scheme: { eq: "internet-facing" } }) {
id
arn
dnsName
createdAt
tags {
key
value
}
}
}
<br />
Найдите все `EC2s`, `Lambdas` и `VPCs`, у которых значение `Tag` равно `"Production"`:```graphql
query {
queryawsTag(filter: { value: { eq: "Production" } }) {
key
value
ec2Instance {
id
arn
}
lambda {
id
arn
}
vpc {
id
arn
}
}
}
Сделайте то же самое, но ищите как key, так и value:```graphql
query {
queryawsTag(
filter: { key: { eq: "Environment" }, value: { eq: "Production" } }
) {
key
value
ec2Instance {
id
arn
}
lambda {
id
arn
}
vpc {
id
arn
}
}
}
<br />
Сделайте то же самое, используя `getawsTag` вместо `queryawsTag`. Обратите внимание, что при поиске тегов с помощью `getawsTag` вы должны указать **оба** `key` и `value` как `id`, как это сделано ниже с `"Environment:Production"`:```graphql
query {
getawsTag(id: "Environment:Production") {
key
value
ec2Instance {
id
arn
}
lambda {
id
arn
}
vpc {
id
arn
}
}
}
Обратите внимание, что данные о выставлении счетов в настоящее время доступны только для AWS. Чтобы успешно загружать данные, связанные с FinOps, в вашей учетной записи AWS должен быть включен API Cost Explorer. Вы можете узнать, как это сделать, здесь
Получите total cost вашей учетной записи AWS за last 30 days, total cost вашей учетной записи AWS month to date, разбивку each service and its cost for the last 30 days, и разбивку each service and its cost month to date, а также monthly и month to date average costs:```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 />
Этот запрос вернет полезную нагрузку `JSON`, которая выглядит следующим образом:```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
}
}
Получите каждый EC2 instance в вашей учетной записи AWS вместе с его ежедневной стоимостью:```graphql
query {
queryawsEc2 {
arn
dailyCost {
cost
currency
formattedCost
}
}
}
<br />
Этот запрос вернет `JSON`-полезную нагрузку, которая выглядит следующим образом. Все последующие примеры будут следовать аналогично:```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
}
}
Получите каждый NAT Gateway в вашем аккаунте AWS вместе с его ежедневной стоимостью:```graphql
query {
queryawsNatGateway {
arn
dailyCost {
cost
currency
formattedCost
}
}
}
<br />
## Пример AWS CloudWatch:
CloudGraph собирает данные ваших метрик CloudWatch и сохраняет их вместе с выбранными сервисами AWS. Эта функция в настоящее время находится в бета-версии и будет работать только для 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
}
}
}
}
Когда вы думаете «в терминах графа», вы можете сделать почти всё с CloudGraph. Например, предположим, что вы хотите узнать, какие функции Lambda не принадлежат VPC (т.е. не используют сетевые возможности VPC). Поскольку CloudGraph соединяет все ресурсы, имеющие связи, такие как родительские VPC с их дочерними Lambda, вы легко можете ответить на этот вопрос. Просто проверьте, к каким функциям Lambda подключен VPC, и сравните это со списком всех функций Lambda следующим образом:```graphql query { queryawsVpc { id arn lambda { id arn } } queryawsLambda { id arn } }
<br />
## Ограничения
<br />
На сегодняшний день самое большое ограничение CloudGraph и наших возможностей запросов заключается в том, что мы не поддерживаем вложенную фильтрацию по атрибутам дочерних элементов. Например, как бы это ни было круто, сделать следующее пока невозможно:
<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
}
}
}
На самом деле это не ограничение CloudGraph, а скорее возможность, которую ещё предстоит реализовать в Dgraph. Вы можете просмотреть и оставить комментарий в ветке обсуждения здесь
CloudGraph поставляется с двумя отличными инструментами для запросов и обозревателем схем GraphQL. Помните: вы можете использовать ЛЮБОЙ инструмент для запросов GraphQL, если предпочитаете другой вариант — просто подключите его к вашему открытому /graphql эндпоинту!
GraphQL Playground обладает удобным и увлекательным пользовательским интерфейсом, который отлично подходит для быстрых и простых запросов к схеме GraphQL. Он имеет встроенную автоматически генерируемую документацию и автозаполнение во время ввода. Чтобы получить доступ к Playground, выберите его в качестве предпочтительного инструмента запросов в команде init или перейдите по адресу /playground на сервере, запущенном CG.
Altair — это ещё один отличный инструмент для запросов GraphQL, который содержит множество функций для опытных пользователей. Вы можете выполнять такие действия, как автозаполнение запросов, динамическое добавление фрагментов и экспорт/импорт коллекций запросов. Чтобы получить доступ к Altair, выберите его в качестве предпочтительного инструмента запросов в команде init или перейдите по адресу /altair на сервере, запущенном CG.
GraphQL Voyager — это отличный способ изучить схемы ваших провайдеров CG. Он предоставляет удобную двунаправленную диаграмму, содержащую все ваши типы и запросы. Вы можете нажимать на сущности или стрелки, чтобы обнаружить связи, найти что-то конкретное и глубже понять вашу схему. Чтобы получить доступ к Voyager, перейдите по адресу /voyager на сервере, запущенном CG.
Есть комментарии, вопросы или отзывы? Пожалуйста, Присоединяйтесь к нашему Slack-пространству — мы будем рады вас услышать.
Если вы заинтересованы в участии в разработке CloudGraph, пожалуйста, ознакомьтесь с нашими Рекомендациями по участию.
Вы можете запускать CloudGraph локально или развернуть его в облачном провайдере по вашему выбору. Модули Terraform и руководства для облачных развёртываний скоро появятся!
Заинтересованы в полностью управляемой SaaS-версии или локальной версии CloudGraph со встроенными возможностями 3D-визуализации, автоматическим сканированием и сотнями дополнительных проверок соответствия? Узнайте подробности на AutoCloud.
Если при запуске CloudGraph возникают ошибки, вы можете добавить CG_DEBUG=5 в начало вашей команды, например: CG_DEBUG=5 cg scan. Это выведет подробные логи с дополнительной информацией, которую затем можно использовать для создания проблемы на GitHub или сообщить нам в нашем Slack-пространстве.
При запуске CloudGraph могут возникать некоторые распространённые ошибки, обычно связанные с разрешениями или проблемами подключения.
⚠️ unable to make some connections — это предупреждение в отчёте сканирования появляется, когда CG пытается установить связь между двумя ресурсами, но не может этого сделать. Если вы видите это при использовании одного из официально поддерживаемых провайдеров CG, пожалуйста, создайте новую проблему, чтобы мы могли её решить. Наиболее частой причиной этой ошибки является ошибка в логике соединения ресурсов базового провайдера.
🚫 unable to store data in Dgraph — эта ошибка в отчёте сканирования появляется, когда CG пытается вставить некоторые данные облачного провайдера в графовую базу данных, и это не удаётся. Любые сервисы с этой ошибкой не смогут быть запрошены в инструменте запросов GraphQL. Обычно это происходит, когда CG не удаётся получить необходимые данные (например, ARN) для ресурса из-за ошибки при вызове SDK провайдера, часто из-за отсутствия авторизации.
Provider {name}@{version} requires cli version {version} but cli version is {version} — это предупреждение означает, что у вас несовместимые версии CG и используемого провайдера. Попробуйте обновить CG (npm install -g @cloudgraphdev/cli) и модуль провайдера (cg provider update), чтобы обе версии были последними. Вы также можете проверить package.json провайдера, чтобы узнать, какие версии CG его поддерживают.
Manager failed to install plugin for {provider} — эта ошибка возникает, когда менеджер плагинов CG не может найти модуль провайдера, который вы хотите использовать. Менеджер ищет модуль провайдера в публичном реестре NPM. Для официально поддерживаемых провайдеров просто передайте имя провайдера: cg init aws. Для провайдеров сообщества необходимо также передать пространство имён: 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]Отображение справки по 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.
_См. код: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.12/src/commands/help.ts)_
## `cg init [PROVIDER]`
Задать начальную конфигурацию для провайдеров```
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]
См. код: src/commands/init.ts
cg launch [PROVIDER]Запустить экземпляр Dgraph для хранения данных``` 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
_См. код: [src/commands/launch.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/launch.ts)_
## `cg load [PROVIDER]`
Загрузите определенную версию ваших данных 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]
См. код: src/commands/load.ts
cg policy [PROVIDER]Команды для управления модулями пакетов политик, выполните $ cg policy для получения дополнительной информации.``` 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.
_См. код: [src/commands/policy/index.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/policy/index.ts)_
## `cg policy add [PROVIDER]`
Добавить новые пакеты политик```
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]Установить пакеты политик на основе файла блокировки``` 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]`
Список установленных в данный момент пакетов политик и их версий```
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]Удалить установленный в данный момент пакет политик``` 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]`
Обновить установленные пакеты политик```
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]Команды для управления модулями провайдера, выполните $ cg provider для получения дополнительной информации.``` 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.
_См. код: [src/commands/provider/index.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/provider/index.ts)_
## `cg provider add [PROVIDER]`
Добавить новые провайдеры```
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]Установить провайдеры на основе файла блокировки``` 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]`
Вывести список установленных провайдеров и версий```
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]Удалить текущего установленного провайдера``` 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]`
Обновить текущие установленные провайдеры```
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]Сканирование данных одного или нескольких провайдеров для запросов через 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]
_См. код: [src/commands/scan.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/scan.ts)_
## `cg serve [PROVIDER]`
Запустите инструмент запросов GraphQL для запроса ваших данных 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
См. код: src/commands/serve.ts
cg teardown [PROVIDER]Останавливает контейнер 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
_См. код: [src/commands/teardown.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/teardown.ts)_
## `cg update [PROVIDER]`
Обновление установленных в данный момент плагинов.```
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
См. код: src/commands/update.ts