TG客服

Google Cloud IAM如何使用服务账号,管理应用程序的权限

⏱️2026-04-10 09:00 👁️2

Google Cloud IAM 和服务账号:管理应用程序权限 🔑

使用服务账号是管理在 Google Cloud 上运行的应用程序权限的关键方法。 它们允许你的应用程序以安全和受控的方式访问 Google Cloud 资源。

什么是服务账号? 🤔

服务账号是一种特殊的 Google Cloud 账号,它不是由个人用户拥有,而是由应用程序或虚拟机 (VM) 实例拥有。 你的应用程序可以使用服务账号的凭据来向 Google Cloud 服务进行身份验证,并获得执行操作的授权。

为什么使用服务账号? 🚀

  • 安全性: 避免在你的应用程序代码中硬编码凭据。 服务账号凭据由 Google Cloud 安全地管理。
  • 精细的访问控制: 授予服务账号仅执行其任务所需的最小权限集 (最小权限原则)。
  • 审计: 可以跟踪服务账号执行的操作,以便进行审计和安全分析。
  • 自动化: 服务账号非常适合自动化任务,例如持续集成/持续部署 (CI/CD) 管道。

如何使用服务账号 🛠️

1. 创建服务账号

你可以使用 Google Cloud Console、Google Cloud CLI 或 IAM API 创建服务账号。

使用 Google Cloud Console:

  1. 转到 IAM & 管理员 > 服务账号
  2. 点击 + 创建服务账号
  3. 输入服务账号名称、ID 和描述。
  4. 点击 创建并继续
  5. (可选)授予服务账号对项目的访问权限 (角色)。
  6. 点击 完成

使用 Google Cloud CLI:

gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
    --display-name="SERVICE_ACCOUNT_DISPLAY_NAME"

SERVICE_ACCOUNT_NAME 替换为服务账号的名称,将 SERVICE_ACCOUNT_DISPLAY_NAME 替换为显示名称。

2. 授予服务账号角色 🛡️

角色定义了服务账号可以访问的 Google Cloud 资源以及它可以执行的操作。 你应该授予服务账号仅完成其任务所需的最小权限集。

使用 Google Cloud Console:

  1. 转到 IAM & 管理员 > 服务账号
  2. 点击要授予角色的服务账号。
  3. 转到 权限 标签。
  4. 点击 授予访问权限
  5. 选择要授予的角色。
  6. 点击 保存

使用 Google Cloud CLI:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role="ROLE_NAME"

PROJECT_ID 替换为你的 Google Cloud 项目 ID,将 SERVICE_ACCOUNT_EMAIL 替换为服务账号的电子邮件地址,将 ROLE_NAME 替换为要授予的角色。

3. 使用服务账号凭据 🔑

你的应用程序需要使用服务账号的凭据来向 Google Cloud 服务进行身份验证。 你可以使用以下方法之一来提供凭据:

a) 自动凭据发现

在 Google Cloud 环境 (例如 Compute Engine、App Engine、Cloud Functions、Cloud Run) 中,Google Cloud 客户端库会自动检测并使用附加到 VM 实例或服务的服务账号。 这是推荐的方法,因为它最安全且易于使用。

from google.cloud import storage

client = storage.Client() # 客户端库自动发现凭据

b) 手动凭据提供

在本地开发或在 Google Cloud 外部运行应用程序时,你需要手动提供服务账号的凭据。 这可以通过以下方式完成:

  1. 创建服务账号密钥:
    • 转到 IAM & 管理员 > 服务账号
    • 点击要为其创建密钥的服务账号。
    • 转到 密钥 标签。
    • 点击 添加密钥 > 创建新密钥
    • 选择 JSON 密钥类型。
    • 点击 创建。 这会下载一个包含服务账号私钥的 JSON 文件。 ⚠️ 安全地存储此文件! ⚠️
  2. 设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量:
    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
    

    /path/to/your/service-account-key.json 替换为下载的 JSON 密钥文件的路径。

import os
from google.cloud import storage

os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/path/to/your/service-account-key.json" #不推荐直接在代码中设置,推荐环境变量

client = storage.Client() # 客户端库使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量

最佳实践 ✅

  • 最小权限原则: 仅授予服务账号完成其任务所需的最小权限集。
  • 定期轮换密钥: 定期轮换服务账号密钥,以降低密钥泄露的风险。
  • 使用 IAM Conditions: 使用 IAM Conditions 根据特定条件(例如日期、时间或资源)限制服务账号的访问权限。
  • 监控服务账号活动: 监控服务账号的活动,以便检测和响应潜在的安全事件。
  • 避免使用默认服务账号: 尽量不要使用默认服务账号,而是为每个应用程序或服务创建单独的服务账号。

总结 🎉

服务账号是管理 Google Cloud 应用程序权限的强大工具。 通过遵循这些最佳实践,你可以确保你的应用程序以安全和受控的方式访问 Google Cloud 资源。记住,安全第一! 🛡️

国际云自助站点

我们提供一站式多云服务管理平台,支持阿里云国际、腾讯云国际、AWS(亚马逊云)和GCP(谷歌云)等主流国际云厂商。无论是新账户申请、余额充值,还是日常管理与监控,平台均可统一操作,大幅提升管理效率。同时支持余额预警、异常通知等推送功能,帮助用户实时掌握各云平台资源状态,防止因欠费导致业务中断。平台还支持多账号集中管理,适用于个人站长、跨境电商、开发团队等多场景使用需求,真正实现高效、安全、灵活的多云资源协同管理。

热门文章
更多>