Мы развертываем службу приложений Linux на Azure, используя terraform. Соответствующий код конфигурации:
resource "azurerm_app_service" "webapp" {
app_settings = {
DOCKER_REGISTRY_SERVER_URL = "https://${local.ctx.AcrName}.azurecr.io"
DOCKER_REGISTRY_SERVER_USERNAME = data.azurerm_key_vault_secret.acr_admin_user.value
DOCKER_REGISTRY_SERVER_PASSWORD = data.azurerm_key_vault_secret.acr_admin_password.value
...
}
...
}
Проблема в том, что terraform не считает app_settings
секретом, поэтому он выводит в открытом виде значение DOCKER_REGISTRY_SERVER_PASSWORD
на выходе Azure DevOps (я запутал фактические значения):
Итак, мне интересно - может ли docker работать на Azure Linux хосте службы приложений аутентифицироваться с соответствующим ACR без передать пароль таким образом, чтобы он был настолько очевиден для каждого, кто может проверить вывод конвейера?
Следующая статья кажется актуальной в целом - https://docs.docker.com/engine/reference/commandline/login, но неясно как мы можем применить это в моем контексте, если это вообще возможно.
Кроме того, согласно https://feedback.azure.com/forums/169385-web-apps/suggestions/36145444-web-app-for-containers-acr-access-requires-admin#% 7Btoggle_previous_statuses% 7D Microsoft начала работать над чем-то важным, но похоже, что это все еще незавершенная работа (почти 5 месяцев).