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 only)59
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
Kubernetessixteen kinds: Deployments, StatefulSets, DaemonSets, Services, ConfigMaps, Ingress, NetworkPolicies, Jobs, CronJobs, HorizontalPodAutoscalers, PersistentVolumeClaims, ServiceAccounts, ClusterRoles, ClusterRoleBindings, Roles, RoleBindings

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 sixteen kinds, comparing Helm’s stored release manifest against a live API read.
  • Unmanaged workload detection on the same sixteen 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 aeee10a.