Partager via


Définir, mettre à jour et renouveler un secret dans Azure Key Vault avec JavaScript

Créez le SecretClient avec les informations d’identification d’authentification par programmation appropriées, puis utilisez le client pour définir, mettre à jour et renouveler un secret existant dans Azure Key Vault.

Définir un secret

Pour définir un secret dans Azure Key Vault, utilisez la méthode setSecret de la classe SecretClient.

Le type de valeur du secret est une chaîne. La valeur initiale peut être tout ce qui est sérialisable dans une chaîne, telle que des données encodées JSON ou BASE64. Vous devez fournir la sérialisation avant de définir le secret dans le Key Vault et la désérialisation après avoir obtenu le secret à partir du Key Vault.

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

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

Lorsque vous créez le secret, la réponse KeyVaultSecret inclut un objet SecretProperties qui contient les métadonnées du secret, telles que :

  • createdOn : date et heure UTC de création du secret.
  • id : URL complète du secret.
  • recoverableDays : nombre de jours pendant lesquels le secret peut être récupéré après la suppression.
  • recoveryLevel : les valeurs sont les suivantes : « Purgeable », « Recoverable+Purgeable », « Recoverable », « Recoverable+ProtectedSubscription ».
  • updatedOn : date et heure UTC de la dernière mise à jour du secret.
  • version : version du secret.

Définir un secret avec des propriétés

Utilisez la méthode setSecret de la classe SecretClient avec SetSecretOptions pour inclure des paramètres facultatifs intégrés au secret, tels que :

  • contentType : votre représentation et votre compréhension du type de contenu du secret. Les suggestions d’utilisation incluent un type natif, votre propre type TypeScript personnalisé ou un type MIME. Cette valeur est visible dans le portail Azure.
  • enabled : définie par défaut sur True (vrai).
  • expiresOn : date et heure UTC d’expiration du secret.
  • notBefore : date et heure UTC avant lesquelles le secret ne peut pas être utilisé.
  • tags : paires nom/valeur personnalisées que vous pouvez utiliser en association avec le secret.
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
);

Cette méthode renvoie l’objet KeyVaultSecret.

Mettre à jour la valeur du secret

Pour mettre à jour la valeur d’un secret, utilisez la méthode setSecret décrite dans la section précédente. Veillez à transmettre la nouvelle valeur sous forme de chaîne et toutes les propriétés que vous souhaitez conserver à partir de la version actuelle du secret. Toutes les propriétés actuelles qui ne sont pas définies dans les appels supplémentaires à setSecret seront perdues.

Cela génère une nouvelle version d’un secret. L’objet SecretProperties retourné inclut le nouvel ID de version.

Mettre à jour les propriétés du secret

Pour mettre à jour les propriétés d’un secret, utilisez la méthode updateSecretProperties de la classe SecretClient. Les propriétés non spécifiées dans la demande restent inchangées. La valeur d’un secret même ne peut pas être modifiée. Cette opération requiert l’autorisation 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,
);

Cette méthode renvoie l’objet SecretProperties.

Renouveler un secret

Pour renouveler un secret, vous devez créer un abonnement d’événements Event Grid pour l’événement SecretNearExpiry et fournir la fonctionnalité de renouvellement qui doit être appelée avec les déclencheurs d’événements. Utilisez l’un des didacticiels suivants : Automatiser le renouvellement d’un secret pour les ressources qui utilisent :

Étapes suivantes