google-cloud-platform - 如何从 IAM api 设置服务帐户权限
问题描述
我正在尝试为谷歌云平台生成的帐户设置管理员权限。现在,我正在从以下位置获取服务帐户:
https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/list
但我不确定在获得此信息后如何进行。
非常感谢
解决方案
您将能够通过从 API 检索项目的当前权限策略、修改策略并应用新策略来向服务帐户添加权限。
首先,您将通过调用以下方式获取项目的权限策略:
POST https://cloudresourcemanager.googleapis.com/v1beta1/projects/$your-project-id:getIamPolicy
您将在响应中获得策略,例如:
{
"bindings": [
{
"role": "roles/editor",
"members": [
"serviceAccount:your-project-id@appspot.gserviceaccount.com"
]
},
{
"role": "roles/owner",
"members": [
"user:email1@gmail.com",
"user:email2@gmail.com",
"user:email3@gmail.com"
]
}
]
}
如果您想将此项目的服务帐户授予所有者角色,您只需修改策略并使用 编写它setIamPolicy()
,如下所示:
POST https://cloudresourcemanager.googleapis.com/v1/projects/$our-project-123:setIamPolicy
{
"policy": {
"bindings": [
{
"role": "roles/owner",
"members": [
"user:email1@gmail.com",
"user:email2@gmail.com",
"user:email3@gmail.com",
"serviceAccount:your-project-id@appspot.gserviceaccount.com"
]
},
]
}
}
此调用将在响应中确认新应用的策略。这记录在这里。
推荐阅读
- spring-boot - 我们如何禁用 /oauth/token 的 GET 选项端点,并且只在 Spring Security 中保留 POST 选项?
- c++ - Visual Studio 无缘无故地重新编译在两个解决方案之间共享的项目
- ios - 如何从 Firebase Storage 下载 USDZ 模型并将它们加载到我的 iOS 应用上的 ARQuickLook?
- c# - 匹配任何不是字母的特殊字符(包括下划线,但不包括空格)
- java - 如何在使用 HibernateSearch QueryDSL 构建的 Elasticsearch 查询中包含 prefixLength
- r - 删除字符串的一部分并使用它与另一个数据框相交
- node.js - Kubernetes Ingress nodejs超时问题
- r - 如何在基于 RCppEigen 的 R 包中使用“使用命名空间 Eigen”?
- amazon-s3 - Kentico:Amazon S3 定期出现故障
- android - 在屏幕上调整大小:之前的屏幕宽度和高度在从 vkGetPhysicalDeviceSurfaceCapabilitiesKHR 返回的当前范围内