Terraform의 다른 구독에서 중요 Vault 기밀을 참조하는 방법


Terraform을 사용하는 가장 큰 장점은 Azure Key Vault와 같은 기존 리소스를 참조하는 방식으로 데이터 소스를 사용할 수 있다는 것입니다.그러나 Azure를 사용하는 것은 여러 개의 구독 자원을 동시에 사용해야 한다는 것을 의미합니다.이 문제를 해결하는 방법은 두 개의 azurerm 제공 프로그램 블록을 설정하는 것입니다. 하나는 현재 사용하고 있는 상하문에 사용되고, 다른 하나는 구독에 사용되며,alias 파라미터를 사용하여 분리합니다.
다음은 그것이 실천에서 어떻게 일을 하는지의 예이다.
terraform {
  required_providers {
    azurerm = {
      source = "hashicorp/azurerm"
      version = "2.56.0"
    }
  }
}

# Default provider block, note that there is no alias set here
provider "azurerm" {
  features {}

  subscription_id = "00000000-0000-0000-0000-000000000000"
}

# Provider for the "management" subscription where we have our key vault
provider "azurerm" {
  features {}

  alias = "management"
  subscription_id = "00000000-0000-0000-0000-000000000000"
}

# Data source, using the aliased provider to get the right context
data "azurerm_key_vault_secret" "example" {
  provider = azurerm.management

  name = "administrator"
  key_vault_id = data.azurerm_key_vault.existing.id
}

# How to output the secret
output "secret_value" {
  value = data.azurerm_key_vault_secret.example.value
}
분명히 이것은 관건적인 금고 기밀에 국한될 뿐만 아니라, 서로 다른 구독 환경에서 실행해야 할 모든 조작에도 적용된다.
Terraform에 관한 모든 질문은 언제든지 저에게 질문을 하십시오. 저는 이를 위해 블로그 글을 한 편 쓸 것입니다.

좋은 웹페이지 즐겨찾기