IAM Conditions 让您可为 Google Cloud 资源(包括 Apigee Integration 资源)定义和强制执行基于属性的有条件访问权限控制。如需详细了解 IAM Conditions,请参阅 IAM Conditions 概览。
在 Apigee Integration 中,您可以根据以下属性强制执行有条件访问权限:
- 日期/时间属性:用于设置对 Apigee Integration 资源的临时(很快就会过期)、预定或限时访问权限。例如,您可以允许用户在指定日期之前访问集成。如需了解详情,请参阅配置临时访问权限。
- 资源属性:用于根据资源名称、资源类型或资源服务属性配置有条件访问权限。 例如,您可以允许用户管理在特定区域创建的集成。查看支持的值列表。如需了解详情,请参阅配置基于资源的访问权限。
添加 IAM 条件
如需将 IAM 条件添加到现有主账号(用户、群组或服务账号),请执行以下步骤:
- 在 Google Cloud 控制台中,转到 IAM 页面。
- 选择您的项目、文件夹或组织。
- 从主账号列表中,找到要添加 IAM 条件的主账号,然后点击
此时将显示修改访问权限窗格。
(修改主账号)。
- 找到要添加 IAM 条件的角色,然后点击 + 添加 IAM 条件。
- 在添加条件窗格中,提供以下信息:
- 标题:输入要添加到角色的条件的名称。
- 说明:(可选)输入条件的说明。
- 您可以使用条件构建器或条件编辑器来添加条件。
条件构建器提供一个交互式界面,用于选择所需的条件类型、运算符以及有关表达式的其他适用详情。条件编辑器提供一个基于文本的界面,您可以使用 CEL 语法手动输入条件表达式。
如需详细了解如何使用条件构建器或条件编辑器,请参阅配置基于资源的访问权限。
- 点击保存以应用条件。
如需了解 Apigee Integration 支持的资源属性,请参阅资源属性值。
- 在修改访问权限窗格中再次点击保存,以更新主账号。
资源属性值
下表列出了针对 Apigee Integration 可以包含的资源类型属性值:
资源名称 | 资源类型 | 参考文档 |
---|---|---|
位置 | SERVICE_ENDPOINT-integrations.googleapis.com/Location
|
API 参考文档 |
集成 | SERVICE_ENDPOINT-integrations.googleapis.com/Integration
|
API 参考文档 |
IntegrationVersion | SERVICE_ENDPOINT-integrations.googleapis.com/IntegrationVersion
|
API 参考文档 |
执行 | SERVICE_ENDPOINT-integrations.googleapis.com/Execution
|
API 参考文档 |
暂停 | SERVICE_ENDPOINT-integrations.googleapis.com/Suspension
|
API 参考文档 |
AuthConfig | SERVICE_ENDPOINT-integrations.googleapis.com/AuthConfig
|
API 参考文档 |
将 IAM 条件用于 Apigee Integration 的示例
示例 1:限制对某个区域中的任何 IntegrationVersion 资源的访问
您可以在条件编辑器中使用以下条件表达式来限制对 IntegrationVersion 资源的访问。限制访问包括禁止对该区域的集成版本执行 create
、delete
、download
、get
、list
、patch
、publish
、unpublish
和 upload
操作。
!resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/products/apigee/integrations/INTEGRATION_NAME")
请替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- LOCATION:集成服务端点。请参阅 Apigee Integration 服务端点。
- INTEGRATION_NAME:集成的名称。
示例 2:允许访问某个区域中的任何 IntegrationVersion 资源
您可以在条件编辑器中使用以下条件表达式来允许访问 IntegrationVersion 资源:
resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/products/apigee/integrations/INTEGRATION_NAME") || resource.type == "cloudresourcemanager.googleapis.com/Project")
请替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- LOCATION:集成服务端点。请参阅 Apigee Integration 服务端点。
- INTEGRATION_NAME:集成的名称。
示例 3:允许访问特定的 AuthConfig 资源
您可以在条件编辑器中使用以下条件表达式,以允许访问特定的 AuthConfig 资源:
(resource.name.extract("authConfigs/{end}" == "AUTH_CONFIG_NAME") || resource.type == "integrations.googleapis.com/Location" || resource.type == "cloudresourcemanager.googleapis.com/Project")
请替换以下内容:
- AUTH_CONFIG_NAME:身份验证类型的名称。请参阅身份验证类型。
示例 4:允许访问某个区域中的任何 AuthConfig 资源
您可以在条件编辑器中使用以下条件表达式,以允许访问任何 AuthConfig 资源:
(resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/products/apigee") && resource.type == "integrations.googleapis.com/AuthConfig" || resource.type == "integrations.googleapis.com/Location" || resource.type == "cloudresourcemanager.googleapis.com/Project")
请替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- LOCATION:集成服务端点。请参阅 Apigee Integration 服务端点。