Skip to content

Commit 35ba4b3

Browse files
committed
secretstores: support more format of azure key vault
Signed-off-by: Long Dai <long0dai@foxmail.com>
1 parent 5519ece commit 35ba4b3

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

secretstores/azure/keyvault/keyvault.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ const (
2626
componentVaultName = "vaultName"
2727
VersionID = "version_id"
2828
secretItemIDPrefix = "/secrets/"
29+
30+
// AzureCloud urls refer to https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#dns-suffixes-for-base-url
31+
AzureCloud = ".vault.azure.net"
32+
AzureChinaCloud = ".vault.azure.cn"
33+
AzureUSGov = ".vault.usgovcloudapi.net"
34+
AzureGermanCloud = ".vault.microsoftazure.de"
35+
https = "https://"
2936
)
3037

3138
type keyvaultSecretStore struct {
@@ -131,7 +138,16 @@ func (k *keyvaultSecretStore) BulkGetSecret(req secretstores.BulkGetSecretReques
131138

132139
// getVaultURI returns Azure Key Vault URI
133140
func (k *keyvaultSecretStore) getVaultURI() string {
134-
return fmt.Sprintf("https://%s.vault.azure.net", k.vaultName)
141+
for _, suffix := range []string{AzureCloud, AzureChinaCloud, AzureGermanCloud, AzureUSGov} {
142+
if strings.HasSuffix(k.vaultName, suffix) {
143+
if strings.HasPrefix(k.vaultName, https) {
144+
return k.vaultName
145+
} else {
146+
return fmt.Sprintf("%s%s", https, k.vaultName)
147+
}
148+
}
149+
}
150+
return fmt.Sprintf("%s%s%s", https, k.vaultName, AzureCloud)
135151
}
136152

137153
func (k *keyvaultSecretStore) getMaxResultsFromMetadata(metadata map[string]string) (*int32, error) {

0 commit comments

Comments
 (0)