Infograb logo
IBM Cloud에서 Teleport 실행하기

이 가이드는 고객에게 IBM Cloud에서 Teleport를 사용하는 방법에 대한 개요를 제공하기 위해 작성되었습니다.
이 가이드는 프로덕션에서 Teleport를 설정하고 실행하는 방법에 대한 높은 수준의 소개를 제공합니다.

이 가이드는 다음과 같이 나뉘어 있습니다:

Teleport Enterprise Cloud가 이 설정을 자동으로 처리하므로, 귀하는 즉시 안전한 인프라 접근을 제공할 수 있습니다.

무료 체험으로 Teleport Enterprise Cloud를 시작하세요.

IBM Cloud의 Teleport FAQ

IBM Cloud와 함께 Teleport를 사용하고 싶은 이유는 무엇인가요?

Teleport는 장애가 없는 클라우드 네이티브 인프라에 대한 특권 액세스 관리를 제공합니다.
정보 보안 및 시스템 엔지니어는 인프라에 대한 액세스를 안전하게 하고, 컴플라이언스 요구 사항을 충족시키며, 운영 오버헤드를 줄이고, 액세스 및 동작에 대한 완전한 가시성을 확보할 수 있습니다.

IBM과 함께 Teleport를 사용함으로써 IBM Cloud와 Softlayer 인프라에 대한 모든 액세스를 쉽게 통합할 수 있습니다.

어떤 서비스에 Teleport를 사용할 수 있나요?

SSH로 접속할 모든 서비스에 Teleport를 사용할 수 있습니다. 이 가이드는 IBM Cloud에 초점을 맞추고 있습니다.

나중에 IBM Cloud Kubernetes 서비스와 함께 Teleport를 사용하는 것을 포함하도록 가이드를 확장할 계획입니다.

IBM Teleport 소개

이 가이드는 IBM Cloud에서 Teleport를 설정하고 구성하며 실행하는 방법을 다룹니다.

Teleport를 고가용성으로 실행하기 위한 IBM 서비스:

필요한 기타 항목:

우리는 Teleport를 고가용성 모드(HA)로 설정하는 것을 권장합니다. 고가용성 모드에서 etcd는 시스템의 상태를 저장하고 IBM Cloud Storage는 감사 로그를 저장합니다.

GCP Intro Image

IBM Cloud: 인스턴스 그룹이 있는 가상 서버

우리는 Gen 2 Cloud IBM 가상 서버오토 스케일링을 추천합니다.

  • 스테이징 및 POC를 위해 2 vCPU, 4GB RAM 및 4 Gbps의 bx2-2x8 머신을 사용하는 것이 좋습니다.
  • 프로덕션에는 4 vCPU, 8GB RAM 및 8 Gbps의 cx2-4x8을 추천합니다.

스토리지: etcd용 데이터베이스

IBM은 관리형 etcd 인스턴스를 제공합니다.
Teleport는 고가용성을 유지하고 원활한 재시작을 제공하기 위해 etcd를 확장 가능한 데이터베이스로 사용합니다. 이 서비스는 IBM Cloud Dashboard 내에서 활성화되어야 합니다.

Teleport 클러스터를 계획한 지역과 동일한 지역에서 etcd 인스턴스를 선택하는 것이 좋습니다.

  • 배포 지역: 나머지 Teleport 클러스터와 동일
  • 초기 메모리 할당: 2GB/멤버 (총 6GB)
  • 초기 디스크 할당: 20GB/멤버 (총 60GB)
  • CPU 할당: 공유
  • etcd 버전: 3.3

자격 증명 저장

teleport:
  storage:
    type: etcd
    # 연결할 etcd 피어 목록:
    # IBM의 예제 호스트 및 포트를 보여줍니다.
    peers: ["https://a9e977c0-224a-40bb-af51-21893b8fde79.b2b5a92ee2df47d58bad0fa448c15585.databases.appdomain.cloud:30359"]
    # 선택적 비밀번호 기반 인증
    # 새 사용자 설정에 대한 정보는 https://etcd.io/docs/v3.4.0/op-guide/authentication/를 참조하세요.
    # IBM은 기본적으로 `root`를 사용합니다.
    username: 'root'
    # 비밀번호 파일에는 비밀번호만 포함되어야 합니다.
    password_file: '/var/lib/etcd-pass'
    # TLS 인증서 이름, 개요의 파일 내용
    tls_ca_file: '/var/lib/teleport/797cfsdf23e-4027-11e9-a020-42025ffb08c8.pem'
    # teleport가 상태를 저장할 etcd 키(위치).
    # 꼭 '/'로 끝나야 합니다!
    prefix: '/teleport/'

스토리지: IBM Cloud 객체 저장소

Teleport의 기록된 세션을 저장하기 위해 IBM Cloud 객체 저장소를 사용하는 것이 좋습니다.

  • 새로운 객체 저장소 리소스를 생성합니다. IBM 카탈로그 - 객체 저장소 빠른 링크
  • 새로운 버킷을 생성합니다.
  • HMAC 자격 증명을 설정합니다.
  • 감사 세션 URI 업데이트: audit_sessions_uri: 's3://BUCKET-NAME/readonly/records?endpoint=s3.us-east.cloud-object-storage.appdomain.cloud&region=ibm'

audit_sessions_uri를 설정할 때 s3:// 세션 접두사를 사용하세요.

자격 증명은 ~/.aws/credentials에서 사용되고 HMAC 옵션으로 생성되어야 합니다:

{
  "apikey": "LU9VCDf4dDzj1wjt0Q-BHaa2VEM7I53_3lPff50d_uv3",
  "cos_hmac_keys": {
    "access_key_id": "e668d66374e141668ef0089f43bc879e",
    "secret_access_key": "d8762b57f61d5dd524ccd49c7d44861ceab098d217d05836"
  },
  "endpoints": "https://control.cloud-object-storage.cloud.ibm.com/v2/endpoints",
  "iam_apikey_description": "키 e668d663-74e1-4166-8ef0-089f43bc879e에 대해 자동 생성됨",
  "iam_apikey_name": "서비스 자격 증명-1",
  "iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer",
  "iam_serviceid_crn": "crn:v1:bluemix:public:iam-identity::a/0328d127d04047548c9d4bedcd24b85e::serviceid:ServiceId-c7ee0ee9-ea74-467f-a49e-ef60f6b27a71",
  "resource_instance_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/0328d127d04047548c9d4bedcd24b85e:32049c3c-207e-4731-8b8a-53bf3b4844e7::"
}

이 설정을 ~/.aws/credentials에 저장하세요.

# 예제 서비스 계정의 예제 키를 ~/.aws/credentials에 저장합니다.
[default]
aws_access_key_id="abcd1234-this-is-an-example"
aws_secret_access_key="zyxw9876-this-is-an-example"

예제 /etc/teleport.yaml

...
storage:
    ...
    # 주의
    #
    # endpoint=s3.us-east.cloud-object-storage.appdomain.cloud | 이 URL은
    # 버킷이 만들어진 지역에 따라 다릅니다. 공용
    # 엔드포인트를 사용하세요.
    #
    # region=ibm | 항상 IBM으로 설정해야 합니다.
    audit_sessions_uri: 's3://BUCKETNAME/readonly/records?endpoint=s3.us-east.cloud-object-storage.appdomain.cloud&region=ibm'
    ...
Tip

teleport start --config=/etc/teleport.yaml -d로 시작할 때,
버킷이 생성되었는지 확인할 수 있습니다.

sudo teleport start --config=/etc/teleport.yaml -d

DEBU [SQLITE] 다음에 연결되었습니다: file:/var/lib/teleport/proc/sqlite.db?_busy_timeout=10000&_sync=OFF, poll stream period: 1s lite/lite.go:173

DEBU [SQLITE] 동기화: 0, busy timeout: 10000 lite/lite.go:220

DEBU [KEYGEN] SSH 인증 기관이 25개의 키를 미리 계산합니다. native/native.go:104

DEBU [PROC:1] etcd 백엔드를 사용합니다. service/service.go:2309

INFO [S3] "ben-teleport-test-cos-standard-b98" 버킷 설정, 세션 경로 "/readonly/records" 지역 "ibm"에서. s3sessions/s3handler.go:143

INFO [S3] "ben-teleport-test-cos-standard-b98" 버킷 설정 완료. 소요 시간: 356.958618ms s3sessions/s3handler.go:147

네트워크: IBM Cloud DNS 서비스

Teleport 프록시 공용 주소를 위해 IBM Cloud DNS를 사용하는 것이 좋습니다.

    # 클러스터 사용자가 접근할 수 있는 프록시 HTTPS 엔드포인트의 DNS 이름.
    # 지정하지 않을 경우 프록시의 호스트 이름으로 기본값이 설정됩니다. 로드 밸런서 뒤에 여러 개의  
    # 프록시가 실행되는 경우, 이 이름은 로드 밸런서를 가리켜야 합니다. 
    # (아래 public_addr 섹션을 참조하세요)
    public_addr: proxy.example.com:3080
Teleport 원문 보기