用途
该技能用于在 Google Cloud 服务与 API 的认证(Authentication)和授权(Authorization)方面提供专家级指导。认证是证明身份的过程,在 Google Cloud 中身份由 Principal(用户或服务等身份)表示;授权则决定该身份可以做什么。技能覆盖人类用户、服务身份、应用默认凭据(ADC)等场景。
主要能力
技能在给出具体方案前,会先向用户提出澄清性问题:
- 谁或什么在进行认证?(人类开发者、本地脚本,还是生产环境中的应用?)
- 代码运行在哪里?(本地笔记本、Compute Engine、GKE、Cloud Run,还是 AWS/Azure 等其他云?)
- 目标是什么?(Storage/BigQuery 等 Google Cloud API,还是自建应用?)
- 是否使用高层客户端库?(Python、Go、Node.js 库通常自动处理 ADC。)
技能涵盖的主题包括:
- 人类认证:Google 托管账号(Cloud Identity 或 Google Workspace)、通过 Cloud Identity 或 Google Workspace 的联合身份、Workforce Identity Federation。
- 开发者与管理员访问方式:Google Cloud Console、gcloud CLI(gcloud auth login)、本地开发使用应用默认凭据(gcloud auth application-default login)、服务账号模拟。
- 面向最终用户与客户:Identity-Aware Proxy(IAP)、Identity Platform。
- 服务间认证:服务账号与服务代理、将服务账号附加到资源的最佳实践。
- 特殊与高级主题:GKE 的 Workload Identity Federation、外部工作负载的 Workload Identity Federation、API 密钥、OAuth 2.0 访问范围、短期凭据。
- 授权:IAM 允许策略、预定义角色、自定义角色。
使用方式
技能以指导性问答和最佳实践建议的形式使用。它提供示例场景,例如:
- 人类到服务(本地 Python 开发):运行 gcloud auth application-default login 创建本地凭据(ADC);为邮箱授予存储桶上的 roles/storage.objectViewer 角色;代码使用 Python storage.Client(),它会通过 ADC 自动查找本地凭据。ADC 按特定顺序搜索:先检查 GOOGLE_APPLICATION_CREDENTIALS 环境变量,然后是本地 gcloud JSON 文件,最后是附加的服务账号元数据服务器。
- 服务到服务(Cloud Run 到 Cloud SQL):为 Cloud Run 服务附加自定义服务账号;为该服务账号授予项目上的 roles/cloudsql.client 角色;Cloud Run 环境自动向连接驱动提供令牌。
- 调用自定义应用(OIDC):从另一个服务调用私有 Cloud Run 服务时,调用方生成 Google 签名的 OpenID Connect(OIDC)ID Token,并在 Authorization: Bearer <TOKEN> 头中传递。
技能还提供验证清单:
- 用户是否在本地运行代码?建议 gcloud auth application-default login 或服务账号模拟。
- 用户是否尝试在本地使用服务账号密钥?强烈劝阻,并推荐模拟。
- 用户是否在生产环境运行?建议附加自定义的最小权限服务账号,而非使用密钥。
- 用户是否依赖 Compute Engine 默认服务账号?建议创建自定义服务账号。
- 用户是否在其他云上运行?建议 Workload Identity Federation。
- 用户是否在调用自定义应用?建议使用 OIDC ID Token。
- 用户是否限制了 API 密钥?检查是否有适当的 API 密钥限制。
适用场景
适用于需要在 Google Cloud 上进行认证与授权决策的开发、运维和安全场景,包括本地开发、生产部署、跨云工作负载、服务间通信以及面向最终用户的应用。
限制
资料未提供该技能的具体安装命令、收费信息、平台支持范围或效果数据,这些内容暂未提供。