为什么 'az vm secret format' 命令在准备 Linux VM 部署的 SSL 证书时失败?
Why does 'az vm secret format' command fail when prepping SSL cert of Linux VM deployment?
我正在尝试准备一个 SSL 证书,以便按照以下位置提供的说明部署到 Azure 上托管的 Linux VM:
第一行:
$secret=$(az keyvault secret list-versions --vault-name myVaultName --name myCertName --query "[?attributes.enabled].id" --output tsv)
执行得很好,$secret 包含预期值。但是当我执行第二行时:
$vm_secret=$(az vm secret format --secret "$secret")
我得到一个错误:
unable to find vault 'myVaultName' in current subscription.
我已经仔细检查了命令格式和参数,没有发现任何错误。怎么回事?
这是一件奇怪的事情。 CLI 命令以前工作正常,但现在它需要添加带有密钥保管库名称的参数 --keyvault
和带有资源组名称的 -g
,如下所示:
$vm_secret=$(az vm secret format --secret "$secret" -g groupName --keyvault keyvaultName)
或者只添加参数 --keyvault
和密钥保管库 ID:
$vm_secret=$(az vm secret format --secret "$secret" --keyvault keyvault_resourceId)
这样它就可以正常工作而不会报错。
注意:如果您使用几个月前连续创建的旧密钥保管库,则给出错误的 CLI 命令在我的测试中也会起作用。所以有点奇怪。我发现属性默认值有些不同。
编辑
我认为在 Linux 环境中使用 运行 CLI 命令更好,Windows 和 Linux 中的 CLI rin 有一些不同,可能导致错误。 Linux 中的脚本如下所示:
az keyvault certificate create --vault-name keyvault_name --name cert_name --policy "$(az keyvault certificate get-default-policy)"
secret=$(az keyvault secret list-versions --vault-name keyvault_name --name cert_name --query "[?attributes.enabled].id" --output tsv)
vm_secret=$(az vm secret format --secrets "$secret" --resource-group group_name --keyvault keyvault_name)
az vm update -g charles -n azureUbuntu18 --set osProfile.secrets="$vm_secret"
我正在尝试准备一个 SSL 证书,以便按照以下位置提供的说明部署到 Azure 上托管的 Linux VM:
第一行:
$secret=$(az keyvault secret list-versions --vault-name myVaultName --name myCertName --query "[?attributes.enabled].id" --output tsv)
执行得很好,$secret 包含预期值。但是当我执行第二行时:
$vm_secret=$(az vm secret format --secret "$secret")
我得到一个错误:
unable to find vault 'myVaultName' in current subscription.
我已经仔细检查了命令格式和参数,没有发现任何错误。怎么回事?
这是一件奇怪的事情。 CLI 命令以前工作正常,但现在它需要添加带有密钥保管库名称的参数 --keyvault
和带有资源组名称的 -g
,如下所示:
$vm_secret=$(az vm secret format --secret "$secret" -g groupName --keyvault keyvaultName)
或者只添加参数 --keyvault
和密钥保管库 ID:
$vm_secret=$(az vm secret format --secret "$secret" --keyvault keyvault_resourceId)
这样它就可以正常工作而不会报错。
注意:如果您使用几个月前连续创建的旧密钥保管库,则给出错误的 CLI 命令在我的测试中也会起作用。所以有点奇怪。我发现属性默认值有些不同。
编辑
我认为在 Linux 环境中使用 运行 CLI 命令更好,Windows 和 Linux 中的 CLI rin 有一些不同,可能导致错误。 Linux 中的脚本如下所示:
az keyvault certificate create --vault-name keyvault_name --name cert_name --policy "$(az keyvault certificate get-default-policy)"
secret=$(az keyvault secret list-versions --vault-name keyvault_name --name cert_name --query "[?attributes.enabled].id" --output tsv)
vm_secret=$(az vm secret format --secrets "$secret" --resource-group group_name --keyvault keyvault_name)
az vm update -g charles -n azureUbuntu18 --set osProfile.secrets="$vm_secret"