向Zabbix登录API提供Azure Key Vault密码



如何将密码传递给Zabbix API json登录脚本,因为密码作为机密保存在Azure Key Vault中。

$json_login = '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "ZabbixUser",
"password": "**Need to getfrom Azure Key Vault secret**"
},
"id": 1,
"auth": null
}'
$output = Invoke-RestMethod -ContentType application/json -Method Post -Uri $uri -Body $json_login
Write-Output $output

使用以下内容并不安全,如纯文本形式提供:

$Password = (Get-AzKeyVaultSecret -VaultName "MyVault" -Name "MySecretName").SecretValueText

从powershell调用登录到Zabbix。

谢谢!

你可以修改请求正文的格式,$json_login如下所示,运行$Password = (Get-AzKeyVaultSecret -VaultName "MyVault" -Name "MySecretName").SecretValueText后,将$Password直接传递给正文,然后就不会有纯文本,它是安全的,因为只有具有机密的人才能在密钥保管库的访问策略中获得权限,才能Get-AzKeyVaultSecret获取它。

$json_login = @{
jsonrpc = "2.0"
method = "user.login"
params = @{
user = "ZabbixUser"
password= $Password
}
id = "1"
auth= "null"
}

有关用法的更多详细信息,请参阅此链接中的示例 2。

最新更新