Google Cloud 上的 SAP 程序的身份和访问权限管理

任何使用 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.tftemplate.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 上运行,则可能需要单独的服务账号。例如: