Между AKS и ACR с Принципалом обслуживания есть что-то другое.
Для AKS необходимо создать секрет для стручков или сервисов для доступа к ACR, и секрет будет установлен в файле yaml.Таким образом, ему нужны одновременно client_id и client_secret.
Но для ACR вам нужен субъект службы с определенным разрешением, связанным с ним, чтобы другие могли получить к нему доступ.Таким образом, вам просто нужно назначить субъект обслуживания для ACR с настройкой полномочий и client_id.Код терраформы должен выглядеть следующим образом:
resource "azurerm_resource_group" "rg" {
name = "resourceGroup1"
location = "West US"
}
resource "azurerm_container_registry" "acr" {
name = "containerRegistry1"
resource_group_name = "${azurerm_resource_group.rg.name}"
location = "${azurerm_resource_group.rg.location}"
sku = "Premium"
admin_enabled = false
georeplication_locations = ["East US", "West Europe"]
}
resource "azurerm_azuread_service_principal" "test" {
application_id = "${azurerm_azuread_application.test.application_id}"
}
resource "azurerm_azuread_service_principal_password" "test" {
service_principal_id = "${azurerm_azuread_service_principal.test.id}"
value = "VT=uSgbTanZhyz@%nL9Hpd+Tfay_MRV#"
end_date = "2020-01-01T01:02:03Z"
}
resource "azurerm_role_assignment" "test" {
scope = "${azurerm_container_registry.acr.id}"
role_definition_id = "Contributor"
principal_id = "${azurerm_azuread_service_principal_password.test.service_principal_id}"
}
Подробнее см. azurerm_role_assignment .Надеюсь, что это поможет вам.Если вам нужна дополнительная помощь, пожалуйста, дайте мне знать.