Google cloud platform 如何以编程方式为Google云项目启用身份和访问管理(IAM)API?

Google cloud platform 如何以编程方式为Google云项目启用身份和访问管理(IAM)API?,google-cloud-platform,google-api,google-developers-console,Google Cloud Platform,Google Api,Google Developers Console,我想使用project.getIamPolicy和setIamPolicy,但它给了我403,错误消息是“以前在project中没有使用过标识和访问管理(IAM)API,或者它已被禁用。请通过访问来启用它,然后重试。如果您最近启用了此API,请等待几分钟,让操作传播到我们的系统,然后重试。” 我不希望每次创建项目时都从控制台手动启用(身份和访问管理(IAM)API或每个项目的其他此类API)。 我想自动化整个过程,因此,这是一个拦截器来实现。 有人能帮忙吗?有解决办法吗?如果您使用Terrafo

我想使用project.getIamPolicy和setIamPolicy,但它给了我403,错误消息是“以前在project中没有使用过标识和访问管理(IAM)API,或者它已被禁用。请通过访问来启用它,然后重试。如果您最近启用了此API,请等待几分钟,让操作传播到我们的系统,然后重试。”
我不希望每次创建项目时都从控制台手动启用(身份和访问管理(IAM)API或每个项目的其他此类API)。
我想自动化整个过程,因此,这是一个拦截器来实现。

有人能帮忙吗?有解决办法吗?

如果您使用Terraform,那么您可以自动启用API

resource "google_project_service" "project" {
  project = "your-project-id"
  service = "iam.googleapis.com"

  disable_dependent_services = true
}

根据本GCP公共文件:

  • 启用和禁用服务的最简单方法是使用谷歌云控制台
  • 如果需要创建脚本,还可以使用gcloud命令行界面
  • 如果您需要针对“服务使用API”编程,本指南建议您使用我们提供的一个客户端库
在同一指南中,在上述信息的下面,您将找到每个选项的

注意:您也可以使用curl命令测试API,而无需设置完整的应用程序开发环境

一旦您启用了服务,您就可以通过编程的方式将服务帐户和IAM策略绑定到一起

请记住,IAM策略将一个或多个成员绑定到一个角色。当您想要定义谁(成员)对资源具有何种类型的访问权(角色)时,您可以创建一个策略并将其附加到资源

以下是“我是如何工作的”

注意:两个IAM指南都包含“RESTAPI”、“C#”、“Go”、“Java”和“Python”代码示例,所以我认为您可以


请让我知道这是否适合您。

我想使用google cloud jar,以便能够访问这些API。你有使用谷歌客户端库的东西吗。基本上,整个用例是创建项目、服务帐户,并将用户服务帐户用户角色赋予该服务帐户。你知道吗,用程序来完成这一切?无论如何,谢谢您可以创建一个shell脚本来包含以下语句
gcloud services enable SERVICE\u NAME gcloud iam SERVICE accounts key create--iam account my iam-account@somedomain.comkey.json gcloud iam服务帐户添加iam策略绑定测试-proj1@example.domain.com--成员帐户:测试-proj1@example.domain.com' --role='roles/editor'