我可以从外部访问 Google 个 Secrets Manager 机密吗

Can I access Google Secrets Manager secrets externally

我正在编写一个应用程序,我将在 Google Cloud Functions 中托管它,其中一些配置存储在 Secrets Manager 中。我想与本地计算机上 运行 的另一个节点应用程序共享此信息。这可能吗?我试过使用 npm 包,但我不知道如何进行身份验证才能访问管理器。

我正在使用服务密钥访问 firestore:

import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
const service_key = {
    apiKey: myKey,
    authDomain: "my-poroject.firebaseapp.com",
    projectId: "my-poroject",
    storageBucket: "my-poroject.appspot.com",
    messagingSenderId: "0123456789",
    appId: "0:00000000:web:00000000000000"
 }
const app = initializeApp(service_Key);
export const db = getFirestore(app);

这一切都完美无缺,但我看不出在使用秘密管理器时如何应用密钥或 'app':

const {SecretManagerServiceClient} = require('@google-cloud/secret-manager');
const client = new SecretManagerServiceClient();

作为 public 云提供商,大多数 Google 云服务都可以 public 访问。所以是的,您可以从外部访问秘密。

但是,您必须具有访问机密所需的凭据和权限。

您可以使用 service account key file,这也是一个秘密 (我从不推荐该选项,但在某些情况下,它很有用),生成一个访问令牌并安全地查询秘密管理器。问题出在服务账号密钥文件上,保护秘密是秘密...安全级别取决于你的外部平台。

您还可以查看 Identity Federation Pool,它可以帮助您使用已知身份并在 Google 云上透明地进行身份验证。它非常强大,您不再需要秘密,而且您的安全状况得到了加强。