Compartir a través de


Establecimiento, actualización y alternación de un secreto en Azure Key Vault con JavaScript

Cree SecretClient con las credenciales de autenticación de programación adecuadas y, después, use el cliente para establecer, actualizar y alternar un secreto de Azure Key Vault.

Establecimiento de un secreto

Para establecer un secreto en Azure Key Vault, use el método setSecret de la clase SecretClient.

El tipo de valor secreto es una cadena. El valor inicial puede ser cualquier cosa que se pueda serializar en una cadena, como datos codificados en JSON o BASE64. Debe proporcionar la serialización antes de establecer el secreto en Key Vault y la deserialización después de obtener el secreto de Key Vault.

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

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

Al crear el secreto, la respuesta KeyVaultSecret incluye un objeto SecretProperties que incluye los metadatos del secreto, como:

  • createdOn: Fecha y hora UTC de creación del archivo.
  • id: Dirección URL completa del secreto.
  • recoverableDays: Número de días en que el secreto se puede recuperar después de la eliminación.
  • recoveryLevel: Entre los valores, se incluyen: 'Purgeable', 'Recoverable+Purgeable', 'Recoverable', 'Recoverable+ProtectedSubscription'.
  • updatedOn: Fecha y hora UTC de la última actualización del archivo.
  • version: Versión del secreto.

Establecimiento de un secreto con propiedades

Use el método setSecret de la clase SecretClient con SetSecretOptions para incluir parámetros opcionales que se encuentran con el secreto, como:

  • contentType: Representación y comprensión del tipo de contenido del secreto. Las sugerencias para su uso incluyen un tipo nativo, su propio tipo TypeScript personalizado o un tipo MIME. Este valor es visible en Azure Portal.
  • enabled: Su valor predeterminado es true.
  • expiresOn: Fecha y hora UTC de la expiración del secreto.
  • notBefore: Fecha y hora UTC antes de la cual no se puede usar el secreto.
  • tags: Pares nombre-valor personalizados que puede usar para asociarse con el secreto.
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
);

Este método devuelve el objeto KeyVaultSecret.

Actualización del valor del secreto

Para actualizar un valor secreto, use el método setSecret que se muestra en la sección anterior. Asegúrese de pasar el nuevo valor como una cadena y todas las propiedades que desea mantener de la versión actual del secreto. Se perderán todas las propiedades actuales que no estén establecidas en llamadas adicionales para setSecret.

Esto genera una nueva versión de un secreto. El objeto SecretProperties devuelto incluye el nuevo Id. de versión.

Actualizar las propiedades del secreto

Para actualizar las propiedades de un secreto, use el método updateSecretProperties de la clase SecretClient. Las propiedades que no se especifican en la solicitud se quedan sin cambiar. No se puede cambiar el valor de un secreto como tal. Esta operación requiere el permiso secrets/set.

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,
);

Este método devuelve el objeto SecretProperties.

Alternación de un secreto

Para alternar un secreto, debe crear una suscripción de eventos de Event Grid para el evento SecretNearExpiry y proporcionar la funcionalidad de alternación a la que se debería llamar con los desencadenadores de eventos. Use uno de los siguientes tutoriales de Automatización de la alternación de un secreto para los recursos que usan:

Pasos siguientes