本文档介绍如何设置身份验证,以便在 SAP 系统在 Compute Engine 虚拟机实例上托管时访问 Google Cloud API。
设置身份验证
如需设置身份验证,请执行以下步骤:
在 Google Cloud 控制台中,为需要身份验证的 Google Cloud 项目启用 IAM Service Account Credentials API。除了 IAM Service Account Credentials API 之外,您还需要启用计划使用 SDK 访问的任何其他受支持的 API。
如需了解如何启用 Google Cloud API,请参阅启用 API。
在 Google Cloud 控制台中,为主机虚拟机实例创建 IAM 服务账号。
如需了解如何创建服务账号,请参阅创建服务账号。
将
Service Account Token Creator
角色授予服务账号。 如需查看相关说明,请参阅授予单个角色。将服务账号关联到运行 SAP 工作负载的虚拟机实例。此外,请将虚拟机的访问权限范围设置为
cloud-platform
。- 如果您使用 Google Cloud 控制台指定服务账号,则虚拟机的访问权限范围会自动默认为
cloud-platform
范围。 如果您使用 Google Cloud CLI 或 Compute Engine API 指定服务账号,则需要将 API 访问权限范围设置为
Allow full access to all Cloud APIs
。如需了解相关说明,请参阅创建虚拟机并关联服务账号。
更新范围后,重启虚拟机。如果您有多个虚拟机实例用于同一 SAP 安装,则必须在所有这些虚拟机实例上完成此步骤。
- 如果您使用 Google Cloud 控制台指定服务账号,则虚拟机的访问权限范围会自动默认为
在 Google Cloud 控制台中,创建一个专用 IAM 服务账号以访问 Google Cloud API。
如需查看相关说明,请参阅创建服务账号。
向服务账号授予访问 API 功能所需的 IAM 角色。如需了解 Google Cloud API 的角色要求,请参阅各个 API 文档并遵循最小权限原则。如需详细了解 API 特定预定义角色,请参阅查找适用于 Google Cloud API 的 IAM 角色。
如果您在与包含 Google Cloud API 的项目不同的项目中创建了服务账号,则必须为服务账号开设执行其他步骤。如需了解详情,请参阅在跨项目环境中设置服务账号。
在 SAP 系统中,配置客户端密钥:
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置客户端密钥。
点击新建条目。
输入以下字段的值:
字段 说明 Google Cloud 密钥名称 指定客户端密钥配置的名称。例如 TEST_PUBSUB
。Google Cloud 服务账号名称 指定您已授予 Google Cloud API 访问权限的服务账号的名称。例如,
sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
。如果包含 SDK 的 SAP 系统的主机虚拟机所在的项目与启用了 Google Cloud API 的项目不同,请指定用于访问 Google Cloud API 的服务账号。如需了解详情,请参阅在跨项目环境中设置服务账号。
Google Cloud 范围 指定 API 访问权限范围 https://www.googleapis.com/auth/cloud-platform
。Google Cloud 项目标识符 指定包含目标 API 的 Google Cloud 项目的 ID。 命令名称 将此字段留空。 授权类 指定授权类 /GOOG/CL_AUTH_GOOGLE
。令牌缓存 此标志用于确定是否已缓存从 Google Cloud 检索到的访问令牌。
我们建议您在完成与 Google Cloud 的连接的配置和测试后启用令牌缓存。如需详细了解令牌缓存,请参阅启用令牌缓存。
令牌刷新秒数 访问令牌在多久后(以秒为单位)会到期并且必须刷新。默认值为 3500
。授权参数 1 将此字段留空。 授权参数 2 将此字段留空。 保存新条目。
在 SAP 系统中,为您计划通过 ABAP SDK for Google Cloud 使用的 API 创建新的 RFC 目标。
如需了解如何创建 RFC 目标,请参阅 RFC 目标。
在 SAP 系统中,为 IAM API 以及您计划通过 ABAP SDK for Google Cloud 使用的其他 API 配置服务映射表。
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置服务映射。
点击新建条目。
为 IAM API 和其他 API 指定 RFC 目标,例如
Pub/Sub API v1
。名称 服务名称 RFC 目标 Google Cloud 密钥名称 iamcredentials.googleapis.com
ZGOOG_IAMCREDENTIALS
Google Cloud 密钥名称 pubsub:v1
ZGOOG_PUBSUB_V1
保存新条目。
在 SAP 系统中,验证身份验证配置。如需了解详情,请参阅验证身份验证配置。
在跨项目环境中设置服务账号
包含 SDK 的 SAP 系统的主机虚拟机可以位于与启用了 Google Cloud API 的不同 Google Cloud 项目中。在这种情况下,您必须设置具有所需 IAM 角色的服务账号,以便 SDK 可以从不同项目访问 API。
下表展示了针对跨项目 API 访问的服务账号设置的示例。
环境 | SAP 主机虚拟机 | Google Cloud API |
---|---|---|
Google Cloud 项目 | project-sap-host |
project-google-apis |
分配给 SAP 主机虚拟机的服务账号 | sa-sap-host@project-sap-host.iam.gserviceaccount.com |
不适用 |
用于访问 Google Cloud API 的服务账号 | sa-google-apis@project-sap-host.iam.gserviceaccount.com |
不适用 |
服务账号的 IAM 角色 | 在项目 project-sap-host 中,向服务账号 sa-sap-host@project-sap-host.iam.gserviceaccount.com 授予 Service Account Token Creator 角色。 |
在项目 project-google-apis 中,将服务账号 sa-google-apis@project-sap-host.iam.gserviceaccount.com 添加为主账号,并向该服务账号授予适当的角色以连接到 Google Cloud API。 |
如需设置服务账号,请执行以下步骤:
- 在包含 SAP 主机虚拟机的 Google Cloud 项目中,为 SAP 主机虚拟机的服务账号授予
Service Account Token Creator
角色。如需详细了解这些步骤,请参阅授予单个角色。 - 在包含 SAP 主机虚拟机的 Google Cloud 项目中,创建一个服务账号。记下服务账号的名称。您需要在将服务账号作为主账号添加到包含 Google Cloud API 的另一个项目时指定此名称。
在包含 Google Cloud API 的另一个项目中,将服务账号添加为主账号,并授予适当的角色以连接到 Google Cloud API。如需将服务账号添加到包含 Google Cloud API 的 Google Cloud 项目,请执行以下步骤:
在 Google Cloud 控制台中,进入“IAM 权限”页面:
确认页面顶部附近显示了包含目标 Google Cloud API 的项目的名称。 例如:
项目“
PROJECT_NAME
”的权限如果未显示,请切换项目。
在 IAM 页面上,点击
授予访问权限。系统会打开授予对“PROJECT_NAME
”的访问权限对话框。在新的主账号字段中,指定服务账号的名称。
在选择角色字段中,指定相关角色。 例如,对于 Pub/Sub,如需修改主题和订阅以及发布和使用消息的权限,您可以指定 Pub/Sub Editor 角色 (
roles/pubsub.editor
)。如需详细了解 API 特定预定义角色,请参阅 IAM 基本角色和预定义角色参考文档。
根据 API 使用要求添加其他角色。 通过应用最小权限原则,实施 Google 推荐的最佳实践。
点击保存。该服务账号会显示在 IAM 页面上的项目主账号列表中。
验证身份验证配置
如需验证身份验证配置,请执行以下步骤:
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 实用程序 > 验证身份验证配置。
输入客户端密钥名称。
点击 Execute 以检查整体流是否已成功配置。
结果列中的绿色对勾标记表示所有配置步骤均已成功完成。
获取支持
如果您在解决 ABAP SDK for Google Cloud 问题时需要帮助,请执行以下操作:
在 Cloud 论坛上提出问题并与社区讨论 ABAP SDK for Google Cloud。
收集所有可用的诊断信息,并与 Cloud Customer Care 联系。如需了解如何与 Customer Care 团队联系,请参阅获取 Google Cloud 上的 SAP 支持。