Aracılığıyla paylaş


JavaScript ile Azure Key Vault'da anahtarın özelliklerini oluşturma, döndürme ve güncelleştirme

Uygun programlı kimlik doğrulaması kimlik bilgileriyleKeyClient'ı oluşturun, ardından Azure Key Vault'da anahtarı ayarlamak, güncelleştirmek ve döndürmek için istemciyi kullanın.

Anahtarı döndürmek, anahtarın yeni bir sürümünü oluşturmak ve bu sürümü en son sürüm olarak ayarlamak anlamına gelir. Önceki sürüm silinmez, ancak artık etkin sürüm değildir.

Döndürme ilkesiyle anahtar oluşturma

Azure Key Vault'de anahtar oluşturmak için KeyClient sınıfının createKey yöntemini kullanın. İsteğe bağlı createKeyOptions nesnesiyle tüm özellikleri ayarlayın. Anahtar oluşturulduktan sonra, anahtarı bir döndürme ilkesiyle güncelleştirin.

KeyVaultKey döndürülür. updateKeyRotationPolicy kullanarak anahtarı bildirim içeren bir ilkeyle güncelleştirin.

Kolaylık oluşturma yöntemleri, bu anahtar türüyle ilişkili özellikleri ayarlayan aşağıdaki anahtar türleri için kullanılabilir:

// 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);
}

Anahtarı el ile döndürme

Anahtarı döndürmeniz gerektiğinde rotateKey yöntemini kullanın. Bu işlem anahtarın yeni bir sürümünü oluşturur ve bu sürümü etkin sürüm olarak ayarlar.

// 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);
}

Anahtar özelliklerini güncelleştirme

Anahtarın en son sürümünün özelliklerini updateKeyProperties ile güncelleştirin veya anahtarın belirli bir sürümünü updateKeyProperties ile güncelleştirin. Belirtilmeyen tüm UpdateKeyPropertiesOptions özellikleri değiştirilmeden bırakılır. Bu, anahtar değerini değiştirmez.

// 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
        }
    );
}

Anahtar değerini güncelleştirme

Bir anahtar değerini güncelleştirmek için rotateKey yöntemini kullanın. Anahtarın geçerli sürümünden korumak istediğiniz tüm özelliklerle yeni değeri geçirdiğinizden emin olun. rotateKey'e yapılan ek çağrılarda ayarlanmayan tüm geçerli özellikler kaybolur.

Bu, anahtarın yeni bir sürümünü oluşturur. Döndürülen KeyVaultKey nesnesi yeni sürüm kimliğini içerir.

Sonraki adımlar