InfoGrab Docs

Teleport MWI Terraform 공급자

요약

Teleport MWI Terraform 공급자는 Teleport 머신 및 워크로드 아이덴티티 (MWI)를 사용하여 수명이 짧은 자격 증명을 생성하며, 이를 다른 Terraform 공급자에게 리소스에 접근할 수 있도록 권한을 부여하는 데 사용할 수 있습니다.

Teleport MWI Terraform 공급자는 Teleport 머신 및 워크로드 아이덴티티 (MWI)를 사용하여 수명이 짧은 자격 증명을 생성하며, 이를 다른 Terraform 공급자에게 리소스에 접근할 수 있도록 권한을 부여하는 데 사용할 수 있습니다.

Teleport 자체의 구성을 관리하려면 대신 Teleport Terraform 공급자를 사용하세요.

사용 예시#

이 예시에서는 Teleport MWI Terraform 공급자를 사용하여 Kubernetes 공급자에게 Teleport를 통해 Kubernetes 클러스터에 접근할 수 있도록 권한을 부여합니다.

우리의 Kubernetes 클러스터는 my-cluster라는 이름으로 Teleport에 등록되어 있으며, Terraform 공급자가 Teleport에 인증할 수 있도록 Bot과 참여 토큰을 설정했습니다.

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

provider "teleportmwi" {
  join_method = "gitlab"
  join_token = "my-join-token"
  proxy_server = "example.teleport.sh:443"
}

ephemeral "teleportmwi_kubernetes" "my_cluster" {
  selector = {
    name = "my-cluster"
  }
}

// https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs
provider "kubernetes" {
  host                   = ephemeral.teleportmwi_kubernetes.my_cluster.output.host
  tls_server_name        = ephemeral.teleportmwi_kubernetes.my_cluster.output.tls_server_name
  client_certificate     = ephemeral.teleportmwi_kubernetes.my_cluster.output.client_certificate
  client_key             = ephemeral.teleportmwi_kubernetes.my_cluster.output.client_key
  cluster_ca_certificate = ephemeral.teleportmwi_kubernetes.my_cluster.output.cluster_ca_certificate
}

resource "kubernetes_namespace" "ns" {
  metadata {
    name = "example-namespace"
  }
}

임시 리소스 대 데이터 소스#

MWI Terraform 공급자는 Terraform 생태계의 두 가지 다른 종류의 엔티티를 사용하여 기능을 노출합니다: 임시 리소스데이터 소스.

임시 리소스는 Terraform 1.10 이상에서 지원되며 MWI Terraform 공급자를 사용하는 기본 방법이어야 합니다. 데이터 소스에 비해 다음과 같은 이점이 있습니다:

  • MWI Terraform 공급자가 생성한 수명이 짧은 자격 증명이 Terraform 상태에 지속되지 않습니다.
  • 새로운 수명이 짧은 자격 증명이 적용 단계에서 생성되므로, 계획 실행에는 읽기 전용 권한을 부여하고 적용 실행에는 읽기-쓰기 권한을 부여할 수 있습니다.

임시 리소스를 지원하지 않는 Terraform 버전을 사용하는 경우, 대신 데이터 소스 변형을 사용할 수 있습니다. 데이터 소스를 사용할 때 다음 사항에 주의하세요:

  • MWI Terraform 공급자가 생성한 수명이 짧은 시크릿이 Terraform 상태에 지속됩니다. 시크릿은 계획 단계에서 생성되고 적용 단계에서 재사용됩니다. 따라서 Terraform 상태 파일을 암호화하는 것을 강력히 권장합니다.
  • 계획 단계에서 생성된 자격 증명이 적용 단계에서도 유효하도록 credential_ttl을 구성해야 합니다.

스키마#

필수#

  • join_method (String) Teleport 클러스터에 인증하는 데 사용할 참여 방법.
  • join_token (String) Teleport 클러스터에 인증하는 데 사용할 참여 토큰의 이름.
  • proxy_server (String) Teleport Proxy 서비스의 주소. 스키마는 제외하지만 포트는 포함해야 합니다.

선택#

  • insecure (Boolean) 활성화하면 Proxy의 인증서가 검증되지 않습니다. 프로덕션 환경에서는 권장하지 않습니다.

Teleport MWI Terraform 공급자

원문 보기
요약

Teleport MWI Terraform 공급자는 Teleport 머신 및 워크로드 아이덴티티 (MWI)를 사용하여 수명이 짧은 자격 증명을 생성하며, 이를 다른 Terraform 공급자에게 리소스에 접근할 수 있도록 권한을 부여하는 데 사용할 수 있습니다.

Teleport MWI Terraform 공급자는 Teleport 머신 및 워크로드 아이덴티티 (MWI)를 사용하여 수명이 짧은 자격 증명을 생성하며, 이를 다른 Terraform 공급자에게 리소스에 접근할 수 있도록 권한을 부여하는 데 사용할 수 있습니다.

Teleport 자체의 구성을 관리하려면 대신 Teleport Terraform 공급자를 사용하세요.

사용 예시#

이 예시에서는 Teleport MWI Terraform 공급자를 사용하여 Kubernetes 공급자에게 Teleport를 통해 Kubernetes 클러스터에 접근할 수 있도록 권한을 부여합니다.

우리의 Kubernetes 클러스터는 my-cluster라는 이름으로 Teleport에 등록되어 있으며, Terraform 공급자가 Teleport에 인증할 수 있도록 Bot과 참여 토큰을 설정했습니다.

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

provider "teleportmwi" {
  join_method = "gitlab"
  join_token = "my-join-token"
  proxy_server = "example.teleport.sh:443"
}

ephemeral "teleportmwi_kubernetes" "my_cluster" {
  selector = {
    name = "my-cluster"
  }
}

// https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs
provider "kubernetes" {
  host                   = ephemeral.teleportmwi_kubernetes.my_cluster.output.host
  tls_server_name        = ephemeral.teleportmwi_kubernetes.my_cluster.output.tls_server_name
  client_certificate     = ephemeral.teleportmwi_kubernetes.my_cluster.output.client_certificate
  client_key             = ephemeral.teleportmwi_kubernetes.my_cluster.output.client_key
  cluster_ca_certificate = ephemeral.teleportmwi_kubernetes.my_cluster.output.cluster_ca_certificate
}

resource "kubernetes_namespace" "ns" {
  metadata {
    name = "example-namespace"
  }
}

임시 리소스 대 데이터 소스#

MWI Terraform 공급자는 Terraform 생태계의 두 가지 다른 종류의 엔티티를 사용하여 기능을 노출합니다: 임시 리소스데이터 소스.

임시 리소스는 Terraform 1.10 이상에서 지원되며 MWI Terraform 공급자를 사용하는 기본 방법이어야 합니다. 데이터 소스에 비해 다음과 같은 이점이 있습니다:

  • MWI Terraform 공급자가 생성한 수명이 짧은 자격 증명이 Terraform 상태에 지속되지 않습니다.
  • 새로운 수명이 짧은 자격 증명이 적용 단계에서 생성되므로, 계획 실행에는 읽기 전용 권한을 부여하고 적용 실행에는 읽기-쓰기 권한을 부여할 수 있습니다.

임시 리소스를 지원하지 않는 Terraform 버전을 사용하는 경우, 대신 데이터 소스 변형을 사용할 수 있습니다. 데이터 소스를 사용할 때 다음 사항에 주의하세요:

  • MWI Terraform 공급자가 생성한 수명이 짧은 시크릿이 Terraform 상태에 지속됩니다. 시크릿은 계획 단계에서 생성되고 적용 단계에서 재사용됩니다. 따라서 Terraform 상태 파일을 암호화하는 것을 강력히 권장합니다.
  • 계획 단계에서 생성된 자격 증명이 적용 단계에서도 유효하도록 credential_ttl을 구성해야 합니다.

스키마#

필수#

  • join_method (String) Teleport 클러스터에 인증하는 데 사용할 참여 방법.
  • join_token (String) Teleport 클러스터에 인증하는 데 사용할 참여 토큰의 이름.
  • proxy_server (String) Teleport Proxy 서비스의 주소. 스키마는 제외하지만 포트는 포함해야 합니다.

선택#

  • insecure (Boolean) 활성화하면 Proxy의 인증서가 검증되지 않습니다. 프로덕션 환경에서는 권장하지 않습니다.