当前位置: 首页 > 知识库问答 >
问题:

使用PowerShell脚本中的托管标识从Azure Key Vault读取机密

微生良策
2023-03-14

我正在使用下面的链接使用PowerShell脚本中的托管标识从Azure Key Vault读取机密。

链接:https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-ua-arm

PowerShell脚本

$response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&client_id=<%ManagedIdentitiesClientId%>&resource=https://management.azure.com/' -Method GET -Headers @{Metadata="true"}
$content = $response.Content | ConvertFrom-Json
$ArmToken = $content.access_token
Write-Output $ArmToken

当我在VDI上运行此脚本时,出现以下错误:-

Invoke-WebRequest : Unable to connect to the remote server
At line:1 char:13
+ $response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/i ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
 
ConvertFrom-Json : Cannot bind argument to parameter 'InputObject' because it is null.
At line:2 char:32
+ $content = $response.Content | ConvertFrom-Json
+                                ~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [ConvertFrom-Json], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ConvertFromJsonCommand

似乎我无法连接到http://169.254.169.254/网址。

是否有其他方法或任何帮助是非常感谢的。

共有1个答案

公良向阳
2023-03-14

可以在Azure DevOps管道中使用变量组来使用管道中的密钥Vault机密

转到您的运营模式项目-

将Azure密钥保管库中的链接秘密作为变量启用。请选择服务连接和密钥保管库。

确保为您的服务连接提供访问策略,以获取和列出机密

在变量下,单击添加并选择要在管道中使用的秘密。单击保存

单击管道权限并授予对管道的访问权限。

现在,您可以在CD管道中使用这些变量

参考:在运营模式管道中集成并获取Azure Key Vault秘密(zimmergren.net)

 类似资料:
  • 在我的azure app服务中,在app settings下,我添加了一个名为“something”的密钥,它的值指向密钥库的引用,如下所示: 现在,我可以从appsettings中检索值,但它将输出作为而不是实际值 我希望输出是我设置的值,而不是keyvault引用字符串本身。 我正在使用.NET MVC 4.7 web应用程序

  • 我正在尝试使用托管标识从Azure Windows VM访问Azure存储资源。 我已经按照这里的指示做了https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-vm-windows-access-storage但本教程中的访问部分是使用完成的。NET,这

  • 接下来的步骤是: 创建了启用标识的新虚拟机(已分配系统) 使用存储帐户中的角色分配在IAM中添加虚拟机 能够使用C#生成令牌 为现有VM获取托管标识服务。 使用-az keyvault set-policy--name“”--object-id“--secret-permissions get list分配了访问azure KV的权限 现在,在执行来自VM的代码时,我得到一个错误

  • 有没有办法将Azure托管标识与LinuxVM一起使用来访问AzureSQL数据库?我只能找到这个文档https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-sql它专门针对Windows VM。Linux机器是否有文档

  • 我有一个控制台应用,使用的是"Microsoft. Azure. Services. AppAuthentiation"Version="1.2.0-preview"和"Microsoft. Azure. KeyVault"Version="3.0.2"。 我在Windows 2019虚拟机上有一个用户分配的托管标识。 托管标识已在我的keyvault上获得贡献者角色分配,并读取到它所在的资源组。

  • 问题内容: 我有一个动态生成的页面,我想在其中使用静态JavaScript,并向其传递JSON字符串作为参数。我已经看到Google使用了这种方法。 但是,我应该如何从JavaScript中读取JSON字符串? 在此JavaScript中,我想使用HTML文档中的JSON参数。我不知道是否最好使用jQuery。 问题答案: 我将脚本声明更改为: 注释类型和ID字段。之后 在所有浏览器中都可以正常工