Impostare, aggiornare e ruotare un segreto in Azure Key Vault con JavaScript
Creare il SecretClient con le credenziali di autenticazione a livello di codice appropriate, quindi usare il client per impostare, aggiornare e ruotare un segreto in Azure Key Vault.
Impostare un segreto
Per impostare un segreto in Azure Key Vault, usare il metodo setSecret della classe SecretClient.
Il tipo di valore del segreto è una stringa. Il valore iniziale può essere qualsiasi elemento che può essere serializzato in una stringa, ad esempio dati con codifica JSON o BASE64. È necessario fornire la serializzazione prima di impostare il segreto nell'insieme di credenziali delle chiavi e la deserializzazione dopo aver ottenuto il segreto dall'insieme di credenziali delle chiavi.
const name = 'mySecret';
const value = 'mySecretValue'; // or JSON.stringify({'key':'value'})
const { name, value, properties } = await client.setSecret(
secretName,
secretValue
);
Quando si crea il segreto, la risposta KeyVaultSecret include un oggetto SecretProperties che include i metadati del segreto, ad esempio:
createdOn
: data e ora UTC in cui è stato creato il segreto.id
: URL completo del segreto.recoverableDays
: numero di giorni in cui il segreto può essere recuperato dopo l'eliminazione.recoveryLevel
: i valori includono: 'Purgeable', 'Recoverable+Purgeable', 'Recoverable+ProtectedSubscription'.updatedOn
: data e ora UTC di ultimo aggiornamento del segreto.version
: versione del segreto.
Impostare un segreto con le proprietà
Usare il metodo setSecret della classe SecretClient con il SetSecretOptions per includere parametri facoltativi che risiedono con il segreto, ad esempio:
contentType
: rappresentazione e comprensione del tipo di contenuto del segreto. I suggerimenti per l'uso includono un tipo nativo, un tipo TypeScript personalizzato o un tipo MIME. Questo valore è visibile nel portale di Azure.enabled
: il valore predefinito è true.expiresOn
: data e ora UTC in cui scade il segreto.notBefore
: data e ora UTC prima della quale non è possibile usare il segreto.tags
: coppie nome/valore personalizzate che è possibile usare per associare il segreto.
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
);
Questo metodo restituisce l'oggetto KeyVaultSecret.
Aggiornare il valore del segreto
Per aggiornare un valore segreto, usare il metodo setSecret illustrato nella sezione precedente. Assicurarsi di passare il nuovo valore come stringa e tutte le proprietà che si desidera mantenere dalla versione corrente del segreto. Tutte le proprietà correnti non impostate in chiamate aggiuntive a setSecret andranno perse.
Verrà generata una nuova versione di un segreto. L'oggetto SecretProperties restituito include il nuovo ID versione.
Aggiornare le proprietà del segreto
Per aggiornare le proprietà di un segreto, usare il metodo updateSecretProperties della classe SecretClient. Le proprietà non specificate nella richiesta vengono lasciate invariate. Il valore di un segreto non può essere modificato. Questa operazione richiede l'autorizzazione 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,
);
Questo metodo restituisce l'oggetto SecretProperties.
Ruotare un segreto
Per ruotare un segreto, è necessario creare una sottoscrizione di eventi di Griglia di eventi per l'evento SecretNearExpiry e fornire la funzionalità di rotazione che deve essere chiamata con i trigger di evento. Usare una delle esercitazioni seguenti Automatizzare la rotazione di un segreto per le risorse che usano: