Infograb logo
Azure 가상 머신 자동 검색

Teleport Discovery Service는 Azure에 연결하여 구성된 레이블과 일치하는 가상 머신을 자동으로 발견하고 등록할 수 있습니다. 그런 다음 이 발견된 인스턴스에서 스크립트를 실행하여 Teleport를 설치하고 시작하며 클러스터에 조인합니다.

필수 조건

  • 실행 중인 Teleport 클러스터 버전 17.0.0-dev 이상. Teleport를 시작하려면 가입하여 무료 평가판을 이용하거나 데모 환경 설정 방법을 확인하십시오.

  • tctl 관리자 도구와 tsh 클라이언트 도구.

    tctltsh 다운로드 방법에 대한 지침은 설치를 방문하십시오.

  • 가상 머신과 관리된 ID를 생성하고 연결할 수 있는 권한이 있는 Azure 구독.
  • Teleport 클러스터에 조인할 Azure 가상 머신, 기본 Teleport 설치 스크립트를 사용하면 Ubuntu/Debian/RHEL에서 실행되어야 합니다. (기타 Linux 배포판의 경우, Teleport를 수동으로 설치할 수 있습니다.)
  • 연결이 가능한지 확인하기 위해 tsh login 으로 로그인한 다음, 현재 자격 증명을 사용하여 tctl 명령어를 실행할 수 있는지 확인하십시오. 예를 들어:
    tsh login --proxy=teleport.example.com --user=email@example.com
    tctl status

    클러스터 teleport.example.com

    버전 17.0.0-dev

    CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678

    클러스터에 연결할 수 있고 tctl status 명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 워크스테이션에서 후속 tctl 명령어를 실행할 수 있습니다.
    자신의 Teleport 클러스터를 호스팅하는 경우, Teleport Auth Service를 호스팅하는 컴퓨터에서 전체 권한으로 tctl 명령어를 실행할 수도 있습니다.

1/6단계. Azure 초대 토큰 생성

Azure 가상 머신을 발견할 때, Teleport는 SSH 서비스 인스턴스의 조인 인증을 위해 Azure 초대 토큰을 사용합니다.

token.yaml 라는 파일을 생성하십시오:

# token.yaml
kind: token
version: v2
metadata:
  # 토큰 이름은 비밀이 아니므로 인스턴스는 이 토큰을 사용하기 위해
  # 귀하의 Azure 구독에서 실행되고 있음을 증명해야 합니다.
  name: azure-discovery-token
  # 토큰의 기본 만료 시간은 30분이므로 긴 만료 시간을 설정합니다.
  expires: "3000-01-01T00:00:00Z"
spec:
  # 필요한 최소 역할 집합 사용
  roles: [Node]

  # 이 토큰에 대해 허용되는 조인 방법 설정
  join_method: azure

  azure:
    allow:
      # 노드가 조인할 수 있는 Azure 구독을 지정하십시오.
      - subscription: "123456789"

subscription 필드를 귀하의 Azure 구독 ID로 할당합니다. 다음 명령어로 Teleport 클러스터에 토큰을 추가합니다:

tctl create -f token.yaml

2/6단계. Teleport에 대한 IAM 권한 구성

Teleport Discovery Service는 Azure 가상 머신을 발견하고 등록하기 위해 Azure IAM 권한이 필요합니다.

Azure 서비스 주체 구성

Teleport Discovery Service가 Azure 리소스에 접근할 수 있는 방법에는 몇 가지가 있습니다:

  • Discovery Service는 관리된 ID가 첨부된 Azure VM에서 실행할 수 있습니다. 이는 Azure 자격 증명을 관리할 필요가 없기 때문에 production 환경에서 Discovery Service를 배포하는 것이 권장되는 방법입니다.
  • Discovery Service는 Azure AD 애플리케이션(AD의 "앱 등록"을 통해)으로 등록되고 해당 자격 증명이 설정될 수 있습니다. 이는 Discovery Service의 환경에 Azure 자격 증명이 존재해야 하므로 개발 및 테스트 목적에만 권장됩니다.

Azure 포털에서 Managed Identities 페이지로 이동하고 Create를 클릭하여 새로운 사용자 할당 관리 ID를 생성합니다:

Managed identities

새로운 ID의 이름과 리소스 그룹을 선택하고 생성합니다:

New identity

생성된 ID의 클라이언트 ID를 기록해 두십시오:

다음으로, Discovery Service 인스턴스를 실행할 Azure VM로 이동하여 방금 생성한 ID를 추가합니다:

VM identity

이 ID를 Discovery Service를 실행할 모든 Azure VM에 연결하십시오.

Note

Discovery Service를 Azure AD 애플리케이션으로 등록하는 것은 테스트 및 개발 시나리오에 적합하며, Discovery Service가 Azure VM에서 실행되지 않는 경우에 적합합니다. production 시나리오에서는 관리된 ID 접근 방식을 사용하는 것이 좋습니다.

Azure Active Directory의 App registrations 페이지로 이동하여 New registration을 클릭합니다:

App registrations

이름(예: DiscoveryService)을 선택하고 새로운 애플리케이션을 등록합니다. 앱이 생성되면 Application (client) ID를 기록하고 Add a certificate or secret을 클릭합니다:

Discovery Service 에이전트가 Azure API와 인증하는 데 사용할 새로운 클라이언트 비밀을 생성합니다:

Registered app secrets

Teleport Discovery Service는 Azure SDK의 기본 자격 증명 제공자 체인을 사용하여 자격 증명을 찾습니다. 사용 사례에 적합한 방법을 선택하려면 Azure SDK Authorization를 참조하십시오. 예를 들어, 클라이언트 비밀을 사용한 환경 기반 인증을 사용하려면 Discovery Service는 다음 환경 변수를 설정해야 합니다:

export AZURE_TENANT_ID=
export AZURE_CLIENT_ID=
export AZURE_CLIENT_SECRET=

사용자 지정 역할 만들기

Teleport는 Azure VM을 검색하고 등록하기 위해 다음 권한이 필요합니다:

  • Microsoft.Compute/virtualMachines/read
  • Microsoft.Compute/virtualMachines/runCommand/action
  • Microsoft.Compute/virtualMachines/runCommands/write
  • Microsoft.Compute/virtualMachines/runCommands/read
  • Microsoft.Compute/virtualMachines/runCommands/delete

여기 Teleport가 Azure 가상 머신에서 명령을 읽고 실행할 수 있도록 허용하는 샘플 역할 정의가 있습니다:

{
  "properties": {
    "roleName": "TeleportDiscovery",
    "description": "Azure 가상 머신을 검색할 수 있도록 Teleport에 허용",
    "assignableScopes": ["/subscriptions/11111111-2222-3333-4444-555555555555"],
    "permissions": [
      {
        "actions": [
          "Microsoft.Compute/virtualMachines/read",
          "Microsoft.Compute/virtualMachines/runCommand/action",
          "Microsoft.Compute/virtualMachines/runCommands/write",
          "Microsoft.Compute/virtualMachines/runCommands/read",
          "Microsoft.Compute/virtualMachines/runCommands/delete"
        ],
        "notActions": [],
        "dataActions": [],
        "notDataActions": []
      }
    ]
  }
}

위의 assignableScopes 필드는 구독 /subscriptions/<subscription> 을 포함하고 있으며, 해당 구독 또는 해당 구독 내의 모든 리소스 범위에서 역할을 할당할 수 있도록 허용합니다. assignableScopes 를 더욱 세분화하고 싶다면, 리소스 그룹 /subscriptions/<subscription>/resourceGroups/<group> 또는 관리 그룹 /providers/Microsoft.Management/managementGroups/<group> 를 사용할 수 있습니다.

이제 구독 페이지로 이동하여 구독을 선택합니다.

구독에서 *액세스 제어(IAM)*를 클릭하고 추가 > 사용자 지정 역할 추가를 선택합니다:

IAM custom role

사용자 지정 역할 생성 페이지에서 JSON 탭을 클릭하고 편집을 클릭한 다음 JSON 예제를 붙여넣고 assignableScopes 에서 구독을 자신의 구독 ID로 교체합니다:

Teleport Discovery 서비스 주체에 대한 역할 할당 만들기

Teleport 권한을 부여하려면, 생성한 사용자 정의 역할이 Teleport 서비스 주체에 할당되어야 합니다 - 이는 관리되는 ID 또는 이전에 만든 앱 등록 중 하나입니다.

역할 할당을 하고자 하는 리소스 범위로 이동합니다. 액세스 제어(IAM) 을 클릭하고 추가 > 역할 할당 추가 를 선택합니다. 생성한 사용자 정의 역할을 역할로 선택하고 Teleport 서비스 주체를 구성원으로 선택합니다.

Azure 역할 할당

역할 할당은 Teleport Discovery Service가 모든 일치하는 가상 머신을 발견할 수 있도록 충분히 높은 범위에서 이루어져야 합니다. Azure 범위 및 역할 할당 생성에 대한 자세한 내용은 필요한 범위 식별 를 참조하십시오.

3/6단계. 발견된 노드에 대해 관리 ID 설정

발견할 Azure VM마다 Microsoft.Compute/virtualMachines/read 권한이 있는 관리 ID가 할당되어야 합니다.

사용자 정의 역할 만들기

Azure Portal 검색 상자에 Azure 리소스 그룹의 이름을 입력하고 해당 리소스 그룹의 페이지로 이동합니다. 왼쪽 탐색 사이드바에서 Access control (IAM) 탭을 클릭합니다. Access control (IAM) 패널 상단의 버튼 행에서 Add > Add custom role 을 클릭합니다.

Custom role name 필드에 teleport-read-vm 을 입력합니다.

Permissions 탭을 클릭한 다음, Permissions 보기에서 +Add permissions 을 클릭합니다.

검색 상자에 Microsoft.Compute/virtualMachines/read 를 입력합니다. Microsoft Compute 박스를 클릭한 다음, Read: Get Virtual Machine 을 활성화합니다. Add 를 클릭합니다.

Review + create 를 클릭한 다음 Create 를 클릭합니다.

Azure 관리 ID 만들기

Azure Portal의 Managed Identities 뷰로 이동합니다.

Create 를 클릭합니다.

Subscription, Resource group, Region에서 VM이 포함된 것을 선택합니다.

Name 필드에 teleport-azure 를 입력합니다.

Review + create 를 클릭한 다음 Create 를 클릭합니다.

생성이 완료되면 Go to resource 를 클릭합니다. 새 ID의 페이지에서 Client ID 값을 복사하여 이 가이드에서 나중에 사용합니다.

teleport-read-vm 역할을 teleport-azure ID에 할당

Azure Portal 검색 상자에 Azure 리소스 그룹의 이름을 입력하고 해당 리소스 그룹 페이지로 이동합니다. 왼쪽 탐색 사이드바에서 Access control (IAM) 탭을 클릭합니다. Access control (IAM) 패널 상단의 버튼 행에서 Add > Add role assignment 을 클릭합니다.

Add role assignment 화면에서 teleport-read-vm 을 클릭합니다.

화면 하단으로 스크롤하여 Next 를 클릭합니다.

Members 탭에서 Assign access to 필드에서 Managed identity 를 선택합니다. Select members 를 클릭합니다.

오른쪽 사이드바에서 Managed identity 드롭다운 메뉴를 찾아 User-assigned managed identity 를 선택합니다. 이전에 만든 teleport-azure ID를 선택합니다.

Select 를 클릭한 다음 Review + assign 을 클릭합니다.

Roleteleport-read-vm 인지, Scope 가 선택한 리소스 그룹과 일치하는지, Members 필드에 이전에 만든 teleport-azure 관리 ID가 포함되어 있는지 확인합니다.

다시 Review + assign 을 클릭합니다.

Azure VM에 ID 첨부

가상 머신 보기에서 Teleport 서비스를 호스팅하는 VM의 이름을 클릭합니다.

오른쪽 패널에서 Security/Identity 탭을 클릭한 다음, Identity 보기에서 User assigned 탭을 클릭합니다. +Add 를 클릭한 다음 teleport-azure ID를 선택합니다. Add 를 클릭합니다.

Azure VM의 페이지에서 Identity 탭으로 돌아갑니다. 새 ID가 User assigned 하위 탭에 나열되어 있어야 합니다:

중요

인증의 일환으로 Teleport는 해당 ID로 허용된 모든 작업을 수행할 수 있습니다. 이 가이드에서 생성한 ID 외의 관리 ID를 사용하는 경우 권한과 범위를 제한하는 것이 좋습니다.

teleport-create-identity.json 이라는 파일을 만들고 다음 내용을 복사합니다:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "2227781763411200690"
    }
  },
  "parameters": {
    "roleName": {
      "type": "string",
      "defaultValue": "teleport-read-vm",
      "metadata": {
        "description": "역할 정의의 친숙한 이름"
      }
    },
    "identityName": {
      "type": "string",
      "defaultValue": "teleport-azure",
      "metadata": {
        "description": "관리 ID의 이름"
      }
    }
  },
  "variables": {
    "roleDefName": "[guid(resourceGroup().id, string('Microsoft.Compute/virtualMachines/read'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/roleDefinitions",
      "apiVersion": "2022-04-01",
      "name": "[variables('roleDefName')]",
      "properties": {
        "roleName": "[parameters('roleName')]",
        "description": "가상 머신에 대한 정보를 읽을 수 있도록 허용하는 역할로, Teleport에 사용됩니다.",
        "type": "customRole",
        "permissions": [
          {
            "actions": ["Microsoft.Compute/virtualMachines/read"],
            "notActions": []
          }
        ],
        "assignableScopes": ["[resourceGroup().id]"]
      }
    },
    {
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
      "name": "[parameters('identityName')]",
      "apiVersion": "2018-11-30",
      "location": "[resourceGroup().location]"
    }
  ],
  "outputs": {
    "principalID": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identityName'))).principalId]"
    },
    "clientID": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identityName'))).clientId]"
    },
    "roleName": {
      "type": "string",
      "value": "[variables('roleDefName')]"
    }
  }
}

그런 다음, 사용자 정의 역할과 관리 ID를 만들기 위해 다음 명령어를 실행합니다:

DEPLOY_OUTPUT=$(az deployment group create \--resource-group <your-resource-group> \--template-file teleport-create-identity.json)
PRINCIPAL_ID=$(echo $DEPLOY_OUTPUT | jq -r '.properties.outputs.principalID.value')
CLIENT_ID=$(echo $DEPLOY_OUTPUT | jq -r '.properties.outputs.principalID.value')
ROLE_NAME=$(echo $DEPLOY_OUTPUT | jq -r '.properties.outputs.roleName.value')

이 명령은 jq 가 워크스테이션에 설치되어 있어야 합니다. 설치는 jq 다운로드 페이지를 통해 가능합니다.

다음으로, teleport-assign-identity.json 이라는 다른 파일을 만들고 다음 내용을 복사합니다:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "2227781763411200690"
    }
  },
  "parameters": {
    "identityName": {
      "type": "string",
      "defaultValue": "teleport-azure"
    },
    "principalId": {
      "type": "string"
    },
    "roleName": {
      "type": "string"
    },
    "vmNames": {
      "type": "array"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/roleAssignments",
      "apiVersion": "2022-04-01",
      "name": "[guid(resourceGroup().id)]",
      "properties": {
        "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', parameters('roleName'))]",
        "principalId": "[parameters('principalId')]"
      }
    },
    {
      "apiVersion": "2018-06-01",
      "type": "Microsoft.Compute/virtualMachines",
      "name": "[parameters('vmNames')[copyIndex('vmcopy')]]",
      "location": "[resourceGroup().location]",
      "identity": {
        "type": "userAssigned",
        "userAssignedIdentities": {
          "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',parameters('identityName'))]": {}
        }
      },
      "copy": {
        "name": "vmcopy",
        "count": "[length(parameters('vmNames'))]"
      }
    }
  ]
}

다음 명령을 실행하여 관리 ID에 사용자 정의 역할을 할당하고 ID를 가상 머신에 할당합니다:

az deployment group create \--resource-group <your-resource-group> \--template-file teleport-assign-identity.json \-- parameters principalId="$PRINCIPAL_ID" roleName="$ROLE_NAME" \vmNames='<list-of-vm-names>'

3단계에서 CLIENT_ID 값을 사용합니다.

발견할 VM에 여러 개의 관리 ID가 할당되어 있는 경우, 5단계에서 방금 생성한 ID의 클라이언트 ID를 저장합니다.

4/6단계. Teleport Discovery 서비스 설치

Tip

Discovery Service를 또 다른 Teleport 서비스(예: Auth 또는 Proxy)가 이미 실행 중인 호스트에서 실행할 계획이라면 이 단계를 건너뛰어도 됩니다.

Discovery Service를 실행할 가상 머신에 Teleport를 설치합니다:

Linux 서버에 Teleport 설치하기:

  1. Teleport 에디션에 따라 edition를 다음 중 하나로 할당합니다:

    에디션
    Teleport Enterprise Cloudcloud
    Teleport Enterprise (자가 호스팅)enterprise
    Teleport Community Editionoss
  2. 설치할 Teleport 버전을 가져옵니다. 클러스터에서 자동 에이전트 업데이트가 활성화된 경우, 최신 Teleport 버전을 쿼리하여 업데이트된 내용과의 호환성을 확인합니다:

    TELEPORT_DOMAIN=example.teleport.com
    TELEPORT_VERSION="$(curl https://$TELEPORT_DOMAIN/v1/webapi/automaticupgrades/channel/default/version | sed 's/v//')"

    그렇지 않으면, Teleport 클러스터의 버전을 가져옵니다:

    TELEPORT_DOMAIN=example.teleport.com
    TELEPORT_VERSION="$(curl https://$TELEPORT_DOMAIN/v1/webapi/ping | jq -r '.server_version')"
  3. Linux 서버에 Teleport를 설치합니다:

    curl https://cdn.teleport.dev/install-v15.4.11.sh | bash -s ${TELEPORT_VERSION} edition

    설치 스크립트는 Linux 서버에서 패키지 관리자를 감지하고 이를 사용하여 Teleport 바이너리를 설치합니다. 설치를 사용자 정의하려면 설치 가이드에서 Teleport 패키지 리포지토리에 대해 알아보세요.

5/6단계. Teleport를 구성하여 Azure 인스턴스를 검색합니다

Discovery Service를 자체 호스트에서 실행하는 경우, 서비스가 클러스터에 연결하기 위해 유효한 초대 토큰이 필요합니다. 아래 명령어를 Teleport Auth 서비스에 대해 실행하여 생성합니다:

tctl tokens add --type=discovery

생성된 토큰을 Discovery Service를 실행할 가상 머신의 /tmp/token 에 저장합니다.

Azure 인스턴스 검색을 활성화하려면 teleport.yamldiscovery_service.azure 섹션에 최소한 하나의 항목이 포함되어야 합니다:

Discovery Service는 발견된 리소스를 서로 다른 집합으로 그룹화할 수 있는 구성 매개변수 - discovery_service.discovery_group - 를 노출합니다. 이 매개변수는 서로 다른 클라우드 리소스 집합을 감시하는 Discovery Agents들이 충돌하여 다른 서비스에 의해 생성된 리소스를 삭제하는 것을 방지하는 데 사용됩니다.

여러 Discovery Services를 실행할 때, 동일한 클라우드 리소스를 감시하는 경우 각 서비스가 동일한 discovery_group 값으로 구성되어야 하며, 서로 다른 클라우드 리소스를 감시하는 경우에는 다른 값으로 구성해야 합니다.

동일한 Teleport 클러스터 내에서 혼합된 구성을 실행하는 것이 가능하므로 일부 Discovery Services는 동일한 클라우드 리소스를 감시하도록 구성할 수 있고, 다른 서비스는 서로 다른 리소스를 감시하도록 할 수도 있습니다. 예를 들어, 두 개의 서로 다른 클라우드 계정에서 데이터를 분석하는 4-agent 고가용성 구성은 다음과 같이 구성됩니다.

  • Production 계정에서 데이터를 폴링하기 위해 discovery_group: "prod" 로 구성된 2개의 Discovery Services.
  • Staging 계정에서 데이터를 폴링하기 위해 discovery_group: "staging" 로 구성된 2개의 Discovery Services.
version: v3
teleport:
  join_params:
    token_name: "/tmp/token"
    method: token
  proxy_server: "teleport.example.com:443"
auth_service:
  enabled: off
proxy_service:
  enabled: off
ssh_service:
  enabled: off
discovery_service:
  enabled: "yes"
  discovery_group: "azure-prod"
  azure:
    - types: ["vm"]
      subscriptions: ["<subscription>"]
      resource_groups: ["<resource-group>"]
      regions: ["<region>"]
      tags:
        "env": "prod" # 태그: env=prod인 가상 머신과 일치
      install:
        azure:
          # 선택 사항: 발견할 VM에 여러 개의 관리 ID가 할당되어 있는 경우,
          # 3단계에서 생성한 ID의 클라이언트 ID를 여기 설정하십시오.
          client_id: "<client-id>"
  • teleport.auth_servers 키를 귀하의 Auth 서비스 또는 Proxy 서비스의 URI 및 포트와 일치하도록 편집합니다.
  • discovery_service.azure 아래의 키들을 귀하의 Azure 환경에 맞게 조정합니다. 특히 Discovery 서비스와 연결하고자 하는 지역 및 태그를 조정합니다.

6/6단계. [선택 사항] 기본 설치 스크립트 사용자 정의

설치 프로그램을 사용자 정의하려면 사용자가 installer 리소스에 대한 list , create , readupdate 동사를 허용하는 역할을 가져야 합니다.

다음 내용을 포함하는 installer-manager.yaml 파일을 만드세요:

kind: role
version: v5
metadata:
  name: installer-manager
spec:
  allow:
    rules:
      - resources: [installer]
        verbs: [list, create, read, update]

역할을 생성하세요:

tctl create -f installer-manager.yaml

role 'installer-manager' 가 생성되었습니다

프리셋 editor 역할은 기본적으로 필수 권한을 갖추고 있습니다.

기본 설치 스크립트를 사용자 정의하려면, 작업 공간에서 다음 명령을 실행하세요:

tctl edit installer/default-installer

기본 설치 프로그램에 원하는 변경을 한 후, 텍스트 편집기에서 파일을 저장하고 닫으세요.

여러 installer 리소스가 존재할 수 있으며 teleport.yamldiscovery_service.azure 목록 항목의 azure.install.script_name 섹션에서 지정할 수 있습니다:

discovery_service:
  # ...
  { { matcher } }:
    - types: { { matchTypes } }
      tags:
        - "env": "prod"
      install: # 기본 설치 프로그램이 사용될 때 선택적 섹션.
        script_name: "default-installer"
    - types: { { matchTypes } }
      tags:
        - "env": "devel"
      install:
        script_name: "devel-installer"

installer 리소스에는 다음과 같은 템플릿 옵션이 있습니다:

  • {{ .MajorVersion }}: 저장소에서 설치할 Teleport의 주요 버전.
  • {{ .PublicProxyAddr }}: 연결할 Teleport Proxy Service의 공개 주소.
  • {{ .RepoChannel }}: 선택적 패키지 저장소 (apt/yum) 채널 이름. 형식은 <channel>/<version>입니다. 예: stable/v17. 자세한 내용은 설치를 참조하세요.
  • {{ .AutomaticUpgrades }}: 자동 업데이트가 활성화 또는 비활성화 여부. 값은 true 또는 false 입니다. 자세한 내용은 자동 에이전트 업데이트를 참조하세요.
  • {{ .TeleportPackage }}: 사용할 Teleport 패키지. 이는 클러스터가 엔터프라이즈인지 여부에 따라 teleport-ent 또는 teleport 입니다.

이를 다음과 같이 사용할 수 있습니다:

kind: installer
metadata:
  name: default-installer
spec:
  script: |
    echo {{ .PublicProxyAddr }}
    echo Teleport-{{ .MajorVersion }}
    echo Repository Channel: {{ .RepoChannel }}
version: v1

설치용으로 검색할 때, 다음 내용의 스크립트로 평가될 것입니다:

echo teleport.example.com
echo Teleport-17.0.0-dev
echo Repository Channel: stable/v17.0.0-dev

기본 설치 프로그램은 다음 작업을 수행합니다:

  • 지원되는 Linux 배포판에 공식 Teleport 저장소를 추가합니다.
  • apt 또는 yum 을 통해 Teleport를 설치합니다.
  • Teleport 구성 파일을 생성하고 /etc/teleport.yaml 에 작성합니다.
  • Teleport 서비스를 활성화하고 시작합니다.

client_id 가 Discovery Service 구성에 설정된 경우, 사용자 정의 설치 프로그램은 {{ .AzureClientID }} 템플릿 옵션도 가집니다.

문제 해결

자격 증명 공급자 없음 오류

Discovery Service 로그에서 DefaultAzureCredential: failed to acquire a token. 오류가 보이면 Teleport가 Azure SDK에 연결하는 데 필요한 자격 증명을 감지하지 못하는 것입니다. Teleport Discovery Service가 실행 중인 머신에 자격 증명이 적용되었는지 확인하고 Teleport Discovery Service를 재시작하십시오. 자세한 내용은 Azure SDK Authorization를 참조하세요.

Teleport가 오류를 보고하지 않지만 VM이 조인되지 않음

Discovery Service 구성을 확인하고 발견하려는 VM이 일치하는지 확인하십시오. 디버그 모드에서 Teleport는 발견된 VM의 구독 ID와 이름을 로그에 기록합니다.

Azure 실행 명령 API는 명령의 출력을 보고하지 않으므로 Teleport는 명령이 성공했는지 실패했는지 알 수 있는 방법이 없습니다. 실행 명령 로그는 대상 VM의 /var/log/azure/run-command-handler/handler.log 에서 찾을 수 있습니다.

다음 단계

Teleport 원문 보기