SecretAsyncClient クラス
- java.
lang. Object - com.
azure. security. keyvault. secrets. SecretAsyncClient
- com.
public final class SecretAsyncClient
SecretAsyncClient には、Azure Key Vaultで管理KeyVaultSecretするための非同期メソッドが用意されています。 クライアントでは、 の作成、取得、更新、削除、消去、バックアップ、復元、一覧表示が KeyVaultSecretサポートされています。 クライアントでは、論理的な削除が有効なキー コンテナーの一覧 DeletedSecret もサポートされています。
作業の開始
Azure Key Vault サービスと対話するには、 クラスのインスタンス、コンテナーの SecretAsyncClient URL、資格情報オブジェクトを作成する必要があります。
このドキュメントに示す例では、認証に DefaultAzureCredential という名前の資格情報オブジェクトを使用します。これは、ローカルの開発環境や運用環境など、ほとんどのシナリオに適しています。 さらに、運用環境での認証には マネージド ID を 使用することをお勧めします。 さまざまな認証方法と、それに対応する資格情報の種類の詳細については、 Azure Identity のドキュメントを参照してください。
サンプル: 非同期シークレット クライアントの構築
SecretAsyncClient secretAsyncClient = new SecretClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.vaultUrl("<your-key-vault-url>")
.buildAsyncClient();
シークレットを作成する
を SecretAsyncClient 使用して、キー コンテナーにシークレットを作成できます。
コード サンプル:
次のコード サンプルは、API を使用して、キー コンテナーにシークレットを作成して格納する方法を setSecret(String name, String value) 示しています。
secretAsyncClient.setSecret("secretName", "secretValue")
.subscribe(secretResponse ->
System.out.printf("Secret is created with name %s and value %s%n",
secretResponse.getName(), secretResponse.getValue()));
メモ: 同期サンプルについては、 を SecretClient参照してください。
シークレットを取得する
を SecretAsyncClient 使用して、キー コンテナーからシークレットを取得できます。
コード サンプル:
次のコード サンプルは、API を使用して、以前に格納されたシークレットをキー コンテナーから同期的に取得する方法を getSecret(String name) 示しています。
secretAsyncClient.getSecret("secretName")
.subscribe(secretWithVersion ->
System.out.printf("Secret is returned with name %s and value %s %n",
secretWithVersion.getName(), secretWithVersion.getValue()));
メモ: 同期サンプルについては、 を SecretClient参照してください。
シークレットを削除する
を SecretAsyncClient 使用して、キー コンテナーからシークレットを削除できます。
コード サンプル:
次のコード サンプルは、API を使用してキー コンテナーからシークレットを削除する方法を beginDeleteSecret(String name) 示しています。
secretAsyncClient.beginDeleteSecret("secretName")
.subscribe(pollResponse -> {
System.out.println("Delete Status: " + pollResponse.getStatus().toString());
System.out.println("Deleted Secret Name: " + pollResponse.getValue().getName());
System.out.println("Deleted Secret Value: " + pollResponse.getValue().getValue());
});
メモ: 同期サンプルについては、 を SecretClient参照してください。
メソッドの概要
メソッドの継承元: java.lang.Object
メソッドの詳細
backupSecret
public Mono
シークレットのバックアップをクライアントにダウンロードするように要求します。 シークレットのすべてのバージョンがダウンロードされます。 この操作には アクセス許可が必要です secrets/backup
。
Code sample
キー コンテナーからシークレットをバックアップします。 呼び出しを非同期的にサブスクライブし、応答で返されるシークレットのバックアップ バイト配列の長さを出力します。
secretAsyncClient.backupSecret("secretName")
.subscribe(secretBackupResponse ->
System.out.printf("Secret's Backup Byte array's length %s%n", secretBackupResponse.length));
Parameters:
Returns:
backupSecretWithResponse
public Mono
シークレットのバックアップをクライアントにダウンロードするように要求します。 シークレットのすべてのバージョンがダウンロードされます。 この操作には アクセス許可が必要です secrets/backup
。
Code sample
キー コンテナーからシークレットをバックアップします。 呼び出しを非同期的にサブスクライブし、応答で返されるシークレットのバックアップ バイト配列の長さを出力します。
secretAsyncClient.backupSecretWithResponse("secretName")
.subscribe(secretBackupResponse ->
System.out.printf("Secret's Backup Byte array's length %s%n", secretBackupResponse.getValue().length));
Parameters:
Returns:
beginDeleteSecret
public PollerFlux
キー コンテナーからシークレットを削除します。 キー コンテナーで論理的な削除が有効になっている場合、シークレットは削除された状態になり、完全削除のためには消去する必要があります。 それ以外の場合、シークレットは完全に削除されます。 シークレットのすべてのバージョンが削除されます。 これは、シークレットの個々のバージョンには適用できません。 この操作には アクセス許可が必要です secrets/delete
。
Code sample
Azure Key Vault内のシークレットを削除します。 呼び出しを非同期的にサブスクライブし、応答の受信時に削除されたシークレットの詳細を出力します。
secretAsyncClient.beginDeleteSecret("secretName")
.subscribe(pollResponse -> {
System.out.println("Delete Status: " + pollResponse.getStatus().toString());
System.out.println("Deleted Secret Name: " + pollResponse.getValue().getName());
System.out.println("Deleted Secret Value: " + pollResponse.getValue().getValue());
});
Parameters:
Returns:
beginRecoverDeletedSecret
public PollerFlux
キー コンテナー内の削除されたシークレットを最新バージョンに回復します。 論理的な削除が有効なコンテナーでのみ実行できます。 この操作には アクセス許可が必要です secrets/recover
。
Code sample
論理的な削除が有効になっているキー コンテナーから削除されたシークレットを 回復します。 呼び出しを非同期的にサブスクライブし、応答の受信時に回復されたシークレットの詳細を出力します。
secretAsyncClient.beginRecoverDeletedSecret("deletedSecretName")
.subscribe(pollResponse -> {
System.out.println("Recovery Status: " + pollResponse.getStatus().toString());
System.out.println("Recovered Secret Name: " + pollResponse.getValue().getName());
System.out.println("Recovered Secret Value: " + pollResponse.getValue().getValue());
});
Parameters:
Returns:
getDeletedSecret
public Mono
論理的な削除が有効なキー コンテナーに対して削除されたシークレットを取得します。 この操作には アクセス許可が必要です secrets/list
。
Code sample
論理的な削除が 有効になっているキー コンテナーから削除されたシークレットを取得します。 呼び出しを非同期的にサブスクライブし、応答の受信時に削除されたシークレットの詳細を出力します。
secretAsyncClient.getDeletedSecret("secretName")
.subscribe(deletedSecretResponse ->
System.out.printf("Deleted Secret's Recovery Id %s %n", deletedSecretResponse.getRecoveryId()));
Parameters:
Returns:
getDeletedSecretWithResponse
public Mono
論理的な削除が有効なキー コンテナーに対して削除されたシークレットを取得します。 この操作には アクセス許可が必要です secrets/list
。
Code sample
論理的な削除が 有効になっているキー コンテナーから削除されたシークレットを取得します。 呼び出しを非同期的にサブスクライブし、応答の受信時に削除されたシークレットの詳細を出力します。
secretAsyncClient.getDeletedSecretWithResponse("secretName")
.subscribe(deletedSecretResponse ->
System.out.printf("Deleted Secret's Recovery Id %s %n",
deletedSecretResponse.getValue().getRecoveryId()));
Parameters:
Returns:
getSecret
public Mono
キー コンテナーから指定されたシークレットの最新バージョンを取得します。 この操作には アクセス許可が必要です secrets/get
。
Code sample
キー コンテナー内のシークレットの最新バージョンを取得します。 呼び出しを非同期的にサブスクライブし、応答の受信時に返されたシークレットの詳細を出力します。
secretAsyncClient.getSecret("secretName")
.subscribe(secretWithVersion ->
System.out.printf("Secret is returned with name %s and value %s %n",
secretWithVersion.getName(), secretWithVersion.getValue()));
Parameters:
Returns:
getSecret
public Mono
キー コンテナーから、指定したバージョンの指定されたシークレットを取得します。 この操作には アクセス許可が必要です secrets/get
。
Code sample
キー コンテナー内のシークレットの特定のバージョンを取得します。 呼び出しを非同期的にサブスクライブし、応答の受信時に返されたシークレットの詳細を出力します。
String secretVersion = "6A385B124DEF4096AF1361A85B16C204";
secretAsyncClient.getSecret("secretName", secretVersion)
// Passing a Context is optional and useful if you want a set of data to flow through the request.
// Otherwise, the line below can be removed.
.contextWrite(Context.of(key1, value1, key2, value2))
.subscribe(secretWithVersion ->
System.out.printf("Secret is returned with name %s and value %s %n",
secretWithVersion.getName(), secretWithVersion.getValue()));
Parameters:
Returns:
getSecretWithResponse
public Mono
キー コンテナーから、指定したバージョンの指定されたシークレットを取得します。 この操作には アクセス許可が必要です secrets/get
。
Code sample
キー コンテナー内のシークレットの特定のバージョンを取得します。 呼び出しを非同期的にサブスクライブし、応答の受信時に返されたシークレットの詳細を出力します。
String secretVersion = "6A385B124DEF4096AF1361A85B16C204";
secretAsyncClient.getSecretWithResponse("secretName", secretVersion)
// Passing a Context is optional and useful if you want a set of data to flow through the request.
// Otherwise, the line below can be removed.
.contextWrite(Context.of(key1, value1, key2, value2))
.subscribe(secretWithVersion ->
System.out.printf("Secret is returned with name %s and value %s %n",
secretWithVersion.getValue().getName(), secretWithVersion.getValue().getValue()));
Parameters:
Returns:
getVaultUrl
public String getVaultUrl()
サービス要求の送信先となるコンテナー エンドポイント URL を取得します。
Returns:
listDeletedSecrets
public PagedFlux
キー コンテナーが論理的な削除を有効にしている場合の一覧 DeletedSecret 。 この操作には アクセス許可が必要です secrets/list
。
Code sample
キー コンテナー内の削除されたシークレットを一覧表示します。 呼び出しを非同期的にサブスクライブし、応答の受信時に削除された各シークレットの回復 ID を出力します。
secretAsyncClient.listDeletedSecrets()
.subscribe(deletedSecretResponse -> System.out.printf("Deleted Secret's Recovery Id %s %n",
deletedSecretResponse.getRecoveryId()));
Returns:
listPropertiesOfSecretVersions
public PagedFlux
指定したシークレットのすべてのバージョンを一覧表示します。 返される各 SecretProperties には、その識別子と属性のみが設定されます。 シークレット値とシークレット バージョンは応答に一覧表示されません。 この操作には アクセス許可が必要です secrets/list
。
Code sample
次のサンプルでは、指定されたシークレットのすべてのバージョンをフェッチします。 取得した各バージョンについて、 を getSecret(String name, String version) 呼び出してバージョンの値を取得し、出力します。
secretAsyncClient.listPropertiesOfSecretVersions("secretName")
.flatMap(secretProperties -> {
System.out.println("Get secret value for version: " + secretProperties.getVersion());
return secretAsyncClient.getSecret(secretProperties.getName(), secretProperties.getVersion());
})
.subscribe(secret -> System.out.printf("Received secret with name %s and type %s%n",
secret.getName(), secret.getValue()));
Parameters:
Returns:
name
がキー コンテナーに存在しない場合、Flux は空ですlistPropertiesOfSecrets
public PagedFlux
キー コンテナー内のシークレットを一覧表示します。 返される各 SecretProperties には、その識別子と属性のみが設定されます。 シークレット値とそのバージョンは応答に一覧表示されません。 この操作には アクセス許可が必要です secrets/list
。
Code sample
次のサンプルでは、コンテナー内のすべてのシークレット プロパティをフェッチします。 取得したシークレットごとに、 を呼び出して getSecret(String name, String version) 値を取得し、出力します。
secretAsyncClient.listPropertiesOfSecrets()
.flatMap(secretProperties -> {
String name = secretProperties.getName();
String version = secretProperties.getVersion();
System.out.printf("Getting secret name: '%s', version: %s%n", name, version);
return secretAsyncClient.getSecret(name, version);
})
.subscribe(secretResponse -> System.out.printf("Received secret with name %s and type %s",
secretResponse.getName(), secretResponse.getValue()));
Returns:
purgeDeletedSecret
public Mono
回復の可能性なしに、削除されたシークレットを完全に削除します。 この操作は、論理的な削除が 有効になっている場合にのみ実行できます。 この操作には アクセス許可が必要です secrets/purge
。
Code sample
論理的な削除が有効になっているキー コンテナーから削除されたシークレットを 消去します。 非同期的に呼び出しをサブスクライブし、応答の受信時にサーバー応答から状態コードを出力します。
secretAsyncClient.purgeDeletedSecret("deletedSecretName")
.doOnSuccess(purgeResponse ->
System.out.println("Successfully Purged deleted Secret"))
.subscribe();
Parameters:
Returns:
purgeDeletedSecretWithResponse
public Mono
回復の可能性なしに、削除されたシークレットを完全に削除します。 この操作は、論理的な削除が有効なコンテナーでのみ有効にすることができます。 この操作には アクセス許可が必要です secrets/purge
。
Code sample
論理的な削除が有効になっているキー コンテナーから削除されたシークレットを消去します。 非同期的に呼び出しをサブスクライブし、応答の受信時にサーバー応答から状態コードを出力します。
secretAsyncClient.purgeDeletedSecretWithResponse("deletedSecretName")
.subscribe(purgeResponse ->
System.out.printf("Purge Status response %d %n", purgeResponse.getStatusCode()));
Parameters:
Returns:
restoreSecretBackup
public Mono
バックアップされたシークレットとそのすべてのバージョンを資格情報コンテナーに復元します。 この操作には アクセス許可が必要です secrets/restore
。
Code sample
キー コンテナー内のシークレットをバックアップから復元します。 呼び出しを非同期的にサブスクライブし、応答の受信時に復元されたシークレットの詳細を出力します。
// Pass the secret backup byte array to the restore operation.
byte[] secretBackupByteArray = {};
secretAsyncClient.restoreSecretBackup(secretBackupByteArray)
.subscribe(secretResponse -> System.out.printf("Restored Secret with name %s and value %s %n",
secretResponse.getName(), secretResponse.getValue()));
Parameters:
Returns:
restoreSecretBackupWithResponse
public Mono
バックアップされたシークレットとそのすべてのバージョンを資格情報コンテナーに復元します。 この操作には アクセス許可が必要です secrets/restore
。
Code sample
キー コンテナー内のシークレットをバックアップから復元します。 呼び出しを非同期的にサブスクライブし、応答の受信時に復元されたシークレットの詳細を出力します。
// Pass the secret backup byte array to the restore operation.
byte[] secretBackupByteArray = {};
secretAsyncClient.restoreSecretBackupWithResponse(secretBackupByteArray)
.subscribe(secretResponse -> System.out.printf("Restored Secret with name %s and value %s %n",
secretResponse.getValue().getName(), secretResponse.getValue().getValue()));
Parameters:
Returns:
setSecret
public Mono
シークレットが存在しない場合は、キー コンテナーに追加します。 名前付きシークレットが存在する場合は、シークレットの新しいバージョンが作成されます。 この操作には アクセス許可が必要です secrets/set
。
の getExpiresOn()、 getContentType()、および getNotBefore() の secret
値は省略可能です。 指定しない場合、 isEnabled() はキー コンテナーによって true に設定されます。
Code sample
1 日でアクティブ化され、1 年で期限切れになる新しいシークレットを作成します。 呼び出しを非同期的にサブスクライブし、応答の受信時に新しく作成されたシークレットの詳細を出力します。
SecretProperties properties = new SecretProperties()
.setExpiresOn(OffsetDateTime.now().plusDays(60));
KeyVaultSecret newSecret = new KeyVaultSecret("secretName", "secretValue")
.setProperties(properties);
secretAsyncClient.setSecret(newSecret)
.subscribe(secretResponse ->
System.out.printf("Secret is created with name %s and value %s %n",
secretResponse.getName(), secretResponse.getValue()));
Parameters:
Returns:
setSecret
public Mono
シークレットが存在しない場合は、キー コンテナーに追加します。 名前付きシークレットが存在する場合は、シークレットの新しいバージョンが作成されます。 この操作には アクセス許可が必要です secrets/set
。
Code sample
キー コンテナーに新しいシークレットを作成します。 呼び出しを非同期的にサブスクライブし、応答の受信時に新しく作成されたシークレットの詳細を出力します。
secretAsyncClient.setSecret("secretName", "secretValue")
.subscribe(secretResponse ->
System.out.printf("Secret is created with name %s and value %s%n",
secretResponse.getName(), secretResponse.getValue()));
Parameters:
Returns:
setSecretWithResponse
public Mono
シークレットが存在しない場合は、キー コンテナーに追加します。 名前付きシークレットが存在する場合は、シークレットの新しいバージョンが作成されます。 この操作には アクセス許可が必要です secrets/set
。
の getExpiresOn()、 getContentType()、および getNotBefore() の secret
値は省略可能です。 指定しない場合、 isEnabled() はキー コンテナーによって true に設定されます。
Code sample
1 日でアクティブ化され、1 年で期限切れになる新しいシークレットを作成します。 呼び出しを非同期的にサブスクライブし、応答の受信時に新しく作成されたシークレットの詳細を出力します。
KeyVaultSecret newSecret = new KeyVaultSecret("secretName", "secretValue").
setProperties(new SecretProperties().setExpiresOn(OffsetDateTime.now().plusDays(60)));
secretAsyncClient.setSecretWithResponse(newSecret)
.subscribe(secretResponse ->
System.out.printf("Secret is created with name %s and value %s %n",
secretResponse.getValue().getName(), secretResponse.getValue().getValue()));
Parameters:
Returns:
updateSecretProperties
public Mono
シークレットに関連付けられている属性を更新します。 キー コンテナー内のシークレットの値は変更できません。 に設定された secretProperties
属性のみが変更されます。 要求で指定されていない属性は変更されません。 この操作には アクセス許可が必要です secrets/set
。
secret
は必須であり、そのフィールドgetName()は getVersion() null にすることはできません。
Code sample
シークレットの最新バージョンを取得し、その時刻をsetNotBefore(OffsetDateTime notBefore)変更してから、Azure Key Vaultで更新します。 呼び出しを非同期的にサブスクライブし、応答の受信時に返されたシークレットの詳細を出力します。
secretAsyncClient.getSecret("secretName")
.subscribe(secretResponseValue -> {
SecretProperties secretProperties = secretResponseValue.getProperties();
//Update the not before time of the secret.
secretProperties.setNotBefore(OffsetDateTime.now().plusDays(50));
secretAsyncClient.updateSecretProperties(secretProperties)
.subscribe(secretResponse ->
System.out.printf("Secret's updated not before time %s %n",
secretResponse.getNotBefore().toString()));
});
Parameters:
Returns:
updateSecretPropertiesWithResponse
public Mono
シークレットに関連付けられている属性を更新します。 キー コンテナー内のシークレットの値は変更できません。 に設定された secretProperties
属性のみが変更されます。 要求で指定されていない属性は変更されません。 この操作には アクセス許可が必要です secrets/set
。
Code sample
シークレットの最新バージョンを取得し、その時刻をsetNotBefore(OffsetDateTime notBefore)変更してから、Azure Key Vaultで更新します。 呼び出しを非同期的にサブスクライブし、応答の受信時に返されたシークレットの詳細を出力します。
secretAsyncClient.getSecret("secretName")
.subscribe(secretResponseValue -> {
SecretProperties secretProperties = secretResponseValue.getProperties();
//Update the not before time of the secret.
secretProperties.setNotBefore(OffsetDateTime.now().plusDays(50));
secretAsyncClient.updateSecretPropertiesWithResponse(secretProperties)
.subscribe(secretResponse ->
System.out.printf("Secret's updated not before time %s %n",
secretResponse.getValue().getNotBefore().toString()));
});
secret
は必須であり、そのフィールドgetName()は getVersion() null にすることはできません。
Parameters:
Returns:
適用対象
Azure SDK for Java