Compartilhar via


Definir, atualizar e girar um segredo no Azure Key Vault com o JavaScript

Crie o SecretClient com as credenciais de autenticação programática apropriadas e use o cliente para fazer backup e restaurar um segredo existente do Azure Key Vault.

Definir um segredo

Para definir um segredo no Azure Key Vault, use o método setSecret da classe SecretClient.

O tipo de valor do segredo é uma cadeia de caracteres. O valor inicial pode ser tudo que possa ser serializado para uma cadeia de caracteres, como dados codificados em JSON ou BASE64. Você precisa fornecer a serialização antes de definir o segredo no Key Vault e a desserialização depois de obter o segredo do Key Vault.

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

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

Quando você cria o segredo, a resposta KeyVaultSecret inclui um objeto SecretProperties que inclui os metadados do segredo, como:

  • createdOn: Data e hora UTC em que o segredo foi criado.
  • id: URL completa do segredo.
  • recoverableDays: número de dias em que o segredo pode ser recuperado após a exclusão.
  • recoveryLevel: os valores incluem: 'Purgeable', 'Recoverable+Purgeable', 'Recoverable', 'Recoverable+ProtectedSubscription'.
  • updatedOn: data e hora UTC da atualização mais recente do segredo.
  • version: versão do segredo.

Definir um segredo com propriedades

Use o método setSecret da classe SecretClient com SetSecretOptions para incluir parâmetros opcionais que residem com o segredo, como:

  • contentType: sua representação e compreensão do tipo de conteúdo do segredo. As sugestões de uso incluem um tipo nativo, seu próprio tipo TypeScript personalizado ou um tipo MIME. Esse valor é visível no portal do Azure.
  • enabled: o padrão é true.
  • expiresOn: data e hora UTC em que o segredo expira.
  • notBefore: data e hora UTC antes da qual o segredo não pode ser usado.
  • tags: pares de nome/valor personalizados que você pode usar para associar ao segredo.
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
);

Esse método retorna o objeto KeyVaultSecret.

Atualizar valor de segredo

Para atualizar um valor de segredo, use o método setSecret mostrado na seção anterior. Certifique-se de passar o novo valor como uma cadeia de caracteres e todas as propriedades que você quer manter da versão atual do segredo. Todas as propriedades atuais não definidas em chamadas adicionais para setSecret serão perdidas.

Isso gera uma nova versão de um segredo. O objeto SecretProperties retornado inclui a nova ID de versão.

Atualizar propriedades de segredo

Para atualizar as propriedades de um segredo, use o método updateSecretProperties da classe SecretClient. As propriedades que não são especificadas na solicitação permanecem inalteradas. O valor de um segredo em si não pode ser alterado. Essa operação exige a permissão de segredos/definição.

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

Esse método retorna o objeto SecretProperties.

Girar um segredo

Para girar um segredo, você precisa criar uma assinatura de evento da Grade de Eventos para o evento SecretNearExpiry e fornecer a funcionalidade de rotação que deve ser chamada com os gatilhos de evento. Use um dos seguintes tutoriais Automatizar o rotação de um segredo para recursos que usam:

Próximas etapas