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