InfoGrab Docs

teleport-discovery-aws Terraform 모듈 참조

요약

소스 코드: github.com/gravitational/teleport/tree/master/integrations/terraform-modules/teleport/discovery/aws 이 Terraform 모듈은 Teleport 클러스터가 AWS에서 리소스를 검색하는 데 필요한 AWS 및 Teleport 클러스터 리소스를 생성합니다.

소스 코드: github.com/gravitational/teleport/tree/master/integrations/terraform-modules/teleport/discovery/aws

AWS 검색 Terraform 모듈#

이 Terraform 모듈은 Teleport 클러스터가 AWS에서 리소스를 검색하는 데 필요한 AWS 및 Teleport 클러스터 리소스를 생성합니다.

  • Teleport 검색 서비스가 맡을 AWS IAM 역할.
  • Teleport가 AWS에서 리소스를 검색하는 데 필요한 AWS 권한을 부여하는, IAM 역할에 연결된 AWS IAM 정책.
  • Teleport 검색 서비스가 OIDC를 사용하여 IAM 역할을 맡을 수 있도록 하는 AWS OIDC 공급자. 이 리소스는 선택 사항으로, create_aws_iam_openid_connect_provider = false를 사용하여 생성을 비활성화할 수 있습니다. 이 리소스는 두 가지 시나리오를 지원하기 위해 선택 사항입니다:
    • Teleport 클러스터의 프록시 URL을 사용하도록 구성된 AWS IAM OIDC 공급자가 이미 AWS 계정에 있는 경우. AWS는 고유 URL당 하나의 AWS IAM OIDC 공급자만 허용하므로, 동일한 Teleport 클러스터에 대해 다른 공급자를 이미 관리하고 있다면 이 모듈에서 또 다른 공급자를 생성할 수 없습니다.
    • Teleport 클러스터의 프록시 URL에 접근할 수 없어 AWS IAM OIDC 페더레이션이 불가능한 경우. 이 경우 Teleport 검색 서비스 인스턴스에 대한 AWS IAM 역할 자격 증명을 구성하고 discovery_service_iam_credential_source를 해당 역할을 신뢰하도록 설정해야 합니다.
  • AWS 리소스 검색을 위해 Teleport를 구성하는 Teleport discovery_config 클러스터 리소스.
  • AWS OIDC를 위한 Teleport integration 클러스터 리소스.
  • Teleport 노드가 AWS IAM 자격 증명을 사용하여 클러스터에 참가할 수 있도록 하는 Teleport token 클러스터 리소스.

사전 요구 사항#

사용법#

module "aws_discovery" {
  source = "terraform.releases.teleport.dev/teleport/discovery/aws"

  # Teleport 클러스터 공개 프록시 주소 - host:port 형식이 필요합니다.
  teleport_proxy_public_addr = "example.teleport.sh:443"
  # 이 검색 그룹의 Teleport 검색 서비스 인스턴스가 AWS 리소스를 검색하도록 구성됩니다.
  # "cloud-discovery-group"은 Teleport Cloud 클러스터에서 실행 중인 검색 서비스 인스턴스의 그룹 이름입니다.
  teleport_discovery_group_name = "cloud-discovery-group"

  # 모듈에서 생성된 AWS 리소스에 추가 태그 적용
  apply_aws_tags = {
    Terraform = "true"
    Env       = "dev"
  }
  # AWS 태그 "origin=example"이 있는 EC2 인스턴스 매칭
  match_aws_resource_types = ["ec2"]
  match_aws_tags = {
    origin = ["example"]
  }
}

도움받는 방법#

문제가 있으면 GitHub 토론을 확인하세요.

이 코드 관련 버그는 이슈 열기를 통해 보고해 주세요.

요구 사항#

이름 버전
terraform >= 1.5.7
aws >= 5.0
http >= 3.0
teleport >= 18.5.1
tls >= 4.0

공급자 (Providers)#

이름 버전
aws >= 5.0
http >= 3.0
teleport >= 18.5.1
tls >= 4.0

모듈 (Modules)#

없음.

리소스 (Resources)#

이름 타입
aws_iam_openid_connect_provider.teleport 리소스
aws_iam_policy.teleport_discovery_service 리소스
aws_iam_role.teleport_discovery_service 리소스
aws_iam_role_policy_attachment.teleport_discovery_service 리소스
teleport_discovery_config.aws 리소스
teleport_integration.aws_oidc 리소스
teleport_provision_token.aws_iam 리소스
aws_caller_identity.this 데이터 소스
aws_iam_policy_document.teleport_discovery_service_iam_role_trust 데이터 소스
aws_iam_policy_document.teleport_discovery_service_single_account 데이터 소스
aws_partition.this 데이터 소스
http_http.teleport_ping 데이터 소스
tls_certificate.teleport_proxy 데이터 소스

입력 (Inputs)#

이름 설명 타입 기본값 필수 여부
apply_aws_tags 생성된 모든 AWS 리소스에 적용할 추가 AWS 태그. map(string) {} 아니오
apply_teleport_resource_labels 생성된 모든 Teleport 리소스에 적용할 추가 Teleport 리소스 레이블. map(string) {} 아니오
aws_iam_policy_document AWS 리소스 검색을 위한 AWS IAM 역할에 연결된 AWS IAM 정책 문서 재정의. string "" 아니오
aws_iam_policy_name 검색을 위한 AWS IAM 정책 이름. string "teleport-discovery" 아니오
aws_iam_policy_use_name_prefix AWS IAM 정책 이름(aws_iam_policy_name)을 접두사로 사용할지 여부를 결정합니다. bool true 아니오
aws_iam_role_name 검색을 위한 AWS IAM 역할 이름. string "teleport-discovery" 아니오
aws_iam_role_use_name_prefix AWS IAM 역할 이름(aws_iam_role_name)을 접두사로 사용할지 여부를 결정합니다. bool true 아니오
create 모든 리소스 생성 토글. bool true 아니오
create_aws_iam_openid_connect_provider AWS IAM OIDC 공급자 생성 토글. false이고 OIDC를 사용하는 경우, AWS IAM OIDC 공급자가 이미 존재해야 합니다. bool true 아니오
discovery_service_iam_credential_source Teleport 검색 서비스 인스턴스의 AWS 자격 증명 소스를 구성합니다. 기본값은 AWS OIDC 통합을 사용합니다. object({ use_oidc_integration = optional(bool) trust_role = optional(object({ role_arn = string external_id = optional(string, "") })) }) { "trust_role": null, "use_oidc_integration": true } 아니오
match_aws_regions 검색할 AWS 리전. 기본값은 모든 AWS 리전을 매칭합니다. list(string) [ "*" ] 아니오
match_aws_resource_types Teleport로 리소스 검색 시 매칭할 AWS 리소스 유형. 유효한 값: ec2. list(string) n/a
match_aws_tags Teleport로 리소스 검색 시 매칭할 AWS 리소스 태그. 기본값은 검색된 모든 AWS 리소스를 매칭합니다. map(list(string)) { "*": [ "*" ] } 아니오
teleport_discovery_config_name teleport_discovery_config 리소스 이름. string "discovery" 아니오
teleport_discovery_config_use_name_prefix Teleport 검색 구성 이름(teleport_discovery_config_name)을 접두사로 사용할지 여부를 결정합니다. bool true 아니오
teleport_discovery_group_name 사용할 Teleport 검색 그룹. 검색 구성이 적용되려면 이 이름이 최소 하나의 Teleport 검색 서비스 인스턴스의 구성된 discovery_group과 일치해야 합니다. Teleport Cloud 클러스터의 경우 "cloud-discovery-group"을 사용합니다. string n/a
teleport_integration_name teleport_integration 리소스 이름. string "discovery" 아니오
teleport_integration_use_name_prefix Teleport 통합 이름(teleport_integration_name)을 접두사로 사용할지 여부를 결정합니다. bool true 아니오
teleport_provision_token_name teleport_provision_token 리소스 이름. string "discovery" 아니오
teleport_provision_token_use_name_prefix Teleport 프로비전 토큰 이름(teleport_provision_token_name)을 접두사로 사용할지 여부를 결정합니다. bool true 아니오
teleport_proxy_public_addr Teleport 클러스터 프록시 공개 주소 host:port. string n/a

출력 (Outputs)#

이름 설명
aws_oidc_provider_arn Teleport 검색 서비스가 OIDC를 사용하여 AWS IAM 역할을 맡을 수 있도록 하는 AWS OpenID Connect (OIDC) 공급자의 AWS 리소스 이름 (ARN).
teleport_discovery_config_name Teleport 동적 discovery_config의 이름. 구성 세부 정보는 tctl get discovery_config/<name>으로 확인할 수 있습니다. Teleport 검색 서비스 인스턴스는 discovery_config와 동일한 검색 그룹에 있는 경우 이 discovery_config를 사용합니다.
teleport_discovery_service_iam_policy_arn Teleport가 AWS에서 리소스를 검색하는 데 필요한 권한을 부여하는 AWS IAM 정책의 AWS 리소스 이름 (ARN).
teleport_discovery_service_iam_role_arn Teleport 검색 서비스가 맡을 AWS IAM 역할의 AWS 리소스 이름 (ARN).
teleport_integration_name Teleport integration 리소스 이름. 통합 리소스는 Teleport 검색 서비스 인스턴스가 AWS OIDC 페더레이션을 사용하여 검색을 위한 AWS IAM 역할을 맡도록 구성합니다. 통합 세부 정보는 tctl get integrations/<name>으로 확인하거나 Teleport 웹 UI의 '제로 트러스트 접근' > '통합'에서 볼 수 있습니다.
teleport_provision_token_name Teleport 노드가 AWS IAM 자격 증명을 사용하여 Teleport 클러스터에 참가할 수 있도록 하는 Teleport 프로비전 token의 이름. 토큰 세부 정보는 tctl get token/<name>으로 확인할 수 있습니다.

teleport-discovery-aws Terraform 모듈 참조

원문 보기
요약

소스 코드: github.com/gravitational/teleport/tree/master/integrations/terraform-modules/teleport/discovery/aws 이 Terraform 모듈은 Teleport 클러스터가 AWS에서 리소스를 검색하는 데 필요한 AWS 및 Teleport 클러스터 리소스를 생성합니다.

소스 코드: github.com/gravitational/teleport/tree/master/integrations/terraform-modules/teleport/discovery/aws

AWS 검색 Terraform 모듈#

이 Terraform 모듈은 Teleport 클러스터가 AWS에서 리소스를 검색하는 데 필요한 AWS 및 Teleport 클러스터 리소스를 생성합니다.

  • Teleport 검색 서비스가 맡을 AWS IAM 역할.
  • Teleport가 AWS에서 리소스를 검색하는 데 필요한 AWS 권한을 부여하는, IAM 역할에 연결된 AWS IAM 정책.
  • Teleport 검색 서비스가 OIDC를 사용하여 IAM 역할을 맡을 수 있도록 하는 AWS OIDC 공급자. 이 리소스는 선택 사항으로, create_aws_iam_openid_connect_provider = false를 사용하여 생성을 비활성화할 수 있습니다. 이 리소스는 두 가지 시나리오를 지원하기 위해 선택 사항입니다:
    • Teleport 클러스터의 프록시 URL을 사용하도록 구성된 AWS IAM OIDC 공급자가 이미 AWS 계정에 있는 경우. AWS는 고유 URL당 하나의 AWS IAM OIDC 공급자만 허용하므로, 동일한 Teleport 클러스터에 대해 다른 공급자를 이미 관리하고 있다면 이 모듈에서 또 다른 공급자를 생성할 수 없습니다.
    • Teleport 클러스터의 프록시 URL에 접근할 수 없어 AWS IAM OIDC 페더레이션이 불가능한 경우. 이 경우 Teleport 검색 서비스 인스턴스에 대한 AWS IAM 역할 자격 증명을 구성하고 discovery_service_iam_credential_source를 해당 역할을 신뢰하도록 설정해야 합니다.
  • AWS 리소스 검색을 위해 Teleport를 구성하는 Teleport discovery_config 클러스터 리소스.
  • AWS OIDC를 위한 Teleport integration 클러스터 리소스.
  • Teleport 노드가 AWS IAM 자격 증명을 사용하여 클러스터에 참가할 수 있도록 하는 Teleport token 클러스터 리소스.

사전 요구 사항#

사용법#

module "aws_discovery" {
  source = "terraform.releases.teleport.dev/teleport/discovery/aws"

  # Teleport 클러스터 공개 프록시 주소 - host:port 형식이 필요합니다.
  teleport_proxy_public_addr = "example.teleport.sh:443"
  # 이 검색 그룹의 Teleport 검색 서비스 인스턴스가 AWS 리소스를 검색하도록 구성됩니다.
  # "cloud-discovery-group"은 Teleport Cloud 클러스터에서 실행 중인 검색 서비스 인스턴스의 그룹 이름입니다.
  teleport_discovery_group_name = "cloud-discovery-group"

  # 모듈에서 생성된 AWS 리소스에 추가 태그 적용
  apply_aws_tags = {
    Terraform = "true"
    Env       = "dev"
  }
  # AWS 태그 "origin=example"이 있는 EC2 인스턴스 매칭
  match_aws_resource_types = ["ec2"]
  match_aws_tags = {
    origin = ["example"]
  }
}

도움받는 방법#

문제가 있으면 GitHub 토론을 확인하세요.

이 코드 관련 버그는 이슈 열기를 통해 보고해 주세요.

요구 사항#

이름 버전
terraform >= 1.5.7
aws >= 5.0
http >= 3.0
teleport >= 18.5.1
tls >= 4.0

공급자 (Providers)#

이름 버전
aws >= 5.0
http >= 3.0
teleport >= 18.5.1
tls >= 4.0

모듈 (Modules)#

없음.

리소스 (Resources)#

이름 타입
aws_iam_openid_connect_provider.teleport 리소스
aws_iam_policy.teleport_discovery_service 리소스
aws_iam_role.teleport_discovery_service 리소스
aws_iam_role_policy_attachment.teleport_discovery_service 리소스
teleport_discovery_config.aws 리소스
teleport_integration.aws_oidc 리소스
teleport_provision_token.aws_iam 리소스
aws_caller_identity.this 데이터 소스
aws_iam_policy_document.teleport_discovery_service_iam_role_trust 데이터 소스
aws_iam_policy_document.teleport_discovery_service_single_account 데이터 소스
aws_partition.this 데이터 소스
http_http.teleport_ping 데이터 소스
tls_certificate.teleport_proxy 데이터 소스

입력 (Inputs)#

이름 설명 타입 기본값 필수 여부
apply_aws_tags 생성된 모든 AWS 리소스에 적용할 추가 AWS 태그. map(string) {} 아니오
apply_teleport_resource_labels 생성된 모든 Teleport 리소스에 적용할 추가 Teleport 리소스 레이블. map(string) {} 아니오
aws_iam_policy_document AWS 리소스 검색을 위한 AWS IAM 역할에 연결된 AWS IAM 정책 문서 재정의. string "" 아니오
aws_iam_policy_name 검색을 위한 AWS IAM 정책 이름. string "teleport-discovery" 아니오
aws_iam_policy_use_name_prefix AWS IAM 정책 이름(aws_iam_policy_name)을 접두사로 사용할지 여부를 결정합니다. bool true 아니오
aws_iam_role_name 검색을 위한 AWS IAM 역할 이름. string "teleport-discovery" 아니오
aws_iam_role_use_name_prefix AWS IAM 역할 이름(aws_iam_role_name)을 접두사로 사용할지 여부를 결정합니다. bool true 아니오
create 모든 리소스 생성 토글. bool true 아니오
create_aws_iam_openid_connect_provider AWS IAM OIDC 공급자 생성 토글. false이고 OIDC를 사용하는 경우, AWS IAM OIDC 공급자가 이미 존재해야 합니다. bool true 아니오
discovery_service_iam_credential_source Teleport 검색 서비스 인스턴스의 AWS 자격 증명 소스를 구성합니다. 기본값은 AWS OIDC 통합을 사용합니다. object({ use_oidc_integration = optional(bool) trust_role = optional(object({ role_arn = string external_id = optional(string, "") })) }) { "trust_role": null, "use_oidc_integration": true } 아니오
match_aws_regions 검색할 AWS 리전. 기본값은 모든 AWS 리전을 매칭합니다. list(string) [ "*" ] 아니오
match_aws_resource_types Teleport로 리소스 검색 시 매칭할 AWS 리소스 유형. 유효한 값: ec2. list(string) n/a
match_aws_tags Teleport로 리소스 검색 시 매칭할 AWS 리소스 태그. 기본값은 검색된 모든 AWS 리소스를 매칭합니다. map(list(string)) { "*": [ "*" ] } 아니오
teleport_discovery_config_name teleport_discovery_config 리소스 이름. string "discovery" 아니오
teleport_discovery_config_use_name_prefix Teleport 검색 구성 이름(teleport_discovery_config_name)을 접두사로 사용할지 여부를 결정합니다. bool true 아니오
teleport_discovery_group_name 사용할 Teleport 검색 그룹. 검색 구성이 적용되려면 이 이름이 최소 하나의 Teleport 검색 서비스 인스턴스의 구성된 discovery_group과 일치해야 합니다. Teleport Cloud 클러스터의 경우 "cloud-discovery-group"을 사용합니다. string n/a
teleport_integration_name teleport_integration 리소스 이름. string "discovery" 아니오
teleport_integration_use_name_prefix Teleport 통합 이름(teleport_integration_name)을 접두사로 사용할지 여부를 결정합니다. bool true 아니오
teleport_provision_token_name teleport_provision_token 리소스 이름. string "discovery" 아니오
teleport_provision_token_use_name_prefix Teleport 프로비전 토큰 이름(teleport_provision_token_name)을 접두사로 사용할지 여부를 결정합니다. bool true 아니오
teleport_proxy_public_addr Teleport 클러스터 프록시 공개 주소 host:port. string n/a

출력 (Outputs)#

이름 설명
aws_oidc_provider_arn Teleport 검색 서비스가 OIDC를 사용하여 AWS IAM 역할을 맡을 수 있도록 하는 AWS OpenID Connect (OIDC) 공급자의 AWS 리소스 이름 (ARN).
teleport_discovery_config_name Teleport 동적 discovery_config의 이름. 구성 세부 정보는 tctl get discovery_config/<name>으로 확인할 수 있습니다. Teleport 검색 서비스 인스턴스는 discovery_config와 동일한 검색 그룹에 있는 경우 이 discovery_config를 사용합니다.
teleport_discovery_service_iam_policy_arn Teleport가 AWS에서 리소스를 검색하는 데 필요한 권한을 부여하는 AWS IAM 정책의 AWS 리소스 이름 (ARN).
teleport_discovery_service_iam_role_arn Teleport 검색 서비스가 맡을 AWS IAM 역할의 AWS 리소스 이름 (ARN).
teleport_integration_name Teleport integration 리소스 이름. 통합 리소스는 Teleport 검색 서비스 인스턴스가 AWS OIDC 페더레이션을 사용하여 검색을 위한 AWS IAM 역할을 맡도록 구성합니다. 통합 세부 정보는 tctl get integrations/<name>으로 확인하거나 Teleport 웹 UI의 '제로 트러스트 접근' > '통합'에서 볼 수 있습니다.
teleport_provision_token_name Teleport 노드가 AWS IAM 자격 증명을 사용하여 Teleport 클러스터에 참가할 수 있도록 하는 Teleport 프로비전 token의 이름. 토큰 세부 정보는 tctl get token/<name>으로 확인할 수 있습니다.