使用 java 根据密钥环列出密钥(密钥名称和版本)

List the keys (key name and versions) based on keyring using java

我正在使用 java 客户端根据 https://cloud.google.com/kms/docs/samples/kms-quickstart#kms_quickstart-java

从 google KMS 检索可用的密钥环

下面的 gcould 命令将列出特定 keyRing 的可用 beys 和版本

gcloud kms keys list --keyring keyring --location location 

但我能够找到有关 java 客户端的任何文档以从密钥环中检索密钥名称和版本。 gogle KMS java 客户端中有可用的选项吗?

Cloud KMS Client Library

您引用的页面中的示例包括 listKeyRings

要枚举特定密钥环的(加密)密钥,我认为(!?)您可以使用 listCryptoKeys to (also) get pages (!) of ListCryptoKeysPagedResponse,您应该能够 iterateAll()

NOTE These examples don't (!?) fetch subsequent pages of results; you will need to do this.

除非您熟悉自动生成的 javadoc,否则浏览这些 API 可能会很麻烦。

需要知道的几件事:

  1. Google(几乎无一例外)在其 SDK 方面做得非常出色。如果存在 API 方法,您可以非常确信该功能存在于您选择的 Google SDK 中;你只需要找到它!
  2. APIs Explorer is an excellent tool for understanding Google's APIs (it used to do a better job referencing SDKs too). In this case, Cloud KMS keyRings.list and keyRings.cryptoKeys.list 不仅记录了方法功能,还总结了请求|响应对象。
  3. 任何 (!) gcloud 命令都可以用 --log-http 进行调整,以显示正在进行哪些底层 REST API 调用,即 gcloud kms keys list --keyring=${KEYRING} --location=${LOCATION} --log-http 应该 (!) 参考回到 keyRings.cryptoKeys.list