任何使用 Google Cloud 资源的应用程序都需要 Google Cloud 身份和权限才能访问这些资源。
IAM 服务账号
在 Google Cloud 上,Identity and Access Management (IAM) 使用服务账号为程序建立身份,并使用角色向程序的服务账号授予权限。
对于在 Compute Engine 虚拟机上运行的 SAP 系统和相关程序,请创建一个仅包含 SAP 系统和其他程序所需角色的虚拟机服务账号。
未在 Google Cloud 上运行的程序可以在连接到 Google Cloud API 时使用服务账号,并使用服务账号密钥进行身份验证。
在 Compute Engine 虚拟机上运行的程序可以使用虚拟机的服务账号,只要虚拟机服务账号具有程序所需的角色即可。对于在 Compute Engine 虚拟机上运行的程序,不建议使用服务账号密钥进行身份验证。
使用 Google Cloud CLI 或 Google Cloud 控制台创建虚拟机实例时,您可以指定服务账号供虚拟机实例使用、接受项目默认服务账号或者不指定任何服务账号。
如果您不使用 Google Cloud CLI 或 Google Cloud 控制台,而是通过直接向 API 发出请求来创建实例,则该实例不会启用默认服务账号。
如果虚拟机服务账号没有程序所需的角色,您可以向虚拟机服务账号添加角色,或将服务账号替换为新的虚拟机服务账号。
项目的 Compute Engine 默认服务账号最初会被授予 Editor 角色,该角色在许多企业环境中可能过于宽松。
如需详细了解 Compute Engine 对角色、权限和服务账号的使用情况,请参阅:
如需更加广泛地了解适用于 Google Cloud 的信息,请参阅 IAM 文档:
部署自动化和服务账号
如果要使用 Google Cloud 提供的 Terraform 配置文件或 Deployment Manager 模板来部署 SAP 基础架构,则您可以在 DEPLOYMENT_TYPE.tf
或 template.yaml
配置文件中指定虚拟机服务账号。
如果您不指定服务账号,则 Terraform 或 Deployment Manager 将使用 Google Cloud 项目的默认服务账号来部署虚拟机。
IAM 角色和权限
IAM 会为每个 Google Cloud 资源提供预定义角色。每个角色都包含一组适合该角色级别的资源权限。您可以将这些角色添加到您创建的服务账号。
如需获得最严格或最精细的控制,您可以创建具有一种或多种权限的自定义角色。
如需查看预定义角色以及每个角色所含权限的列表,请参阅了解角色。
如需详细了解自定义角色,请参阅了解自定义角色。
如需详细了解 Compute Engine 专用的角色,请参阅 Compute Engine 文档中的 Compute Engine IAM 角色。
SAP 系统的 IAM 角色
您的 SAP 程序所需的 IAM 角色取决于这些程序使用的资源以及这些程序执行的任务。
例如,如果您使用 Terraform 或 Deployment Manager 来部署 SAP 系统并在 Terraform 或 Deployment Manager 配置文件中指定服务账号,则您指定的服务账号必须至少包含以下角色:
- Service Account User - 始终必需。
- Compute Instance Admin - 始终必需。
- Storage Object Viewer - 在部署期间从 Cloud Storage 存储分区下载安装媒体时需要。
- Logs Writer - 将部署消息或其他消息写入 Logging 时需要。
部署 SAP 系统后,主机虚拟机和 SAP 程序可能并不需要部署期间所需的全部权限。您可以修改虚拟机服务账号以移除角色,也可以更改虚拟机使用的服务账号。
一些 SAP 或相关程序需要其他角色,如果它们未在 Google Cloud 上运行,则可能需要单独的服务账号。例如:
- 适用于 SAP HANA 的 Cloud Storage Backint 代理需要 Storage Object Admin 角色才能备份到 Cloud Storage 以及从 Cloud Storage 恢复。
- Google Cloud 的 Agent for SAP 需要 Compute Viewer、Monitoring Viewer 和 Monitoring Metric Writer 等角色。如需了解详情,请参阅所需的 IAM 角色。
- 如果 SAP Data Services 配置为将 SAP 数据复制到 BigQuery,则需要 BigQuery Data Editor 角色和 BigQuery Job User 角色。