Вопрос или проблема
У меня есть APIM с частной конечной точкой. Это мой код:
resource "azurerm_private_endpoint" "apim" {
name = "${var.organization}-apim-pep-${var.environment}"
location = var.azure_location
resource_group_name = var.resourcegroups.apim.name
subnet_id = data.azurerm_subnet.pep.id
private_service_connection {
name = "apim_private_service_connection"
private_connection_resource_id = azurerm_api_management.apim.id
is_manual_connection = false
subresource_names = ["Gateway"]
}
}
resource "azurerm_api_management" "apim" {
name = "${var.organization}-hub-${var.environment}-apim"
location = var.azure_location
resource_group_name = var.resourcegroups.apim.name
publisher_name = "${var.organization}-hub-${var.environment}-apim"
publisher_email = "email"
sku_name = "Developer_1"
identity {
type = "SystemAssigned, UserAssigned"
identity_ids = [
data.azurerm_user_assigned_identity.apim.id
]
}
}
Я не могу получить доступ к секретам Key Vault. Я получаю 404 на них. Ранее, когда у меня была интеграция VNet и не было частной конечной точки, я мог их разрешать. Скорее всего, это проблема сети. Тем не менее, я не могу изменить настройки на VNet, потому что сеть организована Azure, подводя (тип VNet=”None” по умолчанию). Подсеть, в которой развернута частная конечная точка, имеет сервисную конечную точку для Microsoft.KeyVault.
Какой элемент головоломки я упускаю?
Ответ или решение
Для решения проблемы с доступом к секретам Key Vault из вашего Azure API Management (APIM) с частной конечной точкой (private endpoint), необходимо учитывать несколько факторов, касающихся сетевых настроек и конфигурации.
Возможные причины ошибки 404:
-
Сетевые настройки: Убедитесь, что ваша APIM действительно имеет доступ к Azure Key Vault через созданный вами частный конечный узел. Частный конечный узел должен быть корректно настроен для предоставления доступа к необходимым ресурсам.
-
Служебные конечные точки: Вы упомянули, что на вашей подсети включены служебные конечные точки для Microsoft.KeyVault. Это необходимо для обеспечения доступа к Key Vault из вашего виртуального сетевого округа (VNet). Убедитесь, что служебная конечная точка действительно настроена правильно и связана с тем же регионом, в котором находится ваш Key Vault.
-
Настройки доступа Key Vault: Вам необходимо убедиться, что у системной назначенной идентификации (SystemAssigned identity) APIM есть необходимые разрешения на доступ к секретам в Key Vault. Для этого:
- Перейдите в ваш Azure Key Vault.
- На вкладке "Access policies" добавьте политику доступа для идентификации APIM, предоставив ей соответствующие разрешения (например, Get для секретов).
-
Трассировка и диагностика: Используйте Azure Network Watcher для трассировки маршрута сетевых запросов и диагностики проблем с доступом. Это может помочь вам определить, на каком этапе происходит сбой.
Рекомендации по устранению проблемы:
-
Проверьте настройки служебной конечной точки для Microsoft.KeyVault, убедившись, что они правильно настроены и активированы для соответствующей подсети.
-
Убедитесь, что ваша APIM имеет разрешения на доступ к секретам Key Vault. Как минимум, добавьте разрешение на чтение (Get) для секретов.
-
Проверьте, что APIM пытается получить доступ к Key Vault через правильный URL-адрес. Используйте инструмент Postman или curl для диагностики доступа к секретам Key Vault вручную.
-
Если ваша организация использует ограничения на уровень безопасности, такие как NSG (Network Security Groups), убедитесь, что в правилах разрешен доступ к трафику между вашей APIM и Key Vault.
Пример конфигурации доступа к ключу:
Чтобы настроить разрешения для системной назначенной идентификации, выполните следующие шаги:
resource "azurerm_key_vault_access_policy" "apim_access_policy" {
key_vault_id = azurerm_key_vault.example.id
tenant_id = var.tenant_id
object_id = azurerm_api_management.apim.identity[0].principal_id # Используйте ID вашей APIM
secret_permissions = ["get"]
}
Заключение
Скорее всего, основная проблема заключается в настройках доступа или сетевых настройках, которые предотвращают APIM от доступа к Key Vault. Пожалуйста, проверьте вышеуказанные моменты, и вы сможете устранить проблему с ошибкой 404 при доступе к секретам Key Vault.