问题描述
我想使用project.getIamPolicy和setIamPolicy,但是它给我403并显示一条错误消息,内容为“之前尚未在项目中使用身份和访问管理(IAM)API或已将其禁用。请访问{ {3}},然后重试。如果您最近启用了此API,请等待几分钟,以使操作传播到我们的系统并重试。”
我不想每次创建项目时都从控制台手动启用(每个项目的身份和访问管理(IAM)API或其他此类API)。
我想使整个过程自动化,所以这是一个阻碍。
有人可以帮忙,有什么解决方法吗?
解决方法
如果您使用的是Terraform,则可以自动启用API。
resource "google_project_service" "project" {
project = "your-project-id"
service = "iam.googleapis.com"
disable_dependent_services = true
}
,
根据该GCP公众documentation:
- 启用和禁用服务的最简单方法是使用Google Cloud Console。
- 如果需要创建脚本,还可以使用gcloud命令行界面。
- 如果您需要针对“服务使用API”进行编程,则指南建议您使用我们提供的客户端库之一。
在同一指南中,在上述信息的下方,您将找到每个选项的steps。
注意:或者,您可以使用curl命令测试API,而无需设置完整的应用程序开发环境。
启用服务后,您可以通过编程方式create服务帐户和add roles到IAM策略。
请记住,IAM策略将一个或多个成员绑定到一个角色。当您要定义谁(成员)对资源具有哪种访问(角色)类型时,可以创建一个策略并将其附加到资源上。
这是“ IAM的工作方式” guide。
注意:这两个IAM指南都包含“ REST API”,“ C#”,“ Go”,“ Java”和“ Python”代码示例,所以我认为您会没事的。
请告诉我这是否适合您。