首页 > 解决方案 > 如何使用 powerShell 在 Azure 密钥库机密中存储 json 文件内容(密钥)?

问题描述

json 文件可能包含一个或多个数据块,如下所示。

[
    {
        "ApplicationName":  "123456.Abcv.WFcvsdfa",
        "SecretKey":  "NDRkNDJjOTAtZjBhYi00NctYjkwYTNlMjNmZTQy"
    }
]

或者

[
    {
        "ApplicationName":  "753456.Abcv.WFcvsdfa",
        "SecretKey":  "NDRkNDJjOTAtZjBhYi00NctYjkwYTNlMjNmZTQy"
    },
    {
        "ApplicationName":  "9045647.GQERDF.GDEAGJWSasdf",
        "SecretKey":  "OTlmMmMxYjgtZjEzMS00MTkwLWI1NDQtYjI2MT"
    }
    {
        "ApplicationName":  "1523456.Abcv.WFcvsdfa",
        "SecretKey":  "NDRkNDJjOTAtZjBhYi00NctYjkwYTNlMjNmZTQy"
    },
    {
        "ApplicationName":  "3645647.GQERDF.GDEAGJWSasdf",
        "SecretKey":  "OTlmMmMxYjgtZjEzMS00MTkwLWI1NDQtYjI2MT"
    }
    {
        "ApplicationName":  "5423456.Abcv.WFcvsdfa",
        "SecretKey":  "NDRkNDJjOTAtZjBhYi00NctYjkwYTNlMjNmZTQy"
    },
    {
        "ApplicationName":  "6445647.GQERDF.GDEAGJWSasdf",
        "SecretKey":  "OTlmMmMxYjgtZjEzMS00MTkwLWI1NDQtYjI2MT"
    }
]

机密名称应为 ApplicationName。必须从应用程序名称中删除点。

谢谢,非常感谢您的帮助

在此处输入图像描述

标签: azurepowershellazure-keyvault

解决方案


在这里,我得到了这篇文章的解决方案,希望将来对其他人有所帮助。

$VaultName = "test900066"
$hashtable = Get-Content 'out.json' | ConvertFrom-Json 

foreach ($h in $hashtable.GetEnumerator()) {
    
    $SecureString = ConvertTo-SecureString $h.SecretKey -AsPlainText -Force
    $ApplicationName = $h.ApplicationName -Replace '\.',''
    # Write-Host "$($ApplicationName) : $SecureString"
    Set-AzKeyVaultSecret -VaultName $VaultName -Name $ApplicationName -SecretValue $SecureString
}

推荐阅读