簡體   English   中英

Google Cloud function 從 Secrets Manger 訪問秘密

[英]Google Cloud function accessing a secret from Secrets Manger

我在獲取雲 function 以訪問機密管理器的機密時遇到問題。 基本上我想通過向后端發送請求然后后端從機密管理器獲取機密來獲得我的前端訪問機密。

我的雲 function 端點如下所示:

Endpoint.get("/get-key", authMiddleware, async (req: any, res: Response) => {
  try {
    const auth = new GoogleAuth({
      scopes: ['https://www.googleapis.com/auth/cloud-platform']
    });

    const project = req.params.projectId;
    const secret = req.params.secret;
    const name = `projects/${project}/secrets/${secret}/versions/latest`;
    const credentials = await auth.getCredentials();

    const ver = new SecretManagerServiceClient({credentials,projectId:project});
    const request = {
      name,
    };
    const response = await ver.accessSecretVersion(request);
    const payload = response.payload.data.toString();
    console.log(`Payload: ${payload}`);
    return res.status(200).send({ payload });
  } catch (error:any) {
    console.log("get key error: ", error);
    return res.status(500).send(error.message);
  }
});

當我嘗試訪問該端點時出現此錯誤:

PERMISSION_DENIED: Permission denied: Consumer 'project:undefined' has been suspended

我嘗試在那里明確設置 projectId,它仍然給我那個錯誤。 不知道我還能改變什么。 也許“最新”不是秘密管理器的有效端點。

PERMISSION_DENIED: Permission denied: Consumer 'project:undefined' has been suspended

當您超出此github 線程中討論的使用配額或由於違反ToS時,會發生上述錯誤。 您可能需要提交上訴。 您可以就此聯系Google 支持

還要確保您已將secretAccessor角色授予您的服務帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM