Java 用 Azure Key Vault 管理ライブラリ
Azure Key Vault Managed HSM は、FIPS 140-2 レベル 3 で検証された HSM を使用してクラウド アプリケーションの暗号化キーを保護できるようにする、フル マネージドの高可用性シングルテナント標準準拠クラウド サービスです。
Azure Key Vault 管理ライブラリ クライアントは、完全バックアップ/復元、キー レベルのロールベースのアクセス制御 (RBAC) などの管理タスクをサポートしています。
ソース コード | API リファレンス ドキュメント | 製品ドキュメント | サンプル
作業の開始
パッケージを組み込む
BOM ファイルを含める
ライブラリの azure-sdk-bom
一般提供 (GA) バージョンに依存するには、 をプロジェクトに含めてください。 次のスニペットでは、{bom_version_to_target} プレースホルダーをバージョン番号に置き換えます。 BOM の詳細については、 AZURE SDK BOM README に関するページを参照してください。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
次に、次に示すようにバージョン タグを使用せずに、依存関係セクションに直接依存関係を含めます。
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-security-keyvault-administration</artifactId>
</dependency>
</dependencies>
直接依存関係を含める
BOM に存在しないライブラリの特定のバージョンに依存する場合は、次のように直接依存関係をプロジェクトに追加します。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-security-keyvault-administration</artifactId>
<version>4.4.1</version>
</dependency>
前提条件
- Java Development Kit (JDK) バージョン 8 以降。
- Azure サブスクリプション。
- 既存の Azure Key Vault Managed HSM。 Managed HSM を作成する必要がある場合は、 このドキュメントの手順に従って Azure CLI を使用して作成できます。
クライアントを認証する
Azure Key Vault サービスと対話するには、クラスまたは KeyVaultBackupClient
クラスのKeyVaultAccessControlClient
インスタンスと、コンテナー URL (Azure Portal で "DNS 名" と表示される場合があります) と資格情報オブジェクトを作成する必要があります。 このドキュメントに示す例では、 という名前 DefaultAzureCredential
の資格情報オブジェクトを使用します。これは、ローカルの開発環境や運用環境など、ほとんどのシナリオに適しています。 さらに、運用環境での認証には マネージド ID を 使用することをお勧めします。
さまざまな認証方法と、それに対応する資格情報の種類の詳細については、 Azure Id のドキュメントを参照してください。
アクセス制御クライアントを作成する
最適な認証設定を実行し、your-managed-hsm-url をキー コンテナーの URL に置き換えたら、 をKeyVaultAccessControlClient
作成できます。
KeyVaultAccessControlClient keyVaultAccessControlClient = new KeyVaultAccessControlClientBuilder()
.vaultUrl("<your-managed-hsm-url>")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
注: 非同期クライアントを使用する場合は、
KeyVaultAccessControlClient
ではなく を使用KeyVaultAccessControlAsyncClient
し、 を呼び出しますbuildAsyncClient()
。
バックアップ クライアントを作成する
最適な認証設定を実行し、your-managed-hsm-url をキー コンテナーの URL に置き換えたら、 をKeyVaultBackupClient
作成できます。
KeyVaultBackupClient keyVaultBackupClient = new KeyVaultBackupClientBuilder()
.vaultUrl("<your-managed-hsm-url>")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
注: 非同期クライアントを使用する場合は、
KeyVaultBackupClient
ではなく を使用KeyVaultBackupAsyncClient
し、 を呼び出しますbuildAsyncClient()
。
設定クライアントを作成する
最適な認証設定を実行し、your-managed-hsm-url をキー コンテナーの URL に置き換えたら、 をKeyVaultSettingsClient
作成できます。
KeyVaultBackupClient keyVaultBackupClient = new KeyVaultBackupClientBuilder()
.vaultUrl("<your-managed-hsm-url>")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
注: 非同期クライアントを使用する場合は、
KeyVaultSettingsClient
ではなく を使用KeyVaultSettingsAsyncClient
し、 を呼び出しますbuildAsyncClient()
。
主要な概念
Key Vault Access Control クライアント
Key Vault Access Control クライアントは、ロールの割り当てを取得、設定、削除、一覧表示したり、ロール定義を一覧表示したりするために、Azure Key Vault サービスとの対話を実行します。 SDK には非同期 (KeyVaultAccessControlAsyncClient
) および同期 (KeyVaultAccessControlClient
) クライアントが存在し、アプリケーションのユース ケースに基づいてクライアントを選択できます。 ロールの割り当てを初期化したら、Key Vaultのプライマリ リソースの種類と対話できます。
ロールの定義
ロールの定義はアクセス許可のコレクションです。 読み取り、書き込み、削除など、実行できる操作を定義します。 また、許可された操作から除外される操作を定義することもできます。
ロール定義は、ロールの割り当ての一部として一覧表示および指定できます。
ロールの割り当て
ロールの割り当ては、ロール定義とサービス プリンシパルの関連付けです。 これらは、作成、一覧表示、個別にフェッチ、および削除できます。
バックアップ クライアントKey Vault
Key Vault バックアップ クライアントでは、完全キー バックアップ、完全キー復元、選択的キー復元を実行するための同期操作と非同期操作の両方が提供されます。 SDK には非同期 (KeyVaultBackupAsyncClient
) および同期 (KeyVaultBackupClient
) クライアントが存在し、アプリケーションのユース ケースに基づいてクライアントを選択できます。
注: キー バックアップのバッキング ストアは、Shared Access Signature 認証を使用した BLOB ストレージ コンテナーです。 を使用して
BlobServiceClient
SAS トークンを作成する方法の詳細については、 Azure Storage Blobs クライアント README を参照してください。 または、Storage Explorerで SAS トークンを生成することもできます。
バックアップ操作
バックアップ操作は、完全キー バックアップの実行時間の長い操作を表します。
復元操作
復元操作は、完全キーと選択的キー復元の両方に対する実行時間の長い操作を表します。
Key Vault設定クライアント
Key Vault Access Control クライアントでは、取得、更新、一覧表示などの操作を使用して、Azure Key Vault アカウントの設定を操作できます。 SDK には非同期 (KeyVaultSettingsAsyncClient
) および同期 (KeyVaultSettingsClient
) クライアントが存在し、アプリケーションのユース ケースに基づいてクライアントを選択できます。
アクセス制御操作
例
同期 API
次のセクションでは、次のような最も一般的な Azure Key Vault Access Control サービス タスクをカバーするいくつかのコード スニペットを示します。
ロール定義の一覧表示
を呼び出 listRoleDefinitions()
して、キー コンテナー内のロール定義を一覧表示します。
PagedIterable<KeyVaultRoleDefinition> roleDefinitions =
keyVaultAccessControlClient.listRoleDefinitions(KeyVaultRoleScope.GLOBAL);
roleDefinitions.forEach(roleDefinition ->
System.out.printf("Retrieved role definition with name '%s'.%n", roleDefinition.getName()));
ロール定義を作成または更新する
キー コンテナーでロール定義を作成または更新します。 次の例は、ランダムに生成された名前を持つロール定義を作成する方法を示しています。
KeyVaultRoleDefinition roleDefinition = keyVaultAccessControlClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL);
System.out.printf("Created role definition with randomly generated name '%s' and role name '%s'.%n",
roleDefinition.getName(), roleDefinition.getRoleName());
ロール定義を取得する
既存のロール定義を取得します。 これを行うには、既存のロール定義のスコープと 'name' プロパティが必要です。
String roleDefinitionName = "<role-definition-name>";
KeyVaultRoleDefinition roleDefinition =
keyVaultAccessControlClient.getRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName);
System.out.printf("Retrieved role definition with name '%s' and role name '%s'.%n", roleDefinition.getName(),
roleDefinition.getRoleName());
ロール定義を削除する
ロール定義を削除します。 これを行うには、既存のロール定義のスコープと 'name' プロパティが必要です。
String roleDefinitionName = "<role-definition-name>";
keyVaultAccessControlClient.deleteRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName);
System.out.printf("Deleted role definition with name '%s'.%n", roleDefinitionName);
ロールの割り当ての一覧表示
を呼び出 listRoleAssignments()
して、キー コンテナー内のロールの割り当てを一覧表示します。
PagedIterable<KeyVaultRoleAssignment> roleAssignments =
keyVaultAccessControlClient.listRoleAssignments(KeyVaultRoleScope.GLOBAL);
roleAssignments.forEach(roleAssignment ->
System.out.printf("Retrieved role assignment with name '%s'.%n", roleAssignment.getName()));
役割の割り当ての作成
キー コンテナーにロールの割り当てを作成します。 これを行うには、ロール定義 ID とサービス プリンシパル オブジェクト ID が必要です。
ロール定義 ID は、 から返されるロール定義の 1 つの 'id' プロパティから listRoleDefinitions()
取得できます。
新しいサービス プリンシパルを生成し、そのオブジェクト ID を取得する方法のリンクと手順については、「 資格情報の作成/取得」セクション を参照してください。 次の Azure CLI コマンドを実行して、現在サインインしているアカウントのオブジェクト ID を取得することもできます。
az ad signed-in-user show --query objectId
String roleDefinitionId = "<role-definition-id>";
String servicePrincipalId = "<service-principal-id>";
KeyVaultRoleAssignment roleAssignment =
keyVaultAccessControlClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinitionId,
servicePrincipalId);
System.out.printf("Created role assignment with randomly generated name '%s' for principal with id '%s'.%n",
roleAssignment.getName(), roleAssignment.getProperties().getPrincipalId());
ロールの割り当てを取得する
既存のロールの割り当てを取得します。 これを行うには、既存のロールの割り当ての 'name' プロパティが必要です。
String roleAssignmentName = "<role-assignment-name>";
KeyVaultRoleAssignment roleAssignment =
keyVaultAccessControlClient.getRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName);
System.out.printf("Retrieved role assignment with name '%s'.%n", roleAssignment.getName());
ロールの割り当てを削除する
サービス プリンシパルからロールの割り当てを削除するには、ロールの割り当てを削除する必要があります。 これを行うには、既存のロールの割り当ての 'name' プロパティが必要です。
String roleAssignmentName = "<role-assignment-name>";
keyVaultAccessControlClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName);
System.out.printf("Deleted role assignment with name '%s'.%n", roleAssignmentName);
非同期 API
次のセクションでは、最も一般的な非同期 Azure Key Vault Access Control サービス タスクの一部をカバーするいくつかのコード スニペットを示します。
- ロール定義を非同期的に一覧表示する
- ロール定義を非同期的に作成または更新する
- ロール定義を非同期的に取得する
- ロール定義を非同期的に削除する
- ロールの割り当てを非同期的に一覧表示する
- ロールの割り当てを非同期的に作成する
- ロールの割り当てを非同期的に取得する
- ロールの割り当てを非同期的に削除する
注: メインアプリケーション/スレッドが終了する前に非同期関数/操作を実行して終了できるように、メイン クラス/スレッドで関数呼び出しの後に または
Thread.sleep()
を追加System.in.read()
する必要があります。
ロール定義を非同期的に一覧表示する
を呼び出 listRoleDefinitions()
して、キー コンテナー内のロール定義を一覧表示します。
keyVaultAccessControlAsyncClient.listRoleDefinitions(KeyVaultRoleScope.GLOBAL)
.subscribe(roleDefinition ->
System.out.printf("Retrieved role definition with name '%s'.%n", roleDefinition.getName()));
ロール定義を非同期的に作成または更新する
キー コンテナーでロール定義を作成または更新します。 次の例は、ランダムに生成された名前を使用してロール定義を作成する方法を示しています。
keyVaultAccessControlAsyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL)
.subscribe(roleDefinition ->
System.out.printf("Created role definition with randomly generated name '%s' and role name '%s'.%n",
roleDefinition.getName(), roleDefinition.getRoleName()));
ロール定義を非同期的に取得する
既存のロール定義を取得します。 これを行うには、既存のロール定義の 'name' プロパティが必要です。
String roleDefinitionName = "<role-definition-name>";
keyVaultAccessControlAsyncClient.getRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName)
.subscribe(roleDefinition ->
System.out.printf("Retrieved role definition with name '%s' and role name '%s'.%n",
roleDefinition.getName(), roleDefinition.getRoleName()));
ロール定義を非同期的に削除する
ロール定義を削除します。 これを行うには、既存のロール定義の 'name' プロパティが必要です。
String roleDefinitionName = "<role-definition-name>";
keyVaultAccessControlAsyncClient.deleteRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName)
.subscribe(unused -> System.out.printf("Deleted role definition with name '%s'.%n", roleDefinitionName));
ロールの割り当てを非同期的に一覧表示する
を呼び出 listRoleAssignments()
して、キー コンテナー内のロールの割り当てを一覧表示します。
keyVaultAccessControlAsyncClient.listRoleAssignments(KeyVaultRoleScope.GLOBAL)
.subscribe(roleAssignment ->
System.out.printf("Retrieved role assignment with name '%s'.%n", roleAssignment.getName()));
ロールの割り当てを非同期的に作成する
キー コンテナーにロールの割り当てを作成します。 そのためには、ロール定義 ID とサービス プリンシパル オブジェクト ID が必要です。
ロール定義 ID は、 から返されるロール定義の "id" プロパティから listRoleDefinitions()
取得できます。
新しいサービス プリンシパルを生成してオブジェクト ID を取得する方法のリンクと手順については、「 資格情報の作成/取得」セクション を参照してください。 次の Azure CLI コマンドを実行して、現在サインインしているアカウントのオブジェクト ID を取得することもできます。
az ad signed-in-user show --query objectId
String roleDefinitionId = "<role-definition-id>";
String servicePrincipalId = "<service-principal-id>";
keyVaultAccessControlAsyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinitionId,
servicePrincipalId).subscribe(roleAssignment ->
System.out.printf("Created role assignment with randomly generated name '%s' for principal with id"
+ "'%s'.%n", roleAssignment.getName(), roleAssignment.getProperties().getPrincipalId()));
ロールの割り当てを非同期的に取得する
既存のロールの割り当てを取得します。 これを行うには、既存のロールの割り当ての 'name' プロパティが必要です。
String roleAssignmentName = "<role-assignment-name>";
keyVaultAccessControlAsyncClient.getRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName)
.subscribe(roleAssignment ->
System.out.printf("Retrieved role assignment with name '%s'.%n", roleAssignment.getName()));
ロールの割り当てを非同期的に削除する
サービス プリンシパルからロールの割り当てを削除するには、ロールの割り当てを削除する必要があります。 これを行うには、既存のロールの割り当ての 'name' プロパティが必要です。
String roleAssignmentName = "<role-assignment-name>";
keyVaultAccessControlAsyncClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName)
.subscribe(unused ->
System.out.printf("Deleted role assignment with name '%s'.%n", roleAssignmentName));
バックアップ操作と復元操作
例
同期 API
次のセクションでは、次のような最も一般的な Azure Key Vault Backup クライアント タスクをカバーするいくつかのコード スニペットを示します。
キーのコレクションをバックアップする
を使用してキーのコレクション全体を beginBackup()
バックアップします。
String blobStorageUrl = "https://myaccount.blob.core.windows.net/myContainer";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";
SyncPoller<KeyVaultBackupOperation, String> backupPoller =
keyVaultBackupClient.beginBackup(blobStorageUrl, sasToken);
PollResponse<KeyVaultBackupOperation> pollResponse = backupPoller.poll();
System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus());
PollResponse<KeyVaultBackupOperation> finalPollResponse = backupPoller.waitForCompletion();
if (finalPollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) {
String folderUrl = backupPoller.getFinalResult();
System.out.printf("Backup completed. The storage location of this backup is: %s.%n", folderUrl);
} else {
KeyVaultBackupOperation operation = backupPoller.poll().getValue();
System.out.printf("Backup failed with error: %s.%n", operation.getError().getMessage());
}
キーのコレクションを復元する
を使用して、バックアップからキーのコレクション全体を beginRestore()
復元します。
String folderUrl = "https://myaccount.blob.core.windows.net/myContainer/mhsm-myaccount-2020090117323313";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";
SyncPoller<KeyVaultRestoreOperation, KeyVaultRestoreResult> backupPoller =
keyVaultBackupClient.beginRestore(folderUrl, sasToken);
PollResponse<KeyVaultRestoreOperation> pollResponse = backupPoller.poll();
System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus());
PollResponse<KeyVaultRestoreOperation> finalPollResponse = backupPoller.waitForCompletion();
if (finalPollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) {
System.out.printf("Backup restored successfully.%n");
} else {
KeyVaultRestoreOperation operation = backupPoller.poll().getValue();
System.out.printf("Restore failed with error: %s.%n", operation.getError().getMessage());
}
キーを選択的に復元する
を使用して、バックアップから特定のキーを beginSelectiveRestore()
復元します。
String folderUrl = "https://myaccount.blob.core.windows.net/myContainer/mhsm-myaccount-2020090117323313";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";
String keyName = "myKey";
SyncPoller<KeyVaultSelectiveKeyRestoreOperation, KeyVaultSelectiveKeyRestoreResult> backupPoller =
keyVaultBackupClient.beginSelectiveKeyRestore(folderUrl, sasToken, keyName);
PollResponse<KeyVaultSelectiveKeyRestoreOperation> pollResponse = backupPoller.poll();
System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus());
PollResponse<KeyVaultSelectiveKeyRestoreOperation> finalPollResponse = backupPoller.waitForCompletion();
if (finalPollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) {
System.out.printf("Key restored successfully.%n");
} else {
KeyVaultSelectiveKeyRestoreOperation operation = backupPoller.poll().getValue();
System.out.printf("Key restore failed with error: %s.%n", operation.getError().getMessage());
}
非同期 API
次のセクションでは、次のような最も一般的な非同期 Azure Key Vault Backup クライアント タスクをカバーするいくつかのコード スニペットを示します。
注: メインアプリケーション/スレッドが終了する前に非同期関数/操作を実行して終了できるように、メイン クラス/スレッドで関数呼び出しの後に または
Thread.sleep()
を追加System.in.read()
する必要があります。
キーのコレクションを非同期的にバックアップする
を使用してキーのコレクション全体を beginBackup()
バックアップします。
String blobStorageUrl = "https://myaccount.blob.core.windows.net/myContainer";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";
keyVaultBackupAsyncClient.beginBackup(blobStorageUrl, sasToken)
.setPollInterval(Duration.ofSeconds(1)) // You can set a custom polling interval.
.doOnError(e -> System.out.printf("Backup failed with error: %s.%n", e.getMessage()))
.doOnNext(pollResponse ->
System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus()))
.filter(pollResponse -> pollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED)
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(folderUrl ->
System.out.printf("Backup completed. The storage location of this backup is: %s.%n", folderUrl));
キーのコレクションを非同期的に復元する
を使用して、バックアップからキーのコレクション全体を beginRestore()
復元します。
String folderUrl = "https://myaccount.blob.core.windows.net/myContainer/mhsm-myaccount-2020090117323313";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";
keyVaultBackupAsyncClient.beginRestore(folderUrl, sasToken)
.setPollInterval(Duration.ofSeconds(1)) // You can set a custom polling interval.
.doOnError(e -> System.out.printf("Restore failed with error: %s.%n", e.getMessage()))
.doOnNext(pollResponse ->
System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus()))
.filter(pollResponse -> pollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED)
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(unused -> System.out.printf("Backup restored successfully.%n"));
キーを選択的に非同期的に復元する
を使用して、バックアップからキーのコレクション全体を beginSelectiveRestore()
復元します。
String folderUrl = "https://myaccount.blob.core.windows.net/myContainer/mhsm-myaccount-2020090117323313";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";
String keyName = "myKey";
keyVaultBackupAsyncClient.beginSelectiveKeyRestore(folderUrl, sasToken, keyName)
.setPollInterval(Duration.ofSeconds(1)) // You can set a custom polling interval.
.doOnError(e -> System.out.printf("Key restoration failed with error: %s.%n", e.getMessage()))
.doOnNext(pollResponse ->
System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus()))
.filter(pollResponse -> pollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED)
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(unused -> System.out.printf("Key restored successfully.%n"));
設定操作
例
同期 API
次のセクションでは、最も一般的な Azure Key Vault Settings クライアント タスクの一部をカバーするいくつかのコード スニペットを示します。
すべての設定を取得する
Key Vault アカウントのすべての設定を一覧表示します。
KeyVaultGetSettingsResult getSettingsResult = keyVaultSettingsClient.getSettings();
for (KeyVaultSetting setting : getSettingsResult.getSettings()) {
System.out.printf("Retrieved setting '%s' with value '%s'.%n", setting.getName(), setting.asBoolean());
}
特定の設定を取得する
特定の設定を取得します。
String settingName = "<setting-to-get>";
KeyVaultSetting setting = keyVaultSettingsClient.getSetting(settingName);
System.out.printf("Retrieved setting '%s' with value '%s'.%n", setting.getName(),
setting.asBoolean());
特定の設定を更新する
特定の設定を更新します。
String settingName = "<setting-to-update>";
KeyVaultSetting settingToUpdate = new KeyVaultSetting(settingName, true);
KeyVaultSetting updatedSetting = keyVaultSettingsClient.updateSetting(settingToUpdate);
System.out.printf("Updated setting '%s' to '%s'.%n", updatedSetting.getName(), updatedSetting.asBoolean());
非同期 API
次のセクションでは、最も一般的な非同期 Azure Key Vault Settings クライアント タスクの一部をカバーするいくつかのコード スニペットを示します。
すべての設定を非同期的に取得する
Key Vault アカウントのすべての設定を一覧表示します。
keyVaultSettingsAsyncClient.getSettings()
.subscribe(settingsResult ->
settingsResult.getSettings().forEach(setting ->
System.out.printf("Retrieved setting with name '%s' and value '%s'.%n", setting.getName(),
setting.asBoolean())));
特定の設定を非同期的に取得する
特定の設定を取得します。
String settingName = "<setting-to-get>";
keyVaultSettingsAsyncClient.getSetting(settingName)
.subscribe(setting ->
System.out.printf("Retrieved setting with name '%s' and value '%s'.%n", setting.getName(),
setting.asBoolean()));
特定の設定を非同期的に更新する
特定の設定を更新します。
String settingName = "<setting-to-update>";
KeyVaultSetting settingToUpdate = new KeyVaultSetting(settingName, true);
keyVaultSettingsAsyncClient.updateSetting(settingToUpdate)
.subscribe(updatedSetting ->
System.out.printf("Updated setting with name '%s' and value '%s'.%n", updatedSetting.getName(),
updatedSetting.asBoolean()));
トラブルシューティング
さまざまな障害シナリオを診断する方法の詳細については、 トラブルシューティング ガイド を参照してください。
全般
Azure Key Vault Access Control クライアントでは例外が発生します。 たとえば、削除 404
後にロールの割り当てを取得しようとすると、リソースが見つからなかったというエラーが返されます。 次のスニペットでは、例外をキャッチし、エラーに関する追加情報を表示することで、エラーが適切に処理されます。
try {
keyVaultAccessControlClient.getRoleAssignment(KeyVaultRoleScope.GLOBAL, "<role-assginment-name>");
} catch (HttpResponseException e) {
System.out.println(e.getMessage());
}
既定の HTTP クライアント
すべてのクライアント ライブラリでは、Netty HTTP クライアントが既定で使用されます。 前述の依存関係を追加すると、Netty HTTP クライアントを使用するようにクライアント ライブラリが自動的に構成されます。 HTTP クライアントの構成と変更については、HTTP クライアントの Wiki で詳しく説明されています。
既定の SSL ライブラリ
すべてのクライアント ライブラリは、Tomcat ネイティブの Boring SSL ライブラリを既定で使用して、SSL 操作にネイティブレベルのパフォーマンスを実現しています。 Boring SSL ライブラリは、Linux/macOS/Windows 用のネイティブ ライブラリを含む Uber JAR であり、JDK 内の既定の SSL 実装と比較してパフォーマンスが向上します。 依存関係のサイズを縮小する方法など、詳細については、Wiki の「パフォーマンス チューニング」セクションを参照してください。
次の手順
SDK の GitHub リポジトリには、いくつかのKey Vault Java SDK サンプルが用意されています。 これらのサンプルでは、Azure Key Vaultの操作中に一般的に発生するその他のシナリオのコード例を示します。
その他のドキュメント
Azure Key Vaultに関するより広範なドキュメントについては、API リファレンス ドキュメントを参照してください。
共同作成
このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、 https://cla.microsoft.com を参照してください。
pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。
このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。