Terraform не может использовать субъект службы Azure для проверки подлинности - PullRequest
0 голосов
/ 24 мая 2018

Проблема

Terraform выдает следующую ошибку при попытке использовать terraform plan или terraform apply после создания субъекта службы в Azure:

provider.azurerm: Нет действительного (не истек) Azure CLI Auth токены найдены.Пожалуйста, запустите az login.

Шаги для воспроизведения

Создайте субъект службы в Azure с помощью az ad sp create-for-rbac.

Добавьте конфигурацию субъекта службы в виде блока поставщика в файл .tf:

provider "azurerm" {
  alias = "tf_bootstrap"
  client_id = "55708466-3686-xxxx-xxxx-xxxxxxxxxxxx"
  client_secret = "88352837-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  tenant_id = "129a861e-a703-xxxx-xxxx-xxxxxxxxxxxx"
  subscription_id = "c2e9d518-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

resource "azurerm_resource_group" "dev" {
  name     = "dev-rg"
  location = "East US"
}

Попытка запустить terraform plan.

1 Ответ

0 голосов
/ 24 мая 2018

При использовании клавиши alias в блоке провайдера , как показано в вопросе, ключ provider должен быть указан в каждом блоках данных или ресурсов.

Например:

// When a provider alias has been defined.
resource "azurerm_resource_group" "dev" {
  provider = "azurerm.tf_bootstrap"
  name     = "dev-rg"
  location = "East US"
}

Если вы пропустите provider для одного из ваших ресурсов или блоков данных, аутентификация на этом блоке завершится неудачей.


Примечаниеоднако это также действительно для , а не указывает ключ alias в исходном блоке поставщика.В этом случае больше нет необходимости указывать ключ provider в каждом ресурсе и блоке данных;клавиша provider может быть опущена.

// When a provider alias has not been defined.
resource "azurerm_resource_group" "dev" {
  name     = "dev-rg"
  location = "East US"
}
...