LAD 3.0 Не удается подключиться к учетной записи хранения с помощью SASToken

В настоящее время я пытаюсь развернуть через шаблон ARM расширение LAD для Linux. Согласно документации, для работы расширения требуется SasToken и учетная запись хранения с емкостью таблицы. Я развертываю учетную запись хранения до того, как вызову метод, аналогичный этому, чтобы создайте SasToken, а затем используйте этот токен для развертывания расширения.

Это отлично работает, поскольку расширение установлено. Однако появляется ошибка, если я пойду проверить это на портале. Он говорит мне, что мне нужны разрешения контейнера и объекта, которых у меня раньше не было, но теперь я изменил параметр SasToken, чтобы включить их в развертывание.

Я пытался найти основные ключевые слова из сообщения, но не смог понять.

Вот ошибка (она длинная):

Вот мой шаблон без ladcfg, так как он очень длинный:

Я заранее благодарю любую оказанную помощь.

{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
  "vmName": {
    "type": "string",
    "metadata": {
      "description": "The VM Name."
    }
  },
  "location": {
    "type": "string",
    "metadata": {
      "description": "The location."
    }
  },
  "storageAccountName": {
    "type": "string",
    "metadata": {
      "description": "Storage Account Name."
    }
  },
  "storageAccountEndpoint": {
    "type": "string",
    "metadata": {
      "description": "Storage Account Endpoint."
    },
    "defaultValue": "https://core.windows.net"
  },
  "accountSasProperties": {
    "type": "object",
    "defaultValue": {
      "signedServices": "btq",
      "signedPermission": "rwlacup",
      "signedExpiry": "2030-01-01T00:00:01Z",
      "signedResourceTypes": "sco",
      "keyToSign":"key1"
    }
  }

},
"variables": {
  "perfSink": "[concat(parameters('vmName'),'-perfSink')]",
  "sysLogSink": "[concat(parameters('vmName'),'-sysLogSink')]"
},
"resources": [
  {
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "name": "[concat(parameters('vmName'), '/LinuxDiagnostic')]",
    "apiVersion": "2019-07-01",
    "location": "[parameters('location')]",
    "properties": {
      "publisher": "Microsoft.Azure.Diagnostics",
      "type": "LinuxDiagnostic",
      "typeHandlerVersion": "3.0",
      "autoUpgradeMinorVersion": true,
      "settings": {
        "sinksConfig": {
          "sink": [
            {
              "name": "[variables('perfSink')]",
              "type": "JsonBlob"
            },
            {
              "name": "[variables('syslogSink')]",
              "type": "JsonBlob"
            }
          ]
        },
        "StorageAccount": "[parameters('storageAccountName')]",
        "ladCfg": { ... }
      },
      "protectedSettings": {
        "storageAccountName": "[parameters('storageAccountName')]",
        "storageAccountEndPoint": "[parameters('storageAccountEndpoint')]",
        "storageAccountSasToken": "[listAccountSas(resourceId('Microsoft.Storage/storageAccounts',parameters('storageAccountName')), '2018-02-01', parameters('accountSasProperties')).accountSasToken]"
      }
    }
  }
],
"outputs": {
}}

Я резюмирую свои предложения, как показано ниже.


person Gonçalo    schedule 25.11.2020    source источник
comment
Да, возможно, я что-то упустил, но я пробовал конфигурации на этой странице, а также точно имитировал потребности SAS, как описано на странице. У расширения такая же ошибка.   -  person Jim Xu    schedule 26.11.2020
comment
Привет. Согласно документу, _1_ должно быть в _2_.   -  person Gonçalo    schedule 26.11.2020
comment
Я заметил это, когда вы отправили ссылку, и изменил ее во время этого развертывания. Однако дело не изменилось.   -  person Jim Xu    schedule 26.11.2020
comment
Пожалуйста, попробуйте вывести токен sas, чтобы проверить, есть ли у него правильные разрешения.   -  person Gonçalo    schedule 26.11.2020
comment
Хм, он выводит ss=bt&srt=o&sp=rl&se=2050-01-01, несмотря на то, что я его изменил.   -  person Jim Xu    schedule 26.11.2020
comment
Я думаю, что это был токен SAS моего первого развертывания. Как его изменить/удалить?   -  person Gonçalo    schedule 26.11.2020
comment
Вы изменили значение параметра _1_?   -  person Gonçalo    schedule 26.11.2020
comment
Да, с тех пор я изменил его за несколько развертываний. Мой оригинал на самом деле имел только srt=o, но затем изменил его. После того, как вы прислали ссылку, я также изменил ее.   -  person Jim Xu    schedule 26.11.2020
comment
Не могли бы вы предоставить образец шаблона? Позвольте мне проверить это   -  person Gonçalo    schedule 26.11.2020
comment
Ладно, я сертифицированный идиот, лол. Я ввел параметры необычным образом и забыл их проверить, и о чудо, SasProperties зеркально отразил вывод SasToken, так как я редактировал только defaultValue. Я был уверен, что не установил параметр для использования значения по умолчанию. Спасибо, что помогли мне с этим, и извините, что потратил ваше время, лол. Если хотите, можете поставить ответ, и я отмечу его как правильный.   -  person Jim Xu    schedule 26.11.2020
comment
Привет @gonçalo. Я резюмировал свои предложения как решение, не могли бы вы принять это как ответ?   -  person Gonçalo    schedule 26.11.2020
comment
Обнаружены проблемы в сгенерированной конфигурации mdsd. Невозможно включить, хотя эта операция установки/включения считается успешной, поэтому виртуальная машина может завершить успешный запуск. Расширение диагностики Linux закроется. Сообщение о проверке конфигурации: 2020-11-25T17:07:57.9564180Z: определены не все переменные окружения GCS. Отсутствует 6: MONITORING_GCS_ENVIRONMENT MONITORING_GCS_ACCOUNT MONITORING_GCS_REGION MONITORING_GCS_CERT_CERTFILE MONITORING_GCS_CERT_KEYFILE MONITORING_GCS_STORAGE_RESOURCE_TAG_TYPE. GCS не будет использоваться. Parse сообщил об этих сообщениях: /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(3) Ошибка: указан недопустимый токен SAS. Причина: SAS учетной записи должен разрешить доступ к контейнерам и объектам (srt='co' или выше) : Учетные данные по умолчанию не найдены. /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(25) Ошибка: учетные данные по умолчанию не определены /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131 /xmlCfg.xml(31) Неустранимая ошибка: AddMonikerEventInfo() не удалось: учетные данные по умолчанию не найдены. /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(45) Fatal: AddMonikerEventInfo() не удалось: учетные данные по умолчанию не найдены. /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(60) Неустранимая ошибка: AddMonikerEventInfo() не удалось: учетные данные по умолчанию не найдены. /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(71) Неустранимая ошибка: AddMonikerEventInfo() не удалось: учетные данные по умолчанию не найдены. /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(84) Fatal: AddMonikerEventInfo() не удалось: учетные данные по умолчанию не найдены. /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: учетные данные по умолчанию не определены /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131 /xmlCfg.xml(97) Ошибка: не определяет подэлемент /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: учетные данные по умолчанию не определены /var/lib/ waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: не определяет подэлемент /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) ) Ошибка: не определены учетные данные по умолчанию /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: не определен подэлемент /var/lib/waagent/Microsoft. Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: учетные данные по умолчанию не определены /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: не определяет подэлемент /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: учетные данные по умолчанию не определены /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic -3.0.131/xmlCfg.xml(97) Ошибка: не определяет подэлемент /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: учетные данные по умолчанию не определены / var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: не определяет подэлемент /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg .xml(97) Ошибка: учетные данные по умолчанию не определены /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: не определен подэлемент /var/lib/waagent/ Microsoft.Azure.Diagno stics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: не определены учетные данные по умолчанию /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: не определить подэлемент /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: учетные данные по умолчанию не определены /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0 .131/xmlCfg.xml(97) Ошибка: не определяет подэлемент /var/lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: учетные данные по умолчанию не определены /var/ lib/waagent/Microsoft.Azure.Diagnostics.LinuxDiagnostic-3.0.131/xmlCfg.xml(97) Ошибка: не определяет подэлемент   -  person Jim Xu    schedule 27.11.2020


Ответы (1)


Когда мы устанавливаем диагностическое расширение Linux для мониторинга метрик и журналов и сохранения данных в хранилище Azure, мы должны предоставить Токен SAS учетной записи для служб BLOB-объектов и таблиц (ss='bt'), применимый к контейнерам и объектам (srt='co'), который предоставляет разрешения на добавление, создание, перечисление, обновление и запись (sp='acluw') . Кроме того, что касается создания токена SAS учетной записи в шаблоне Azure ARM, мы можем использовать функцию ресурса ARM listAccountSas.

Например

Для получения более подробной информации см.

"parameters": {
  "accountSasProperties": {
    "type": "object",
    "defaultValue": {
      "signedServices": "bt",
       "signedResourceTypes": "co",
       "signedPermission": "acluw",
       "signedExpiry": "9001-01-30T16:00:00Z"
    }
  }
},
...
"sasToken": "[listAccountSas(parameters('storagename'), '2018-02-01', parameters('accountSasProperties')).accountSasToken]"

https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource?tabs=json#list-example

https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/diagnostics-linux?toc=/azure/azure-monitor/toc.json#protected-settings

Вы ссылались на docs.microsoft.com/en-us/azure/virtual-machines/extensions/

person Jim Xu    schedule 27.11.2020