本页介绍了如何在入站和出站规则中使用身份组,以允许访问受服务边界保护的资源。
VPC Service Controls 使用入站和出站规则来允许访问受服务边界保护的资源和客户端或来自它们的访问。如需进一步细化访问权限,您可以在入站和出站规则中指定身份组。
身份群组是一种将访问权限控制应用于一组用户的便捷方式,可让您管理具有类似访问权限政策的身份。
如需在入站规则或出站规则中配置身份组,您可以在 identities
属性中使用以下受支持的身份组:
- Google 群组
-
VPC Service Controls 不支持 Workload Identity Federation for GKE。
如需了解如何应用入站和出站规则政策,请参阅配置入站和出站政策。
准备工作
- 请务必阅读入站和出站规则。
在入站规则中配置身份群组
控制台
使用 Google Cloud 控制台更新服务边界的入站流量政策或在创建边界时设置入站流量政策时,您可以将入站流量规则配置为使用身份组。
在 Google Cloud 控制台中创建边界或修改边界时,选择入站政策。
在入站政策的 API 客户端的属性窗格中,从 Identity(身份)列表中选择 Select Identities & Groups(选择身份和群组)。
点击选择。
在添加身份对话框中,指定您要向其授予边界内资源访问权限的 Google 群组或第三方身份(预览)。如需指定身份组,请使用 IAM
v1
API 主账号标识符中指定的格式。VPC Service Controls 仅支持 IAM
v1
API 主账号标识符中以group
、principal
(预览版)和principalSet
(预览版)开头的v1
身份。例如,使用principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/
格式指定群组中的所有员工身份,或使用GROUP_ID group:GROUP_NAME@googlegroups.com
格式指定 Google 群组。点击保存。
如需了解其他入站规则属性,请参阅入站规则参考。
gcloud
您可以使用 JSON 文件或 YAML 文件配置入站规则以使用身份组。以下示例使用 YAML 格式:
- ingressFrom:
identities:
- PRINCIPAL_IDENTIFIER
sources:
- resource: RESOURCE
*OR*
- accessLevel: ACCESS_LEVEL
ingressTo:
operations:
- serviceName: SERVICE_NAME
methodSelectors:
- method: METHOD_NAME
resources:
- projects/PROJECT_NUMBER
替换以下内容:
PRINCIPAL_IDENTIFIER
:指定您要向其授予对边界内资源的访问权限的 Google 群组或第三方身份(预览版)。如需指定身份组,请使用 IAMv1
API 主账号标识符中指定的格式。VPC Service Controls 仅支持 IAM
v1
API 主账号标识符中以group
、principal
(预览版)和principalSet
(预览版)开头的v1
身份。例如,使用principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/
格式指定群组中的所有员工身份,或使用GROUP_ID group:GROUP_NAME@googlegroups.com
格式指定 Google 群组。
如需了解其他入站规则属性,请参阅入站规则参考。
更新现有入站规则以配置身份组后,您需要更新服务边界的规则政策:
gcloud access-context-manager perimeters update PERIMETER_ID --set-ingress-policies=RULE_POLICY.yaml
替换以下内容:
PERIMETER_ID
:您要更新的服务边界的 ID。RULE_POLICY
:修改后的入站规则文件的路径。
如需了解详情,请参阅更新服务边界的入站和出站政策。
在出站规则中配置身份群组
控制台
使用 Google Cloud 控制台更新服务边界的出站流量政策或在创建边界时设置出站流量政策时,您可以将出站规则配置为使用身份组。
在 Google Cloud 控制台中创建边界或修改边界时,选择出站流量政策。
在出站流量政策的 API 客户端的属性窗格中,从 Identity(身份)列表中选择 Select Identities & Groups(选择身份和群组)。
点击选择。
在添加身份对话框中,指定一个 Google 群组或第三方身份(预览版),该身份可以访问边界外指定的资源。如需指定身份组,请使用 IAM
v1
API 主账号标识符中指定的格式。VPC Service Controls 仅支持 IAM
v1
API 主账号标识符中以group
、principal
(预览版)和principalSet
(预览版)开头的v1
身份。例如,使用principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/
格式指定群组中的所有员工身份,或使用GROUP_ID group:GROUP_NAME@googlegroups.com
格式指定 Google 群组。点击保存。
如需了解其他出站规则属性,请参阅出站规则参考。
gcloud
您可以使用 JSON 文件或 YAML 文件配置出站规则以使用身份组。以下示例使用 YAML 格式:
- egressTo:
operations:
- serviceName: SERVICE_NAME
methodSelectors:
- method: METHOD_NAME
resources:
- projects/PROJECT_NUMBER
egressFrom:
identities:
- PRINCIPAL_IDENTIFIER
替换以下内容:
PRINCIPAL_IDENTIFIER
:指定一个可以访问边界外的指定资源的 Google 群组或第三方身份(预览版)。如需指定身份组,请使用 IAMv1
API 主账号标识符中指定的格式。VPC Service Controls 仅支持 IAM
v1
API 主账号标识符中以group
、principal
(预览版)和principalSet
(预览版)开头的v1
身份。例如,使用principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/
格式指定群组中的所有员工身份,或使用GROUP_ID group:GROUP_NAME@googlegroups.com
格式指定 Google 群组。
如需了解其他出站规则属性,请参阅出站规则参考。
更新现有出站规则以配置身份组后,您需要更新服务边界的规则政策:
gcloud access-context-manager perimeters update PERIMETER_ID --set-egress-policies=RULE_POLICY.yaml
替换以下内容:
PERIMETER_ID
:您要更新的服务边界的 ID。RULE_POLICY
:修改后的出站规则文件的路径。
如需了解详情,请参阅更新服务边界的入站和出站政策。
限制
- 在使用身份组之前,请了解入站规则和出站规则中的不受支持的功能。
- 在出站规则中使用身份组时,您无法将
egressTo
属性中的resources
字段设置为"*"
。 - 如需了解入站规则和出站规则限制,请参阅配额和限制。