Delen via


Eigenschappen van een sleutel maken, draaien en bijwerken in Azure Key Vault met JavaScript

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

Als u een sleutel wilt draaien, moet u een nieuwe versie van de sleutel maken en die versie instellen als de nieuwste versie. De vorige versie wordt niet verwijderd, maar is niet langer de actieve versie.

Een sleutel maken met een rotatiebeleid

Als u een sleutel wilt maken in Azure Key Vault, gebruikt u de methode createKey van de Klasse KeyClient . Stel alle eigenschappen in met het optionele createKeyOptions-object . Nadat de sleutel is gemaakt, werkt u de sleutel bij met een rotatiebeleid.

Er wordt een KeyVaultKey geretourneerd. Werk de sleutel bij met behulp van updateKeyRotationPolicy met een beleid dat melding bevat.

Methoden voor het maken van gemak zijn beschikbaar voor de volgende sleuteltypen, die eigenschappen instellen die aan dat sleuteltype zijn gekoppeld:

// Azure client libraries
import { DefaultAzureCredential } from '@azure/identity';
import {
  CreateKeyOptions,
  KeyClient,
  KeyRotationPolicyProperties,
  KnownKeyOperations,
  KnownKeyTypes
} from '@azure/keyvault-keys';

// Day/time manipulation
import dayjs from 'dayjs';
import duration from 'dayjs/plugin/duration';
dayjs.extend(duration);

// Authenticate to Azure Key Vault
const credential = new DefaultAzureCredential();
const client = new KeyClient(
    `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
    credential
);

// Name of key
const keyName = `mykey-${Date.now().toString()}`;

// Set key options
const keyOptions: CreateKeyOptions = {
enabled: true,
expiresOn: dayjs().add(1, 'year').toDate(),
exportable: false,
tags: {
    project: 'test-project'
},
keySize: 2048,
keyOps: [
    KnownKeyOperations.Encrypt,
    KnownKeyOperations.Decrypt
    // KnownKeyOperations.Verify,
    // KnownKeyOperations.Sign,
    // KnownKeyOperations.Import,
    // KnownKeyOperations.WrapKey,
    // KnownKeyOperations.UnwrapKey
]
};

// Set key type
const keyType = KnownKeyTypes.RSA; //  'EC', 'EC-HSM', 'RSA', 'RSA-HSM', 'oct', 'oct-HSM'

// Create key
const key = await client.createKey(keyName, keyType, keyOptions);
if (key) {
    // Set rotation policy properties: KeyRotationPolicyProperties
    const rotationPolicyProperties: KeyRotationPolicyProperties = {
        expiresIn: 'P90D',
        lifetimeActions: [
        {
            action: 'Rotate',
            timeAfterCreate: 'P30D'
        },
        {
            action: 'Notify',
            timeBeforeExpiry: dayjs.duration({ days: 7 }).toISOString()
        }
    ]};
    
    // Set rotation policy: KeyRotationPolicy
    const keyRotationPolicy = await client.updateKeyRotationPolicy(
        key.name,
        rotationPolicyProperties
    );
    console.log(keyRotationPolicy);
}

Sleutel handmatig draaien

Wanneer u de sleutel wilt draaien, gebruikt u de methode rotateKey . Hiermee maakt u een nieuwe versie van de sleutel en stelt u die versie in als de actieve versie.

// Azure client libraries
import { DefaultAzureCredential } from '@azure/identity';
import {
  KeyClient
} from '@azure/keyvault-keys';

// Authenticate to Azure Key Vault
const credential = new DefaultAzureCredential();
const client = new KeyClient(
    `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
    credential
);

// Get existing key
let key = await client.getKey(`MyKey`);
console.log(key);

if(key?.name){

    // rotate key
    key = await client.rotateKey(key.name);
    console.log(key);
}

Sleuteleigenschappen bijwerken

Werk eigenschappen van de nieuwste versie van de sleutel bij met de updateKeyProperties of werk een specifieke versie van een sleutel bij met updateKeyProperties. De eigenschappen UpdateKeyPropertiesOptions die niet zijn opgegeven, blijven ongewijzigd. Hiermee wordt de sleutelwaarde niet gewijzigd.

// Azure client libraries
import { DefaultAzureCredential } from '@azure/identity';
import {
  KeyClient
} from '@azure/keyvault-keys';

// Authenticate to Azure Key Vault
const credential = new DefaultAzureCredential();
const client = new KeyClient(
    `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
    credential
);

// Get existing key
const key = await client.getKey('MyKey');

if (key) {

    // 
    const updateKeyPropertiesOptions = {
        enabled: false,
        // expiresOn,
        // keyOps,
        // notBefore, 
        // releasePolicy, 
        tags: { 
            ...key.properties.tags, subproject: 'Health and wellness' 
        }
    }
    
    // update properties of latest version
    await client.updateKeyProperties(
        key.name,
        updateKeyPropertiesOptions
    );
    
    // update properties of specific version
    await client.updateKeyProperties(
        key.name,
        key?.properties?.version,
        {
            enabled: true
        }
    );
}

Sleutelwaarde bijwerken

Als u een sleutelwaarde wilt bijwerken, gebruikt u de methode rotateKey . Zorg ervoor dat u de nieuwe waarde doorgeeft met alle eigenschappen die u wilt behouden van de huidige versie van de sleutel. Eventuele huidige eigenschappen die niet zijn ingesteld in aanvullende aanroepen omKey te draaien, gaan verloren.

Hiermee wordt een nieuwe versie van een sleutel gegenereerd. Het geretourneerde KeyVaultKey-object bevat de nieuwe versie-id.

Volgende stappen