텔레포트 서버 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는 "서버 업데이트" 단계로 전환할 시간을 지정합니다.