Azure DevOps Release - импорт terraform завершается неудачно с «Аутентификацией с использованием субъекта службы» - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть проект, работающий на Azure DevOps, который требует создания KeyVault и предоставления серии управляемых удостоверений AppService доступа к секретам в этом хранилище.

Из-за невозможности дать Terraform собственный сервис подключения доступа к хранилищу ключей (это какая-то ошибка), я вынужден создать ResourceGroup и Keyvault с доступом к SP до Terraforming.

При запуске terraform import на ресурсной группе и Keyvault через PowerShell task:

terraform init
$state = terraform state list
if ($state -like '*azurerm_resource_group.instancerg*' -and '*azurerm_key_vault.instancekeyvault*') {
    Write-Host "Resources have already been imported!"
}
else {
    terraform import azurerm_resource_group.instancerg /subscriptions/$(subscriptionid)/resourceGroups/rgname
    terraform import azurerm_key_vault.instancekeyvault /subscriptions/$(subscriptionid)/resourceGroups/rgname/providers/Microsoft.KeyVault/vaults/keyvaultname
}

Сбой при выполнении команд импорта terraform:

«Аутентификация с использованием субъекта-службы» Для аутентификации на Azure с использованием субъекта-службы вы можете использовать отдельный метод auth - инструкции, для которых можно найти здесь: '

Мой main.tf содержит:

provider "azurerm" { 
  version = "=2.7.0"

  subscription_id = var.subscriptionid
  client_id       = var.devopsserviceconnectionaid
  client_secret   = var.devopsserviceconnectionpw
  tenant_id       = var.tennantid

  features {}
}

Все переменные связаны с правильными учетными данными.

Из того, что я понимаю, Terraform должен узнать, какой метод аутентификации используется на основе учетных данных, которые находятся в блоке выше или специфицируют c переменные env (которые также присутствуют ...), но каким-то образом Terraform все еще думает, что я пытаюсь авторизоваться через Azure Cli, а не субъект службы.

...