인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
teleport_server Terraform 리소스 참조
사용 예제
resource "teleport_server" "ssh_agentless" {
version = "v2"
sub_kind = "openssh"
// 서버에는 이름이 필요하지 않습니다. 이것은 특별한 경우입니다.
// 이름이 설정되지 않으면 Teleport가 UUID를 생성하고
// Terraform으로 다시 가져옵니다.
// 서버에 고유한 ID를 부여하면 UUID 기반 다이얼링(호스트 기반 다이얼링 및 IP 기반 다이얼링보다 더 강력함)을 통해
// 여러 서버가 동일한 호스트 이름/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 Instance Connect의 이름으로 계정 및 인스턴스 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
(문자열) SubKind는 일부 리소스에서 사용되는 선택적 리소스 하위 종류입니다.version
(문자열) Version은 버전입니다.
선택 사항
metadata
(속성) Metadata는 리소스 메타데이터입니다 (아래의 중첩 스키마를 참조하십시오)spec
(속성) Spec는 서버 스펙입니다 (아래의 중첩 스키마를 참조하십시오)
metadata
에 대한 중첩 스키마
선택 사항:
description
(문자열) Description은 객체 설명입니다.expires
(문자열) Expires는 시스템 내의 모든 리소스에 설정할 수 있는 글로벌 만료 시간 헤더입니다.labels
(문자열의 맵) Labels는 레이블 집합입니다.name
(문자열) Name은 객체 이름입니다.
spec
에 대한 중첩 스키마
선택 사항:
addr
(문자열) Addr는 이 서버에 도달할 수 있는 호스트:포트 주소입니다.cloud_metadata
(속성) CloudMetadata는 서버가 실행 중인 클라우드 인스턴스에 대한 정보를 포함합니다 (아래의 중첩 스키마를 참조하십시오).hostname
(문자열) Hostname은 서버 호스트 이름입니다.peer_addr
(문자열) PeerAddr는 피어 프록시가 접근할 수 있는 프록시 서버의 주소입니다.proxy_ids
(문자열 목록) ProxyIDs는 이 서버가 연결될 것으로 예상되는 프록시 ID 목록입니다.public_addrs
(문자열 목록) PublicAddrs는 이 서버에 도달할 수 있는 공용 주소 목록입니다.rotation
(속성) Rotation은 서버 회전을 지정합니다 (아래의 중첩 스키마를 참조하십시오).use_tunnel
(부울) UseTunnel은 이 서버에 대한 연결이 역 터널을 통해 수행되어야 함을 나타냅니다.version
(문자열) TeleportVersion은 서버가 실행 중인 teleport 버전입니다.
spec.cloud_metadata
에 대한 중첩 스키마
선택 사항:
aws
(속성) AWSInfo는 EC2 인스턴스와 일치하는 속성을 포함합니다. (중첩 스키마에 대해서는 아래 참조)
spec.cloud_metadata.aws
에 대한 중첩 스키마
선택 사항:
account_id
(문자열) AccountID는 AWS 계정 ID입니다.instance_id
(문자열) InstanceID는 EC2 인스턴스 ID입니다.integration
(문자열) Integration은 이 노드를 추가한 통합 이름입니다. 연결할 때 이를 사용하여 AWS API 호출을 발행하여 연결을 설정합니다. 여기에는 SSH 키 전송과 Teleport가 연결할 수 있도록 하는 터널(EC2 인스턴스 연결 엔드포인트)을 여는 작업이 포함됩니다.region
(문자열) Region은 AWS EC2 인스턴스 리전입니다.subnet_id
(문자열) SubnetID는 인스턴스에서 사용하는 서브넷 ID입니다.vpc_id
(문자열) VPCID는 인스턴스가 실행 중인 AWS VPC ID입니다.
spec.rotation
에 대한 중첩 스키마
선택 사항:
current_id
(문자열) CurrentID는 회전 작업의 ID로, 회전 시도를 구분하는 데 사용됩니다.grace_period
(문자열) GracePeriod는 이전과 새로운 CA가 확인 목적으로 유효한 기간이며, 오직 새로운 CA만 인증서를 발급합니다.last_rotated
(문자열) LastRotated는 완료된 회전의 마지막 시간을 지정합니다.mode
(문자열) Mode는 수동 또는 자동 회전 모드를 설정합니다.phase
(문자열) Phase는 현재 회전 단계입니다.schedule
(속성) Schedule은 회전 일정을 나타내며 - 자동 모드에서 단계 간 전환에 사용됩니다. (중첩 스키마에 대해서는 아래 참조)started
(문자열) Started는 회전 상태가 "진행 중"일 경우 회전이 시작된 시간을 설정합니다.state
(문자열) State는 "init" 또는 "in_progress" 중 하나일 수 있습니다.
spec.rotation.schedule
에 대한 중첩 스키마
선택 사항:
standby
(문자열) Standby는 "Standby" 단계로 전환할 시간을 지정합니다.update_clients
(문자열) UpdateClients는 "클라이언트 업데이트" 단계로 전환할 시간을 지정합니다.update_servers
(문자열) UpdateServers는 "서버 업데이트" 단계로 전환할 시간을 지정합니다.