在 Azure 密钥保管库中,我可以仅通过秘密名称检索秘密的所有版本吗?
In an Azure key vault can i retrieve all versions of a secret by just secret name?
我将在 Azure 密钥保管库中存储一个值,当我检索它时,我也想检索所有以前的版本。之前的版本不知道有多少,可能只有一个吧
我研究了 getSecret C# 方法,如果我不指定版本或特定版本(如果我知道),我可以获得最新版本。
https://docs.microsoft.com/en-us/java/api/com.azure.security.keyvault.secrets.secretclient.getsecret?view=azure-java-stable
有没有办法把它们都放在一个列表中?
干杯
以下取自 here 的代码遍历每个页面的每个秘密并调用 SecretClient#getSecret(String, String)。这将 return 具有相应版本值的秘密。
secretClient.listPropertiesOfSecretVersions("secretName", new Context(key1, value2))
.iterableByPage().forEach(resp -> {
System.out.printf("Got response headers . Url: %s, Status code: %d %n",
resp.getRequest().getUrl(), resp.getStatusCode());
resp.getItems().forEach(value -> {
KeyVaultSecret secretWithValue = secretClient.getSecret(value.getName(), value.getVersion());
System.out.printf("Received secret's version with name %s and value %s",
secretWithValue.getName(), secretWithValue.getValue());
});
});
SDK:
listPropertiesOfSecretVersions(String name)
for (SecretProperties secret : secretClient.listPropertiesOfSecretVersions("secretName")) {
KeyVaultSecret secretWithValue = secretClient.getSecret(secret.getName(), secret.getVersion());
System.out.printf("Received secret's version with name %s and value %s",
secretWithValue.getName(), secretWithValue.getValue());
}
你可以使用 getSecret(String vaultBaseUrl, String secretName, String secretVersion)
对于 REST API:
您可以使用 Get Secret Versions.
您可以使用
列出指定机密的所有版本
GET {vaultBaseUrl}/secrets/{secret-name}/versions?api-version=7.1
它将 return 一个秘密列表以及 link 到下一页的秘密。
那么你可以使用Get Secret
GET {vaultBaseUrl}/secrets/{secret-name}/{secret-version}?api-version=7.1
对于 CLI:
如果你使用list-versions cli,你可以这样做
az keyvault secret list-versions [--id]
[--maxresults]
[--name]
[--subscription]
[--vault-name]
然后你可以使用az keyvault secret show
获取秘密
az keyvault secret show [--id]
[--name]
[--subscription]
[--vault-name]
[--version]
我将在 Azure 密钥保管库中存储一个值,当我检索它时,我也想检索所有以前的版本。之前的版本不知道有多少,可能只有一个吧
我研究了 getSecret C# 方法,如果我不指定版本或特定版本(如果我知道),我可以获得最新版本。 https://docs.microsoft.com/en-us/java/api/com.azure.security.keyvault.secrets.secretclient.getsecret?view=azure-java-stable
有没有办法把它们都放在一个列表中?
干杯
以下取自 here 的代码遍历每个页面的每个秘密并调用 SecretClient#getSecret(String, String)。这将 return 具有相应版本值的秘密。
secretClient.listPropertiesOfSecretVersions("secretName", new Context(key1, value2))
.iterableByPage().forEach(resp -> {
System.out.printf("Got response headers . Url: %s, Status code: %d %n",
resp.getRequest().getUrl(), resp.getStatusCode());
resp.getItems().forEach(value -> {
KeyVaultSecret secretWithValue = secretClient.getSecret(value.getName(), value.getVersion());
System.out.printf("Received secret's version with name %s and value %s",
secretWithValue.getName(), secretWithValue.getValue());
});
});
SDK:
listPropertiesOfSecretVersions(String name)
for (SecretProperties secret : secretClient.listPropertiesOfSecretVersions("secretName")) {
KeyVaultSecret secretWithValue = secretClient.getSecret(secret.getName(), secret.getVersion());
System.out.printf("Received secret's version with name %s and value %s",
secretWithValue.getName(), secretWithValue.getValue());
}
你可以使用 getSecret(String vaultBaseUrl, String secretName, String secretVersion)
对于 REST API:
您可以使用 Get Secret Versions.
您可以使用
列出指定机密的所有版本GET {vaultBaseUrl}/secrets/{secret-name}/versions?api-version=7.1
它将 return 一个秘密列表以及 link 到下一页的秘密。
那么你可以使用Get Secret
GET {vaultBaseUrl}/secrets/{secret-name}/{secret-version}?api-version=7.1
对于 CLI:
如果你使用list-versions cli,你可以这样做
az keyvault secret list-versions [--id]
[--maxresults]
[--name]
[--subscription]
[--vault-name]
然后你可以使用az keyvault secret show
获取秘密az keyvault secret show [--id]
[--name]
[--subscription]
[--vault-name]
[--version]