Infograb logo
텔레포트 데이터베이스 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를 다운로드합니다.
Teleport 원문 보기