Невозможно восстановить ключ хранения с помощью Azure API управления - PullRequest
0 голосов
/ 21 февраля 2020

Я не могу использовать /genrateKey [1] для регенерации ключей для учетной записи хранения с помощью Azure API управления.

Я использую следующий код в JavaScript (ресурс имеет подписка удалена)

const { ClientSecretCredential } = require('@azure/identity');
const { SecretClient } = require('@azure/keyvault-secrets');
const MSRestAzure = require('ms-rest-azure');

const keyVaultName = process.env.KEY_VAULT_NAME;
const KVUri = `https://${keyVaultName}.vault.azure.net`;

const credential = new ClientSecretCredential(
  process.env.AZURE_TENANT_ID,
  process.env.AZURE_CLIENT_ID,
  process.env.AZURE_CLIENT_SECRET,
);

const vault = new SecretClient(KVUri, credential);

function getCreds() {
  return new Promise((res, rej) => {
    MSRestAzure.loginWithServicePrincipalSecret(
      process.env.AZURE_CLIENT_ID,
      process.env.AZURE_CLIENT_SECRET,
      process.env.AZURE_TENANT_ID,
      (err, creds) => {
        if (err) {
          rej(err);
          return;
        }
        res(creds);
      },
    );
  });
}

const getResourceUrl = (resource, action) => `https://management.azure.com${resource}/${action}?api-version=2019-04-01`;
const resource = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg/providers/Microsoft.Storage/storageAccounts/MyStore


const creds = await getCreds();
const client = new MSRestAzure.AzureServiceClient(creds);

const regenUrl = getResourceUrl(resource, 'regenerateKey');

await client.sendRequest({ method: 'POST', url: regenUrl }).then(console.log);

Я получаю ответ UnexpectedException -

{
    "error": {
        "code": "UnexpectedException",
        "message": "The server was unable to complete your request."
    }
}

Идентификатор клиента / секретный ключ принадлежит регистрации приложения, имеющего доступ к учетной записи хранения, так как а также ключевой оператор Contributor и Account Storage для этой подписки.

Мне кажется, что я неправильно сформировал запрос.

1 Ответ

1 голос
/ 21 февраля 2020

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

Пожалуйста, предоставьте тело запроса в следующем формате:

{
    keyName: "key1 or key2 (basically which key you want to regenerate)"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...