如何在 keyvault 中使用管理员密码创建 azure postgres 服务器?
Howto create azure postgres server with admin-password in keyvault?
为了使使用密钥保管库的参数可用于我的 azure webapp,我执行了以下操作
identity=`az webapp identity assign \
--name $(appName) \
--resource-group $(appResourceGroupName) \
--query principalId -o tsv`
az keyvault set-policy \
--name $(keyVaultName) \
--secret-permissions get \
--object-id $identity
现在我想创建一个 azure postgres 服务器,从密钥库中获取管理员密码:
az postgres server create \
--location $(location) \
--resource-group $(ResourceGroupName) \
--name $(PostgresServerName) \
--admin-user $(AdminUserName) \
--admin-password '$(AdminPassWord)' \
--sku-name $(pgSkuName)
如果我的 AdminPassWord 的值类似于
@Microsoft.KeyVault(SecretUri=https://<myKv>.vault.azure.net/secrets/AdminPassWord/)
我需要单引号(如上)来创建 postgres 服务器。但这是否意味着密码将是整个字符串 '@Microsoft.KeyVault(SecretUri=https://<myKv>.vault.azure.net/secrets/AdminPassWord/)'
而不是存储在 <myKv>
中的秘密?
当 运行 我的管道没有引号(即 --admin-password $(AdminPassWord) \
)时,我收到错误消息 syntax error near unexpected token ('
。我认为这可能是我没有为资源 postgres 服务器设置策略 --secret-permissions get
的结果。但是如何在创建 postgres 服务器之前设置它?
表达式@Microsoft.KeyVault(SecretUri=https://<myKv>.vault.azure.net/secrets/AdminPassWord/)
用于访问 Azure Web 应用程序中的密钥保管库机密值,当您使用前两个命令配置它时,Web 应用程序的托管标识将能够访问密钥保管库机密.
但是如果你想用密码创建一个azure postgres服务器,你需要先获取秘密值并使用它而不是使用表达式。
对于 Azure CLI,您可以使用 az keyvault secret show
,然后将密钥传递给 az postgres server create
中的参数 --admin-password
。
az keyvault secret show [--id]
[--name]
[--query-examples]
[--subscription]
[--vault-name]
[--version]
为了使使用密钥保管库的参数可用于我的 azure webapp,我执行了以下操作
identity=`az webapp identity assign \
--name $(appName) \
--resource-group $(appResourceGroupName) \
--query principalId -o tsv`
az keyvault set-policy \
--name $(keyVaultName) \
--secret-permissions get \
--object-id $identity
现在我想创建一个 azure postgres 服务器,从密钥库中获取管理员密码:
az postgres server create \
--location $(location) \
--resource-group $(ResourceGroupName) \
--name $(PostgresServerName) \
--admin-user $(AdminUserName) \
--admin-password '$(AdminPassWord)' \
--sku-name $(pgSkuName)
如果我的 AdminPassWord 的值类似于
@Microsoft.KeyVault(SecretUri=https://<myKv>.vault.azure.net/secrets/AdminPassWord/)
我需要单引号(如上)来创建 postgres 服务器。但这是否意味着密码将是整个字符串 '@Microsoft.KeyVault(SecretUri=https://<myKv>.vault.azure.net/secrets/AdminPassWord/)'
而不是存储在 <myKv>
中的秘密?
当 运行 我的管道没有引号(即 --admin-password $(AdminPassWord) \
)时,我收到错误消息 syntax error near unexpected token ('
。我认为这可能是我没有为资源 postgres 服务器设置策略 --secret-permissions get
的结果。但是如何在创建 postgres 服务器之前设置它?
表达式@Microsoft.KeyVault(SecretUri=https://<myKv>.vault.azure.net/secrets/AdminPassWord/)
用于访问 Azure Web 应用程序中的密钥保管库机密值,当您使用前两个命令配置它时,Web 应用程序的托管标识将能够访问密钥保管库机密.
但是如果你想用密码创建一个azure postgres服务器,你需要先获取秘密值并使用它而不是使用表达式。
对于 Azure CLI,您可以使用 az keyvault secret show
,然后将密钥传递给 az postgres server create
中的参数 --admin-password
。
az keyvault secret show [--id]
[--name]
[--query-examples]
[--subscription]
[--vault-name]
[--version]