问题标签 [azure-bicep]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
282 浏览

azure - 如何访问/转换模块输出到二头肌中的特定对象?

我正在返回 keyvault 的二头肌下方。我喜欢访问父二头肌的 keyvault 中的属性/功能。但不确定将其用作模块时如何实现。

  1. 我有keyvault.bicep
  1. 我有parent.bicep(其中 keyvault.bicep 作为模块包含)
  1. 但 getSecret 方法在父二头肌中是未知的

请建议如何进行?

0 投票
3 回答
350 浏览

azure - App Service Managed Identity 和 Key Vault 的正确方式

我目前正在尝试使用 azure bicep 部署资源组,但是,我在使用 azure 应用程序服务的密钥库时遇到了问题。我想知道我是否真的以正确的方式这样做。我有一个主要的二头肌文件,大致如下:

我的问题来自于 site.bicep 的实现,我首先从导出的变量中传递秘密 uri,最后创建 web 应用程序作为应用程序洞察力、sql 等......在我们使用之前,所有这些都需要设置并在 keyvault 中他们导出的秘密 uri 以构建配置。我有一些类似的东西:site.bicep(之前):

此实现的唯一问题是密钥库必须在网站之前构建,因为 sql、ai 和其他服务会将它们的值存储在密钥库中,以供 Web 应用程序通过它们各自的 uri 使用。问题在于,KeyVault 理所当然地不知道哪个 azure 服务可以访问它的密钥。

我的问题是在密钥库之前构建 Web 应用程序的解决方案是解决这个问题的唯一方法吗?我在 Web 应用程序上使用托管身份,如果可能,我希望继续这样做。我的最终解决方案有点像这样:

site.bicep(最终)

和 KeyVault 将需要一个 dependsOn 网站

keyVault.bicep(最终):

0 投票
1 回答
53 浏览

azure - 我们可以在第二个二头肌文件中引用存储帐户属性吗?

我有 2 个天蓝色的二头肌文件。

  1. 存储.二头肌
  2. cdn二头肌

现在,我成功地从 storage.bicep 创建了一个存储帐户和 BLOB 容器。是否可以从 storage.bicep 获取存储帐户属性的值以在 cdn.bicep 中使用它?

0 投票
1 回答
410 浏览

azure - 二头肌将存储帐户连接字符串传递给密钥保管库机密

我一直在浏览这个,但我找不到任何实用或有用的解决方案。

我正在使用二头肌部署存储帐户。这很好用,但我正在尝试获取存储帐户连接字符串并将其作为机密存储到 azure 密钥保管库中。

到目前为止,我有以下代码

我找到了这段代码,但不幸的是它没有解释,对我不起作用

如果可能的话,任何人都可以向我解释如何实现这一目标。非常感谢你的帮助

更新:

所以我对我的代码做了一些更新:

但是当我运行模板时,我得到了这个错误

我在错误中看到名称是正确的,但我不完全理解我在段长度上做错了什么

0 投票
1 回答
743 浏览

azure - 如何在二头肌中输出资源ID

二头肌中如何输出资源id,创建子网时如何获取输出字符串,虚拟网络语法如下图

0 投票
1 回答
214 浏览

azure - Bicep 循环遍历密钥库密钥并加密存储帐户

关于实现逻辑,我在这里有一个巨大的障碍。

我正在与二头肌合作创建这些资源。

  • 存储帐户
  • 密钥库
  • 将存储帐户连接字符串传递给密钥保管库机密
  • 在密钥保管库中创建密钥并使用该密钥加密存储帐户。

前三个步骤完成。如果我声明 2 个存储帐户,它将自动创建 2 个秘密连接字符串和 2 个密钥。它们匹配的所有配对(存储名称和连接字符串)。

现在我面临的问题如下,首先,这是我的代码。

我有 2 个要创建的存储帐户。和钥匙,包含存储代码。我想要做并且我有问题要实现,是如何将正确的密钥与正确的存储帐户匹配。在这种特定情况下,我必须编写如下代码:

bicep 脚本将创建 2 个存储帐户和相应命名的机密:

我要做的是用密钥 DSEC 加密存储帐户 DSEC,用密钥 SDRE 加密存储 SDRE。但是由于我是二头肌新手,所以我在实现这一点时遇到了一些问题。

如果有人可以帮助我了解如何实现这种正确的配对,我将不胜感激。

更新:测试托马斯解决方案后,这是我得到的错误:

0 投票
1 回答
284 浏览

azure - 二头肌生成 GUID

我正在学习二头肌以及如何使用来部署 azure 资源。我一直在进行密钥保管库部署,如下所示:

我现在想做的是以这种格式为每个部署创建一个 GUID,例如:

我找不到任何来源来实现这一目标。

谁能指导我正确的道路。

非常感谢您的帮助和对初学者的耐心

0 投票
1 回答
777 浏览

azure-resource-manager - 模板中的 Azure 二头肌多个范围

在使用 terraform 很长一段时间后,我决定开始学习 azure bicep。到目前为止,我正试图掌握逻辑。到目前为止,我一直在尝试部署存储帐户和 keyvault。我在这里做的是以下内容。

  • 创建存储帐户
  • 使用现有密钥保管库将存储帐户连接字符串存储为机密
  • 根据存储帐户名称创建密钥

这正如我所料。

所以我想向前迈出一步。这是我有点困惑的地方。

我想做的是使用相同的二头肌模板,在不同的资源组中创建一个新的秘密到不同的密钥库中。

现在,根据我对 azure 文档的理解,该模板带有一个默认值scope,在我的特定情况下,它以我的默认订阅为目标,并从终端运行我的二头肌模板,我使用命令

这是我的模板:

根据此处的文档https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/deploy-to-resource-group?tabs=azure-cli

当我需要定位一个特定的资源组时,我可以使用资源中的范围,所以我创建了这个:

到目前为止没有错误,但是当我必须创建托管标识资源时会出现问题。

在密钥库中我可以声明范围,但对于底层资源,例如访问策略等,我不能声明范围。那么二头肌如何理解这些资源需要针对特定​​的资源组和特定的密钥库呢?

因为当我运行终端命令时,我针对的是一个特定的资源组,所以我不太明白如何使用一个模板来相应地针对不同的资源组和资源。

我希望我能说清楚我的观点,如果我没有,请随时向我询问更多信息。

非常感谢您的时间和帮助

更新:当我尝试按原样运行代码时,出现以下错误:

更新:所以我跟随丹尼尔的领导,在第二个模板中我部署了第二个模板所需的代码,如下所示:

模板2.二头肌

在我的主模板中,我添加了模块:

但是有些事情对我来说不是 100% 清楚的。for覆盖我在 template2.bicep 中声明的所有循环和参数名称是如何工作的,但是模块需要一个范围subscription,如果我声明范围,这不会覆盖默认值吗?

对不起,新手问题,我试图打破我的思维定势,更好地了解二头肌是如何工作的。

任何解释都会令人惊奇和有帮助

0 投票
0 回答
38 浏览

azure-resource-manager - Azure Bicep Storage 帐户使用来自不同 kevault 的密钥加密存储

我希望有人可以帮助我解决这个问题。

我有 2 个资源组,每个资源组都有一个密钥保管库。如下

现在我试图学习和实现的是如何在“rg-test-shared”中创建一个存储帐户在这个密钥库中创建一个秘密连接字符串,并在同一个密钥库中创建一个密钥并使用加密存储帐户这把钥匙。

到目前为止,一切正常。但我决定更进一步,并尝试创建第二个资源组,在该资源组rg-test-platform上我有第二个密钥保管库。这是作为我的二头肌模板中的一个模块运行的。所以我想在密钥库中创建密钥,rg-test-platform并使用相同的密钥,加密里面的存储帐户rg-test-shared,这只是为了学习如何使用模块和拆分代码逻辑,并将所有内容放在正确的位置。

在继续之前,这是我的代码:

模块rg-test-platoform

主模板rg-test-shared

有了这个我没有任何问题,当我尝试更新存储帐户资源以引用Key另一个资源组中的资源时,问题开始发生。

正如您在存储帐户中这一行的代码中看到的那样:

我希望加密寻找我在我的模块中创建的密钥,这个:

我试图引用这个模块如下

但这是不对的,因为我无法访问保险库网址。

请我们提供任何帮助,因为我不知道如何引用该密钥库来检索该密钥并使用它来加密存储帐户。

如果您需要任何信息,请告诉我

0 投票
1 回答
276 浏览

azure-resource-manager - 将存储帐户连接字符串传递给密钥保管库

我有 2 个资源组如下:

在资源组一中,我正在尝试创建一个存储帐户并获取其连接字符串并将其传递给resourcegroup2我拥有密钥保管库的地方。

我的实际代码如下。

共享二头肌

这是我的 storage-account.bicep

这是此工作流程的详细信息。

在资源组中,rg-shared我有 2 个密钥保管库,keyvault-shared并且keyvaultstorage. 他们的目的如下:

而在另一个资源组中,rg-storage我想创建一个存储帐户,使用我之前在 keyault 中生成的密钥加密存储帐户,并将此 storageAccount 的连接字符串传递给shared密钥保管库。

按照您的建议,我使用了 shared.bicep 中的模块,并在我的 storage account.bicep 中调用了它。

根据我的命令:

输出它显示将仅在 storage-account.bicep 中创建资源:

  • 用户身份
  • 存储帐户
  • 容器

如何重现:

  • 创建 2 个资源组(共享和存储帐户)
  • 在共享中创建 2 个密钥保管库
  • 使用正确的密钥保管库名称更新二头肌文件。
  • 在两个二头肌脚本中tenantCode放入一个随机名称以创建一个或多个存储帐户。
  • 并运行上面的二头肌命令。

我试图尽可能清楚地解释这个问题,因为它让我发疯,不知道我做错了什么以及这个阶段。

请,如果您需要有关此问题的更多信息,请询问,并很乐意澄清任何疑问

更新:为了事先生成密钥,我将密钥创建移动到 storage.bicep 中,如下所示:

但我收到此错误:

我不明白到底指的是什么。

更新:这是一个有趣的输出。因此,根据上次更新(非常感谢您的帮助),我意识到在代码中创建了所有正确的资源,但最后它抛出了这个错误: