Я пытаюсь вытащить изображение из ACR в службу приложений Azure. Я сохранил учетные данные ACR в хранилище ключей. Я использую конечную точку, сгенерированную Key Vault, в моей конфигурации службы приложений Terraform. Мой скрипт TF выглядит так
module "my-ui-service-temp" {
source = "app-service-noconn"
location = "${local.location}"
name = "webapp-temp"
resource_group_name = "${module.create-resource-group.name}"
app_service_plan_id = "${module.create-app-service-plan.id}"
app_service_plan_name = "${module.create-app-service-plan.name}"
namespace = "${local.namespace}-temp"
dotnetframework_version = "v4.0"
java_version = "1.8"
process_32bitworker = "true"
websockets_enabled = "true"
remote_debugging_enabled = "true"
local_mysql_enabled = "true"
php_version = "5.5"
remote_debugging_version = "VS2017"
tls_version = "1.2"
linuxfx_version = "DOCKER|myregistry.azurecr.io/my-webapp:latest"
//cors_allowed_origins = "*"
//ip_address_restriction = "10.198.54.79"
#ip_address_restriction = "198.203.177.177"
default_documents = [ "Default.htm", "Default.html", "Default.asp", "index.htm", "index.html", "iisstart.htm", "default.aspx", "index.php", "hostingstart.html"]
http2_enabled = "false"
scm_type = "none"
subnet_mask = "255.255.255.255"
app_settings {
"DOCKER_REGISTRY_SERVER_URL" = "myregistry.azurecr.io"
"DOCKER_REGISTRY_SERVER_USERNAME" = "https://myapp-kv-az.vault.azure.net/secrets/my-secret-kv-az/redacted"
"DOCKER_REGISTRY_SERVER_PASSWORD" = "https://myapp-kv-az.vault.azure.net/secrets/my-pass-az-pass/redacted"
}
}
Это ошибка, которую я получаю
2019-06-17 16: 06: 20.651 ОШИБКА - Потянув изображение докера
registry.azurecr.io/myApp-webapp:latest не удалось: 2019-06-17
16: 06: 20.651 ИНФОРМАЦИЯ - Извлечение изображения из центра Docker:
registry.azurecr.io/myApp-webapp:latest 2019-06-17 16: 06: 20.676 ОШИБКА
- DockerApiException: Docker API ответил кодом состояния = InternalServerError, response = {"message": "Получить
https://registry.azurecr.io/v2/myApp-webapp/manifests/latest:
не авторизован: требуется авторизация "}
2019-06-17 16: 06: 20.687 ОШИБКА - Ошибка извлечения образа: Проверьте образ докера
конфигурация и учетные данные (при использовании частного репозитория)
Если я передаю свои учетные данные ACR напрямую без KeyVault, я могу получить изображение и создать его без каких-либо проблем. Я предполагаю, что это как-то связано с политиками Key Vault Access.
Но в сообщении об ошибке говорится - Docker API ответил кодом состояния = InternalServerError, response = {"message": "Получить https://registry.azurecr.io/v2/myApp-webapp/manifests/latest: не авторизовано: требуется аутентификация"}, что меня беспокоит!
Я передаю данные аутентификации через keyvault, но служба приложений не может аутентифицироваться.