Infograb logo
Azure 가상 머신 자동 검색

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

전제 조건

  • 실행 중인 Teleport 클러스터 버전 이상. Teleport를 시작하려면, 가입하기 위해 무료 평가판에 등록하거나 데모 환경 설정하기를 참조하세요.

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

    tctltsh 다운로드에 대한 지침은 설치를 방문하세요.

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

    클러스터 teleport.example.com

    버전 16.2.0

    CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678

    클러스터에 연결하고 tctl status 명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 작업대에서 후속 tctl 명령어를 실행할 수 있습니다. 자신의 Teleport 클러스터를 호스팅하는 경우, Teleport 인증 서비스를 호스팅하는 컴퓨터에서 전체 권한으로 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에서 실행할 수 있습니다. 이는 자격 증명 관리를 없애기 때문에 프로덕션에서 Discovery Service를 배포하는 데 권장됩니다.
  • Discovery Service는 Azure AD 애플리케이션으로 등록되고 자격 증명으로 구성될 수 있습니다(AD의 "앱 등록"을 통해). 이는 개발 및 테스트 목적으로만 권장되며 Discovery Service의 환경에 Azure 자격 증명이 존재해야 합니다.

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

Managed identities

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

New identity

생성한 ID의 Client ID를 메모합니다:

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

VM identity

Discovery Service를 실행할 모든 Azure VM에 이 ID를 첨부합니다.

Note

Discovery Service를 Azure AD 애플리케이션으로 등록하는 것은 테스트 및 개발 시나리오에 적합합니다. 또는 Discovery Service가 Azure VM에서 실행되지 않는 경우. 프로덕션 시나리오에서는 관리 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": "Allows Teleport to discover Azure virtual machines",
        "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>"을 사용할 수 있습니다.

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

구독에서 *Access control (IAM)*을 클릭하고 Add > Add custom role을 선택합니다:

IAM custom role

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

Teleport Discovery Service 주체에 대한 역할 할당 생성

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 연결하기

Azure Portal의 가상 머신 뷰에서 Teleport Application Service를 호스팅하는 VM의 이름을 클릭하세요.

오른쪽 패널에서 Identity 탭을 클릭한 후, Identity 보기에서 User assigned 탭을 클릭하세요. +Add를 클릭한 후 teleport-azure ID를 선택하세요. Add를 클릭하세요.

Azure VM 페이지의 Identity 탭으로 돌아가세요. User assigned 하위 탭에 새로운 ID가 나열된 것을 확인해야 합니다:

중요

인증의 일부로, Teleport는 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가 설치되어 있어야 실행 가능하며, 이를 via 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 Service 설치

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-v16.2.0.sh | bash -s ${TELEPORT_VERSION} edition

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

5단계/6. Azure 인스턴스를 검색하도록 Teleport 구성

Discovery Service를 별도의 호스트에서 실행하는 경우, 클러스터에 연결하려면 유효한 초대 토큰이 필요합니다. 다음 명령을 실행하여 Teleport Auth Service에 대한 토큰을 생성합니다:

tctl tokens add --type=discovery

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

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

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"
  azure:
    - types: ["vm"]
      subscriptions: ["<subscription>"]
      resource_groups: ["<resource-group>"]
      regions: ["<region>"]
      tags:
        "env": "prod" # 태그:env=prod인 가상 머신과 일치
      install:
        azure:
          # 선택 사항: 검색할 VM에 여러 개의 관리 ID가 할당된 경우,
          # 클라이언트 ID를 여기 설정하여 단계 3에서 생성한 ID의 클라이언트 ID를 사용합니다.
          client_id: "<client-id>"
  • teleport.auth_servers 키를 Auth Service 또는 Proxy Service의 URI와 포트에 맞게 수정합니다.
  • discovery_service.azure 아래의 키를 Azure 환경에 맞게 조정합니다. 특히 Discovery Service와 연관시키려는 지역 및 태그를 지정합니다.

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

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

기본적으로 editor 프리셋 역할은 필요한 권한을 가지고 있습니다.

기본 설치 프로그램 스크립트를 맞춤 설정하려면, 워크스테이션에서 다음 명령을 실행하세요:

tctl get installer/default-installer > teleport-default-installer.yaml

결과로 생성된 teleport-default-installer.yaml 파일은 발견된 인스턴스를 등록할 때 실행될 내용을 변경하기 위해 편집할 수 있습니다.

기본 설치 프로그램에 원하는 변경 사항을 적용한 후, 해당 리소스는 다음을 실행하여 업데이트할 수 있습니다:

tctl create -f teleport-default-installer.yaml

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

discovery_service:
  azure:
    - types: ["vm"]
      tags:
       - "env": "prod"
      install: # 기본 설치 프로그램이 사용될 때의 선택적 섹션.
        script_name: "default-installer"
    - types: ["vm"]
      tags:
       - "env": "devel"
      install:
        script_name: "devel-installer"

installer 리소스는 다음과 같은 템플릿 옵션을 가지고 있습니다:

  • {{ .MajorVersion }}: 저장소에서 설치할 Teleport의 주요 버전입니다.
  • {{ .PublicProxyAddr }}: 연결할 Teleport Proxy 서비스의 공용 주소입니다.
  • {{ .RepoChannel }}: 선택적 패키지 저장소 (apt/yum) 채널 이름입니다.
    형식은 <channel>/<version>입니다. 예: stable/v16. 자세한 내용은 설치를 참조하세요.
  • {{ .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-16.2.0
echo Repository Channel: stable/v16.2.0

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

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

Discovery Service 구성에서 client_id가 설정된 경우, 사용자 지정 설치자는 {{ .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 run command API는 명령의 출력을 보고하지 않으므로 Teleport는 명령이 성공했는지 실패했는지 알 수 있는 방법이 없습니다. 실행 명령 로그는 대상으로 요청한 VM의 /var/log/azure/run-command-handler/handler.log에서 찾을 수 있습니다.

다음 단계

Teleport 원문 보기