텔레포트 데이터베이스 Terraform 리소스 참조
사용 예시
# Teleport 데이터베이스
resource "teleport_database" "example" {
metadata = {
name = "example"
description = "테스트 데이터베이스"
labels = {
"teleport.dev/origin" = "dynamic" // 이 레이블은 Teleport 측에서 기본적으로 추가됩니다.
}
}
spec = {
protocol = "postgres"
uri = "localhost"
}
}
스키마
필수
version
(문자열) 버전은 리소스 버전입니다. 반드시 지정해야 합니다. 지원되는 값:v3
.
선택 사항
metadata
(속성) 메타데이터는 데이터베이스 메타데이터입니다. (중첩 스키마는 아래 참조)spec
(속성) 스펙은 데이터베이스 스펙입니다. (중첩 스키마는 아래 참조)sub_kind
(문자열) SubKind는 선택적인 리소스 서브 종류입니다.
metadata
에 대한 중첩 스키마
필수:
name
(문자열) 이름은 객체 이름입니다.
선택 사항:
description
(문자열) 설명은 객체 설명입니다.expires
(문자열) 만료는 시스템 내 모든 리소스에 설정할 수 있는 전역 만료 시간 헤더입니다.labels
(문자열 맵) 레이블은 레이블 집합입니다.
spec
에 대한 중첩 스키마
필수:
protocol
(문자열) 프로토콜은 데이터베이스 프로토콜입니다: postgres, mysql, mongodb 등.uri
(문자열) URI는 데이터베이스 연결 엔드포인트입니다.
선택 사항:
ad
(속성) AD는 데이터베이스에 대한 Active Directory 구성입니다. (중첩 스키마는 아래 참조)admin_user
(속성) AdminUser는 자동 사용자 프로비저닝을 위한 데이터베이스 관리자 사용자입니다. (중첩 스키마는 아래 참조)aws
(속성) AWS는 RDS/Aurora/Redshift 데이터베이스에 대한 AWS 특정 설정을 포함합니다. (중첩 스키마는 아래 참조)azure
(속성) Azure는 Azure 특정 데이터베이스 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)ca_cert
(문자열) CACert는 PEM 인코딩된 데이터베이스 CA 인증서입니다. 예정: TLS.CACert로 이동됨. 10.0에서 삭제 예정.dynamic_labels
(속성 맵) DynamicLabels는 데이터베이스 동적 레이블입니다. (중첩 스키마는 아래 참조)gcp
(속성) GCP는 GCP Cloud SQL 데이터베이스에 특정한 매개변수를 포함합니다. (중첩 스키마는 아래 참조)mongo_atlas
(속성) MongoAtlas는 데이터베이스에 대한 Atlas 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)mysql
(속성) MySQL은 MySQL 데이터베이스 옵션에 대한 추가 섹션입니다. (중첩 스키마는 아래 참조)oracle
(속성) Oracle은 추가 Oracle 구성 옵션입니다. (중첩 스키마는 아래 참조)tls
(속성) TLS는 대상 데이터베이스에 연결할 때 사용하는 TLS 구성입니다. 사용자 정의 CA 인증서를 제공하기 위해 또는 서버 이름을 재정의합니다. (중첩 스키마는 아래 참조)
spec.ad
에 대한 중첩 스키마
선택 사항:
domain
(문자열) 도메인은 데이터베이스가 존재하는 Active Directory 도메인입니다.kdc_host_name
(문자열) KDCHostName은 x509 인증을 위한 KDC의 호스트 이름입니다.keytab_file
(문자열) KeytabFile은 Kerberos keytab 파일의 경로입니다.krb5_file
(문자열) Krb5File은 Kerberos 구성 파일의 경로입니다. 기본값: /etc/krb5.conf.ldap_cert
(문자열) LDAPCert는 Windows LDAP/AD의 인증서로, 선택 사항입니다. x509 인증에만 해당됩니다.spn
(문자열) SPN은 데이터베이스의 서비스 주체 이름입니다.
spec.admin_user
에 대한 중첩 스키마
선택 사항:
default_database
(문자열) DefaultDatabase는 특권 데이터베이스 사용자가 기본적으로 로그인하는 데이터베이스입니다. 데이터베이스 유형에 따라, 이 데이터베이스는 데이터베이스 사용자를 관리하기 위한 프로시저나 데이터를 저장하는 데 사용될 수 있습니다.name
(문자열) 이름은 특권 데이터베이스 사용자의 사용자 이름입니다.
spec.aws
에 대한 중첩 스키마
선택 사항:
account_id
(문자열) AccountID는 이 데이터베이스에 속하는 AWS 계정 ID입니다.assume_role_arn
(문자열) AssumeRoleARN은 데이터베이스에 접근할 때 암시적으로 가정할 수 있는 AWS 역할 ARN입니다. 이 필드와 ExternalID를 설정하여 AWS 계정 간 접근을 활성화합니다.docdb
(속성) DocumentDB는 AWS DocumentDB 특정 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)elasticache
(속성) ElastiCache는 AWS ElastiCache Redis 특정 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)external_id
(문자열) ExternalID는 AWS 역할을 가정하는 데 사용되는 선택적인 AWS 외부 ID입니다.iam_policy_status
(숫자) IAMPolicyStatus는 데이터베이스 접근을 위한 IAM 정책이 적절히 구성되었는지를 나타냅니다. 그렇지 않은 경우, 사용자는 데이터베이스 접근을 허용하기 위해 AWS 프로필 ID를 업데이트해야 합니다. 예: RDS 데이터베이스의 경우: 기본 AWS 프로필은rds-db:connect
를 허용합니다.memorydb
(속성) MemoryDB는 AWS MemoryDB 특정 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)opensearch
(속성) OpenSearch는 AWS OpenSearch 특정 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)rds
(속성) RDS는 RDS 특정 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)rdsproxy
(속성) RDSProxy는 AWS Proxy 특정 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)redshift
(속성) Redshift는 Redshift 특정 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)redshift_serverless
(속성) RedshiftServerless는 AWS Redshift Serverless 특정 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)region
(문자열) 지역은 AWS 클라우드 지역입니다.secret_store
(속성) SecretStore는 비밀 저장소 구성을 포함합니다. (중첩 스키마는 아래 참조)session_tags
(문자열 맵) SessionTags는 AWS STS 세션 태그 목록입니다.
spec.aws.docdb
에 대한 중첩 스키마
선택 사항:
cluster_id
(문자열) ClusterID는 클러스터 식별자입니다.endpoint_type
(문자열) EndpointType은 엔드포인트 유형입니다.instance_id
(문자열) InstanceID는 인스턴스 식별자입니다.
spec.aws.elasticache
에 대한 중첩 스키마
선택 사항:
endpoint_type
(문자열) EndpointType은 엔드포인트 유형입니다.replication_group_id
(문자열) ReplicationGroupID는 Redis 복제 그룹 ID입니다.transit_encryption_enabled
(부울) TransitEncryptionEnabled는 전송 중 암호화(TLS)가 활성화되어 있는지를 나타냅니다.user_group_ids
(문자열 목록) UserGroupIDs는 사용자 그룹 ID 목록입니다.
spec.aws.memorydb
에 대한 중첩 스키마
선택 사항:
acl_name
(문자열) ACLName은 클러스터와 관련된 ACL의 이름입니다.cluster_name
(문자열) ClusterName은 MemoryDB 클러스터의 이름입니다.endpoint_type
(문자열) EndpointType은 엔드포인트 유형입니다.tls_enabled
(부울) TLSEnabled는 전송 중 암호화(TLS)가 활성화되어 있는지를 나타냅니다.
spec.aws.opensearch
에 대한 중첩 스키마
선택 사항:
domain_id
(문자열) DomainID는 도메인의 ID입니다.domain_name
(문자열) DomainName은 도메인의 이름입니다.endpoint_type
(문자열) EndpointType은 엔드포인트 유형입니다.
spec.aws.rds
에 대한 중첩 스키마
선택 사항:
cluster_id
(문자열) ClusterID는 RDS 클러스터(Aurora) 식별자입니다.iam_auth
(부울) IAMAuth는 데이터베이스 IAM 인증이 활성화되어 있는지를 나타냅니다.instance_id
(문자열) InstanceID는 RDS 인스턴스 식별자입니다.resource_id
(문자열) ResourceID는 RDS 인스턴스 리소스 식별자입니다 (db-xxx).subnets
(문자열 목록) Subnets는 RDS 인스턴스의 서브넷 목록입니다.vpc_id
(문자열) VPCID는 RDS가 실행되고 있는 VPC입니다.
spec.aws.rdsproxy
에 대한 중첩 스키마
선택 사항:
custom_endpoint_name
(문자열) CustomEndpointName은 RDS Proxy 사용자 정의 엔드포인트의 식별자입니다.name
(문자열) 이름은 RDS Proxy의 식별자입니다.resource_id
(문자열) ResourceID는 RDS 인스턴스 리소스 식별자입니다 (prx-xxx).
spec.aws.redshift
에 대한 중첩 스키마
선택 사항:
cluster_id
(문자열) ClusterID는 Redshift 클러스터 식별자입니다.
spec.aws.redshift_serverless
에 대한 중첩 스키마
선택 사항:
endpoint_name
(문자열) EndpointName은 VPC 엔드포인트 이름입니다.workgroup_id
(문자열) WorkgroupID는 작업 그룹 ID입니다.workgroup_name
(문자열) WorkgroupName은 작업 그룹 이름입니다.
spec.aws.secret_store
에 대한 중첩 스키마
선택 사항:
key_prefix
(문자열) KeyPrefix는 비밀 키 접두사를 지정합니다.kms_key_id
(문자열) KMSKeyID는 암호화를 위한 AWS KMS 키를 지정합니다.
spec.azure
에 대한 중첩 스키마
선택 사항:
is_flexi_server
(부울) IsFlexiServer는 데이터베이스가 Azure Flexible 서버인 경우 true입니다.name
(문자열) 이름은 Azure 데이터베이스 서버 이름입니다.redis
(속성) Redis는 Azure Cache for Redis 특정 데이터베이스 메타데이터를 포함합니다. (중첩 스키마는 아래 참조)resource_id
(문자열) ResourceID는 리소스에 대한 Azure의 전체 자격 ID입니다.
spec.azure.redis
에 대한 중첩 스키마
선택 사항:
clustering_policy
(문자열) ClusteringPolicy는 Redis Enterprise의 클러스터링 정책입니다.
spec.dynamic_labels
에 대한 중첩 스키마
선택 사항:
command
(문자열 목록) Command는 실행할 명령입니다.period
(문자열) Period는 명령의 실행 간 시간입니다.result
(문자열) Result는 표준 출력을 캡처합니다.
spec.gcp
에 대한 중첩 스키마
선택 사항:
instance_id
(문자열) InstanceID는 Cloud SQL 인스턴스 ID입니다.project_id
(문자열) ProjectID는 Cloud SQL 인스턴스가 존재하는 GCP 프로젝트 ID입니다.
spec.mongo_atlas
에 대한 중첩 스키마
선택 사항:
name
(문자열) name은 Atlas 데이터베이스 인스턴스의 이름입니다.
spec.mysql
에 대한 중첩 스키마
선택 사항:
server_version
(문자열) ServerVersion은 런타임 정보가 없는 경우 DB 프록시에서 보고한 서버 버전입니다.
spec.oracle
에 대한 중첩 스키마
선택 사항:
audit_user
(문자열) AuditUser는 내부 Oracle 감사 추적을 접근하기 위한 Oracle 데이터베이스 사용자 권한입니다.
spec.tls
에 대한 중첩 스키마
선택 사항:
ca_cert
(문자열) CACert는 데이터베이스 TLS 연결을 검증하는 데 사용되는 선택적인 사용자 제공 CA 인증서입니다.mode
(숫자) Mode는 TLS 연결 모드입니다. 0은 "verify-full"; 1은 "verify-ca", 2는 "insecure"입니다.server_name
(문자열) ServerName은 사용자 정의 호스트 이름을 제공할 수 있습니다. 이 값은 검증 중 인증서의 servername/hostname을 재정의합니다.trust_system_cert_pool
(부울) TrustSystemCertPool은 Teleport가 호스트 시스템에서 사용 가능한 인증 기관을 신뢰하도록 허용합니다. 설정되지 않은 경우(기본값), Teleport는 기본적으로 Teleport의 데이터베이스 서버 CA 또는 이 TLS 설정에 지정된 ca_cert로 서명된 자체 서명된 데이터베이스만 신뢰합니다. 클라우드 호스팅된 데이터베이스의 경우, Teleport는 검증을 위해 필요한 CA를 다운로드합니다.