인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
Teleport 설치
이 가이드는 귀하의 플랫폼에 Teleport 바이너리를 설치하는 방법을 보여줍니다, 포함하여:
teleport
tsh
tctl
tbot
fdpass-teleport
Teleport에 처음 오셨다면, 시작 가이드를 따라가는 것을 권장합니다.
최상의 결과를 얻으려면, Teleport 클라이언트(tsh
, tctl
, tbot
)는 연결하려는 클러스터와 동일한 주요 버전이어야 합니다. Teleport 서버는 동일한 주요 버전 또는 한 개의 주요 버전이 오래된 클라이언트와 호환됩니다. Teleport 서버는 더 최신 주요 버전의 클라이언트를 지원하지 않습니다.
추가 정보는 업그레이드 가이드를 참조하십시오.
운영 체제 지원
Teleport는 아래에 나열된 플랫폼에서 공식적으로 지원됩니다. Linux [1] 외 다른 UNIX 변형에서도 Teleport를 성공적으로 빌드하고 실행한 오픈 소스 커뮤니티의 성과가 주목할 만합니다.
운영 체제 | teleport 데몬 | tctl 관리 도구 | tsh 및 Teleport Connect 사용자 클라이언트 [2] | 웹 UI (브라우저를 통한) | tbot 데몬 |
---|---|---|---|---|---|
Linux v2.6.23+ (RHEL/CentOS 7+, Amazon Linux 2+, Amazon Linux 2023+, Ubuntu 16.04+, Debian 9+, SLES 12 SP 5+, SLES 15 SP 5+) [3] | 예 | 예 | 예 | 예 | 예 |
macOS 11+ (Big Sur) | 예 | 예 | 예 | 예 | 예 |
Windows 10+ (rev. 1607) [4] | 아니요 | 예 | 예 | 예 | 아니요 |
[1] Teleport는 Go로 작성되었으며, 이러한 시스템 요구 사항의 많은 부분은 Go 툴체인 의 요구 사항 때문입니다.
[2] tsh
는 명령줄 클라이언트(CLI)이며 Teleport Connect는 그래픽 사용자 인터페이스(GUI) 데스크톱 클라이언트입니다. 사용법 및 설치는 Teleport Connect 사용하기를 참조하십시오.
[3] 향상된 세션 녹화는 Linux 커널 v5.8+이 필요합니다.
[4] Teleport 서버는 현재 Windows에서 실행되지 않지만, tsh
, tctl
, 및 Teleport Connect(텔레포트 데스크톱 클라이언트)는 Windows 10 및 이후 버전에서 대부분의 기능을 지원합니다.
리눅스
이 섹션에서는 단일 리눅스 서버에 Teleport 바이너리를 설치하는 방법을 보여줍니다.
Teleport는 다양한 운영 체제, 플랫폼 및 Teleport 버전에 대한 DEB 및 RPM 패키지 리포지토리를 유지 관리합니다. DEB 또는 RPM 패키지에서 Teleport를 설치하는 서버는 systemd가 설치되어 있어야 합니다. Teleport 바이너리를 포함하는 TAR 아카이브를 다운로드할 수도 있습니다. 모든 설치에는 teleport
, tsh
, tctl
, fdpass-teleport
및 tbot
이 포함됩니다.
추천 설치 단계
Teleport를 처음 사용하신다면, Teleport Cloud 계정으로 시작하는 것을 권장합니다. 여기서 귀하가 직접 배포해야 하는 Teleport 구성 요소는 Teleport 에이전트뿐입니다. 에이전트는 다음을 통해 배포할 수 있습니다:
- Teleport 웹 UI의
/web/discover
에서 지침을 따라, Teleport 클러스터에 등록할 리소스를 선택하고 Linux 호스트에서 실행할 설치 스크립트를 가져옵니다. - Terraform 사용하여 에이전트 배포를 위한 예제 Terraform 모듈 사용.
- Teleport 에이전트를 설치할 각 Linux 서버에서 한 줄 설치 스크립트를 실행합니다.
비자체 호스팅하는 Teleport Enterprise 클러스터를 운영하는 경우, 귀하의 인프라에 Teleport Enterprise를 배포하기 위한 전체 요구 사항 및 Terraform 모듈을 제공하는 고가용성 Teleport 클러스터 배포에 대한 가이드를 읽어보십시오.
비자체 호스팅하는 Teleport Enterprise 클러스터는 라이센스 파일을 요구합니다. 이 파일을 관리하는 방법은 Teleport Enterprise 라이센스 파일을 참조하십시오.
한 줄 설치 스크립트
Linux 서버에서 Teleport 바이너리를 설치하기 위해 한 줄 명령어를 실행할 수 있습니다.
이 명령어는 설치할 Teleport 버전과 에디션을 받아, 실행되는 운영 체제에 대한 정보를 사용하여 패키지 관리자를 선택하고 Teleport를 설치합니다.
먼저, 에디션에 따라 환경 변수를 할당합니다:
다음 명령어는 Teleport Cloud 계정을 쿼리하여 설치할 Teleport 버전을 결정하는 방법을 보여줍니다. 이렇게 하면 Teleport 설치가 자동 업데이트를 관리하는 서비스와 같은 주요 버전을 갖습니다:
TELEPORT_EDITION="cloud"TELEPORT_DOMAIN=example.teleport.shTELEPORT_VERSION="$(curl https://$TELEPORT_DOMAIN/v1/webapi/automaticupgrades/channel/stable/cloud/version | sed 's/v//')"
TELEPORT_EDITION="enterprise"TELEPORT_VERSION="17.0.0-dev"
TELEPORT_EDITION="oss"TELEPORT_VERSION="17.0.0-dev"
설치할 Teleport가 필요한 서버에서 다운로드하고 설치 스크립트를 실행합니다:
curl https://cdn.teleport.dev/install-v15.4.11.sh | bash -s ${TELEPORT_VERSION?} ${TELEPORT_EDITION?}
패키지 저장소
한 줄 설치 스크립트는 로컬 시스템에서 패키지 관리자를 자동으로 감지하고, 이를 사용하여 위에서 설명한 저장소에서 Teleport를 설치합니다.
시스템이 한 줄 설치 스크립트를 지원하지 않는 경우, 이 섹션의 지침을 읽고 Teleport 패키지 저장소와 작업하는 방법에 대한 지침을 따라야 합니다.
- Teleport 설치 명령어를 실행할 터미널에서 설치할 패키지와 버전을 지정하며 다음 환경 변수를 할당합니다:
Teleport Cloud 설치에는 자동 에이전트 업데이트가 포함되어야 합니다.
다음 명령어는 Teleport Cloud 계정을 쿼리하여 설치할 Teleport 버전을 결정하는 방법을 보여줍니다. 이렇게 하면 Teleport 설치가 자동 업데이트를 수행하는 서비스와 같은 주요 버전을 갖습니다:
export TELEPORT_DOMAIN=example.teleport.comexport TELEPORT_VERSION="$(curl https://$TELEPORT_DOMAIN/v1/webapi/automaticupgrades/channel/stable/cloud/version | sed 's/v//')"export TELEPORT_PKG="teleport-ent-${TELEPORT_VERSION?} teleport-ent-updater"export TELEPORT_CHANNEL=stable/cloud
Debian 또는 Ubuntu에 Teleport를 설치하는 경우, TELEPORT_PKG
는 약간 다릅니다:
export TELEPORT_PKG="teleport-ent=${TELEPORT_VERSION?} teleport-ent-updater"
export TELEPORT_PKG=teleport-entexport TELEPORT_VERSION=v17export TELEPORT_CHANNEL=stable/${TELEPORT_VERSION?}
FedRAMP/FIPS 준수 설치의 경우, 대신 teleport-ent-fips
패키지를 설치합니다:
export TELEPORT_PKG=teleport-ent-fips
export TELEPORT_PKG=teleportexport TELEPORT_VERSION=v17export TELEPORT_CHANNEL=stable/${TELEPORT_VERSION?}
-
Teleport는 Linux 시스템의
/etc/os-release
에 정의된 변수 기반으로 다양한 Linux 배포판을 위한 DEB 및 RPM 패키지 저장소를 유지합니다. 이 파일을 소스 하여 변수를 정의합니다:source /etc/os-release -
ID
환경 변수의 값이 지원되는지 확인합니다.Teleport DEB 및 RPM 저장소는 모든 배포 형식에 대해 패키지를 노출하지 않습니다. RPM 저장소를 사용하여 Teleport를 설치할 때는
/etc/os-release
에서 설정된ID
변수를ID_LIKE
로 교체하여 가장 가까운 지원 배포판의 패키지를 설치해야 할 수 있습니다.현재 지원되는 배포판(및
ID
값)은 다음과 같습니다:배포판 버전 /etc/os-release
의ID
값Amazon Linux 2 및 2023 amzn
CentOS >= 7 centos
Debian >= 9 debian
RHEL >= 7 rhel
SLES >= 12 SP5, >= 15 SP5 sles
Ubuntu >= 16.04 ubuntu
Enhanced Session Recording은 Linux 커널 5.8+ 버전을 요구합니다. 이는 다른 Teleport 기능보다 더 최신 OS 버전을 요구함을 의미합니다:
배포판 버전 Amazon Linux 2 (11/2021 이후), 2023 CentOS/RHEL 9+ Debian 11, 또는 백포트를 통해 10 Ubuntu 20.042+ ID
의 값이 위 목록에 없다면/etc/os-release
에서 소스된ID_LIKE
변수의 공백으로 구분된 값을 찾아보아야 하며, 그 중 하나가 목록에 있는지 확인합니다. -
패키지 관리자의 지침을 따릅니다:
Teleport PGP 공개 키 다운로드
sudo curl https://apt.releases.teleport.dev/gpg \-o /usr/share/keyrings/teleport-archive-keyring.ascTeleport APT 저장소 추가. 각 주요 릴리스에 대해 이 파일을 업데이트해야 합니다.
echo "deb [signed-by=/usr/share/keyrings/teleport-archive-keyring.asc] \https://apt.releases.teleport.dev/${ID?} ${VERSION_CODENAME?} \${TELEPORT_CHANNEL?}" \| sudo tee /etc/apt/sources.list.d/teleport.list > /dev/nullsudo apt-get updatesudo apt-get install ${TELEPORT_PKG?}
Teleport YUM 저장소 추가. 각 주요 릴리스에 대해 이 파일을 업데이트해야 합니다.
먼저, $VERSION_ID에서 주요 버전을 가져와야 올바른 패키지 버전을 가져옵니다.
VERSION_ID=$(echo $VERSION_ID | grep -Eo "^[0-9]+")sudo yum install -y yum-utilssudo yum-config-manager --add-repo "$(rpm --eval "https://yum.releases.teleport.dev/$ID/$VERSION_ID/Teleport/%{_arch}/${TELEPORT_CHANNEL?}/teleport.repo")"sudo yum install ${TELEPORT_PKG?}Tip: 'sudo tctl users add'가 문서에 따라 작동할 수 있도록 sudo에서 사용되는 경로에 /usr/local/bin을 추가하십시오.
echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin" > /etc/sudoers.d/secure_path
Teleport Zypper 저장소 추가. 각 주요 릴리스에 대해 이 파일을 업데이트해야 합니다.
먼저, $VERSION_ID에서 OS 주요 버전을 가져와야 올바른 패키지 버전을 가져옵니다.
VERSION_ID=$(echo $VERSION_ID | grep -Eo "^[0-9]+")zypper를 사용하여 teleport RPM 저장소 추가
sudo zypper addrepo --refresh --repo $(rpm --eval "https://zypper.releases.teleport.dev/$ID/$VERSION_ID/Teleport/%{_arch}/${TELEPORT_CHANNEL?}/teleport-zypper.repo")sudo zypper --gpg-auto-import-keys refresh teleportsudo zypper install ${TELEPORT_PKG?}Tip: 'sudo tctl users add'가 문서에 따라 작동할 수 있도록 sudo에서 사용되는 경로에 /usr/local/bin을 추가하십시오.
echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin" > /etc/sudoers.d/secure_path
Teleport YUM 저장소를 v17에 추가합니다. 각 주요 릴리스에 대해 이 파일을 업데이트해야 합니다.
먼저, $VERSION_ID에서 주요 버전을 가져와야 올바른 패키지 버전을 가져옵니다.
VERSION_ID=$(echo $VERSION_ID | grep -Eo "^[0-9]+")dnf config-manager 설치
sudo yum install -y yum-utilsdnf config manager 플러그인을 사용하여 teleport RPM 저장소 추가
sudo dnf config-manager --add-repo "$(rpm --eval "https://yum.releases.teleport.dev/$ID/$VERSION_ID/Teleport/%{_arch}/${TELEPORT_CHANNEL?}/teleport.repo")"teleport 설치
sudo dnf install ${TELEPORT_PKG}Tip: 'sudo tctl users add'가 문서에 따라 작동할 수 있도록 sudo에서 사용되는 경로에 /usr/local/bin을 추가하십시오.
echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin" > /etc/sudoers.d/secure_path
TAR 아카이브 (자체 호스팅 전용)
자체 호스팅 배포를 위해, Teleport는 Linux 호환 바이너리용 TAR 아카이브를 https://cdn.teleport.dev
에서 유지합니다. 이 섹션에서는 Teleport TAR 아카이브와 그 사용 방법에 대해 설명합니다.
TAR 아카이브를 사용하여 자동 에이전트 업데이트 프로그램을 설치할 수 없습니다. Teleport Cloud 고객은 업데이트 프로그램을 설치하기 위해 원라인 설치 스크립트를 사용하거나 패키지 저장소에서 Teleport를 수동으로 설치해야 합니다.
-
터미널에서 다운로드할 아카이브를 위해 사용할 환경 변수를 할당합니다.
Teleport Community Edition의 경우, Teleport 패키지는
teleport
라고 합니다:TELEPORT_PKG=teleport자체 호스팅 Teleport Enterprise 배포의 경우, 패키지는
teleport-ent
라고 합니다:TELEPORT_PKG=teleport-ent -
시스템 Teleport 버전과 시스템 아키텍처를 환경 변수를 할당하여 지정합니다:
TELEPORT_VERSION=17.0.0-devSYSTEM_ARCH=""다음 아키텍처 값이 있습니다:
amd64
arm64
arm
386
-
다음 명령을 실행하여 Teleport 아카이브를 다운로드하고, 압축을 풀고, 바이너리를 설치합니다:
curl https://cdn.teleport.dev/${TELEPORT_PKG?}-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-bin.tar.gz.sha256<checksum> <filename>
curl -O https://cdn.teleport.dev/${TELEPORT_PKG?}-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-bin.tar.gzshasum -a 256 ${TELEPORT_PKG?}-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-bin.tar.gz체크섬이 일치하는지 확인합니다
tar -xvf ${TELEPORT_PKG?}-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-bin.tar.gzcd ${TELEPORT_PKG?}sudo ./installFedRAMP/FIPS 준수 설치의 경우, Teleport Enterprise 패키지 URL은 약간 다릅니다:
curl https://cdn.teleport.dev/teleport-ent-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-fips-bin.tar.gz.sha256<checksum> <filename>
curl -O https://cdn.teleport.dev/teleport-ent-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-fips-bin.tar.gzshasum -a 256 teleport-ent-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-fips-bin.tar.gz체크섬이 일치하는지 확인합니다
tar -xvf teleport-ent-v${TELEPORT_VERSION?}-linux-${SYSTEM_ARCH?}-fips-bin.tar.gzcd teleport-entsudo ./install
브라우저에서
Teleport Community Edition의 경우, 가장 최신 정보를 보려면 다운로드 페이지를 확인하세요.
Docker
이미지
우리는 각 Teleport 버전에 대해 미리 구축된 Docker 이미지를 제공합니다. 이 섹션에서는 사용 가능한 Docker 이미지에 대해 설명합니다.
이 이미지는 Amazon ECR Public 에 호스팅됩니다.
이미지 접미사
이 섹션에 나열된 이미지 이름마다 저장소 이름이나 태그에 접미사를 추가하여 이미지의 속성을 지정할 수 있습니다.
-distroless
접미사가 있는 이미지는 저장소 이름 내에서 teleport
이진 파일과 실행 시 필요한 종속성만 포함되며, 셸이나 유틸리티 응용 프로그램은 포함되지 않습니다. 예를 들어, Teleport Community Edition의 경우 public.ecr.aws/gravitational/teleport-distroless
입니다.
*-distroless-debug
접미사가 있는 이미지는 Teleport와 함께 Busybox 셸 및 도구 모음을 포함하며, 배포 문제 해결을 목적으로 합니다. 이 이미지는 운영 환경에서 사용하기 위한 것이 아닙니다. 예를 들어, public.ecr.aws/gravitational/teleport-distroless-debug
입니다.
*-distroless
및 *-distroless-debug
이미지는 여러 아키텍처를 기본적으로 지원하며, 이미지 접미사가 필요하지도 지원하지도 않습니다. docker pull
의 --platform
플래그를 사용하여 이미지의 arm
, arm64
또는 amd64
버전을 가져올 수 있습니다.
버전 태그
이미지는 Teleport의 정적 버전을 가리킵니다. 이미지의 태그를 사용하여 다음 중 하나를 지정할 수 있습니다:
- 주요, 부, 패치 버전 (예:
17.0.0-dev
최신 버전의 Teleport Community Edition). - 주요 버전만, 이는 해당 주요 버전의 최신 부 및 패치 번호를 의미합니다. 예를 들어,
17
는17.0.0-dev
을 의미합니다.
이미지 이름 | 문제 해결 도구 포함 | 이미지 베이스 |
---|---|---|
public.ecr.aws/gravitational/teleport-ent-distroless:16.4.3 | 아니요 | Distroless Debian 12 |
public.ecr.aws/gravitational/teleport-ent-distroless-debug:16.4.3 | 예 | Distroless Debian 12 |
테스트를 위해서는 항상 최신 Cloud 릴리스 버전인 public.ecr.aws/gravitational/teleport-ent-distroless:16.4.3
를 사용하는 것이 좋습니다.
이미지 이름 | 문제 해결 도구 포함 | 이미지 베이스 |
---|---|---|
public.ecr.aws/gravitational/teleport-ent-distroless:13.3.7 | 아니요 | Distroless Debian 12 |
public.ecr.aws/gravitational/teleport-ent-distroless-debug:13.3.7 | 예 | Distroless Debian 12 |
우리는 또한 Teleport Enterprise의 FIPS 빌드를 위한 다음 이미지를 제공합니다:
이미지 이름 | 문제 해결 도구 포함 | 이미지 베이스 |
---|---|---|
public.ecr.aws/gravitational/teleport-ent-fips-distroless:17.0.0-dev | 아니요 | Distroless Debian 12 |
public.ecr.aws/gravitational/teleport-ent-fips-distroless-debug:17.0.0-dev | 예 | Distroless Debian 12 |
테스트를 위해서는 항상 최신 릴리스 버전인 public.ecr.aws/gravitational/teleport-ent-distroless:13.3.7
를 사용하는 것이 좋습니다.
이미지 이름 | 문제 해결 도구 포함? | 이미지 베이스 |
---|---|---|
public.ecr.aws/gravitational/teleport-distroless:13.3.7 | 아니요 | Distroless Debian 12 |
public.ecr.aws/gravitational/teleport-distroless-debug:13.3.7 | 예 | Distroless Debian 12 |
테스트를 위해서는 항상 최신 릴리스 버전인 public.ecr.aws/gravitational/teleport-distroless:13.3.7
를 사용하는 것이 좋습니다.
distroless 이미지와의 상호작용
버전 15 이후, Teleport 이미지는 Google의 Distroless 이미지를 기반으로 합니다.
이러한 이미지는 어떤 쉘도 포함하고 있지 않습니다.
이러한 이미지를 기반으로 한 컨테이너에서 Teleport 명령을 실행하려면 다음과 유사한 명령어를 실행하십시오:
도커에서
docker run -i my-container tctl statusKubernetes에서
kubectl exec -i my-pod -- tctl status로컬 파일을 stdin을 통해 전송
kubectl exec -i my-pod -- tctl create -f < my-local-file.yamlconfigmap에서 teleport 서비스 구성 파일 가져오기
kubectl get configmap teleport-cluster-auth -o jsonpath="{.data['teleport\.yaml']}"stdout을 통해 출력 및 tar로 가져오기
kubectl exec -i my-pod -- tctl auth sign --user admin --format tls --ttl 10m --tar -o admin | tar xv -C localls -l localtotal 24-rw------- 1 trent staff 1318 Jul 24 15:52 admin.cas-rw------- 1 trent staff 1895 Jul 24 15:52 admin.crt-rw------- 1 trent staff 1679 Jul 24 15:52 admin.key
또는, busybox
와 최소한의 쉘이 있는 디버그 변형 이미지를 사용할 수 있습니다. 이는 busybox sh
로 호출할 수 있습니다:
docker run -it --entrypoint="" public.ecr.aws/gravitational/teleport-distroless-debug:13.3.7 busybox sh
머신 ID (tbot)
우리는 Teleport 머신 ID와 함께 사용할 수 있는 tbot
바이너리만 포함된 축소된 distroless 이미지를 제공합니다.
이미지 이름 | FIPS 지원 | 이미지 기반 |
---|---|---|
public.ecr.aws/gravitational/tbot-distroless:17.0.0-dev | 아니오 | Distroless Debian 12 |
public.ecr.aws/gravitational/tbot-fips-distroless:17.0.0-dev | 예 | Distroless Debian 12 |
버전 태깅은 주요 teleport-distroless
이미지와 동일한 패턴을 따릅니다.
teleport-distroless
이미지는 tbot
도 포함하고 있지만, 머신 ID 배포를 위해 tbot
전용 이미지를 사용하는 것이 좋습니다. 이 이미지는 더 작아 풀 시간이 단축되고, 공격면도 더 작습니다. 또한, 컨테이너 환경에서 tbot
을 실행하는 경험을 개선하기 위해 맞춤화되었습니다.
자세한 내용을 알아보려면 Kubernetes에서 Machine ID 배포하기 가이드를 읽어보십시오.
도커에서 Teleport 실행하기
위에 나열된 이미지 중 하나로부터 컨테이너를 실행할 때, 해당 컨테이너는 teleport
바이너리를 실행하는 것과 같습니다. Teleport 컨테이너는 파일 시스템 및 네트워크 포트에 대한 접근이 필요합니다.
구성
Teleport 프로세스는 기본적으로 /etc/teleport.yaml
이라는 로컬 파일 경로에서 구성 정보를 읽습니다. 이 파일 경로가 Teleport 컨테이너에 마운트되어 있는지 확인하십시오.
데이터 디렉토리
모든 Teleport 프로세스는 데이터 디렉토리에서 읽고 쓰며, 기본적으로 /var/lib/teleport
에 있습니다. 데이터 디렉토리가 Teleport 컨테이너에 마운트되어 있는지 확인하세요.
라이센스 파일
Teleport Enterprise 컨테이너가 Auth Service를 실행하는 경우, 구성에 명시된 경로에 있는 라이센스 파일에 대한 접근 권한을 부여해야 합니다. 기본 경로는 /var/lib/teleport/license.pem
입니다. 이 위치에 Teleport 컨테이너의 데이터 디렉토리에 라이센스가 존재하는지 확인하세요.
기타 파일 경로
Teleport 컨테이너에 할당한 구성 설정에 따라, 명명한 파일 경로가 컨테이너에 마운트되어 있는지 확인해야 합니다.
예를 들어, Teleport Proxy Service를 컨테이너에서 실행하는 경우, TLS 자격 증명을 포함하는 디렉토리를 Teleport 컨테이너에 마운트해야 하며, 그 다음 컨테이너의 구성 파일에서 적절한 경로로 다음 필드를 할당해야 합니다:
proxy_service:
https_keypairs:
- key_file: /my/path/key.pem
cert_file: /my/path/cert.pem
필드가 파일 경로를 요구하는지 여부에 대해서는 Teleport 구성 참조를 참조하세요.
포트
단일 Teleport 프로세스는 여러 서비스를 실행할 수 있으며, 각 서비스는 구성에 따라 특정 포트 세트에서 수신 대기합니다. Teleport 컨테이너에서 노출할 포트에 대해서는 네트워킹 참조를 참조하세요.
배포리스 이미지에서 인증서 추출
배포리스 이미지를 실행하는 컨테이너에서 tctl auth sign
으로 생성된 인증서를 추출하는 것은 쉘 및 기타 OS 도구가 없기 때문에 상당히 까다로울 수 있습니다.
가능한 경우 tsh
를 사용하여 Teleport 클러스터에 로그인하고, 로컬에서 tctl auth sign
을 사용하여 인증서를 생성하세요. 이렇게 하면 해당 작업이 Teleport 사용자에 대해 기록되며, 클러스터의 모든 일반적인 Teleport RBAC 정책에 따라 적용됩니다.
이것이 불가능한 경우, tctl auth sign --tar
를 사용하여 tctl auth sign
으로 생성된 모든 파일을 tar
아카이브로 수집하고, 이는 stdout
으로 직접 스트리밍됩니다. 생성된 인증서는 컨테이너 파일 시스템에 저장되지 않습니다. 이 출력을 직접 tar
로 파이프할 수도 있고, 나중에 사용하기 위해 로컬 파일로 리디렉션할 수도 있습니다.
예를 들어:
docker exec ${TELEPORT_CONTAINER} \ tctl auth sign --user alice --format tls -o alice.local --tar | tar xvx alice.local.crtx alice.local.keyx alice.local.cas
Teleport 컨테이너 실행 예제
이 예제에서는 Teleport Community Edition을 사용하여 로컬 Docker 컨테이너에서 Teleport Auth Service와 Proxy Service를 실행하는 방법을 보여줍니다.
이 컨테이너는 자체 서명된 인증서를 사용하므로, 이 구성을 사용하여 작업station 외부의 인프라를 보호하는 것은 권장하지 않습니다. 그러나 다른 로컬 Docker 컨테이너를 토큰 방법으로 연결할 수 있습니다.
먼저, 컨테이너에 마운트할 홈 디렉토리에 디렉토리를 만듭니다. Teleport 컨테이너는 이러한 디렉토리에 구성 및 데이터를 기록합니다:
mkdir -p ~/teleport/config ~/teleport/data
Teleport 컨테이너에서 teleport configure
를 실행하여 구성 파일을 생성합니다. 이렇게 하면 컨테이너의 이름이 localhost
로 설정되어 브라우저가 Proxy Service의 자체 서명된 TLS 인증서를 신뢰할 수 있습니다:
docker run --hostname localhost --rm \ --entrypoint=/usr/local/bin/teleport \ public.ecr.aws/gravitational/teleport-distroless:13.3.7 configure --roles=proxy,auth > ~/teleport/config/teleport.yaml
컨테이너에서 Teleport를 시작합니다:
docker run --hostname localhost --name teleport \ -v ~/teleport/config:/etc/teleport \ -v ~/teleport/data:/var/lib/teleport \ -p 3025:3025 -p 3080:3080 \ public.ecr.aws/gravitational/teleport-distroless:13.3.7
그 다음, 또 다른 터미널을 열고 Teleport 컨테이너의 웹 API가 의도한 대로 작동하는지 확인합니다:
curl --insecure https://localhost:3080/webapi/ping
다음과 유사한 JSON 출력을 보게 될 것입니다:
{
"auth": {
"type": "local",
"second_factor": "otp",
"preferred_local_mfa": "otp",
"local": {
"name": ""
},
"private_key_policy": "none",
"device_trust_disabled": true,
"has_motd": false
},
"proxy": {
"kube": {
"enabled": true,
"listen_addr": "0.0.0.0:3080"
},
"ssh": {
"listen_addr": "0.0.0.0:3080",
"tunnel_listen_addr": "0.0.0.0:3080",
"web_listen_addr": "0.0.0.0:3080"
},
"db": {
"postgres_listen_addr": "0.0.0.0:3080",
"mysql_listen_addr": "0.0.0.0:3080"
},
"tls_routing_enabled": true
},
"server_version": "12.1.5",
"min_client_version": "11.0.0",
"cluster_name": "localhost",
"automatic_upgrades": false
}
--insecure
플래그를 사용하여 Teleport의 자체 서명된 인증서를 신뢰하고 있습니다. 운영 환경에서는 신뢰할 수 있는 CA(예: Let's Encrypt)로부터 Proxy Service에 TLS 자격 증명을 설정해야 합니다.
Teleport Docker 업그레이드
Docker에서 실행 중인 Teleport 컨테이너를 업그레이드하려면:
- 컨테이너의 데이터 디렉터리를 그대로 두십시오.
- 컨테이너를 중지합니다.
- 새로운 Teleport 버전을 기반으로 한 이미지로 새로운 컨테이너를 실행하고, 초기 실행 시와 같이 데이터 디렉터리를 마운트합니다. 데이터 디렉터리에 업그레이드 이전과 동일한 내용이 포함되어 있는 한, Teleport 컨테이너는 클러스터에 다시 조인할 필요가 없습니다.
Amazon EC2
우리는 Teleport가 미리 설치된 amd64
및 arm64
Amazon Linux 2023 기반 EC2 AMI를 제공합니다.
이 이미지는 주로 우리의 참조 Terraform 코드를 사용하여 Teleport 클러스터를 배포하기 위한 것입니다.
단일 인스턴스 AWS 배포 가이드와 AWS에서 Terraform을 사용한 고가용성 모드의 Teleport Enterprise 실행 가이드에서 상세한 사용 예제를 참조하십시오.
이러한 AMI를 참조 Terraform 외부에서 사용하기 위해서는, EC2 인스턴스의 /etc/teleport.d/conf
파일에
설정 변수를 설정하여 Teleport 설치를 구성할 수 있습니다. 사용 가능한 설정 옵션 목록은
스타터 클러스터 구성 템플릿을 참조하십시오.
이미지 이름은 모두 빌드 타임스탬프($TIMESTAMP로 표시됨)를 포함하고 있으며, 검색을 용이하게 하기 위해 태그가 지정되어 있습니다.
이미지 이름 | 에디션 | 아키텍처 | FIPS 지원 | AMI 태그 |
---|---|---|---|---|
teleport-oss-17.0.0-dev-x86_64-$TIMESTAMP | OSS | amd64 | 아니요 | TeleportVersion: 17.0.0-dev , TeleportEdition: oss , TeleportFipsEnabled: false |
teleport-oss-17.0.0-dev-arm64-$TIMESTAMP | OSS | arm64 | 아니요 | TeleportVersion: 17.0.0-dev , TeleportEdition: oss , TeleportFipsEnabled: false |
teleport-ent-17.0.0-dev-x86_64-$TIMESTAMP | Enterprise | amd64 | 아니요 | TeleportVersion: 17.0.0-dev , TeleportEdition: ent , TeleportFipsEnabled: false |
teleport-ent-17.0.0-dev-arm64-$TIMESTAMP | Enterprise | arm64 | 아니요 | TeleportVersion: 17.0.0-dev , TeleportEdition: ent , TeleportFipsEnabled: false |
teleport-ent-17.0.0-dev-x86_64-fips-$TIMESTAMP | Enterprise | amd64 | 예 | TeleportVersion: 17.0.0-dev , TeleportEdition: ent , TeleportFipsEnabled: true |
teleport-ent-17.0.0-dev-arm64-fips-$TIMESTAMP | Enterprise | arm64 | 예 | TeleportVersion: 17.0.0-dev , TeleportEdition: ent , TeleportFipsEnabled: true |
이 AMI는 AWS 계정 ID 146628656107
소유입니다.
모든 이미지는 Amazon Linux 2023을 기반으로 하며, Amazon EC2 ImageBuilder의 STIG 하드닝 컴포넌트를 사용하여 강화되었습니다.
Teleport AMI는 모든 비옵트인 AWS 리전으로 자동 게시됩니다.
Helm
Teleport Helm 저장소를 설정합니다.
Helm이 Teleport Helm 저장소에서 호스팅되는 차트를 설치할 수 있도록 허용합니다:
helm repo add teleport https://charts.releases.teleport.dev
원격 저장소의 차트 캐시를 업데이트하여 모든 사용 가능한 릴리스로 업그레이드할 수 있습니다:
helm repo update
설치할 수 있는 두 가지 차트가 있습니다. 각 차트 사용에 대한 가이드를 참조하십시오.
차트 | 포함된 서비스 | 값 참조 |
---|---|---|
teleport-cluster | Auth Service Proxy Service 사용자 정의 구성을 사용하는 경우 기타 Teleport 서비스 | 참조 |
teleport-kube-agent | Kubernetes 서비스 애플리케이션 서비스 데이터베이스 서비스 발견 서비스 Jamf 서비스 | 참조 |
macOS
macOS 용 .pkg 설치 프로그램 중 하나를 다운로드할 수 있습니다:
링크 | 바이너리 |
---|---|
teleport-ent-16.4.3.pkg | teleport tctl tsh tbot fdpass-teleport |
tsh-16.4.3.pkg | tsh |
명령 줄에서 설치 프로그램을 가져올 수도 있습니다:
curl -O https://cdn.teleport.dev/teleport-ent-16.4.3.pkgMacintosh HD에 설치
sudo installer -pkg teleport-ent-16.4.3.pkg -target /비밀번호:installer: 패키지 이름은 teleport-ent-16.4.3입니다.installer: 기본 경로에서 업그레이드 중입니다.installer: 업그레이드가 성공적으로 완료되었습니다.which teleport/usr/local/bin/teleport
다음 .pkg 설치 프로그램 중 하나를 macOS에 다운로드할 수 있습니다:
링크 | 바이너리 |
---|---|
teleport-ent-17.0.0-dev.pkg | teleport tctl tsh tbot fdpass-teleport |
tsh-17.0.0-dev.pkg | tsh |
명령줄에서 설치 프로그램을 가져올 수도 있습니다:
curl -O https://cdn.teleport.dev/teleport-ent-17.0.0-dev.pkgMacintosh HD에 설치
sudo installer -pkg teleport-ent-17.0.0-dev.pkg -target /비밀번호:installer: 패키지 이름은 teleport-ent-17.0.0-dev입니다.installer: 기본 경로 /에서 업그레이드 중입니다.installer: 업그레이드가 성공했습니다.which teleport/usr/local/bin/teleport
다음의 .pkg 설치 파일 중 하나를 macOS용으로 다운로드할 수 있습니다:
링크 | 바이너리 |
---|---|
teleport-17.0.0-dev.pkg | teleport tctl tsh tbot fdpass-teleport |
tsh-17.0.0-dev.pkg | tsh |
명령줄을 통해 설치 프로그램을 가져올 수도 있습니다:
curl -O https://cdn.teleport.dev/teleport-17.0.0-dev.pkgMacintosh HD에 설치
sudo installer -pkg teleport-17.0.0-dev.pkg -target /비밀번호:
installer: 패키지 이름은 teleport-17.0.0-dev입니다.
installer: 기본 경로에서 업그레이드하고 있습니다 /
installer: 업그레이드가 성공적으로 완료되었습니다.
which teleport/usr/local/bin/teleport
Homebrew를 사용하여 Teleport를 설치하는 것을 권장하지 않습니다. Homebrew의 Teleport 패키지는 Teleport에서 유지 관리하지 않으며 그 신뢰성이나 보안을 보장할 수 없습니다.
Windows (tsh
및 tctl
클라이언트 전용)
대부분의 tsh
기능은 Windows 10 1607 이상에서 지원됩니다. tsh ssh
명령은 cmd.exe
, PowerShell, 및 Windows Terminal에서 실행할 수 있습니다.
Windows에 tsh
및 tctl
을 설치하려면 PowerShell에서 다음 명령을 실행하십시오 (이 명령은 cmd.exe
에서는 작동하지 않습니다):
원하는 텔레포트 버전 설정
$TELEPORT_VERSION="16.4.3"
원하는 텔레포트 버전 설정
$TELEPORT_VERSION="17.0.0-dev"
원하는 텔레포트 버전 설정
$TELEPORT_VERSION="17.0.0-dev"
TLS 레벨을 TLS 1.2로 설정합니다 (Windows Server 2016 및 이전 버전에서 필요).
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12Windows tsh 패키지에 대한 예상 체크섬을 가져옵니다.
$Resp = Invoke-WebRequest https://cdn.teleport.dev/teleport-v$TELEPORT_VERSION-windows-amd64-bin.zip.sha256PowerShell은 기본적으로 응답 콘텐츠의 이진 표현을 반환하므로,
문자열로 변환해야 합니다.
[System.Text.Encoding]::UTF8.getstring($Resp.Content)<체크섬> <파일 이름>
Invoke-WebRequest -OutFile teleport-v$TELEPORT_VERSION-windows-amd64-bin.zip -Uri https://cdn.teleport.dev/teleport-v$TELEPORT_VERSION-windows-amd64-bin.zipcertUtil -hashfile teleport-v$TELEPORT_VERSION-windows-amd64-bin.zip SHA256teleport-v$TELEPORT_VERSION-windows-amd64-bin.zip의 SHA256 해시:
<체크섬>
CertUtil: -hashfile 명령이 성공적으로 완료되었습니다.
체크섬이 일치하는 것을 확인한 후, 아카이브를 추출할 수 있습니다.
실행 파일은 teleport-v$TELEPORT_VERSION-windows-amd64-bin\
에서 사용할 수 있습니다.
Expand-Archive teleport-v$TELEPORT_VERSION-windows-amd64-bin.zipcd teleport-v$TELEPORT_VERSION-windows-amd64-bin.\tsh.exe versionTeleport v$TELEPORT_VERSION git:v$TELEPORT_VERSION go1.22.\tctl.exe versionTeleport v$TELEPORT_VERSION git:v$TELEPORT_VERSION go1.22
tsh.exe
및 tctl.exe
를 PATH로 이동해야 합니다.
Note
System32
디렉토리에 tsh.exe
를 넣지 마십시오. 이로 인해 WinSCP를 사용할 때 문제가 발생할 수 있습니다.
대신 %SystemRoot%
(예: C:\Windows
)를 사용해야 하며, 이는 이미 %PATH%
에 포함되어 있습니다.
사용 중인 Windows 시스템에서 관리자 권한이 없는 경우 %USERPROFILE%
(예: C:\Users\<username>
)을 대신 사용할 수 있습니다 - 그러나 tsh.exe
와 같은 디렉토리에 있지 않는 한,
명령줄에서 tsh
명령을 전역적으로 실행할 수 없음을 유의해야 합니다.
소스에서 빌드하기
Teleport는 Go로 작성되었으며 현재 go v1.22 또는 더 최신 버전이 필요합니다. 소스에서 빌드하기 위한 자세한 설명서는 읽어보기에서 확인할 수 있습니다.
체크섬
Teleport 바이너리의 무결성을 확인하려면, SHA256 체크섬이 모든 다운로드에 대해 저희 다운로드 페이지에서 제공됩니다.
자동화된 시스템을 통해 Teleport를 다운로드하는 경우, 다운로드 링크에 .sha256
을 추가하여 체크섬을 프로그래밍적으로 얻을 수 있습니다. 이는 설치 예제에서 보여준 방법입니다.
export version=v17.0.0-dev'darwin' 'linux' 또는 'windows'
export os=linux'386' 'arm'은 linux에서, 모든 배포판에서 'amd64'
export arch=amd64curl https://cdn.teleport.dev/teleport-$version-$os-$arch-bin.tar.gz.sha256<체크섬> <파일이름>
Teleport 제거
언제든지 Teleport를 제거하려면 Teleport 제거 문서를 참조하십시오.
다음 단계
Teleport 설치 방법을 알았으니 이제 모든 인프라에 대한 액세스를 활성화할 수 있습니다. 시작하세요: