你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 JavaScript 在 Azure 密钥保管库中设置、更新和轮换机密
使用相应的编程身份验证凭据创建 SecretClient,然后使用客户端在 Azure 密钥保管库中设置、更新和轮换机密。
若要在 Azure 密钥保管库中设置机密,请使用 SecretClient 类的 setSecret 方法。
机密值类型为字符串。 初始值可以是可以序列化为字符串(如 JSON 或 BASE64 编码数据)的任何值。 在密钥保管库中设置机密之前,需要提供序列化;从密钥保管库获取机密后,需要提供反序列化。
const name = 'mySecret';
const value = 'mySecretValue'; // or JSON.stringify({'key':'value'})
const { name, value, properties } = await client.setSecret(
secretName,
secretValue
);
创建机密时,KeyVaultSecret 响应包括 SecretProperties 对象,该对象包含机密的元数据,例如:
createdOn
:创建机密的 UTC 日期和时间。id
:机密的完整 URL。recoverableDays
:删除机密后可以恢复机密的天数。recoveryLevel
:值包括:“Purgeable”、“Recoverable+Purgeable”、“Recoverable”、“Recoverable+ProtectedSubscription”。updatedOn
:最后更新机密的 UTC 日期和时间。version
:机密的版本。
将 SecretClient 类的 setSecret 方法与 SetSecretOptions 配合使用,以包含与机密一起运行的可选参数,例如:
contentType
:对机密内容类型的表示和理解。 使用建议包括本机类型、你自己的自定义 TypeScript 类型或 MIME 类型。 此值在 Azure 门户中可见。enabled
:默认为 true。expiresOn
:机密过期的 UTC 日期和时间。notBefore
:在此 UTC 日期和时间之前不能使用机密。tags
:可用于与机密关联的自定义名称/值对。
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
);
此方法返回 KeyVaultSecret 对象。
要更新“机密值”,请使用上一部分所示的 setSecret 方法。 请确保将新值作为字符串传递,同时传递当前版本的机密中要保留的所有属性。 在对 setSecret 的其他调用中未设置的任何当前属性都将丢失。
这会生成新版本的机密。 返回的 SecretProperties 对象包括新版本 ID。
要更新机密的属性,请使用 SecretClient 类的 updateSecretProperties 方法。 未在请求中指定的属性将保留不变。 不能更改机密本身的值。 该操作需要 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,
);
该方法返回 SecretProperties 对象。
要轮换机密,需要为 SecretNearExpiry 事件创建事件网格事件订阅,并提供应随事件触发器一起调用的轮换功能。 使用以下教程之一为使用以下内容的资源自动轮换机密: