VPC Service Controls 使用入站和出站规则 来控制对服务边界内资源和客户端的访问以及来自它们的访问。如需进一步细化访问权限,您可以在入站和出站规则中指定受支持的身份。
本页列出了 VPC Service Controls 支持的身份及其标识符格式。
支持的身份
VPC Service Controls 支持允许政策的主账号标识符
中的以下身份,这些身份使用 IAM
v1 API:
| 身份类型 | 主账号类型 | 标识符 |
|---|---|---|
| 单个主账号 | 用户账号 | user:USER_EMAIL_ADDRESS |
| 服务账号 | serviceAccount:SA_EMAIL_ADDRESS |
|
| 身份群组和第三方身份 | 群组 | group:GROUP_EMAIL_ADDRESS |
| 员工身份池中的单个身份 | principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE |
|
| 群组中的所有员工身份 | principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP_ID |
|
| 具有特定属性值的所有员工身份 | principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE |
|
| 员工身份池中的所有身份 | principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/* |
|
| 工作负载身份池中的单个身份 | principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE |
|
| 工作负载身份池组 | principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP_ID |
|
| 工作负载身份池中具有特定属性的所有身份 | principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE |
|
| 工作负载身份池中的所有身份 | principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/* |
|
| 代理身份 | 代理身份 | principal://TRUST_DOMAIN/AGENT_UNIQUE_IDENTIFIER |
| 信任域中具有特定属性的所有代理身份 | principalSet://TRUST_DOMAIN/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE |
|
| 信任域中的所有代理身份 | principalSet://TRUST_DOMAIN/* |
如需详细了解这些身份,请参阅允许政策的 主账号标识符。
VPC Service Controls 还支持以下 SPIFFE 格式的第三方员工和工作负载身份:
| 身份类型 | 主账号类型 | 标识符 |
|---|---|---|
| SPIFFE 格式的员工身份 | 员工身份池中的单个身份 | principal://POOL_ID.global.workforce.id.goog/SUBJECT_ATTRIBUTE_VALUE |
| 员工身份池中的所有身份(作为具有特定属性的信任域) | principalSet://POOL_ID.global.workforce.id.goog/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE |
|
| 员工身份池中的所有身份(作为信任域) | principalSet://POOL_ID.global.workforce.id.goog/* |
|
| SPIFFE 格式的工作负载身份 | 工作负载身份池中的单个身份 | principal://POOL_ID.global.ORGANIZATION_ID.workload.id.goog/SUBJECT_ATTRIBUTE_VALUE |
| 工作负载身份池中的所有身份(作为具有特定属性的信任域) | principalSet://POOL_ID.global.ORGANIZATION_ID.workload.id.goog/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE |
|
| 工作负载身份池中的所有身份(作为信任域) | principalSet://POOL_ID.global.ORGANIZATION_ID.workload.id.goog/* |
已删除的 IAM 主账号
为了帮助您管理引用已删除账号的服务边界,VPC Service Controls 允许您启用对已删除 IAM 主账号标识符的支持。默认情况下,尝试更新或列出包含已删除主账号的边界会失败,并显示 The email address is invalid or
non-existent 错误。如需了解详情,
请参阅 排查常见问题。
如需检索或更新包含已删除主账号的边界,请使用 Access Context Manager API。在请求(例如 get、list 或 patch 方法)中,将 deletedPrincipalSyntax 参数 (REST) 或 deleted_principal_syntax 字段 (gRPC) 设置为 DELETED_PRINCIPAL_SYNTAX_SUPPORT_ENABLED。
例如,您可以使用以下 curl 命令获取边界:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/accessPolicies/\
POLICY_NAME/servicePerimeters/PERIMETER_NAME?\
deletedPrincipalSyntax=DELETED_PRINCIPAL_SYNTAX_SUPPORT_ENABLED"
如需查看支持已删除 语法的 IAM 主账号类型列表,请参阅 允许政策的主账号标识符。
限制
以下限制适用于 VPC Service Controls 边界中已删除的 IAM 主账号:
- VPC Service Controls 仅支持使用 IAM
v1API 的已删除 IAM 主账号。它不支持使用 IAMv2或v3API 的已删除主账号。 - 访问权限级别中已删除的 IAM 主账号不受支持。
- VPC Service Controls 服务边界规则也不支持 IAM 中不支持
deleted:前缀语法的主账号。 - 您最多可以在访问权限政策中指定 500 个已删除的身份。