Infograb logo
텔레포트 서버 Terraform 리소스 참조

예시 사용법

resource "teleport_server" "ssh_agentless" {
  version  = "v2"
  sub_kind = "openssh"
  // 서버의 경우 이름이 필요하지 않으며, 이는 특별한 경우입니다.
  // 이름이 설정되지 않으면 Teleport에 의해 UUID가 생성되고
  // Terraform으로 다시 가져옵니다.
  // 서버에 고유 ID를 부여하면 UUID 기반 다이얼링이 가능해지며
  // 이는 여러 서버가 동일한 호스트 이름/IP를 공유할 경우
  // 특정 서버를 지목할 수 있기 때문에 더욱 견고합니다.
  spec = {
    addr     = "127.0.0.1:22"
    hostname = "test.local"
  }
}

resource "teleport_server" "ssh_agentless_eice" {
  version  = "v2"
  sub_kind = "openssh-ec2-ice"
  metadata = {
    // EC2 인스턴스 연결을 위해 계정 및 인스턴스 ID를 이름으로 사용하는 것이 좋습니다.
    // 이 인스턴스에 다이얼링할 때, teleport는 이것이
    // AWS 인스턴스 ID임을 인식하고 이 특정 인스턴스와 연결합니다.
    // 이는 여러 서버가 유사한 호스트 이름을 가질 수 있기 때문에
    // 호스트 기반 및 IP 기반 다이얼링보다 더욱 견고합니다.
    name = "123456789012-i-0123456789abcdef"
  }
  spec = {
    addr     = "127.0.0.1:22"
    hostname = "test.local"

    cloud_metadata = {
      aws = {
        account_id  = "123"
        instance_id = "123"
        region      = "us-east-1"
        vpc_id      = "123"
        integration = "foo"
        subnet_id   = "123"
      }
    }
  }
}

스키마

필수

  • sub_kind (String) SubKind는 일부 리소스에서 사용되는 선택적 리소스 하위 종류입니다.
  • version (String) Version은 버전입니다.

선택 사항

  • metadata (Attributes) Metadata는 리소스 메타데이터입니다 (아래의 중첩 스키마 참조).
  • spec (Attributes) Spec은 서버 사양입니다 (아래의 중첩 스키마 참조).

metadata에 대한 중첩 스키마

선택 사항:

  • description (String) Description은 객체 설명입니다.
  • expires (String) Expires는 시스템의 모든 리소스에 설정할 수 있는 전역 만료 시간 헤더입니다.
  • labels (Map of String) Labels는 레이블 세트입니다.
  • name (String) Name은 객체 이름입니다.

spec에 대한 중첩 스키마

선택 사항:

  • addr (String) Addr는 이 서버에 접근할 수 있는 호스트:포트 주소입니다.
  • cloud_metadata (Attributes) CloudMetadata는 서버가 실행 중인 클라우드 인스턴스에 대한 정보를 포함합니다 (아래의 중첩 스키마 참조).
  • hostname (String) Hostname은 서버 호스트 이름입니다.
  • peer_addr (String) PeerAddr는 프록시 서버가 피어 프록시로부터 접근할 수 있는 주소입니다.
  • proxy_ids (List of String) ProxyIDs는 이 서버가 연결될 것으로 예상되는 프록시 ID 목록입니다.
  • public_addrs (List of String) PublicAddrs는 이 서버에 접근할 수 있는 공용 주소 목록입니다.
  • rotation (Attributes) Rotation은 서버 회전을 지정합니다 (아래의 중첩 스키마 참조).
  • use_tunnel (Boolean) UseTunnel은 이 서버에 대한 연결이 역 터널을 통해 발생해야 함을 나타냅니다.
  • version (String) TeleportVersion은 서버가 실행 중인 텔레포트 버전입니다.

spec.cloud_metadata에 대한 중첩 스키마

선택 사항:

  • aws (Attributes) AWSInfo는 EC2 인스턴스에 맞는 속성을 포함합니다 (아래의 중첩 스키마 참조).

spec.cloud_metadata.aws에 대한 중첩 스키마

선택 사항:

  • account_id (String) AccountID는 AWS 계정 ID입니다.
  • instance_id (String) InstanceID는 EC2 인스턴스 ID입니다.
  • integration (String) Integration은 이 노드를 추가한 통합 이름입니다. 연결할 때, 이 통합을 사용하여 연결을 설정하기 위해 AWS API 호출을 수행합니다. 여기에는 SSH 키 전송 및 터널 열기(EC2 인스턴스 연결 끝점)가 포함되어, 텔레포트가 이를 통해 연결할 수 있습니다.
  • region (String) Region은 AWS EC2 인스턴스 지역입니다.
  • subnet_id (String) SubnetID는 인스턴스에서 사용하는 서브넷 ID입니다.
  • vpc_id (String) VPCID는 인스턴스가 실행 중인 AWS VPC ID입니다.

spec.rotation에 대한 중첩 스키마

선택 사항:

  • current_id (String) CurrentID는 회전 작업의 ID로, 회전 시도를 구별합니다.
  • grace_period (String) GracePeriod는 구식 CA와 신식 CA가 유효한 기간으로, 확인 목적으로 사용되지만, 새로운 CA만 인증서를 발행합니다.
  • last_rotated (String) LastRotated는 완료된 회전의 마지막 시간을 지정합니다.
  • mode (String) Mode는 수동 또는 자동 회전 모드를 설정합니다.
  • phase (String) Phase는 현재 회전 단계를 나타냅니다.
  • schedule (Attributes) Schedule은 자동 모드에서 단계를 전환하기 위해 사용되는 회전 일정입니다 (아래의 중첩 스키마 참조).
  • started (String) Started는 회전이 "진행 중" 상태가 되었을 때 설정됩니다.
  • state (String) State는 "init" 또는 "in_progress" 중 하나일 수 있습니다.

spec.rotation.schedule에 대한 중첩 스키마

선택 사항:

  • standby (String) Standby는 "Standby" 단계로 전환할 시간을 지정합니다.
  • update_clients (String) UpdateClients는 "클라이언트 업데이트" 단계로 전환할 시간을 지정합니다.
  • update_servers (String) UpdateServers는 "서버 업데이트" 단계로 전환할 시간을 지정합니다.
Teleport 원문 보기