自动获取最新的Google Cloud Platform秘密版本

Eng*_*ana 7 google-cloud-platform google-secret-manager

我正在尝试获取最新的秘密版本。有没有办法在不指定版本号的情况下做到这一点?例如使用关键字“最新”。我试图避免使用 for 循环迭代所有秘密版本,如 GCP 文档所示:

try (SecretManagerServiceClient client = SecretManagerServiceClient.create()) {
  // Build the parent name.
  SecretName projectName = SecretName.of(projectId, secretId);

  // Get all versions.
  ListSecretVersionsPagedResponse pagedResponse = client.listSecretVersions(projectName);

  // List all versions and their state.
  pagedResponse
      .iterateAll()
      .forEach(
          version -> {
            System.out.printf("Secret version %s, %s\n", version.getName(), version.getState());
          });
}
Run Code Online (Sandbox Code Playgroud)

set*_*rgo 18

是的,您可以使用“最新”作为版本号。这称为“别名”。目前,唯一的别名是“最新”,但我们将来可能支持更多别名。

gcloud secrets versions access "latest" --secret "my-secret"
Run Code Online (Sandbox Code Playgroud)
try (SecretManagerServiceClient client = SecretManagerServiceClient.create()) {
  SecretVersionName secretVersionName = SecretVersionName.of(projectId, secretId, "latest"); // <-- here

  // Access the secret version.
  AccessSecretVersionResponse response = client.accessSecretVersion(secretVersionName);

  String payload = response.getPayload().getData().toStringUtf8();
  System.out.printf("Plaintext: %s\n", payload);
}
Run Code Online (Sandbox Code Playgroud)

  • 我同意奥贾斯夫和比克拉姆的观点。出于回滚目的而获取“最新启用”确实很有用,但如果最新被禁用或损坏,“最新”将返回空文件/错误。 (4认同)
  • @sethvargo 如果最新的秘密被禁用怎么办,如何访问可用的最新活动秘密。 (2认同)