Share via


Een geheim instellen, bijwerken en roteren in Azure Key Vault met JavaScript

Maak de SecretClient met de juiste programmatische verificatiereferenties en gebruik vervolgens de client om een geheim in Azure Key Vault in te stellen, bij te werken en te roteren.

Een geheim instellen

Als u een geheim wilt instellen in Azure Key Vault, gebruikt u de methode setSecret van de klasse SecretClient.

Het type geheime waarde is een tekenreeks. De beginwaarde kan alles zijn dat kan worden geserialiseerd naar een tekenreeks, zoals JSON- of BASE64-gecodeerde gegevens. U moet de serialisatie opgeven voordat u het geheim instelt in de Key Vault en deserialisatie nadat u het geheim hebt opgehaald uit de Key Vault.

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

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

Wanneer u het geheim maakt, bevat het KeyVaultSecret-antwoord een SecretProperties-object dat de metagegevens van het geheim bevat, zoals:

  • createdOn: UTC-datum en -tijd waarop het geheim is gemaakt.
  • id: de volledige URL van het geheim.
  • recoverableDays: het aantal dagen dat het geheim kan worden hersteld na verwijdering.
  • recoveryLevel: Waarden zijn onder andere: 'Purgeable', 'Recoverable+Purgeable', 'Recoverable', 'Recoverable+ProtectedSubscription'.
  • updatedOn: UTC-datum en -tijd waarop het geheim voor het laatst is bijgewerkt.
  • version: De versie van het geheim.

Een geheim met eigenschappen instellen

Gebruik de methode setSecret van de klasse SecretClient met de SetSecretOptions om optionele parameters op te nemen die met het geheim worden gebruikt, zoals:

  • contentType: Uw weergave van en begrip van het inhoudstype van het geheim. Suggesties voor gebruik zijn een systeemeigen type, uw eigen aangepaste TypeScript-type of een MIME-type. Deze waarde is zichtbaar in de Azure Portal.
  • enabled: wordt standaard ingesteld op true.
  • expiresOn: UTC-datum en -tijd waarop het geheim verloopt.
  • notBefore: UTC-datum en -tijd waarvoor het geheim niet kan worden gebruikt.
  • tags: aangepaste naam/waardeparen die u kunt gebruiken om aan het geheim te koppelen.
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
);

Met deze methode wordt het object KeyVaultSecret geretourneerd.

Geheime waarde bijwerken

Als u een geheime waarde wilt bijwerken, gebruikt u de methode setSecret die in de vorige sectie wordt weergegeven. Zorg ervoor dat u de nieuwe waarde doorgeeft als een tekenreeks en alle eigenschappen die u wilt behouden van de huidige versie van het geheim. Alle huidige eigenschappen die niet zijn ingesteld in extra aanroepen om in te stellenSecret, gaan verloren.

Hiermee wordt een nieuwe versie van een geheim gegenereerd. Het geretourneerde Object SecretProperties bevat de nieuwe versie-id.

Geheime eigenschappen bijwerken

Als u de eigenschappen van een geheim wilt bijwerken, gebruikt u de methode updateSecretProperties van de klasse SecretClient. Eigenschappen die niet zijn opgegeven in de aanvraag, blijven ongewijzigd. De waarde van een geheim zelf kan niet worden gewijzigd. Voor deze bewerking is de machtiging geheimen/instellen vereist.

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

Deze methode retourneert het object SecretProperties .

Een geheim draaien

Als u een geheim wilt roteren, moet u een Event Grid-gebeurtenisabonnement maken voor de gebeurtenis SecretNearExpiry en de rotatiefunctionaliteit opgeven die moet worden aangeroepen met de gebeurtenistriggers. Gebruik een van de volgende zelfstudies De rotatie van een geheim automatiseren voor resources die gebruikmaken van:

Volgende stappen