本页面介绍如何授予、更改和撤消项目、文件夹和组织的访问权限。如需了解如何管理对其他资源的访问权限,请参阅以下指南:
在 Identity and Access Management (IAM) 中,通过允许政策(也称为 IAM 政策)授予访问权限。允许政策已附加到 Google Cloud 资源。每个允许政策都包含一组角色绑定,这些角色绑定会将一个或多个主账号(例如用户或服务账号)与 IAM 角色相关联。这些角色绑定会向主账号授予指定的角色,包括允许政策所关联的资源以及该资源的所有后代。如需详细了解允许政策,请参阅了解允许政策。
您可以使用 Google Cloud 控制台、Google Cloud CLI、REST API 或 Resource Manager 客户端库来管理对项目、文件夹和组织的访问权限。
准备工作
Enable the Resource Manager API.
设置身份验证。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C#
如需在本地开发环境中使用本页面上的 .NET 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
如需了解详情,请参阅 Google Cloud 身份验证文档中的为本地开发环境设置身份验证。
Java
如需在本地开发环境中使用本页面上的 Java 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
如需了解详情,请参阅 Google Cloud 身份验证文档中的为本地开发环境设置身份验证。
Python
如需在本地开发环境中使用本页面上的 Python 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
如需了解详情,请参阅 Google Cloud 身份验证文档中的为本地开发环境设置身份验证。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
创建项目、文件夹或组织时,系统会自动为您授予一个角色,可让您管理相应资源的访问权限。如需了解详情,请参阅默认政策。
如果您没有创建项目、文件夹或组织,请确保您具有管理相应资源的访问权限所需的角色。
如需获得管理项目、文件夹或组织访问权限所需的权限,请让管理员向您授予您要管理其访问权限的资源(项目、文件夹或组织)的以下 IAM 角色:
- Project IAM Admin (
roles/resourcemanager.projectIamAdmin
)(如需管理项目访问权限) - Folder Admin (
roles/resourcemanager.folderAdmin
)(如需管理文件夹访问权限) - Organization Admin (
roles/resourcemanager.organizationAdmin
)(如需管理项目、文件夹和组织的访问权限) - Security Admin (
roles/iam.securityAdmin
)(如需管理几乎所有 Google Cloud 资源的访问权限)
这些预定义角色包含管理项目、文件夹或组织的访问权限所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需管理对项目、文件夹或组织的访问权限,您必须拥有以下权限:
-
如需管理项目访问权限:
-
resourcemanager.projects.getIamPolicy
-
resourcemanager.projects.setIamPolicy
-
-
如需管理文件夹访问权限:
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
-
如需管理组织访问权限:
-
resourcemanager.organizations.getIamPolicy
-
resourcemanager.organizations.setIamPolicy
-
查看当前访问权限
您可以使用 Google Cloud 控制台、gcloud CLI、REST API 或 Resource Manager 客户端库来查看谁有权访问您的项目、文件夹或组织。
控制台
在 Google Cloud 控制台中,转到 IAM 页面。
选择一个项目、文件夹或组织。
Google Cloud 控制台会列出已被授予您的项目、文件夹或组织的角色的所有主账号。此列表包括从父级资源继承资源角色的主账号。如需详细了解政策继承,请参阅政策继承和资源层次结构。
可选:如需查看服务代理的角色授予,请选中包括 Google 提供的角色授予复选框。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
如需查看谁有权访问您的项目、文件夹或组织,请获取资源的允许政策。如需了解如何解读允许政策,请参阅了解允许政策。
如需获取资源的允许政策,请运行资源的
get-iam-policy
命令:gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
请提供以下值:
-
RESOURCE_TYPE
:您要查看访问权限的资源的类型。请使用以下某个值:projects
、resource-manager folders
或organizations
。 -
RESOURCE_ID
:您的 Google Cloud 项目、文件夹或组织 ID。项目 ID 为字母数字,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。 -
FORMAT
:政策所需的格式。请使用json
或yaml
。 -
PATH
:指向政策的新输出文件的路径。
例如,以下命令会获取项目
my-project
的政策,并以 JSON 格式将其保存到主目录中:gcloud projects get-iam-policy my-project --format=json > ~/policy.json
-
C#
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
如需查看谁有权访问您的项目、文件夹或组织,请获取相应资源的允许政策。如需了解如何解读允许政策,请参阅了解允许政策。
以下示例展示了如何获取项目的允许政策。如需了解如何获取文件夹或组织的允许政策,请查看适合您的编程语言的 Resource Manager 客户端库文档。
Java
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
如需查看谁有权访问您的项目、文件夹或组织,请获取相应资源的允许政策。如需了解如何解读允许政策,请参阅了解允许政策。
以下示例展示了如何获取项目的允许政策。如需了解如何获取文件夹或组织的允许政策,请查看适合您的编程语言的 Resource Manager 客户端库文档。
Python
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
如需查看谁有权访问您的项目、文件夹或组织,请获取相应资源的允许政策。如需了解如何解读允许政策,请参阅了解允许政策。
以下示例展示了如何获取项目的允许政策。如需了解如何获取文件夹或组织的允许政策,请查看适合您的编程语言的 Resource Manager 客户端库文档。
REST
要查看谁有权访问您的项目、文件夹或组织,请获取资源的允许政策。如需了解如何解读允许政策,请参阅了解允许政策。
Resource Manager API 的
getIamPolicy
方法可获取项目、文件夹或组织的允许政策。在使用任何请求数据之前,请先进行以下替换:
API_VERSION
:要使用的 API 版本。对于项目和组织,请使用v1
。对于文件夹,请使用v2
。RESOURCE_TYPE
:您要管理其政策的资源类型。使用值projects
、folders
或organizations
。RESOURCE_ID
:您的 Google Cloud 项目、组织或文件夹 ID。 项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。POLICY_VERSION
:要返回的政策版本。请求应指定最新的政策版本,即政策版本 3。如需了解详情,请参阅在获取政策时指定政策版本。
HTTP 方法和网址:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
请求 JSON 正文:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
如需发送您的请求,请展开以下选项之一:
响应包含资源的允许政策。例如:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:owner@example.com" ] } ] }
授予或撤消单个角色
您可以使用 Google Cloud 控制台和 gcloud CLI 快速授予或撤消单个主账号的单个角色,而无需直接修改资源的允许政策。常见的主账号类型包括 Google 账号、服务账号、Google 群组和网域。如需查看所有主账号类型的列表,请参阅与身份相关的概念。
政策更改通常会在 2 分钟内生效。但是,在某些情况下,更改可能需要长达 7 分钟的时间才能传播到整个系统。
如果您需要帮助来确定最合适的预定义角色,请参阅选择预定义角色。
授予单个角色
如需向主账号授予单个角色,请执行以下操作:
控制台
在 Google Cloud 控制台中,前往 IAM 页面。
选择一个项目、文件夹或组织。
选择要向其授予一个角色的主账号:
如需向已拥有资源的其他角色的主账号授予角色,请找到包含主账号的行,点击该行中的
修改主账号,然后点击 添加其他角色。如需向服务代理授予角色,请选中包括 Google 提供的角色授予复选框以查看其电子邮件地址。
如需向尚未拥有资源的任何角色的主账号授予角色,请点击
授予访问权限,然后输入该主账号的电子邮件地址或其他标识符。
从下拉列表中选择要授予的角色。按照确保安全性的最佳做法,请选择一个仅包含主账号所需权限的角色。
可选:为角色添加条件。
点击保存。将向主账号授予资源上的角色。
如需针对多个项目、文件夹或组织向主账号授予角色,请执行以下操作:
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
add-iam-policy-binding
命令使您可以快速向主账号授予角色。在使用下面的命令数据之前,请先进行以下替换:
-
RESOURCE_TYPE
:要管理访问权限的资源类型。请使用projects
、resource-manager folders
或organizations
。 -
RESOURCE_ID
:您的 Google Cloud 项目、文件夹或组织 ID。项目 ID 为字母数字,例如my-project
。 文件夹和组织 ID 是数字,例如123456789012
。 -
PRINCIPAL
:主账号(或成员)的标识符,通常其格式如下:PRINCIPAL_TYPE:ID
。例如user:my-user@example.com
。如需查看PRINCIPAL
可以采用的值的完整列表,请参阅政策绑定参考文档。对于主账号类型
user
,标识符中的域名必须是 Google Workspace 网域或 Cloud Identity 网域。如需了解如何设置 Cloud Identity 网域,请参阅 Cloud Identity 概览。 -
ROLE_NAME
:要撤消的角色的名称。请采用以下某种格式:- 预定义角色:
roles/SERVICE.IDENTIFIER
- 项目级自定义角色:
projects/PROJECT_ID/roles/IDENTIFIER
- 组织级自定义角色:
organizations/ORG_ID/roles/IDENTIFIER
如需了解完整的预定义角色的列表,请参阅了解角色。
- 预定义角色:
-
CONDITION
:要添加到角色绑定的条件。如果您不想添加条件,请使用值None
。如需详细了解条件,请参阅条件概览。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \ --member=PRINCIPAL --role=ROLE_NAME \ --condition=CONDITION
Windows (PowerShell)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ` --member=PRINCIPAL --role=ROLE_NAME ` --condition=CONDITION
Windows (cmd.exe)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ^ --member=PRINCIPAL --role=ROLE_NAME ^ --condition=CONDITION
响应中包含更新后的 IAM 政策。
-
撤消单个角色
如需撤消主账号的单个角色,请执行以下操作:
控制台
在 Google Cloud 控制台中,转到 IAM 页面。
选择一个项目、文件夹或组织。
找到包含要撤消其访问权限的主账号的行。然后,点击该行中的
修改主账号。点击要撤消的角色对应的删除
按钮,然后点击保存。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
如需快速撤消用户的角色,请运行
remove-iam-policy-binding
命令:gcloud RESOURCE_TYPE remove-iam-policy-binding RESOURCE_ID
--member=PRINCIPAL --role=ROLE_NAME请提供以下值:
-
RESOURCE_TYPE
:要管理其访问权限的资源类型。请使用projects
、resource-manager folders
或organizations
。 -
RESOURCE_ID
:您的 Google Cloud 项目、文件夹或组织 ID。项目 ID 为字母数字,例如my-project
。 文件夹和组织 ID 是数字,例如123456789012
。 -
PRINCIPAL
:主账号(或成员)的标识符,通常其格式如下:PRINCIPAL_TYPE:ID
。例如user:my-user@example.com
。如需查看PRINCIPAL
可以采用的值的完整列表,请参阅政策绑定参考文档。对于主账号类型
user
,标识符中的域名必须是 Google Workspace 网域或 Cloud Identity 网域。如需了解如何设置 Cloud Identity 网域,请参阅 Cloud Identity 概览。 -
ROLE_NAME
:要撤消的角色的名称。请采用以下某种格式:- 预定义角色:
roles/SERVICE.IDENTIFIER
- 项目级自定义角色:
projects/PROJECT_ID/roles/IDENTIFIER
- 组织级自定义角色:
organizations/ORG_ID/roles/IDENTIFIER
如需了解完整的预定义角色的列表,请参阅了解角色。
- 预定义角色:
例如,如需撤消用户
my-user@example.com
在项目my-project
中的 Project Creator 角色,请使用以下命令:gcloud projects remove-iam-policy-binding my-project
--member=user:my-user@example.com --role=roles/resourcemanager.projectCreator -
为帮助确保不撤消任何必要的角色,您可以启用更改风险建议。如果您尝试撤消 Google Cloud 确定为重要角色的项目级层角色,更改风险建议会生成警告。
使用 Google Cloud 控制台授予或撤消多个角色
您可以使用 Google Cloud 控制台为单个主账号授予和撤销多个角色:
在 Google Cloud 控制台中,转到 IAM 页面。
选择一个项目、文件夹或组织。
选择要修改其角色的主账号:
如需修改已拥有资源角色的主账号的角色,请找到包含该主账号的行,点击该行中的
修改主账号,然后点击 添加其他角色。如需修改服务代理的角色,请选中包括 Google 提供的角色授予复选框以查看其电子邮件地址。
如需向未拥有资源的任何角色的主账号授予角色,请点击
授予访问权限,然后输入该主账号的电子邮件地址或其他标识符。
修改主账号的角色:
- 如需向尚未拥有资源的任何角色的主账号授予角色,请点击选择角色,然后从下拉列表中选择要授予的角色。
- 如需向主账号授予其他角色,请点击添加其他角色,然后从下拉列表中选择要授予的角色。
- 如需将某个主账号的某个角色替换为其他角色,请点击现有角色,然后从下拉列表中选择要授予的其他角色。
- 如需撤销主账号的某个角色,请点击要撤消的每个角色对应的删除 按钮。
点击保存。
以编程方式授予或撤销多个角色
如需进行涉及为多个主账号授予和撤销多个角色的大规模访问权限更改,请使用“读取-修改-写入”模式更新资源的允许政策:
- 通过调用
getIamPolicy()
读取当前允许政策。 - 使用文本编辑器或以编程方式修改允许政策,以添加或移除任何主账号或角色绑定。
- 通过调用
setIamPolicy()
写入更新后的允许政策。
您可以使用 gcloud CLI、REST API 或 Resource Manager 客户端库来更新允许政策。
政策更改通常会在 2 分钟内生效。但是,在某些情况下,更改可能需要长达 7 分钟的时间才能传播到整个系统。
获取当前允许政策
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
如需获取资源的允许政策,请运行资源的
get-iam-policy
命令:gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
请提供以下值:
-
RESOURCE_TYPE
:要获取允许政策的资源类型。请使用以下某个值:projects
、resource-manager folders
或organizations
。 -
RESOURCE_ID
:您的 Google Cloud 项目、文件夹或组织 ID。项目 ID 为字母数字,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。 -
FORMAT
:允许政策所需的格式。请使用json
或yaml
。 -
PATH
:允许政策的新输出文件的路径。
例如,以下命令会获取项目
my-project
的允许政策,并以 JSON 格式将其保存到主目录中:gcloud projects get-iam-policy my-project --format json > ~/policy.json
-
C#
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
以下示例展示了如何获取项目的允许政策。如需了解如何获取文件夹或组织的允许政策,请查看适合您的编程语言的 Resource Manager 客户端库文档。
Java
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
以下示例展示了如何获取项目的允许政策。如需了解如何获取文件夹或组织的允许政策,请查看适合您的编程语言的 Resource Manager 客户端库文档。
Python
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
以下示例展示了如何获取项目的允许政策。如需了解如何获取文件夹或组织的允许政策,请查看适合您的编程语言的 Resource Manager 客户端库文档。
REST
Resource Manager API 的
getIamPolicy
方法可获取项目、文件夹或组织的允许政策。在使用任何请求数据之前,请先进行以下替换:
API_VERSION
:要使用的 API 版本。对于项目和组织,请使用v1
。对于文件夹,请使用v2
。RESOURCE_TYPE
:您要管理其政策的资源类型。使用值projects
、folders
或organizations
。RESOURCE_ID
:您的 Google Cloud 项目、组织或文件夹 ID。 项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。POLICY_VERSION
:要返回的政策版本。请求应指定最新的政策版本,即政策版本 3。如需了解详情,请参阅在获取政策时指定政策版本。
HTTP 方法和网址:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
请求 JSON 正文:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
如需发送您的请求,请展开以下选项之一:
响应包含资源的允许政策。例如:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:owner@example.com" ] } ] }
将响应保存在相应类型(
json
或yaml
)的文件中。修改允许政策
通过编程或文本编辑器修改资源的允许政策的本地副本,以反映您要授予或撤消的角色。
为了防止覆盖其他更改,请勿修改或移除允许政策的
etag
字段。etag
字段标识允许政策的当前状态。在您设置更新后的允许政策后,IAM 会将请求中的etag
值与现有的etag
进行比较,并且仅当值匹配时才会写入允许政策。如需修改允许政策授予的角色,您需要修改允许政策中的角色绑定。角色绑定采用以下格式:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ], "conditions:" { CONDITIONS } }
占位符具有以下值:
ROLE_NAME
:您要授予的角色的名称。请采用以下某种格式:- 预定义角色:
roles/SERVICE.IDENTIFIER
- 项目级自定义角色:
projects/PROJECT_ID/roles/IDENTIFIER
- 组织级自定义角色:
organizations/ORG_ID/roles/IDENTIFIER
如需了解完整的预定义角色的列表,请参阅了解角色。
- 预定义角色:
PRINCIPAL_1
、PRINCIPAL_2
、...PRINCIPAL_N
:您要向其授予相应角色的主账号的标识符。主账号标识符通常采用以下格式:
PRINCIPAL-TYPE:ID
。例如user:my-user@example.com
。如需PRINCIPAL
可以采用的值的完整列表,请参阅政策绑定参考文档。对于主账号类型
user
,标识符中的域名必须是 Google Workspace 网域或 Cloud Identity 网域。如需了解如何设置 Cloud Identity 网域,请参阅 Cloud Identity 概览。CONDITIONS
:可选。指定何时授予访问权限的任何条件。
授予角色
要向主账号授予角色,请修改允许政策中的角色绑定。如需了解您可以授予哪些角色,请参阅了解角色或查看资源的可授予角色。如果您需要帮助来确定最合适的预定义角色,请参阅选择预定义角色。
(可选)您可以使用条件,仅在满足特定要求时授予角色。
如需授予允许政策中已包含的角色,请将该主账号添加到现有角色绑定:
gcloud
将主账号添加到现有角色绑定,以修改返回的允许政策。此更改在您设置更新后的允许政策后才会生效。
例如,假设允许政策包含以下角色绑定,它会将 Security Reviewer 角色 (
roles/iam.securityReviewer
) 授予kai@example.com
:{ "role": "roles/iam.securityReviewer", "members": [ "user:kai@example.com" ] }
如需向
raha@example.com
授予相同的角色,请将raha@example.com
添加到现有角色绑定:{ "role": "roles/iam.securityReviewer", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
C#
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
Go
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
Java
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
Python
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
REST
将主账号添加到现有角色绑定,以修改返回的允许政策。此更改在您设置更新后的允许政策后才会生效。
例如,假设允许政策包含以下角色绑定,它会将 Security Reviewer 角色 (
roles/iam.securityReviewer
) 授予kai@example.com
:{ "role": "roles/iam.securityReviewer", "members": [ "user:kai@example.com" ] }
如需向
raha@example.com
授予相同的角色,请将raha@example.com
添加到现有角色绑定:{ "role": "roles/iam.securityReviewer", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
如需授予允许政策中未包含的角色,请添加新的角色绑定:
gcloud
通过添加向主账号授予该角色的新角色绑定来修改允许政策。此更改在您设置更新后的允许政策后才会生效。
例如,如需向
raha@example.com
授予 Compute Storage Admin 角色 (roles/compute.storageAdmin
),请将以下角色绑定添加到允许政策的bindings
数组中:{ "role": "roles/compute.storageAdmin", "members": [ "user:raha@example.com" ] }
C#
如需了解如何安装和使用 IAM 客户端库,请参阅 IAM 客户端库。 如需了解详情,请参阅 IAM C# API 参考文档。
如需向 IAM 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅准备工作。
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
Java
如需了解如何安装和使用 IAM 客户端库,请参阅 IAM 客户端库。 如需了解详情,请参阅 IAM Java API 参考文档。
如需向 IAM 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅准备工作。
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
Python
如需了解如何安装和使用 IAM 客户端库,请参阅 IAM 客户端库。 如需了解详情,请参阅 IAM Python API 参考文档。
如需向 IAM 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅准备工作。
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
REST
通过添加向主账号授予该角色的新角色绑定来修改允许政策。此更改在您设置更新后的允许政策后才会生效。
例如,如需向
raha@example.com
授予 Compute Storage Admin 角色 (roles/compute.storageAdmin
),请将以下角色绑定添加到允许政策的bindings
数组中:{ "role": "roles/compute.storageAdmin", "members": [ "user:raha@example.com" ] }
您只能授予与已激活的 API 服务相关的角色。如果某项服务(例如 Compute Engine)未处于活动状态,则无法授予与其(例如 Compute Engine)相关的特定角色。如需了解详情,请参阅启用和停用 API。
在项目上授予权限时有一些独特的限制,授予 Owner (
roles/owner
) 角色时尤其如此。如需了解详情,请参阅projects.setIamPolicy()
参考文档。撤消角色
如需撤消角色,请从角色绑定中移除该主账号。如果角色绑定中没有其他主账号,请移除整个角色绑定。
gcloud
通过修改由
get-iam-policy
命令返回的 JSON 或 YAML 允许政策来撤消角色。此更改在您设置更新后的允许政策后才会生效。如需撤消主账号的角色,请从允许政策的
bindings
数组中删除主账号或绑定。C#
如需了解如何安装和使用 IAM 客户端库,请参阅 IAM 客户端库。 如需了解详情,请参阅 IAM C# API 参考文档。
如需向 IAM 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅准备工作。
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
Go
如需了解如何安装和使用 IAM 客户端库,请参阅 IAM 客户端库。 如需了解详情,请参阅 IAM Go API 参考文档。
如需向 IAM 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅准备工作。
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
Java
如需了解如何安装和使用 IAM 客户端库,请参阅 IAM 客户端库。 如需了解详情,请参阅 IAM Java API 参考文档。
如需向 IAM 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅准备工作。
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
Python
如需了解如何安装和使用 IAM 客户端库,请参阅 IAM 客户端库。 如需了解详情,请参阅 IAM Python API 参考文档。
如需向 IAM 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅准备工作。
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
REST
通过修改由
get-iam-policy
命令返回的 JSON 或 YAML 允许政策来撤消角色。此更改在您设置更新后的允许政策后才会生效。如需撤消主账号的角色,请从允许政策的
bindings
数组中删除主账号或绑定。设置允许政策
修改允许政策以授予和撤消角色后,请调用
setIamPolicy()
更新该政策。gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
如需设置资源的允许政策,请针对资源运行
set-iam-policy
命令:gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
请提供以下值:
-
RESOURCE_TYPE
:您要设置允许政策的资源的类型。请使用以下某个值:projects
、resource-manager folders
或organizations
。 -
RESOURCE_ID
:您的 Google Cloud 项目、文件夹或组织 ID。项目 ID 为字母数字,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。 -
PATH
:包含新允许政策的文件的路径。
响应包含更新后的允许政策。
例如,以下命令将存储在
policy.json
中的允许政策设置为项目my-project
的允许政策:gcloud projects set-iam-policy my-project ~/policy.json
-
C#
Java
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
以下示例展示了如何设置项目的允许政策。如需了解如何设置文件夹或组织的允许政策,请查看适合您的编程语言的 Resource Manager 客户端库文档。
Python
如需向 Resource Manager 进行身份验证,请设置应用默认凭据。 如需了解更多信息,请参阅准备工作。
如需了解如何安装和使用 Resource Manager 客户端库,请参阅 Resource Manager 客户端库。
以下示例展示了如何设置项目的允许政策。如需了解如何设置文件夹或组织的允许政策,请查看适合您的编程语言的 Resource Manager 客户端库文档。
REST
Resource Manager API 的
setIamPolicy
方法会将请求中的政策设置为项目、文件夹或组织的新允许政策。在使用任何请求数据之前,请先进行以下替换:
API_VERSION
:要使用的 API 版本。对于项目和组织,请使用v1
。对于文件夹,请使用v2
。RESOURCE_TYPE
:您要管理其政策的资源类型。使用值projects
、folders
或organizations
。RESOURCE_ID
:您的 Google Cloud 项目、组织或文件夹 ID。 项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。-
POLICY
:您要设置的政策的 JSON 格式。如需详细了解政策的格式,请参阅政策参考文档。
HTTP 方法和网址:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy
请求 JSON 正文:
{ "policy": POLICY }
如需发送您的请求,请展开以下选项之一:
响应包含更新后的允许政策。
后续步骤
- 了解如何管理对服务账号的访问权限。
- 了解管理对其他资源的访问权限的一般步骤。
- 了解如何选择最合适的预定义角色。
- 使用 Policy Troubleshooter 了解用户有权或无权访问某项资源的原因,或有权调用某个 API 的原因。
- 了解如何查看您可以针对特定资源授予的角色。
- 了解如何使用条件角色绑定使主账号的访问权限有条件。
- 探索使用 Identity-Aware Proxy 保护您的应用的方法。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-18。