| Modifier and Type | Field and Description |
|---|---|
static String |
CLIENT_ID |
static String |
CLIENT_SECRET |
static String |
ENCRYPT_AZURE_KEY_VERSION_SAVE
Enables making a DEK's encryptedKeyMaterial self-describing with respect to which exact
Azure Key Vault key version wrapped it (see
AzureKmsAead), matching the same
self-description property AWS KMS and GCP KMS ciphertext already provide natively. |
static String |
TENANT_ID |
static String |
TEST_KEY_CLIENT |
KMS_TYPE_SUFFIX, TEST_CLIENT| Constructor and Description |
|---|
AzureKmsDriver() |
| Modifier and Type | Method and Description |
|---|---|
String |
getKeyUrlPrefix() |
static String |
getVersionedKeyId(Map<String,?> configs,
String kmsKeyId)
Resolves a possibly-versionless Azure Key Vault key identifier (e.g.
|
static boolean |
isVersionless(String kmsKeyId)
Returns true if
kmsKeyId has no explicit version segment. |
com.google.crypto.tink.KmsClient |
newKmsClient(Map<String,?> configs,
Optional<String> kekUrl) |
protected static com.google.crypto.tink.KmsClient |
newKmsClientWithAzureKms(Map<String,?> configs,
Optional<String> keyUri,
Optional<com.azure.core.credential.TokenCredential> credentials,
com.azure.security.keyvault.keys.cryptography.CryptographyClient cryptographyClient) |
static String |
withVersion(String kmsKeyId,
String version)
Combines
kmsKeyId (versionless or versioned; only the vault and key name are used)
with an explicit version, returning the full versioned key identifier. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdoesSupport, getKmsClient, getTestClient, registerKmsClientpublic static final String TENANT_ID
public static final String CLIENT_ID
public static final String CLIENT_SECRET
public static final String ENCRYPT_AZURE_KEY_VERSION_SAVE
AzureKmsAead), matching the same
self-description property AWS KMS and GCP KMS ciphertext already provide natively. Set as a
kek kmsProps entry.public static final String TEST_KEY_CLIENT
public String getKeyUrlPrefix()
getKeyUrlPrefix in interface KmsDriverpublic static String getVersionedKeyId(Map<String,?> configs, String kmsKeyId) throws GeneralSecurityException
https://vault.vault.azure.net/keys/name) into the concrete, currently-enabled version
(e.g. https://vault.vault.azure.net/keys/name/<version>). If kmsKeyId already
includes a version segment, it is returned unchanged and no call is made. This exists because,
unlike AWS KMS and GCP KMS, Azure Key Vault's wrap/unwrap operations address an explicit key
version and do not embed that version in the returned ciphertext, so a caller
that only ever uses a versionless reference has no way to know which version encrypted a given
DEK once the key has been rotated.GeneralSecurityExceptionpublic static String withVersion(String kmsKeyId, String version) throws GeneralSecurityException
kmsKeyId (versionless or versioned; only the vault and key name are used)
with an explicit version, returning the full versioned key identifier. Used to
reconstruct a target for a version extracted from an already-wrapped DEK, which may differ
from whatever getVersionedKeyId(java.util.Map<java.lang.String, ?>, java.lang.String) currently resolves to (e.g. after a rotation).GeneralSecurityExceptionpublic static boolean isVersionless(String kmsKeyId) throws GeneralSecurityException
kmsKeyId has no explicit version segment. Used to warn when
ENCRYPT_AZURE_KEY_VERSION_SAVE is not enabled for a versionless key, without performing any
actual resolution (no KeyClient call).GeneralSecurityExceptionpublic com.google.crypto.tink.KmsClient newKmsClient(Map<String,?> configs, Optional<String> kekUrl) throws GeneralSecurityException
newKmsClient in interface KmsDriverGeneralSecurityExceptionprotected static com.google.crypto.tink.KmsClient newKmsClientWithAzureKms(Map<String,?> configs, Optional<String> keyUri, Optional<com.azure.core.credential.TokenCredential> credentials, com.azure.security.keyvault.keys.cryptography.CryptographyClient cryptographyClient) throws GeneralSecurityException
GeneralSecurityExceptionCopyright © 2026 Confluent, Inc.. All rights reserved.