Skip to main content

Discovery Config Reference

Report an Issue

Kind: discovery_config
Version: v1

Describes extra discovery matchers that are added to DiscoveryServices that share the same Discovery Group.

Example:

kind: "string"
sub_kind: "string"
version: "string"
metadata: # [...]
spec: # [...]
status: # [...]
Field NameDescriptionType
kindA resource kind.string
metadataMetadata for the resource.Metadata
specThe specification for the discovery config.Spec
statusThe status for the discovery config.Status
sub_kindAn optional resource sub kind, used in some resources.string
versionThe resource version.string

AWS Matcher

Matches AWS EC2 instances and AWS Databases

Example:

types: 
  - "string"
  - "string"
  - "string"
regions: 
  - "string"
  - "string"
  - "string"
assume_role: # [...]
tags: # [...]
install: # [...]
ssm: # [...]
integration: "string"
kube_app_discovery: true
setup_access_for_arn: "string"
organization: # [...]
Field NameDescriptionType
assume_roleARN is the AWS role to assume for database discovery.Assume Role
installSets the join method when installing on discovered EC2 nodesInstaller Params
integrationThe integration name used to generate credentials to interact with AWS APIs. Environment credentials will not be used when this value is set.string
kube_app_discoveryControls whether Kubernetes App Discovery will be enabled for agents running on discovered clusters, currently only affects AWS EKS discovery in integration mode.Boolean
organizationAn AWS Organization matcher for discovering resources accross multiple accounts under an Organization.AWS Organization Matcher
regionsAWS regions to query for databases.[]string
setup_access_for_arnThe role that the Discovery Service should create EKS Access Entries for. This value should match the IAM identity that Teleport Kubernetes Service uses. If this value is empty, the Discovery Service will attempt to set up access for its own identity (self).string
ssmProvides options to use when sending a document command to an EC2 nodeAWSSSM
tagsAWS resource Tags to match.Labels
typesAWS database types to match, "ec2", "rds", "redshift", "elasticache", or "memorydb".[]string

AWS Organization Matcher

Specifies an Organization and rules for discovering accounts under that organization.

Example:

organization_id: "string"
organizational_units: # [...]
Field NameDescriptionType
organization_idThe AWS Organization ID to match against. Required.string
organizational_unitsContains rules for matchings AWS accounts based on their Organizational Units.AWS Organization Units Matcher

AWS Organization Units Matcher

Contains rules for matching accounts under an Organization. Accounts that belong to an excluded Organizational Unit, and its children, will be excluded even if they were included.

Example:

include: 
  - "string"
  - "string"
  - "string"
exclude: 
  - "string"
  - "string"
  - "string"
Field NameDescriptionType
excludeA list of AWS Organizational Unit IDs to exclude. Only exact matches or wildcard (*) are supported. If empty, no Organizational Units are excluded by default.[]string
includeA list of AWS Organizational Unit IDs to match. Only exact matches or wildcard (*) are supported. If empty, all Organizational Units are included by default.[]string

AWSSSM

Provides options to use when executing SSM documents

Example:

document_name: "string"
Field NameDescriptionType
document_nameThe name of the document to use when executing an SSM commandstring

Access Graph AWS Sync

A configuration for AWS Access Graph service poll service.

Example:

regions: 
  - "string"
  - "string"
  - "string"
assume_role: # [...]
integration: "string"
cloud_trail_logs: # [...]
eks_audit_logs: # [...]
Field NameDescriptionType
assume_roleARN is the AWS role to assume for database discovery.Assume Role
cloud_trail_logsConfiguration settings for collecting AWS CloudTrail logs via an SQS queue.Access Graph AWS Sync Cloud Trail Logs
eks_audit_logsAccess Graph AWS Sync EKS Audit Logs
integrationThe integration name used to generate credentials to interact with AWS APIs.string
regionsAWS regions to import resources from.[]string

Access Graph AWS Sync Cloud Trail Logs

Defines settings for ingesting AWS CloudTrail logs by polling an SQS queue that receives notifications about new log files.

Example:

region: "string"
sqs_queue: "string"
Field NameDescriptionType
regionThe AWS region of the SQS queue for CloudTrail notifications, ex.: "us-east-2".string
sqs_queueThe name or URL for CloudTrail log events, ex.: "demo-cloudtrail-queue".string

Access Graph AWS Sync EKS Audit Logs

Defines the settings for ingesting Kubernetes apiserver audit logs from EKS clusters.

Example:

tags: # [...]
Field NameDescriptionType
tagsThe tags of EKS clusters for which apiserver audit logs should be fetched.Labels

Access Graph Azure Sync

A configuration for Azure Access Graph service poll service.

Example:

subscription_id: "string"
integration: "string"
Field NameDescriptionType
integrationThe integration name used to generate credentials to interact with AWS APIs.string
subscription_idIs the ID of the Azure subscription to sync resources fromstring

Access Graph Sync

A configuration for Access Graph service.

Example:

aws: 
  - # [...]
  - # [...]
  - # [...]
poll_interval: # See description
azure: 
  - # [...]
  - # [...]
  - # [...]
Field NameDescriptionType
awsA configuration for AWS Access Graph service poll service.[]Access Graph AWS Sync
azureA configuration for Azure Access Graph service poll service.[]Access Graph Azure Sync
poll_intervalThe frequency at which to poll for resources

Assume Role

Provides a role ARN and ExternalID to assume an AWS role when interacting with AWS resources.

Example:

role_arn: "string"
external_id: "string"
Field NameDescriptionType
external_idThe external ID used to assume a role in another account.string
role_arnThe fully specified AWS IAM role ARN.string

Azure Installer Params

The set of Azure-specific installation parameters.

Example:

client_id: "string"
Field NameDescriptionType
client_idThe client ID of the managed identity discovered nodes should use to join the cluster.string

Azure Matcher

Matches Azure resources. It defines which resource types, filters and some configuration params.

Example:

subscriptions: 
  - "string"
  - "string"
  - "string"
resource_groups: 
  - "string"
  - "string"
  - "string"
types: 
  - "string"
  - "string"
  - "string"
regions: 
  - "string"
  - "string"
  - "string"
tags: # [...]
install_params: # [...]
integration: "string"
Field NameDescriptionType
install_paramsSets the join method when installing on discovered Azure nodes.Installer Params
integrationThe integration name used to generate credentials to interact with Azure APIs. Environment credentials will not be used when this value is set.string
regionsAzure locations to match for databases.[]string
resource_groupsAzure resource groups to query for resources.[]string
subscriptionsAzure subscriptions to query for resources.[]string
tagsAzure tags on resources to match.Labels
typesAzure types to match: "mysql", "postgres", "aks", "vm"[]string

GCP Matcher

Matches GCP resources.

Example:

types: 
  - "string"
  - "string"
  - "string"
locations: 
  - "string"
  - "string"
  - "string"
tags: # [...]
project_ids: 
  - "string"
  - "string"
  - "string"
service_accounts: 
  - "string"
  - "string"
  - "string"
install_params: # [...]
labels: # [...]
Field NameDescriptionType
install_paramsSets the join method when installing on discovered GCP nodes.Installer Params
labelsGCP labels to match.Labels
locationsGKE locations to search resources for.[]string
project_idsThe GCP project ID where the resources are deployed.[]string
service_accountsThe emails of service accounts attached to VMs.[]string
tagsObsolete and only exists for backwards compatibility. Use Labels instead.Labels
typesGKE resource types to match: "gke", "vm".[]string

HTTP Proxy Settings

Defines HTTP proxy settings for making HTTP and HTTPS requests.

Example:

http_proxy: "string"
https_proxy: "string"
no_proxy: "string"
Field NameDescriptionType
http_proxyThe URL for the HTTP proxy to use when making requests. When applied, this will set the HTTP_PROXY environment variable.string
https_proxyThe URL for the HTTPS Proxy to use when making requests. When applied, this will set the HTTPS_PROXY environment variable.string
no_proxyA comma separated list of URLs that will be excluded from proxying. When applied, this will set the NO_PROXY environment variable.string

Install Param Enroll Mode

The mode used to enroll the node into the cluster.

Installer Params

InstallParams sets join method to use on discovered nodes

Example:

join_method: # [...]
join_token: "string"
script_name: "string"
install_teleport: true
sshd_config: "string"
proxy_addr: "string"
azure: # [...]
enroll_mode: # [...]
suffix: "string"
update_group: "string"
http_proxy_settings: # [...]
Field NameDescriptionType
azureThe set of Azure-specific installation parameters.Azure Installer Params
enroll_modeIndicates the enrollment mode to be used when adding a node. Valid values: 0: uses eice for EC2 matchers which use an integration and script for all the other methods 1: uses script mode 2: uses eice modeInstall Param Enroll Mode
http_proxy_settingsDefines HTTP proxy settings for making HTTP requests. When set, this will set the HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environment variables before running the installation.HTTP Proxy Settings
install_teleportDisables agentless discoveryBoolean
join_methodThe method to use when joining the clusterJoin Method
join_tokenThe token to use when joining the clusterstring
proxy_addrThe address of the proxy the discovered node should use to connect to the cluster.string
script_nameThe name of the teleport installer script resource for the cloud instance to executestring
sshd_configProvides the path to write sshd configuration changesstring
suffixIndicates the installation suffix for the teleport installation. Set this value if you want multiple installations of Teleport. See --install-suffix flag in teleport-update program. Note: only supported for Amazon EC2. Suffix name can only contain alphanumeric characters and hyphens.string
update_groupIndicates the update group for the teleport installation. This value is used to group installations in order to update them in batches. See --group flag in teleport-update program. Note: only supported for Amazon EC2. Group name can only contain alphanumeric characters and hyphens.string

Join Method

The method used for new nodes to join the cluster.

Kubernetes Matcher

Matches Kubernetes services.

Example:

types: 
  - "string"
  - "string"
  - "string"
namespaces: 
  - "string"
  - "string"
  - "string"
labels: # [...]
Field NameDescriptionType
labelsKubernetes services labels to match.Labels
namespacesKubernetes namespaces in which to discover services[]string
typesKubernetes services types to match. Currently only 'app' is supported.[]string

Labels

A wrapper around map that can marshal and unmarshal itself from scalar and list values

Metadata

Resource metadata

Example:

name: "string"
description: "string"
labels: 
  "string": "string"
  "string": "string"
  "string": "string"
expires: # See description
revision: "string"
Field NameDescriptionType
descriptionObject descriptionstring
expiresA global expiry time header can be set on any resource in the system.
labelsA set of labelsmap[string]string
nameAn object namestring
revisionAn opaque identifier which tracks the versions of a resource over time. Clients should ignore and not alter its value but must return the revision in any updates of a resource.string

Spec

The specification for a discovery config.

Example:

discovery_group: "string"
aws: 
  - # [...]
  - # [...]
  - # [...]
azure: 
  - # [...]
  - # [...]
  - # [...]
gcp: 
  - # [...]
  - # [...]
  - # [...]
kube: 
  - # [...]
  - # [...]
  - # [...]
access_graph: # [...]
Field NameDescriptionType
access_graphThe configuration for the Access Graph Cloud sync.Access Graph Sync
awsA list of matchers for the supported resources in AWS.[]AWS Matcher
azureA list of matchers for the supported resources in Azure.[]Azure Matcher
discovery_groupThe Discovery Group for the current DiscoveryConfig. DiscoveryServices should include all the matchers if the DiscoveryGroup matches with their own group.string
gcpA list of matchers for the supported resources in GCP.[]GCP Matcher
kubeA list of matchers for the supported resources in Kubernetes.[]Kubernetes Matcher

Status

Holds dynamic information about the discovery configuration running status such as errors, state and count of the resources.

Example:

state: "string"
error_message: "string"
discovered_resources: 1
last_sync_time: # See description
integration_discovered_resources: 
  "string": # See description
  "string": # See description
  "string": # See description
Field NameDescriptionType
discovered_resourcesHolds the count of the discovered resources in the previous iteration.number
error_messageHolds the error message when state is DISCOVERY_CONFIG_STATE_ERROR.string
integration_discovered_resourcesMaps an integration to a summary of resources that were found using that integration.map[string]
last_sync_timeThe timestamp when the Discovery Config was last sync.
stateThe current state of the discovery config.string