Skip to content

Coverage

Cloudkeel-DD is honest about coverage: capabilities are marked Shipped or Gap, and every discovered resource type that isn’t field-diffed is tracked as inventory — clearly labelled, never silently assumed clean.

The field-level diff engine covers 200 resource types — 79 Azure, 62 AWS, 59 GCP. Which of the 200 are cross-checked against your live cloud depends on where the desired state comes from, not on which cloud it is. There are two paths and they are not equal:

Desired-state sourceAzureAWSGCP
Terraform Cloud / Enterprise, or a local plan file681 — security groups only59
Raw .tfstate in S3, GCS, or Azure Blob776259

The gaps are specific, not approximate:

  • AWS on the plan path cross-checks security groups only. All 62 AWS types are cross-checked from raw state — so if AWS is your centre of gravity, connect a state bucket rather than relying on Terraform Cloud alone. This is the single largest asymmetry on the page.
  • Azure role assignments and role definitions are cross-checked on the plan path only. The raw-state path has no ARM api-version entry for them.
  • No type is unreachable on both paths.

A type with no spec is never field-diffed. It is annotated live_comparison: unavailable with a reason and counted as inventory — there is deliberately no fallback raw diff.

Two different bars, kept separate:

  • Engine-verified — the type’s normalizer passes golden-fixture tests: a clean case plus a drifted case for every field the spec declares, over synthetic desired-vs-live payloads. All 200 types meet this bar.

  • Proven against a real cloud account — exercised end-to-end against live infrastructure, with the finding confirmed in the database. This subset is smaller:

    CloudProven live
    AzureNSG rules
    AWSSecurity-group rules
    GCPFirewall rules
    KubernetesDrift across real AKS, EKS and GKE clusters

    Three cloud resource types, against 200 engine-verified. That ratio is wide and we publish it rather than average it: the engine bar grew sharply in 2026; the live-proof bar did not move with it. A spec passing golden fixtures is not the same as a mapping confirmed against a live API.

A different mechanism with different coverage: unmanaged detection asks what is running that no Terraform state declares.

CloudEnumerated types
Azure79
AWS64
GCP59
Kubernetes6 kinds — Deployments, StatefulSets, DaemonSets, Services, ConfigMaps, Ingress

Two limits worth knowing before your first scan:

  • It runs across enumerated types only. A resource of a non-enumerated type is not flagged. Two enumerated types are never field-diffed: AWS EIPs and route tables. Every enumerated Azure and GCP type is field-diffed.
  • On the three clouds it needs a connected Terraform state source to define what “managed” means. A cloud credential alone produces no findings. Kubernetes is the exception — ownership is read from each object’s own metadata, so it needs no state source.

Kubernetes coverage does not depend on a Terraform state source at all.

  • Field-level drift on 6 kinds, comparing Helm’s stored release manifest against a live API read.
  • Unmanaged workload detection on the same 6 kinds. Ownership is read from the object’s own metadata — Helm’s app.kubernetes.io/managed-by label and meta.helm.sh/release-name annotation, or ArgoCD’s tracking-id annotation and instance labels. An object whose ownership metadata has been stripped reads as unmanaged.
  • Out-of-band edit detection on already-managed objects, from metadata.managedFields.

Generated at build time from the product’s own type registry.

Enumerated types — detected as unmanaged. A field-diff spec means changes to a managed one of these are also caught at field level.

Azure — 79 enumerated types

Resource typeField-diff spec
azurerm_api_management
azurerm_app_configuration
azurerm_application_gateway
azurerm_application_insights
azurerm_automation_account
azurerm_availability_set
azurerm_bastion_host
azurerm_batch_account
azurerm_cognitive_account
azurerm_container_app
azurerm_container_registry
azurerm_cosmosdb_account
azurerm_data_factory
azurerm_databricks_workspace
azurerm_disk_encryption_set
azurerm_eventgrid_domain
azurerm_eventgrid_topic
azurerm_eventhub
azurerm_eventhub_namespace
azurerm_express_route_circuit
azurerm_firewall
azurerm_firewall_policy
azurerm_healthcare_service
azurerm_image
azurerm_iothub
azurerm_key_vault
azurerm_kubernetes_cluster
azurerm_lb
azurerm_linux_function_app
azurerm_linux_virtual_machine
azurerm_linux_virtual_machine_scale_set
azurerm_linux_web_app
azurerm_local_network_gateway
azurerm_log_analytics_workspace
azurerm_logic_app_workflow
azurerm_machine_learning_workspace
azurerm_managed_disk
azurerm_maps_account
azurerm_monitor_action_group
azurerm_monitor_activity_log_alert
azurerm_monitor_diagnostic_setting
azurerm_monitor_metric_alert
azurerm_mssql_database
azurerm_mssql_elasticpool
azurerm_mssql_managed_instance
azurerm_mssql_server
azurerm_mysql_flexible_server
azurerm_nat_gateway
azurerm_network_interface
azurerm_network_security_group
azurerm_notification_hub_namespace
azurerm_postgresql_flexible_server
azurerm_private_endpoint
azurerm_proximity_placement_group
azurerm_public_ip
azurerm_purview_account
azurerm_recovery_services_vault
azurerm_redis_cache
azurerm_role_assignment
azurerm_role_definition
azurerm_route_table
azurerm_search_service
azurerm_servicebus_namespace
azurerm_servicebus_queue
azurerm_servicebus_topic
azurerm_signalr_service
azurerm_snapshot
azurerm_static_web_app
azurerm_storage_account
azurerm_storage_container
azurerm_storage_share
azurerm_synapse_workspace
azurerm_traffic_manager_profile
azurerm_virtual_network
azurerm_virtual_network_gateway
azurerm_web_application_firewall_policy
azurerm_windows_function_app
azurerm_windows_virtual_machine
azurerm_windows_web_app

AWS — 64 enumerated types

Resource typeField-diff spec
aws_accessanalyzer_analyzer
aws_appsync_graphql_api
aws_athena_workgroup
aws_autoscaling_group
aws_backup_vault
aws_batch_compute_environment
aws_cloudfront_distribution
aws_cloudtrail
aws_cloudwatch_event_bus
aws_cloudwatch_event_rule
aws_cloudwatch_log_group
aws_cloudwatch_metric_alarm
aws_codebuild_project
aws_cognito_identity_pool
aws_cognito_user_pool
aws_config_config_rule
aws_db_instance
aws_dynamodb_table
aws_ebs_volume
aws_ec2_managed_prefix_list
aws_ec2_transit_gateway
aws_ecr_repository
aws_ecs_cluster
aws_efs_access_point
aws_efs_file_system
aws_eip
aws_eks_cluster
aws_elasticache_replication_group
aws_flow_log
aws_globalaccelerator_accelerator
aws_guardduty_detector
aws_iam_openid_connect_provider
aws_iam_policy
aws_iam_role
aws_iam_saml_provider
aws_iam_user
aws_instance
aws_kinesis_stream
aws_kms_key
aws_lambda_function
aws_lb
aws_lb_listener
aws_lb_target_group
aws_memorydb_cluster
aws_msk_cluster
aws_nat_gateway
aws_network_interface
aws_networkfirewall_firewall
aws_networkfirewall_firewall_policy
aws_opensearch_domain
aws_rds_cluster
aws_redshift_cluster
aws_route53_zone
aws_route_table
aws_s3_bucket
aws_security_group
aws_sfn_state_machine
aws_sns_topic
aws_ssm_document
aws_subnet
aws_transfer_server
aws_vpc
aws_vpc_endpoint
aws_vpn_connection

GCP — 59 enumerated types

Resource typeField-diff spec
google_apigee_organization
google_artifact_registry_repository
google_bigquery_dataset
google_bigquery_table
google_certificate_manager_certificate
google_cloud_run_v2_service
google_cloudfunctions2_function
google_compute_address
google_compute_backend_service
google_compute_disk
google_compute_firewall
google_compute_forwarding_rule
google_compute_global_address
google_compute_global_forwarding_rule
google_compute_health_check
google_compute_image
google_compute_instance
google_compute_instance_group_manager
google_compute_network
google_compute_network_endpoint_group
google_compute_packet_mirroring
google_compute_region_backend_service
google_compute_region_health_check
google_compute_route
google_compute_router
google_compute_security_policy
google_compute_snapshot
google_compute_ssl_certificate
google_compute_ssl_policy
google_compute_subnetwork
google_compute_target_http_proxy
google_compute_target_https_proxy
google_compute_url_map
google_compute_vpn_tunnel
google_container_cluster
google_container_node_pool
google_dataproc_cluster
google_dns_managed_zone
google_dns_policy
google_dns_response_policy
google_filestore_instance
google_kms_crypto_key
google_logging_metric
google_memcache_instance
google_monitoring_alert_policy
google_monitoring_notification_channel
google_monitoring_uptime_check_config
google_notebooks_instance
google_project_iam_custom_role
google_pubsub_subscription
google_pubsub_topic
google_redis_instance
google_secret_manager_secret
google_service_account
google_spanner_instance
google_sql_database_instance
google_storage_bucket
google_vpc_access_connector
google_workflows_workflow

Field-level spec coverage — 200 types

Resource typeCloudEngine-verifiedCross-check: plan sourceCross-check: raw state
azurerm_api_managementazure
azurerm_app_configurationazure
azurerm_application_gatewayazure
azurerm_application_insightsazure
azurerm_automation_accountazure
azurerm_availability_setazure
azurerm_bastion_hostazure
azurerm_batch_accountazure
azurerm_cognitive_accountazure
azurerm_container_appazure
azurerm_container_registryazure
azurerm_cosmosdb_accountazure
azurerm_data_factoryazure
azurerm_databricks_workspaceazure
azurerm_disk_encryption_setazure
azurerm_eventgrid_domainazure
azurerm_eventgrid_topicazure
azurerm_eventhubazure
azurerm_eventhub_namespaceazure
azurerm_express_route_circuitazure
azurerm_firewallazure
azurerm_firewall_policyazure
azurerm_healthcare_serviceazure
azurerm_imageazure
azurerm_iothubazure
azurerm_key_vaultazure
azurerm_kubernetes_clusterazure
azurerm_lbazure
azurerm_linux_function_appazure
azurerm_linux_virtual_machineazure
azurerm_linux_virtual_machine_scale_setazure
azurerm_linux_web_appazure
azurerm_local_network_gatewayazure
azurerm_log_analytics_workspaceazure
azurerm_logic_app_workflowazure
azurerm_machine_learning_workspaceazure
azurerm_managed_diskazure
azurerm_maps_accountazure
azurerm_monitor_action_groupazure
azurerm_monitor_activity_log_alertazure
azurerm_monitor_diagnostic_settingazure
azurerm_monitor_metric_alertazure
azurerm_mssql_databaseazure
azurerm_mssql_elasticpoolazure
azurerm_mssql_managed_instanceazure
azurerm_mssql_serverazure
azurerm_mysql_flexible_serverazure
azurerm_nat_gatewayazure
azurerm_network_interfaceazure
azurerm_network_security_groupazure
azurerm_notification_hub_namespaceazure
azurerm_postgresql_flexible_serverazure
azurerm_private_endpointazure
azurerm_proximity_placement_groupazure
azurerm_public_ipazure
azurerm_purview_accountazure
azurerm_recovery_services_vaultazure
azurerm_redis_cacheazure
azurerm_role_assignmentazure
azurerm_role_definitionazure
azurerm_route_tableazure
azurerm_search_serviceazure
azurerm_servicebus_namespaceazure
azurerm_servicebus_queueazure
azurerm_servicebus_topicazure
azurerm_signalr_serviceazure
azurerm_snapshotazure
azurerm_static_web_appazure
azurerm_storage_accountazure
azurerm_storage_containerazure
azurerm_storage_shareazure
azurerm_synapse_workspaceazure
azurerm_traffic_manager_profileazure
azurerm_virtual_networkazure
azurerm_virtual_network_gatewayazure
azurerm_web_application_firewall_policyazure
azurerm_windows_function_appazure
azurerm_windows_virtual_machineazure
azurerm_windows_web_appazure
aws_accessanalyzer_analyzeraws
aws_appsync_graphql_apiaws
aws_athena_workgroupaws
aws_autoscaling_groupaws
aws_backup_vaultaws
aws_batch_compute_environmentaws
aws_cloudfront_distributionaws
aws_cloudtrailaws
aws_cloudwatch_event_busaws
aws_cloudwatch_event_ruleaws
aws_cloudwatch_log_groupaws
aws_cloudwatch_metric_alarmaws
aws_codebuild_projectaws
aws_cognito_identity_poolaws
aws_cognito_user_poolaws
aws_config_config_ruleaws
aws_db_instanceaws
aws_dynamodb_tableaws
aws_ebs_volumeaws
aws_ec2_managed_prefix_listaws
aws_ec2_transit_gatewayaws
aws_ecr_repositoryaws
aws_ecs_clusteraws
aws_efs_access_pointaws
aws_efs_file_systemaws
aws_eks_clusteraws
aws_elasticache_replication_groupaws
aws_flow_logaws
aws_globalaccelerator_acceleratoraws
aws_guardduty_detectoraws
aws_iam_openid_connect_provideraws
aws_iam_policyaws
aws_iam_roleaws
aws_iam_saml_provideraws
aws_iam_useraws
aws_instanceaws
aws_kinesis_streamaws
aws_kms_keyaws
aws_lambda_functionaws
aws_lbaws
aws_lb_listeneraws
aws_lb_target_groupaws
aws_memorydb_clusteraws
aws_msk_clusteraws
aws_nat_gatewayaws
aws_network_interfaceaws
aws_networkfirewall_firewallaws
aws_networkfirewall_firewall_policyaws
aws_opensearch_domainaws
aws_rds_clusteraws
aws_redshift_clusteraws
aws_route53_zoneaws
aws_s3_bucketaws
aws_security_groupaws
aws_sfn_state_machineaws
aws_sns_topicaws
aws_ssm_documentaws
aws_subnetaws
aws_transfer_serveraws
aws_vpcaws
aws_vpc_endpointaws
aws_vpn_connectionaws
google_apigee_organizationgcp
google_artifact_registry_repositorygcp
google_bigquery_datasetgcp
google_bigquery_tablegcp
google_certificate_manager_certificategcp
google_cloud_run_v2_servicegcp
google_cloudfunctions2_functiongcp
google_compute_addressgcp
google_compute_backend_servicegcp
google_compute_diskgcp
google_compute_firewallgcp
google_compute_forwarding_rulegcp
google_compute_global_addressgcp
google_compute_global_forwarding_rulegcp
google_compute_health_checkgcp
google_compute_imagegcp
google_compute_instancegcp
google_compute_instance_group_managergcp
google_compute_networkgcp
google_compute_network_endpoint_groupgcp
google_compute_packet_mirroringgcp
google_compute_region_backend_servicegcp
google_compute_region_health_checkgcp
google_compute_routegcp
google_compute_routergcp
google_compute_security_policygcp
google_compute_snapshotgcp
google_compute_ssl_certificategcp
google_compute_ssl_policygcp
google_compute_subnetworkgcp
google_compute_target_http_proxygcp
google_compute_target_https_proxygcp
google_compute_url_mapgcp
google_compute_vpn_tunnelgcp
google_container_clustergcp
google_container_node_poolgcp
google_dataproc_clustergcp
google_dns_managed_zonegcp
google_dns_policygcp
google_dns_response_policygcp
google_filestore_instancegcp
google_kms_crypto_keygcp
google_logging_metricgcp
google_memcache_instancegcp
google_monitoring_alert_policygcp
google_monitoring_notification_channelgcp
google_monitoring_uptime_check_configgcp
google_notebooks_instancegcp
google_project_iam_custom_rolegcp
google_pubsub_subscriptiongcp
google_pubsub_topicgcp
google_redis_instancegcp
google_secret_manager_secretgcp
google_service_accountgcp
google_spanner_instancegcp
google_sql_database_instancegcp
google_storage_bucketgcp
google_vpc_access_connectorgcp
google_workflows_workflowgcp

Generated from the backend's coverage registry — the same data module the scan gates execute against, CI-bound to their behaviour — at backend commit de583d6.