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: the graph maps relationships and topology, while live queries verify live state in real time.

Setup

Live queries are enabled per credential from the credential list in your cloud integration settings. For each connected AWS role, AWS IAM user, GCP service account, or Azure credential, a toggle controls whether Annie can run live queries with it.
1

Connect your cloud account

Connect via the existing integrations: AWS (IAM Assume Role or IAM User), GCP (Service Account), or Azure (Service Principal or Workload Identity Federation).
2

Open your cloud integration settings

Go to Integrations and select the cloud provider (AWS, GCP, or Azure).
3

Enable the toggle

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

Annie is ready

Annie uses 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.

Security

Every CLI command Annie can execute is explicitly allowlisted. If a command is not on the allowlist, it is rejected.
  • Strict allowlisting: Only explicitly reviewed and approved commands can run. Unknown commands are blocked by default.
  • Read-only operations only: The allowlist includes only describe, list, get, and show commands. No create, update, delete, or terminate operations are permitted.
  • Pagination limits: Commands returning 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.
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.

Reference

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 uses the cloud credentials you’ve already configured in Anyshift, only those with “Read-Only Agentic Live Queries” enabled. The same credentials used for infrastructure graph ingestion are reused for live queries.
  • Credential selection: When Annie runs a CLI command, she selects the appropriate credential set for the target account. With multiple enabled accounts (e.g., prod-aws, staging-gcp, azure-prod), she picks the one relevant to the investigation.
  • Secure injection: 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
Annie uses cloud CLI commands when she needs information beyond what the knowledge graph snapshot provides.
  • Live state verification: During an RCA, Annie found EC2 instance i-0abc123 in the graph but runs aws ec2 describe-instance-status to confirm it’s still running and healthy, catching stale snapshots or recent changes.
  • Resource enumeration: For “How many Lambda functions do we have in production?”, Annie runs aws lambda list-functions for an accurate real-time count. CLI is often more direct than a graph query for counts and listings.
  • Operational diagnostics: Seeing connection timeouts in logs, Annie uses dig and curl to verify DNS resolution and endpoint reachability, useful when logs reference external dependencies or network issues.
  • Configuration verification: Investigating a flagged security group change, Annie runs aws ec2 describe-security-groups to compare current rules against what the graph recorded.
  • Load balancer health: On 5xx alerts from an ALB, Annie checks aws elbv2 describe-target-health for unhealthy targets and correlates with ECS task status via aws ecs describe-tasks, then traces the issue using the graph’s dependency map.
  • Azure metrics & monitoring: For a high-CPU Azure VM, Annie runs az monitor metrics list for latest values and az monitor metrics alert list to check firing alert rules.
Compute
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
Networking
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
Storage & Databases
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
Identity & Security
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
Monitoring & Events
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
Compute & Containers
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
Networking
ServiceCommands
Networkslist, peerings list, subnets list
Firewall Ruleslist
Forwarding Ruleslist
Routeslist
Addresseslist
Backend Serviceslist, get-health
Databases
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
Storage & Data
ServiceCommands
Cloud Storagebuckets list, buckets describe
Pub/Subtopics list, subscriptions list, subscriptions describe
Dataprocclusters list, clusters describe, jobs list
Identity & Projects
ServiceCommands
Projectslist, describe, get-iam-policy
IAM Service Accountslist, describe, keys list
Monitoring & Logging
ServiceCommands
Monitoringdashboards list, policies list
Loggingread
Monitoring & Diagnostics
ServiceCommands
Monitor Metricslist, list-definitions, list-namespaces
Monitor Alertsalert list, alert show
Activity Loglist
Log Analyticsworkspace list
Diagnostic Settingslist
Compute
ServiceCommands
Virtual Machineslist, show
AKSlist, show, nodepool list
Networking
ServiceCommands
Virtual Networksvnet list
Network Security Groupsnsg list, nsg rule list
Public IPspublic-ip list
Storage & Databases
ServiceCommands
Storage Accountsaccount list
SQL Serverserver list, server show
SQL Databasesdb list
Cosmos DBlist
Resource Discovery
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.
Alongside cloud CLIs, Annie has access to 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