我目前正在与AZURE Resources合作。目标是生成特定的资源API KEY并从powershell访问该密钥。
我先跑了
New-AzureRmApplicationInsightsApiKey -ResourceId {RID}
为我的资源生成API密钥。我手动检查了Azure门户,并且确实生成了密钥。
接下来我运行以下命令,以便从powershell中获取此API密钥。
Get-AzureRmApplicationInsightsApiKey -ResourceId {RID}
我得到了想要的结果(如下所示),但API KEY显示为空或空白。
ApiKey :
CreatedDate : Wed, 22 May 2019 23:36:40 GMT
Id : 7c4c61dc-b392-4aa4-992f-ee92b84e5dee
Permissions : {ReadTelemetry}
Description : test1
我可以访问API密钥及其信息,但没有看到为实际密钥定义的任何内容,它显示为空白。 Microsoft文档似乎显示了相同的结果,但是我还没有找到显示键值的方法。
我需要弄清楚如何发现和访问此键值。我想将此密钥存储在一个对象中以供访问。
执行以下操作时,键的值为空。
$apikeyinfo= Get-AzApplicationInsightsApiKey -ResourceId {RID}
$apikey = $apikeyinfo.ApiKey
答案 0 :(得分:0)
我可以重现您的问题。创建密钥后似乎无法获取密钥。如果您在门户中创建密钥,则会发现以下内容。 Azure将不会存储密钥,在关闭此刀片之后,您将无法再次看到它。
此外,它在official doc中也有提及。
因此,您的解决方法是在创建apikey时存储它,例如Out-File
$apikey = New-AzureRmApplicationInsightsApiKey -ResourceGroupName "joywebapp" -Name "joyinsight" -Description "testapiKey1" -Permissions @("ReadTelemetry", "WriteAnnotations")
$apikey.ApiKey | Out-File "C:\Users\joyw\Desktop\apikey.txt"
或者您可以直接存储对象,然后在需要再次使用它时将其导入。
$apikey = New-AzureRmApplicationInsightsApiKey -ResourceGroupName "joywebapp" -Name "joyinsight" -Description "testapiKey2" -Permissions @("ReadTelemetry", "WriteAnnotations")
$apikey | Export-Csv "C:\Users\joyw\Desktop\apikey1.csv"
$key = Import-Csv "C:\Users\joyw\Desktop\apikey1.csv"
$key.ApiKey
此外,如果要将密钥存储在本地,我建议您将其存储在azure密钥库中,然后可以在密钥库中检索密钥,更多详细信息,请参见{{3 }}。