InfoGrab DocsInfoGrab Docs

애플리케이션 액세스 역할 기반 접근 제어

요약

이 페이지에서는 Teleport 애플리케이션 서비스에서 사용 가능한 옵션과, Teleport를 통해 애플리케이션에 접근할 수 있는 권한을 부여하거나 거부하는 Teleport 역할에 대해 설명합니다. Teleport 애플리케이션 서비스는 라벨을 사용하여 프록시된 웹 애플리케이션에 대한 접근을 제어합니다.

이 페이지에서는 Teleport 애플리케이션 서비스에서 사용 가능한 옵션과, Teleport를 통해 애플리케이션에 접근할 수 있는 권한을 부여하거나 거부하는 Teleport 역할에 대해 설명합니다.

애플리케이션에 라벨 할당#

Teleport 애플리케이션 서비스는 라벨을 사용하여 프록시된 웹 애플리케이션에 대한 접근을 제어합니다.

Teleport 관리자는 설정을 사용하여 앱에 정적 라벨과 동적 라벨을 할당할 수 있습니다:

apps:
- name: "grafana"
  uri: "http://localhost:3000"
  # 정적 라벨입니다.
  labels:
    env: "prod"
    group: "metrics"
  # Teleport는 동적 라벨에서 주기적으로 명령을 실행하고
  # 명령 출력을 라벨 값으로 사용합니다.
  commands:
  - name: "arch"
    command: ["uname", "-p"]
    period: 1m0s

역할에서 애플리케이션 라벨 구성#

Teleport 관리자는 app_labels 속성을 사용하여 특정 라벨이 있는 애플리케이션에 대한 사용자의 접근을 허용하거나 거부하도록 역할을 구성할 수 있습니다.

예를 들어, 다음 역할은 프로덕션 애플리케이션을 제외하고 "metrics" 그룹의 모든 애플리케이션에 대한 접근을 허용합니다:

kind: role
version: v5
metadata:
  name: dev
spec:
  allow:
    app_labels:
      group: "metrics"
  deny:
    app_labels:
      env: "prod"

ID 공급자와 통합#

ID 공급자로부터 수신한 사용자의 클레임과 속성을 기반으로 앱 라벨을 동적으로 채우도록 역할을 구성할 수 있습니다. 이는 external 접두사가 있는 템플릿 변수를 사용하여 수행됩니다.

예를 들어, 다음 역할은 동일한 이름을 가진 Okta 사용자의 속성에 따라 envgroup 라벨 값이 설정됩니다:

allow:
  app_labels:
    env: "{{external.env}}"
    group: "{{external.group}}"

사용자가 Azure 관리 ID에 접근하도록 설정#

Teleport 사용자가 Azure ID를 수임하고 Teleport를 통해 Azure CLI 명령을 실행하도록 권한을 부여할 수 있습니다. 이렇게 하려면 아래와 같이 spec.allow.azure_identities 필드가 있는 역할을 정의합니다:

kind: role
version: v5
metadata:
  name: azure-cli-access
spec:
  allow:
    app_labels:
      '*': '*'
    azure_identities:
      - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/teleport-azure

spec.allow.azure_identities 필드를 수정하여 각 항목이 이 역할을 가진 사용자가 수임할 수 있도록 하려는 Azure 관리 ID의 전체 URI가 되도록 합니다. 위 예시는 사용자가 teleport-azure ID를 수임하도록 허용합니다.

또 다른 방법은 각 사용자를 개별적으로 구성하여 사용자가 허용된 Azure ID를 정의하는 것입니다. 이렇게 하려면 azure_identities 내에 하나의 요소가 템플릿 변수 {{internal.azure_identities}}로 설정된 역할을 생성합니다:

kind: role
version: v5
metadata:
  name: azure-cli-access
spec:
  allow:
    app_labels:
      '*': '*'
    azure_identities:
      - '{{internal.azure_identities}}'

이 경우, 사용자가 Teleport를 통해 Azure CLI에 인증하면 Teleport Auth 서비스가 사용자에게 할당한 Azure ID로 {{internal.azure_identities}} 템플릿 변수를 채웁니다.

사용자에게 Azure ID를 할당하려면 다음과 유사한 tctl users update 명령을 실행합니다:

$ tctl users update myuser --set-azure-identities \
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1,\
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2

이 명령은 --set-azure-identities 플래그를 사용하여 사용자에게 Azure ID를 추가합니다. 이 플래그의 값은 쉼표로 구분된 Azure ID URI 목록입니다.

Azure 관리 ID에 대한 접근을 활성화하는 방법에 대한 자세한 내용은 Azure CLI 가이드를 참조하세요.

다음 단계#

애플리케이션 액세스 역할 기반 접근 제어

Teleport v18.9
원문 보기
요약

이 페이지에서는 Teleport 애플리케이션 서비스에서 사용 가능한 옵션과, Teleport를 통해 애플리케이션에 접근할 수 있는 권한을 부여하거나 거부하는 Teleport 역할에 대해 설명합니다. Teleport 애플리케이션 서비스는 라벨을 사용하여 프록시된 웹 애플리케이션에 대한 접근을 제어합니다.

이 페이지에서는 Teleport 애플리케이션 서비스에서 사용 가능한 옵션과, Teleport를 통해 애플리케이션에 접근할 수 있는 권한을 부여하거나 거부하는 Teleport 역할에 대해 설명합니다.

애플리케이션에 라벨 할당#

Teleport 애플리케이션 서비스는 라벨을 사용하여 프록시된 웹 애플리케이션에 대한 접근을 제어합니다.

Teleport 관리자는 설정을 사용하여 앱에 정적 라벨과 동적 라벨을 할당할 수 있습니다:

apps:
- name: "grafana"
  uri: "http://localhost:3000"
  # 정적 라벨입니다.
  labels:
    env: "prod"
    group: "metrics"
  # Teleport는 동적 라벨에서 주기적으로 명령을 실행하고
  # 명령 출력을 라벨 값으로 사용합니다.
  commands:
  - name: "arch"
    command: ["uname", "-p"]
    period: 1m0s

역할에서 애플리케이션 라벨 구성#

Teleport 관리자는 app_labels 속성을 사용하여 특정 라벨이 있는 애플리케이션에 대한 사용자의 접근을 허용하거나 거부하도록 역할을 구성할 수 있습니다.

예를 들어, 다음 역할은 프로덕션 애플리케이션을 제외하고 "metrics" 그룹의 모든 애플리케이션에 대한 접근을 허용합니다:

kind: role
version: v5
metadata:
  name: dev
spec:
  allow:
    app_labels:
      group: "metrics"
  deny:
    app_labels:
      env: "prod"

ID 공급자와 통합#

ID 공급자로부터 수신한 사용자의 클레임과 속성을 기반으로 앱 라벨을 동적으로 채우도록 역할을 구성할 수 있습니다. 이는 external 접두사가 있는 템플릿 변수를 사용하여 수행됩니다.

예를 들어, 다음 역할은 동일한 이름을 가진 Okta 사용자의 속성에 따라 envgroup 라벨 값이 설정됩니다:

allow:
  app_labels:
    env: "{{external.env}}"
    group: "{{external.group}}"

사용자가 Azure 관리 ID에 접근하도록 설정#

Teleport 사용자가 Azure ID를 수임하고 Teleport를 통해 Azure CLI 명령을 실행하도록 권한을 부여할 수 있습니다. 이렇게 하려면 아래와 같이 spec.allow.azure_identities 필드가 있는 역할을 정의합니다:

kind: role
version: v5
metadata:
  name: azure-cli-access
spec:
  allow:
    app_labels:
      '*': '*'
    azure_identities:
      - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/teleport-azure

spec.allow.azure_identities 필드를 수정하여 각 항목이 이 역할을 가진 사용자가 수임할 수 있도록 하려는 Azure 관리 ID의 전체 URI가 되도록 합니다. 위 예시는 사용자가 teleport-azure ID를 수임하도록 허용합니다.

또 다른 방법은 각 사용자를 개별적으로 구성하여 사용자가 허용된 Azure ID를 정의하는 것입니다. 이렇게 하려면 azure_identities 내에 하나의 요소가 템플릿 변수 {{internal.azure_identities}}로 설정된 역할을 생성합니다:

kind: role
version: v5
metadata:
  name: azure-cli-access
spec:
  allow:
    app_labels:
      '*': '*'
    azure_identities:
      - '{{internal.azure_identities}}'

이 경우, 사용자가 Teleport를 통해 Azure CLI에 인증하면 Teleport Auth 서비스가 사용자에게 할당한 Azure ID로 {{internal.azure_identities}} 템플릿 변수를 채웁니다.

사용자에게 Azure ID를 할당하려면 다음과 유사한 tctl users update 명령을 실행합니다:

$ tctl users update myuser --set-azure-identities \
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1,\
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2

이 명령은 --set-azure-identities 플래그를 사용하여 사용자에게 Azure ID를 추가합니다. 이 플래그의 값은 쉼표로 구분된 Azure ID URI 목록입니다.

Azure 관리 ID에 대한 접근을 활성화하는 방법에 대한 자세한 내용은 Azure CLI 가이드를 참조하세요.

다음 단계#