Skip to main content

Overview

Annie can execute read-only cloud CLI commands against your live infrastructure during investigations and chat sessions. This complements the knowledge graph — while the graph maps relationships and topology, live queries verify live state in real time.

Enable Live Queries

Live queries are enabled per credential from the credential list in your cloud integration settings. For each AWS role, AWS IAM user, GCP service account, or Azure credential you’ve connected, a toggle controls whether Annie is allowed to run live queries with those credentials.
1

Go to your cloud integration settings

Navigate to Integrations and select the cloud provider (AWS, GCP, or Azure).
2

Enable the toggle

On the credentials list page, toggle “Read-Only Agentic Live Queries” for the credential you want to enable. This grants Annie permission to run whitelisted CLI commands using this specific credential.
3

Annie is ready

Annie will now use the enabled credentials for live query operations during investigations and chat sessions. No restart or configuration reload needed.
You can enable live queries on some credentials and not others. For example, enable it on your production AWS role for incident investigation, but leave it off on staging credentials.

When Does Annie Use Live Queries?

Annie decides to use cloud CLI commands when she needs information that goes beyond what the knowledge graph snapshot provides. Here are common scenarios:
During an RCA, Annie found an EC2 instance i-0abc123 in the knowledge graph but needs to check if it’s still running and healthy.She runs aws ec2 describe-instance-status to verify the current state matches what the graph shows — catching cases where the graph snapshot is stale or a resource was recently modified.
A user asks “How many Lambda functions do we have in production?”Annie runs aws lambda list-functions to get an accurate real-time count rather than relying on the last graph snapshot. For simple counts and listings, CLI is often more direct than a graph query.
During an incident, Annie sees connection timeout errors in application logs. She uses dig and curl to verify DNS resolution and endpoint reachability — something monitoring dashboards can’t directly check.This is especially useful when logs reference external dependencies or network issues that need verification beyond what observability tools show.
Annie is investigating a security group change flagged by the knowledge graph. She runs aws ec2 describe-security-groups to compare the current rules against what the graph recorded, confirming whether a recent change caused the issue.
An alert reports 5xx errors from an ALB. Annie checks aws elbv2 describe-target-health to identify which targets are unhealthy and correlates with ECS task status via aws ecs describe-tasks.By combining live health data with the knowledge graph’s dependency map, Annie can trace the issue from the load balancer down to the root cause.
Annie needs to check real-time metrics for an Azure VM experiencing high CPU. She runs az monitor metrics list to pull the latest metric values and az monitor metrics alert list to check if any alert rules are firing.This provides live observability data that complements the infrastructure graph’s static view.

How Credentials Work

Annie uses the cloud credentials you’ve already configured in Anyshift — only those with “Read-Only Agentic Live Queries” enabled.
1

Connect your cloud account

Connect your cloud account to Anyshift via the existing integrations — AWS (IAM Assume Role or IAM User), GCP (Service Account), or Azure (Service Principal or Workload Identity Federation).
2

Enable live queries

On the credentials list page, toggle “Read-Only Agentic Live Queries” for each credential you want Annie to use.
3

Annie selects the right credentials

When Annie needs to run a CLI command, she selects the appropriate credential set for the target account. If you have multiple enabled accounts (e.g., prod-aws, staging-gcp, azure-prod), Annie picks the one relevant to the investigation.
4

Credentials are injected securely

Credentials are injected server-side into the command execution environment. They are never exposed to the AI model, never logged, and never included in responses.
Cloud ProviderCredential TypeWhat’s Used
AWSIAM Assume Role / IAM UserTemporary STS credentials (access key, secret key, session token)
GCPService AccountShort-lived access token + project ID
AzureService PrincipalPer-execution az login with client secret via stdin
AzureWorkload Identity Federation (OIDC)Per-execution az login with JWT federated token
The same credentials you configured for infrastructure graph ingestion are used for live query operations. Just enable the “Read-Only Agentic Live Queries” toggle on each credential you want Annie to use.

The Whitelist — Security by Design

Every CLI command Annie can execute is explicitly allowlisted. This is a strict security model — if a command is not on the allowlist, it is rejected.

How It Works

  • Strict allowlisting: Only commands that have been explicitly reviewed and approved can run. Unknown commands are blocked by default.
  • Read-only operations only: The allowlist only includes describe, list, get, and show commands. No create, update, delete, or terminate operations are permitted.
  • Pagination limits: Commands that return large datasets enforce pagination via --max-items or --top to prevent runaway queries and excessive costs.
  • Restricted utility flags: Tools like curl and dig have a strict subset of allowed flags — for example, curl can only access HTTPS URLs and cannot send custom headers.

What Gets Validated

Every command goes through multiple validation checks before execution:
ValidationWhat It ChecksExample
BinaryThe tool must have a registered validatorrm, chmod, wget → rejected
CommandThe specific subcommand must be allowlistedaws ec2 terminate-instances → rejected
FlagsEvery flag must be explicitly permittedcurl -H "Authorization: ..." → rejected
URLsMust be HTTPS, no internal/metadata endpointscurl http://169.254.169.254/ → rejected
PaginationLarge-output commands must include limitsaws ec2 describe-instances without --max-items → enforced
Annie cannot modify your infrastructure through CLI commands. All access is strictly read-only. If a command isn’t on the allowlist, it’s rejected with a clear error and Annie falls back to the knowledge graph.

Supported Operations

AWS CLI

ServiceCommands
EC2describe-instances, describe-instance-status, describe-images, describe-volumes, describe-snapshots
ECSlist-clusters, describe-clusters, list-services, describe-services, list-tasks, describe-tasks, describe-task-definition
EKSlist-clusters, describe-cluster, list-nodegroups, describe-nodegroup, list-addons, describe-addon-versions
Lambdalist-functions, get-function, get-policy, list-event-source-mappings, get-function-concurrency, get-function-url-config, get-function-code-signing-config, list-provisioned-concurrency-configs
ServiceCommands
EC2 (VPC)describe-vpcs, describe-subnets, describe-security-groups, describe-route-tables, describe-nat-gateways, describe-internet-gateways, describe-network-interfaces
ELBv2describe-load-balancers, describe-listeners, describe-target-groups, describe-target-health
CloudFrontlist-distributions, get-distribution
API Gatewayget-integration, get-stage
ServiceCommands
S3ls
S3 APIlist-buckets, get-bucket-encryption, get-bucket-lifecycle-configuration, get-bucket-policy, get-bucket-replication, get-bucket-versioning, get-public-access-block
RDSdescribe-db-instances, describe-db-clusters, describe-db-log-files
DynamoDBdescribe-table, describe-continuous-backups, describe-time-to-live
ElastiCachedescribe-cache-clusters, describe-replication-groups
ServiceCommands
IAMlist-roles, list-users, list-policies, list-attached-role-policies, get-role, get-policy, get-account-summary
STSget-caller-identity, get-access-key-info
ServiceCommands
CloudWatchdescribe-alarms, describe-alarm-history, get-metric-statistics
CloudWatch Logsdescribe-log-groups, describe-log-streams, filter-log-events
EventBridgelist-rules, describe-rule, list-targets-by-rule

Google Cloud CLI (gcloud)

ServiceCommands
Compute Instanceslist, describe, get-serial-port-output
Compute Diskslist, describe
Instance Groupslist, managed describe
GKE Clusterslist, describe
GKE Node Poolslist
Cloud Run Serviceslist, describe
Cloud Run Revisionslist
ServiceCommands
Networkslist, peerings list, subnets list
Firewall Ruleslist
Forwarding Ruleslist
Routeslist
Addresseslist
Backend Serviceslist, get-health
ServiceCommands
Cloud SQLinstances list, instances describe, databases list, backups list, operations list
Spannerinstances list, instances describe, databases list, operations list
Memorystore (Redis)instances list, instances describe
ServiceCommands
Cloud Storagebuckets list, buckets describe
Pub/Subtopics list, subscriptions list, subscriptions describe
Dataprocclusters list, clusters describe, jobs list
ServiceCommands
Projectslist, describe, get-iam-policy
IAM Service Accountslist, describe, keys list
ServiceCommands
Monitoringdashboards list, policies list
Loggingread

Azure CLI

ServiceCommands
Monitor Metricslist, list-definitions, list-namespaces
Monitor Alertsalert list, alert show
Activity Loglist
Log Analyticsworkspace list
Diagnostic Settingslist
ServiceCommands
Virtual Machineslist, show
AKSlist, show, nodepool list
ServiceCommands
Virtual Networksvnet list
Network Security Groupsnsg list, nsg rule list
Public IPspublic-ip list
ServiceCommands
Storage Accountsaccount list
SQL Serverserver list, server show
SQL Databasesdb list
Cosmos DBlist
ServiceCommands
Accountshow, list
Resource Groupslist
Resourceslist, show
Azure supports both Service Principal (client secret) and Workload Identity Federation (OIDC) authentication. Both work with live queries — see the Azure integration guide for setup.

Utility Tools

In addition to cloud CLIs, Annie has access to a set of utility tools for diagnostics and data processing:
ToolPurposeExample Use Case
curlHTTP endpoint checks (HTTPS only, no custom headers)Check if an API endpoint is reachable and responding
digDNS lookups and diagnosticsVerify DNS resolution for a service endpoint during connectivity issues
jqJSON processing and filteringParse and filter complex CLI output
yqYAML processingParse Kubernetes manifests or configuration files
base64Encode/decode dataDecode base64-encoded configuration values
dateDate/time operationsConvert timestamps between formats during log analysis
opensslCertificate inspectionCheck TLS certificate expiry and chain validity

Get Started

Create Account

Sign up for Anyshift and connect your cloud accounts

Request Demo

See Annie’s live query capabilities in action