InfoGrab Docs

Teleport Terraform 프로바이더 참조

요약

Teleport Terraform 프로바이더는 Terraform 사용자가 Terraform에서 Teleport를 구성할 수 있게 합니다. 이 섹션은 Teleport Terraform 프로바이더 참조입니다. Terraform 프로바이더를 시작하려면 설치 가이드로 시작해야 합니다.

Teleport Terraform 프로바이더는 Terraform 사용자가 Terraform에서 Teleport를 구성할 수 있게 합니다.

이 섹션은 Teleport Terraform 프로바이더 참조입니다. 지원되는 모든 리소스와 해당 필드를 나열합니다.

Tip

Terraform 프로바이더를 시작하려면 설치 가이드로 시작해야 합니다. 작동하는 프로바이더를 얻으면 "IaC로 사용자 및 역할 관리" 가이드를 따르는 것을 권장합니다.

프로바이더는 Teleport 리소스를 Terraform 데이터 소스와 Terraform 리소스로 노출합니다. 데이터 소스는 Terraform이 Teleport에서 정보를 가져오는 데 사용되며, 리소스는 Teleport에 리소스를 생성하는 데 사용됩니다.

사용 예시#

terraform {
  required_providers {
    teleport = {
      source  = "terraform.releases.teleport.dev/gravitational/teleport"
      version = "~> (=teleport.major_version=).0"
    }
  }
}

provider "teleport" {
  # Update addr to point to Teleport Auth/Proxy
  # addr              = "auth.example.com:3025"
  addr               = "proxy.example.com:443"
  identity_file_path = "terraform-identity/identity"
}
terraform {
  required_providers {
    teleport = {
      source  = "terraform.releases.teleport.dev/gravitational/teleport"
      version = "~> (=cloud.major_version=).0"
    }
  }
}

provider "teleport" {
  # Update addr to point to your Teleport Enterprise (managed) tenant URL's host:port
  addr               = "mytenant.teleport.sh:443"
  identity_file_path = "terraform-identity/identity"
}

연결 방법#

이 섹션은 Terraform 프로바이더에 자격 증명을 전달하는 다양한 방법을 나열합니다. Teleport Terraform 프로바이더 설정 페이지에서 사용 사례에 맞는 방법을 찾을 수 있습니다.

ID 파일 사용#

이 연결 방법을 사용하면 ID 파일을 제공해야 합니다. 이 파일을 통해 Terraform은 Proxy Service(포트 443 또는 3080)와 Auth Service(포트 3025) 모두를 통해 연결할 수 있습니다. 이것이 Terraform 프로바이더에 자격 증명을 전달하는 권장 방법입니다.

ID 파일은 여러 가지 방법으로 얻을 수 있습니다:

tctl로 로컬에서 ID 파일 얻기#

16.2부터 tctl과 로컬 자격 증명을 사용하여 임시 봇을 생성하고 셸의 환경 변수에 해당 ID를 로드할 수 있습니다:

$ eval "$(tctl terraform env)"
🔑 Detecting if MFA is required
This is an admin-level action and requires MFA to complete
Tap any security key
Detected security key tap
⚙️ Creating temporary bot "tctl-terraform-env-82ab1a2e" and its token
🤖 Using the temporary bot to obtain certificates
🚀 Certificates obtained, you can now use Terraform in this terminal for 1h0m0s

자세한 내용은 "Terraform 프로바이더 로컬 실행" 가이드에서 찾을 수 있습니다.

tbot으로 ID 파일 얻기#

tbot머신 및 워크로드 아이덴티티를 사용하여 단기 자격 증명을 얻고 자동으로 갱신합니다. 이러한 자격 증명은 탈취하기 어렵고, 누가 어떤 역할에 대한 액세스 권한을 갖는지 더 정밀하게 제어할 수 있습니다(예: prod 환경을 대상으로 하는 GitHub Actions 파이프라인만 인증서를 얻을 수 있도록 허용).

Terraform이 해당 ID를 사용하도록 tbot을 설정하려면 Terraform 프로바이더 가이드를 따르세요.

tctl auth sign으로 ID 파일 얻기#

다음 명령으로 ID 파일을 얻을 수 있습니다:

$ tctl auth sign --user terraform --format file -o identity.pem

이 인증 방법에는 다음과 같은 제한 사항이 있습니다:

  • 이러한 자격 증명은 고권한이며 장기적입니다. 보호되고 교체되어야 합니다.
  • 이 인증 방법은 MFA가 webauthn으로 설정된 Teleport 클러스터에 대해 작동하지 않습니다. 이러한 클러스터에서 Teleport는 장기 인증서를 거부하고 관리 작업에 추가 MFA 챌린지를 요구합니다.

토큰 사용(네이티브 머신 및 워크로드 아이덴티티)#

16.2부터 Teleport Terraform 프로바이더는 네이티브로 머신 및 워크로드 아이덴티티(tbot 없이)를 사용하여 Teleport 클러스터에 참여할 수 있습니다. Terraform 프로바이더는 런타임(AWS, GCP, Kubernetes, CI/CD 시스템)에 의존하여 Teleport에 자신의 ID를 증명합니다.

공급자 구성에서 join_methodjoin_token을 모두 설정하여 위임 조인 메서드를 사용할 수 있습니다.

이 설정은 "CI 또는 클라우드에서 Teleport Terraform 프로바이더 실행" 가이드에서 더 자세히 설명됩니다.

키, 인증서 및 CA 인증서 사용#

이 연결 방법을 사용하면 TLS 키, TLS 인증서 및 Teleport Auth Service TLS CA 인증서를 제공해야 합니다. 다음 명령으로 얻을 수 있습니다:

$ tctl auth sign --user terraform --format=tls -o terraform.pem

이 인증 방법에는 다음과 같은 제한 사항이 있습니다:

  • 프로바이더는 Auth에 직접(포트 3025)만 연결할 수 있습니다. 대부분의 클러스터에서 프록시만 공개적으로 노출됩니다.
  • 이러한 자격 증명은 고권한이며 장기적입니다. 보호되고 교체되어야 합니다.
  • 이 인증 방법은 MFA가 webauthn으로 설정된 Teleport 클러스터에 대해 작동하지 않습니다. 이러한 클러스터에서 Teleport는 장기 인증서를 거부하고 관리 작업에 추가 MFA 챌린지를 요구합니다.

스키마#

선택#

  • addr (문자열) Teleport 주소의 host:port입니다. Teleport Proxy Service 주소(포트 443 또는 3080) 또는 Teleport Auth Service 주소(포트 3025)일 수 있습니다. 환경 변수 TF_TELEPORT_ADDR로도 설정할 수 있습니다.
  • audience_tag (문자열) terraform 메서드를 사용한 네이티브 Machine ID 조인에 사용되는 선택적 audience 태그의 이름입니다. 환경 변수 TF_TELEPORT_JOIN_AUDIENCE_TAG로도 설정할 수 있습니다.
  • cert_base64 (문자열) Base64 인코딩된 TLS 인증 인증서입니다. 환경 변수 TF_TELEPORT_CERT_BASE64로도 설정할 수 있습니다.
  • cert_path (문자열) Teleport 인증 인증서 파일 경로입니다. 환경 변수 TF_TELEPORT_CERT로도 설정할 수 있습니다.
  • dial_timeout_duration (문자열) DialTimeout은 서버에 연결할 때의 시간 초과를 설정합니다. 환경 변수 TF_TELEPORT_DIAL_TIMEOUT_DURATION으로도 설정할 수 있습니다.
  • gitlab_id_token_env_var (문자열) gitlab 조인 메서드를 위해 GitLab에서 발행된 ID 토큰을 가져오는 데 사용되는 환경 변수입니다. 설정되지 않으면 기본값은 TBOT_GITLAB_JWT입니다. 환경 변수 TF_TELEPORT_GITLAB_ID_TOKEN_ENV_VAR로도 설정할 수 있습니다.
  • identity_file (문자열, 민감) Teleport ID 파일 내용입니다. 환경 변수 TF_TELEPORT_IDENTITY_FILE로도 설정할 수 있습니다.
  • identity_file_base64 (문자열, 민감) Base64 인코딩된 Teleport ID 파일 내용입니다. 환경 변수 TF_TELEPORT_IDENTITY_FILE_BASE64로도 설정할 수 있습니다.
  • identity_file_path (문자열) Teleport ID 파일 경로입니다. 환경 변수 TF_TELEPORT_IDENTITY_FILE_PATH로도 설정할 수 있습니다.
  • insecure (불리언) Teleport 클러스터에 참여할 때 프록시 인증서 확인을 건너뜁니다. 프로덕션 환경에서는 권장하지 않습니다. 환경 변수 TF_TELEPORT_INSECURE로도 설정할 수 있습니다.
  • join_method (문자열) 네이티브 Terraform MachineID 지원을 활성화합니다. 설정되면 Terraform은 MachineID를 사용하여 Teleport 클러스터에 안전하게 참여하고 자격 증명을 얻습니다. 가능한 값은 조인 메서드 참조를 참조하세요. 위임 조인 메서드를 사용해야 합니다. 환경 변수 TF_TELEPORT_JOIN_METHOD로도 설정할 수 있습니다.
  • join_token (문자열) 네이티브 MachineID 조인에 사용되는 토큰의 이름입니다. 이 값은 위임 조인 메서드에 대해 민감하지 않습니다. 환경 변수 TF_TELEPORT_JOIN_TOKEN으로도 설정할 수 있습니다.
  • key_base64 (문자열, 민감) Base64 인코딩된 TLS 인증 키입니다. 환경 변수 TF_TELEPORT_KEY_BASE64로도 설정할 수 있습니다.
  • key_path (문자열) Teleport 인증 키 파일 경로입니다. 환경 변수 TF_TELEPORT_KEY로도 설정할 수 있습니다.
  • profile_dir (문자열) Teleport 프로필 경로입니다. 환경 변수 TF_TELEPORT_PROFILE_PATH로도 설정할 수 있습니다.
  • profile_name (문자열) Teleport 프로필 이름입니다. 환경 변수 TF_TELEPORT_PROFILE_NAME으로도 설정할 수 있습니다.
  • retry_base_duration (문자열) API가 'not found'를 반환할 때의 재시도 알고리즘: 재시도 사이의 기본 기간(https://pkg.go.dev/time#ParseDuration). 환경 변수 TF_TELEPORT_RETRY_BASE_DURATION으로도 설정할 수 있습니다.
  • retry_cap_duration (문자열) API가 'not found'를 반환할 때의 재시도 알고리즘: 재시도 사이의 최대 기간(https://pkg.go.dev/time#ParseDuration). 환경 변수 TF_TELEPORT_RETRY_CAP_DURATION으로도 설정할 수 있습니다.
  • retry_max_tries (문자열) API가 'not found'를 반환할 때의 재시도 알고리즘: 최대 시도 횟수. 환경 변수 TF_TELEPORT_RETRY_MAX_TRIES로도 설정할 수 있습니다.
  • root_ca_base64 (문자열) Base64 인코딩된 루트 CA입니다. 환경 변수 TF_TELEPORT_CA_BASE64로도 설정할 수 있습니다.
  • root_ca_path (문자열) Teleport 루트 CA 경로입니다. 환경 변수 TF_TELEPORT_ROOT_CA로도 설정할 수 있습니다.

Teleport Terraform 프로바이더 참조

원문 보기
요약

Teleport Terraform 프로바이더는 Terraform 사용자가 Terraform에서 Teleport를 구성할 수 있게 합니다. 이 섹션은 Teleport Terraform 프로바이더 참조입니다. Terraform 프로바이더를 시작하려면 설치 가이드로 시작해야 합니다.

Teleport Terraform 프로바이더는 Terraform 사용자가 Terraform에서 Teleport를 구성할 수 있게 합니다.

이 섹션은 Teleport Terraform 프로바이더 참조입니다. 지원되는 모든 리소스와 해당 필드를 나열합니다.

Tip

Terraform 프로바이더를 시작하려면 설치 가이드로 시작해야 합니다. 작동하는 프로바이더를 얻으면 "IaC로 사용자 및 역할 관리" 가이드를 따르는 것을 권장합니다.

프로바이더는 Teleport 리소스를 Terraform 데이터 소스와 Terraform 리소스로 노출합니다. 데이터 소스는 Terraform이 Teleport에서 정보를 가져오는 데 사용되며, 리소스는 Teleport에 리소스를 생성하는 데 사용됩니다.

사용 예시#

terraform {
  required_providers {
    teleport = {
      source  = "terraform.releases.teleport.dev/gravitational/teleport"
      version = "~> (=teleport.major_version=).0"
    }
  }
}

provider "teleport" {
  # Update addr to point to Teleport Auth/Proxy
  # addr              = "auth.example.com:3025"
  addr               = "proxy.example.com:443"
  identity_file_path = "terraform-identity/identity"
}
terraform {
  required_providers {
    teleport = {
      source  = "terraform.releases.teleport.dev/gravitational/teleport"
      version = "~> (=cloud.major_version=).0"
    }
  }
}

provider "teleport" {
  # Update addr to point to your Teleport Enterprise (managed) tenant URL's host:port
  addr               = "mytenant.teleport.sh:443"
  identity_file_path = "terraform-identity/identity"
}

연결 방법#

이 섹션은 Terraform 프로바이더에 자격 증명을 전달하는 다양한 방법을 나열합니다. Teleport Terraform 프로바이더 설정 페이지에서 사용 사례에 맞는 방법을 찾을 수 있습니다.

ID 파일 사용#

이 연결 방법을 사용하면 ID 파일을 제공해야 합니다. 이 파일을 통해 Terraform은 Proxy Service(포트 443 또는 3080)와 Auth Service(포트 3025) 모두를 통해 연결할 수 있습니다. 이것이 Terraform 프로바이더에 자격 증명을 전달하는 권장 방법입니다.

ID 파일은 여러 가지 방법으로 얻을 수 있습니다:

tctl로 로컬에서 ID 파일 얻기#

16.2부터 tctl과 로컬 자격 증명을 사용하여 임시 봇을 생성하고 셸의 환경 변수에 해당 ID를 로드할 수 있습니다:

$ eval "$(tctl terraform env)"
🔑 Detecting if MFA is required
This is an admin-level action and requires MFA to complete
Tap any security key
Detected security key tap
⚙️ Creating temporary bot "tctl-terraform-env-82ab1a2e" and its token
🤖 Using the temporary bot to obtain certificates
🚀 Certificates obtained, you can now use Terraform in this terminal for 1h0m0s

자세한 내용은 "Terraform 프로바이더 로컬 실행" 가이드에서 찾을 수 있습니다.

tbot으로 ID 파일 얻기#

tbot머신 및 워크로드 아이덴티티를 사용하여 단기 자격 증명을 얻고 자동으로 갱신합니다. 이러한 자격 증명은 탈취하기 어렵고, 누가 어떤 역할에 대한 액세스 권한을 갖는지 더 정밀하게 제어할 수 있습니다(예: prod 환경을 대상으로 하는 GitHub Actions 파이프라인만 인증서를 얻을 수 있도록 허용).

Terraform이 해당 ID를 사용하도록 tbot을 설정하려면 Terraform 프로바이더 가이드를 따르세요.

tctl auth sign으로 ID 파일 얻기#

다음 명령으로 ID 파일을 얻을 수 있습니다:

$ tctl auth sign --user terraform --format file -o identity.pem

이 인증 방법에는 다음과 같은 제한 사항이 있습니다:

  • 이러한 자격 증명은 고권한이며 장기적입니다. 보호되고 교체되어야 합니다.
  • 이 인증 방법은 MFA가 webauthn으로 설정된 Teleport 클러스터에 대해 작동하지 않습니다. 이러한 클러스터에서 Teleport는 장기 인증서를 거부하고 관리 작업에 추가 MFA 챌린지를 요구합니다.

토큰 사용(네이티브 머신 및 워크로드 아이덴티티)#

16.2부터 Teleport Terraform 프로바이더는 네이티브로 머신 및 워크로드 아이덴티티(tbot 없이)를 사용하여 Teleport 클러스터에 참여할 수 있습니다. Terraform 프로바이더는 런타임(AWS, GCP, Kubernetes, CI/CD 시스템)에 의존하여 Teleport에 자신의 ID를 증명합니다.

공급자 구성에서 join_methodjoin_token을 모두 설정하여 위임 조인 메서드를 사용할 수 있습니다.

이 설정은 "CI 또는 클라우드에서 Teleport Terraform 프로바이더 실행" 가이드에서 더 자세히 설명됩니다.

키, 인증서 및 CA 인증서 사용#

이 연결 방법을 사용하면 TLS 키, TLS 인증서 및 Teleport Auth Service TLS CA 인증서를 제공해야 합니다. 다음 명령으로 얻을 수 있습니다:

$ tctl auth sign --user terraform --format=tls -o terraform.pem

이 인증 방법에는 다음과 같은 제한 사항이 있습니다:

  • 프로바이더는 Auth에 직접(포트 3025)만 연결할 수 있습니다. 대부분의 클러스터에서 프록시만 공개적으로 노출됩니다.
  • 이러한 자격 증명은 고권한이며 장기적입니다. 보호되고 교체되어야 합니다.
  • 이 인증 방법은 MFA가 webauthn으로 설정된 Teleport 클러스터에 대해 작동하지 않습니다. 이러한 클러스터에서 Teleport는 장기 인증서를 거부하고 관리 작업에 추가 MFA 챌린지를 요구합니다.

스키마#

선택#

  • addr (문자열) Teleport 주소의 host:port입니다. Teleport Proxy Service 주소(포트 443 또는 3080) 또는 Teleport Auth Service 주소(포트 3025)일 수 있습니다. 환경 변수 TF_TELEPORT_ADDR로도 설정할 수 있습니다.
  • audience_tag (문자열) terraform 메서드를 사용한 네이티브 Machine ID 조인에 사용되는 선택적 audience 태그의 이름입니다. 환경 변수 TF_TELEPORT_JOIN_AUDIENCE_TAG로도 설정할 수 있습니다.
  • cert_base64 (문자열) Base64 인코딩된 TLS 인증 인증서입니다. 환경 변수 TF_TELEPORT_CERT_BASE64로도 설정할 수 있습니다.
  • cert_path (문자열) Teleport 인증 인증서 파일 경로입니다. 환경 변수 TF_TELEPORT_CERT로도 설정할 수 있습니다.
  • dial_timeout_duration (문자열) DialTimeout은 서버에 연결할 때의 시간 초과를 설정합니다. 환경 변수 TF_TELEPORT_DIAL_TIMEOUT_DURATION으로도 설정할 수 있습니다.
  • gitlab_id_token_env_var (문자열) gitlab 조인 메서드를 위해 GitLab에서 발행된 ID 토큰을 가져오는 데 사용되는 환경 변수입니다. 설정되지 않으면 기본값은 TBOT_GITLAB_JWT입니다. 환경 변수 TF_TELEPORT_GITLAB_ID_TOKEN_ENV_VAR로도 설정할 수 있습니다.
  • identity_file (문자열, 민감) Teleport ID 파일 내용입니다. 환경 변수 TF_TELEPORT_IDENTITY_FILE로도 설정할 수 있습니다.
  • identity_file_base64 (문자열, 민감) Base64 인코딩된 Teleport ID 파일 내용입니다. 환경 변수 TF_TELEPORT_IDENTITY_FILE_BASE64로도 설정할 수 있습니다.
  • identity_file_path (문자열) Teleport ID 파일 경로입니다. 환경 변수 TF_TELEPORT_IDENTITY_FILE_PATH로도 설정할 수 있습니다.
  • insecure (불리언) Teleport 클러스터에 참여할 때 프록시 인증서 확인을 건너뜁니다. 프로덕션 환경에서는 권장하지 않습니다. 환경 변수 TF_TELEPORT_INSECURE로도 설정할 수 있습니다.
  • join_method (문자열) 네이티브 Terraform MachineID 지원을 활성화합니다. 설정되면 Terraform은 MachineID를 사용하여 Teleport 클러스터에 안전하게 참여하고 자격 증명을 얻습니다. 가능한 값은 조인 메서드 참조를 참조하세요. 위임 조인 메서드를 사용해야 합니다. 환경 변수 TF_TELEPORT_JOIN_METHOD로도 설정할 수 있습니다.
  • join_token (문자열) 네이티브 MachineID 조인에 사용되는 토큰의 이름입니다. 이 값은 위임 조인 메서드에 대해 민감하지 않습니다. 환경 변수 TF_TELEPORT_JOIN_TOKEN으로도 설정할 수 있습니다.
  • key_base64 (문자열, 민감) Base64 인코딩된 TLS 인증 키입니다. 환경 변수 TF_TELEPORT_KEY_BASE64로도 설정할 수 있습니다.
  • key_path (문자열) Teleport 인증 키 파일 경로입니다. 환경 변수 TF_TELEPORT_KEY로도 설정할 수 있습니다.
  • profile_dir (문자열) Teleport 프로필 경로입니다. 환경 변수 TF_TELEPORT_PROFILE_PATH로도 설정할 수 있습니다.
  • profile_name (문자열) Teleport 프로필 이름입니다. 환경 변수 TF_TELEPORT_PROFILE_NAME으로도 설정할 수 있습니다.
  • retry_base_duration (문자열) API가 'not found'를 반환할 때의 재시도 알고리즘: 재시도 사이의 기본 기간(https://pkg.go.dev/time#ParseDuration). 환경 변수 TF_TELEPORT_RETRY_BASE_DURATION으로도 설정할 수 있습니다.
  • retry_cap_duration (문자열) API가 'not found'를 반환할 때의 재시도 알고리즘: 재시도 사이의 최대 기간(https://pkg.go.dev/time#ParseDuration). 환경 변수 TF_TELEPORT_RETRY_CAP_DURATION으로도 설정할 수 있습니다.
  • retry_max_tries (문자열) API가 'not found'를 반환할 때의 재시도 알고리즘: 최대 시도 횟수. 환경 변수 TF_TELEPORT_RETRY_MAX_TRIES로도 설정할 수 있습니다.
  • root_ca_base64 (문자열) Base64 인코딩된 루트 CA입니다. 환경 변수 TF_TELEPORT_CA_BASE64로도 설정할 수 있습니다.
  • root_ca_path (문자열) Teleport 루트 CA 경로입니다. 환경 변수 TF_TELEPORT_ROOT_CA로도 설정할 수 있습니다.