Поделиться через


Установка, обновление и смена секрета в Azure Key Vault с помощью JavaScript

Создайте SecretClient с соответствующими учетными данными программной проверки подлинности, а затем используйте клиент для задания, обновления и смены секрета в Azure Key Vault.

Установка секрета

Чтобы задать секрет в Azure Key Vault, используйте метод setSecret класса SecretClient.

Тип значения секрета — это строка. Начальное значение может быть любым, что можно сериализовать в строку, например данные в формате JSON или BASE64. Перед заданием секрета в Key Vault и десериализации необходимо предоставить сериализацию после получения секрета из Key Vault.

const name = 'mySecret';
const value = 'mySecretValue'; // or JSON.stringify({'key':'value'})

const { name, value, properties } = await client.setSecret(
    secretName,
    secretValue
); 

При создании секрета ответ KeyVaultSecret включает объект SecretProperties , содержащий метаданные секрета, такие как:

  • createdOn: дата и время создания секрета в формате UTC.
  • id: полный URL-адрес секрета.
  • recoverableDays: количество дней, когда секрет можно восстановить после удаления.
  • recoveryLevel: значения: "Purgeable", "Recoverable+Purgeable", "Recoverable", "Recoverable+ProtectedSubscription".
  • updatedOn: дата и время последнего обновления секрета в формате UTC.
  • version: версия секрета.

Задание секрета со свойствами

Используйте метод setSecret класса SecretClient с setSecretOptions, чтобы включить необязательные параметры, которые живут с секретом, например:

  • contentType: ваше представление и понимание типа контента секрета. Предложения по использованию включают собственный тип, собственный тип TypeScript или тип MIME. Это значение отображается в портал Azure.
  • enabled: значение true.
  • expiresOn: дата и время истечения срока действия секрета в формате UTC.
  • notBefore: дата и время в формате UTC, до которого не может использоваться секрет.
  • tags: пользовательские пары "имя-значение", которые можно использовать для связывания с секретом.
const name = 'mySecret';
const value = JSON.stringify({
    'mykey':'myvalue', 
    'myEndpoint':'https://myendpoint.com'
});
const secretOptions = {
    // example options
    contentType: 'application/json',
    tags: { 
        project: 'test-cluster', 
        owner: 'jmclane',
        team: 'devops'
    }
};

const { name, value, properties } = await client.setSecret(
    secretName,
    secretValue, 
    secretOptions
);

Этот метод возвращает объект KeyVaultSecret .

Обновление значения секрета

Чтобы обновить значение секрета, используйте метод setSecret, показанный в предыдущем разделе. Обязательно передайте новое значение в виде строки и все свойства, которые вы хотите сохранить из текущей версии секрета. Все текущие свойства, не заданные в дополнительных вызовах setSecret, будут потеряны.

Это создает новую версию секрета. Возвращенный объект SecretProperties включает новый идентификатор версии.

Обновление свойств секрета

Чтобы обновить свойства секрета, используйте метод updateSecretProperties класса SecretClient. Свойства, которые не указаны в запросе, остаются неизменными. Значение самого секрета не может быть изменено. Для этой операции требуется разрешение секретов или набора.

const name = 'mySecret';

// Update tags
const updatedTagName = 'existingTag';
const updatedTagValue = secret.properties.version.tags[updatedTagName] + ' additional information';

// Use version from existing secret
const version = secret.properties.version;

// Options to update
const secretOptions = {
    tags: {
        'newTag': 'newTagValue', // Set new tag
        'updatedTag': updatedTagValue // Update existing tag
    },
    enabled: false
}

// Update secret's properties - doesn't change secret name or value
const properties = await client.updateSecretProperties(
    secretName,
    secretVersion,
    secretOptions,
);

Этот метод возвращает объект SecretProperties .

Поворот секрета

Чтобы сменить секрет, необходимо создать подписку на событие "Сетка событий" для события SecretNearExpiry и предоставить функцию поворота, которая должна вызываться с триггерами событий. Используйте одно из следующих руководств по автоматизации смены секрета для ресурсов , которые используют:

Следующие шаги