繁体   English   中英

对于需要服务帐户身份验证的 GCP 云 function 第二代,在 IAMCredentialsClient 中使用的正确 scope 是什么?

[英]What is the proper scope to use in IAMCredentialsClient for a GCP cloud function 2nd gen that requires authentication from a service account?

我有这段代码可以为第二代 GCP Cloud Function 生成访问令牌:

const {IAMCredentialsClient} = require('@google-cloud/iam-credentials');

// Creates a client
const client = new IAMCredentialsClient();

async function generateAccessToken() {
    const [token] = await client.generateAccessToken({
        name: `projects/-/serviceAccounts/<MY SERVICE ACCOUNT NAME>@<MY PROJECT NAME>.iam.gserviceaccount.com`,
        scope: ["https://www.googleapis.com/auth/cloud-platform"],
    });
    console.info(token);
}
generateAccessToken();

但是当我使用它在 Postman 中记录的令牌时,它给了我一个 401 错误。我假设我没有使用正确的范围。

什么是正确的范围? 还是我犯了一个不同的错误? 此代码确实会生成一个令牌,该令牌不会运行 function。

尝试在 function 上创建、更新或执行其他管理操作,您必须有一个具有适当角色的委托人。 查看验证 function 到 function 呼叫以了解更多信息。

创建一个除了调用您的 Cloud Function 之外没有任何权限的服务帐户,使用您的调用代码为该帐户部署 JSON 密钥,并设置 GOOGLE_APPLICATION_CREDENTIALS。

如果代码为第二代 GCP Cloud Function 生成访问令牌,如果它支持 Oauth-2,请尝试使用Google 的工作负载身份联合获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM