#azure #terraform #azure-keyvault #azure-policy
Вопрос:
У меня есть Azure KeyVault с 4 политиками доступа. Каждая политика доступа имеет свой собственный уникальный идентификатор объекта.
Пытаясь импортировать наши устаревшие ресурсы Azure в конфигурацию Terraform, я поэтому создал блок Terraform, как показано ниже.
resource "azurerm_key_vault" "example" {
name = "examplekeyvault"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
tenant_id = data.azurerm_client_config.current.tenant_id
sku_name = "premium"
}
resource "azurerm_key_vault_access_policy" "policy1" {
key_vault_id = azurerm_key_vault.example.id
tenant_id = data.azurerm_client_config.current.tenant_id
object_id = 001
key_permissions = [
"Get",
]
secret_permissions = [
"Get",
]
}
Все вышеперечисленное работало хорошо, и я смог успешно импортировать «policy1».
Тем не менее, когда я затем скопировал блок политики и добавил его со следующей политикой, как показано ниже, он просто не принимает ее как правильно сформированную конфигурацию терраформы. Мое намерение, очевидно, состоит в том, чтобы импортировать все четыре политики (если это возможно).
resource "azurerm_key_vault" "example" {
name = "examplekeyvault"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
tenant_id = data.azurerm_client_config.current.tenant_id
sku_name = "premium"
}
resource "azurerm_key_vault_access_policy" "policy1" {
key_vault_id = azurerm_key_vault.example.id
tenant_id = data.azurerm_client_config.current.tenant_id
object_id = 001
key_permissions = [
"Get",
]
secret_permissions = [
"Get",
]
}
resource "azurerm_key_vault_access_policy" "policy2" {
key_vault_id = azurerm_key_vault.example.id
tenant_id = data.azurerm_client_config.current.tenant_id
object_id = 002
key_permissions = [
"Get",
]
secret_permissions = [
"Get",
]
}
На обеих приведенных выше иллюстрациях я использовал только фиктивные объекты.
Я делаю это совершенно неправильно или просто невозможно импортировать несколько политик в одну конфигурацию Terraform? Между тем в документации реестра Terraform говорится, что Azure разрешает не более 1024 политик доступа для каждого хранилища ключей.
Комментарии:
1. «это просто не похоже на то, чтобы принять это как правильно сформированную конфигурацию Терраформ» что это значит? Включите сообщение об ошибке в свой вопрос!
2. в чем заключается ошибка, которую вы получаете?
3. Ну, все это оказалось отвлекающим маневром. В конце концов я заставил его работать……..и да, добавление этих блоков политики множественного доступа сработало, как только я завершил импорт.
4. здравствуйте @hitman126, не могли бы вы опубликовать свое решение в качестве ответа . Это будет полезно для других членов сообщества, которые столкнутся с той же проблемой.
5. Привет @AnsumanBal-MT, поэтому, в конце концов, мое предлагаемое решение о простом добавлении дополнительных блоков политики в политику доступа к хранилищу ключей, как показано в моем втором фрагменте кода, похоже, сработало, поскольку мой последующий план терраформирования и применение прошло успешно без каких-либо сообщений об ошибках. Поэтому я могу только сделать вывод и/или предположить, что это было правильное решение.
Ответ №1:
В конце концов, предложенное мной решение просто добавить дополнительные блоки политики в политику доступа к хранилищу ключей, как показано в моем втором фрагменте кода (выше), оказалось эффективным, поскольку мой последующий план терраформирования и применение прошли успешно без каких-либо ошибок.
Поэтому я могу только сделать вывод и/или предположить, что добавление этих дополнительных блоков политики в конце концов было правильным решением.