在 ARM 模板中创建的对象的秘密能否自动添加到 Key Vault
Can Secrets From Objects Created in ARM Templates Get Auto Added to Key Vault
如果我有可以创建的 Azure ARM 模板:
- Azure 容器注册表
- Azure 密钥保管库
有没有办法使用 ARM 模板将 Azure 容器注册表的用户名和密码自动添加到 Azure Key Vault?
是否有某种方法可以为此目的在 ARM 模板中引用 Azure 容器注册表用户名和密码机密?
更新
@EdBoykin 的回答是正确的,这就是我最后的结果:
{
"type": "Microsoft.KeyVault/vaults/secrets",
"name": "[concat(parameters('key_vault_name'), '/AzureContainerRegistryKey1')]",
"apiVersion": "2015-06-01",
"properties": {
"contentType": "text/plain",
"value": "[listCredentials(resourceId('Microsoft.ContainerRegistry/registries', parameters('container_registry_name')), '2017-10-01').passwords[0].value]"
},
"dependsOn": [
"[concat('Microsoft.KeyVault/vaults/', parameters('key_vault_name'))]",
"[concat('Microsoft.ContainerRegistry/registries/', parameters('container_registry_name'))]"
]
}
穆罕默德,
要在 KeyVault 中创建机密,您需要创建一个如下所示的 ARM 模板。确保更新 'dependson' 部分,以便此资源取决于首先创建的 ACR。用户名将成为 ACR 资源名称。因此,无论您在 ARM 脚本中将其设置为什么,您都可以将其作为密钥保管库机密存储在密钥保管库中。
对于密码或密钥,这就是您所做的。这是添加 KeyVault 机密的示例模板
{
"type": "Microsoft.KeyVault/vaults/secrets",
"name": "[concat(variables('keyVaultName'), '/{YourACRKey1SecretName}')]",
"apiVersion": "2015-06-01",
"properties": {
"contentType": "text/plain",
"value": "[listCredentials(resourceId('Microsoft.ContainerRegistry/registries', parameters('YourACRName')), '2017-10-01').passwords[0].value]"
},
"dependsOn": []
}
{YourACRKey1SecretName} 应更改为您的 ACR Key1 值的秘密名称。
要在您的密钥保管库中设置另一个密钥,请使用新名称创建另一个密钥保管库机密资源并将其用作值:
对于密钥 2
[listCredentials(resourceId('Microsoft.ContainerRegistry/registries', parameters('YourACRName')), '2017-10-01').passwords[1].value]
如果我有可以创建的 Azure ARM 模板:
- Azure 容器注册表
- Azure 密钥保管库
有没有办法使用 ARM 模板将 Azure 容器注册表的用户名和密码自动添加到 Azure Key Vault?
是否有某种方法可以为此目的在 ARM 模板中引用 Azure 容器注册表用户名和密码机密?
更新
@EdBoykin 的回答是正确的,这就是我最后的结果:
{
"type": "Microsoft.KeyVault/vaults/secrets",
"name": "[concat(parameters('key_vault_name'), '/AzureContainerRegistryKey1')]",
"apiVersion": "2015-06-01",
"properties": {
"contentType": "text/plain",
"value": "[listCredentials(resourceId('Microsoft.ContainerRegistry/registries', parameters('container_registry_name')), '2017-10-01').passwords[0].value]"
},
"dependsOn": [
"[concat('Microsoft.KeyVault/vaults/', parameters('key_vault_name'))]",
"[concat('Microsoft.ContainerRegistry/registries/', parameters('container_registry_name'))]"
]
}
穆罕默德, 要在 KeyVault 中创建机密,您需要创建一个如下所示的 ARM 模板。确保更新 'dependson' 部分,以便此资源取决于首先创建的 ACR。用户名将成为 ACR 资源名称。因此,无论您在 ARM 脚本中将其设置为什么,您都可以将其作为密钥保管库机密存储在密钥保管库中。
对于密码或密钥,这就是您所做的。这是添加 KeyVault 机密的示例模板
{
"type": "Microsoft.KeyVault/vaults/secrets",
"name": "[concat(variables('keyVaultName'), '/{YourACRKey1SecretName}')]",
"apiVersion": "2015-06-01",
"properties": {
"contentType": "text/plain",
"value": "[listCredentials(resourceId('Microsoft.ContainerRegistry/registries', parameters('YourACRName')), '2017-10-01').passwords[0].value]"
},
"dependsOn": []
}
{YourACRKey1SecretName} 应更改为您的 ACR Key1 值的秘密名称。
要在您的密钥保管库中设置另一个密钥,请使用新名称创建另一个密钥保管库机密资源并将其用作值:
对于密钥 2
[listCredentials(resourceId('Microsoft.ContainerRegistry/registries', parameters('YourACRName')), '2017-10-01').passwords[1].value]