我将在Azure Key保管库中存储一个值,当我检索它时,我也想检索所有以前的版本。我不知道会有多少个以前的版本,可能只有一个。
我已经研究了getSecret C#方法,如果我不指定版本或特定版本(如果知道的话),则可以获取最新版本。 https://docs.microsoft.com/en-us/java/api/com.azure.security.keyvault.secrets.secretclient.getsecret?view=azure-java-stable
是否有一种方法可以将所有列表都列出?
欢呼
答案 0 :(得分:2)
从here获取的以下代码在每个页面上遍历每个秘密,并调用SecretClient#getSecret(String,String)。这将返回具有相应版本值的机密。
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
它将返回机密列表以及指向下一页机密的链接。
然后您可以使用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]