使用 IAM 服务账号,允许你的应用程序安全地访问 Google Cloud 资源。以下是一些关键步骤和最佳实践:
首先,你需要为你的应用程序创建一个服务账号。可以通过 Google Cloud Console 或 gcloud CLI 完成:
[项目ID]-app-service-account。
gcloud iam service-accounts create [SERVICE_ACCOUNT_NAME] \
--description="服务账号描述" \
--display-name="服务账号显示名称"
替换 [SERVICE_ACCOUNT_NAME] 为你想要的服务账号名称。
创建服务账号后,你需要授予它访问云资源所需的角色。
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[SERVICE_ACCOUNT_EMAIL]" \
--role="roles/[ROLE_NAME]"
[PROJECT_ID] 为你的 Google Cloud 项目 ID。
[SERVICE_ACCOUNT_EMAIL] 为你的服务账号电子邮件地址。
[ROLE_NAME] 为你想要授予的角色名称,例如
storage.objectAdmin 或 cloudsql.client。
为了让你的应用程序可以使用服务账号,你需要下载一个 JSON 密钥文件。 注意: 妥善保管此密钥,不要将其存储在公共代码仓库中!
gcloud iam service-accounts keys create [KEY_FILE] \
--iam-account=[SERVICE_ACCOUNT_EMAIL]
[KEY_FILE] 为你想要保存密钥文件的路径和名称。
[SERVICE_ACCOUNT_EMAIL] 为你的服务账号电子邮件地址。
现在,你的应用程序可以使用下载的密钥文件进行身份验证,并访问 Google Cloud 资源。
import google.auth
from google.cloud import storage
# 使用环境变量 GOOGLE_APPLICATION_CREDENTIALS 指定密钥文件路径
# 例如: export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/key.json"
credentials, project = google.auth.default()
# 创建 Storage 客户端
storage_client = storage.Client(credentials=credentials, project=project)
# 列出所有 bucket
buckets = list(storage_client.list_buckets())
print("Buckets:")
for bucket in buckets:
print(bucket.name)
确保设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量指向你的密钥文件:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/key.json"
遵循这些步骤和最佳实践,你可以有效地管理 Google Cloud IAM 服务账号,确保你的应用程序安全地访问云资源。🎉
更多信息请参考 Google Cloud IAM 文档.