Partilhar via


Definir, atualizar e girar um segredo no Cofre da Chave do Azure com JavaScript

Crie o SecretClient com as credenciais de autenticação programática apropriadas e use o cliente para definir, atualizar e girar um segredo no Cofre da Chave do Azure.

Defina um segredo

Para definir um segredo no Cofre da Chave do Azure, use o método setSecret da classe SecretClient .

O tipo de valor secreto é uma cadeia de caracteres. O valor inicial pode ser qualquer coisa que possa ser serializada em uma cadeia de caracteres, como dados codificados JSON ou BASE64. Você precisa fornecer a serialização antes de definir o segredo no Cofre da Chave e a desserialização depois de obter o segredo do Cofre da Chave.

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 completo 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: UTC data e hora em que o segredo foi atualizado pela última vez.
  • 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 vivem 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 secreto

Para atualizar um valor secreto, 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ê deseja 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 versão Id.

Atualizar propriedades secretas

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 são mantidas inalteradas. O valor de um segredo em si não pode ser alterado. Esta operação requer a permissão 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,
);

Esse método retorna o objeto SecretProperties .

Rodar um segredo

Para girar um segredo, você precisa criar uma assinatura de evento de 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 Automatize a rotação de um segredo para recursos que usam:

Próximos passos