Как повернуть ключи для рабочей области azure log analytics - PullRequest
1 голос
/ 17 января 2020

Каков рекомендуемый способ программного поворота клавиш для Azure Log Analytics Workspace?

Единственный описанный мной способ был через REST API . Однако, похоже, он не работает:

curl -X POST -H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" -d "" https://management.azure.com/subscriptions/${SUBSCRIPTION_ID}/resourcegroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.OperationalInsights/workspaces/${LAW_NAME}/listKeys?api-version=2015-03-20
curl -X POST -H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" -d "" https://management.azure.com/subscriptions/${SUBSCRIPTION_ID}/resourcegroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.OperationalInsights/workspaces/${LAW_NAME}/regenerateSharedKey?api-version=2015-03-20

Первые ключи списка вызовов работают без проблем. Вторая попытка повернуть ключи завершается с ошибкой:

{
  "message": "No HTTP resource was found that matches the request URI 'https://opinsightsweuams.trafficmanager.net/api/subscriptions/XXXXX/resourcegroups/XXXXX/providers/Microsoft.OperationalInsights/workspaces/XXXXX/regenerateSharedKey?api-version=2015-03-20&contextId=XXXXX'."
}

Этот API все еще работает? Есть ли другие способы поворота клавиш?

Ответы [ 2 ]

1 голос
/ 20 января 2020

Обновление 01/23:

Я получил отзыв от службы поддержки.

Regenerate Shared Keys api ранее немного изменился , но do c не обновляется :(.

Вам необходимо добавить параметр keyType со значением primarySharedKey или primarySharedKey .

Причина изменения: ранее при использовании API для регенерации ключа и первичный, и вторичный ключи регенерировались вместе.То есть мнение пользователя, что мы должны обновлять API и делать его только каждый раз заново сгенерируйте один ключ.

Я протестировал его, работает нормально. Скриншот теста, как показано ниже:

enter image description here


Оригинал :

API Regenerate Shared Keys сейчас не работает.

Фактический используемый API-интерфейс приведен ниже:

для повторного восстановления первичный ключ :

https://www.mms.microsoft.com/Embedded/Api/arm/management/CustomerManagement/AgentRegenerateSharedKey?keyType=primarySharedKey.

для повторного восстановления вторичный ключ :

* 10 48 *

Ниже приведены шаги для проверки API и создания нового общего ключа.

Шаг 1. Откройте портал azure -> ваше рабочее пространство Log Analytics - > Расширенные настройки -> Подключенные источники -> Windows Серверы и нажмите кнопку F12, чтобы проверить фактический запрос (я использую Edge browser) -> затем нажмите кнопку Regenerate для Первичного ключа. Снимок экрана, как показано ниже (И, как вы можете видеть на скриншоте, фактический URL-адрес запроса https://www.mms.microsoft.com/Embedded/Api/xxx):

enter image description here

Шаг 2. Так как мы знаем что фактический URL, то как мы можем получить токен?

Простой способ состоит в том, что вы можете получить токен с шага 1, при просмотре деталей квеста с помощью кнопки F12 вы также можете найти токен (это временно).

Другой способ заключается в том, что Откройте Visual Studio -> войдите под своей учетной записью azure -> создайте консольный проект -> затем установите пакет Microsoft. Azure .Services.AppAuthentication . Затем напишите следующий код в консольном проекте:

using Microsoft.Azure.Services.AppAuthentication;
using System;

namespace ConsoleApp17
{
    class Program
    {
        static void Main(string[] args)
        {            
            AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
            string accessToken = azureServiceTokenProvider.GetAccessTokenAsync("https://management.core.windows.net/").Result;

            Console.WriteLine(accessToken);

            Console.WriteLine("**completed**");
            Console.ReadLine();
        }        

    }
}

Шаг 3. После получения токена вы можете использовать токен для повторной генерации общего ключа.

Я провел тест для повторной генерации первичного ключа и с помощью инструмента почтальон.

открытый почтальон, для заголовков и URL , следуйте скриншоту ниже:

enter image description here

для Кузов , сделайте скриншот ниже:

enter image description here

Наконец, нажмите кнопку send , вы можете увидеть ответ 200 ok . И если ссылаться на портал sh, вы увидите, что новый первичный ключ сгенерирован.

Если вы предпочитаете использовать для этого curl или другой язык программирования, просто следуйте приведенным выше инструкциям и укажите request headers / token / request body .

0 голосов
/ 20 января 2020

Просто добавьте к решению @ ivan-yang способ достижения этого с помощью локона:

RESP=`curl -X POST -d "grant_type=client_credentials&client_id=${servicePrincipalId}&client_secret=${servicePrincipalKey}&resource=https%3A%2F%2Fmanagement.azure.com%2F" https://login.microsoftonline.com/${TENANT_ID}/oauth2/token`
TOKEN=`echo ${RESP} | jq -r '.access_token'`

curl -X POST -H "x-ms-client-auth-token: Bearer ${TOKEN}" -H "Content-Type: application/json" \
    -H "x-ms-client-workspace-name: ${LAW_NAME}" \
    -H "x-ms-client-workspace-path: /subscriptions/${SUBSCRIPTION_ID}/resourcegroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.OperationalInsights/workspaces/${LAW_NAME}" \
    -d "{\"workspacePath\":\"/subscriptions/${SUBSCRIPTION_ID}/resourcegroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.OperationalInsights/workspaces/${LAW_NAME}\",\"data\":{}}" \
    https://www.mms.microsoft.com/Embedded/Api/arm/management/CustomerManagement/AgentRegenerateSharedKey?keyType=secondarySharedKey

- РЕДАКТИРОВАТЬ

это даже проще с командой az rest:

az rest -m POST -u https://management.azure.com/subscriptions/${SUBSCRIPTION_ID}/resourcegroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.OperationalInsights/workspaces/${LAW_NAME}/regenerateSharedKey?api-version=2015-03-20\&keyType=secondarySharedKey
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...