本文說明如何設定驗證,以便在 SAP 系統於下列主機上執行時存取 Google CloudAPI:內部部署、其他雲端供應商、 Google Cloud以外的其他環境,或透過 SAP RISE 計畫由 SAP 管理。如要向Google Cloud進行驗證,請使用已簽署的 JSON Web Token (JWT) 向 Google Cloud取得存取權杖。 Google Cloud
高階設定步驟如下:
- 建立服務帳戶,以擷取以 JWT 為基礎的權杖。
- 在 SAP 主機上設定 Google Cloud 的安全性設定。
- 啟用 Google Cloud API。
- 建立另一個服務帳戶,授權存取 Google Cloud API。
- 將存取特定 API 時所需的 IAM 角色授予服務帳戶。
- 將建立的服務帳戶新增為 Google Cloud 專案的主體,以存取 API。
- 建立 SAP 設定。
- 驗證驗證設定。
必要條件
如要讓 SAP 應用程式伺服器透過 HTTPS 連線至 Google Cloud API,請確認下列事項:
確認交易
SMICM
中已啟用 HTTPS 連接埠。在 SAP 主機上,設定防火牆規則或 Proxy,允許 HTTPS 通訊埠的外送流量傳向必要 Google Cloud API。具體來說,您的 SAP 系統必須能夠存取下列 API 端點:
https://iamcredentials.googleapis.com
- 您要透過 SDK 使用的 API 的 API 端點。
建立服務帳戶,以擷取以 JWT 為基礎的權杖
如要使用 JWT 進行驗證,ABAP 適用的 Google Cloud SDK 需要 IAM 服務帳戶。 Google Cloud
建立服務帳戶
建立服務帳戶,並將 Service Account Token Creator
IAM 角色授予該服務帳戶。
如要建立服務帳戶,請完成下列步驟:
在 Google Cloud 控制台中,為 JWT 憑證擷取作業建立 IAM 服務帳戶。
如要瞭解如何建立服務帳戶,請參閱「建立服務帳戶」。
將
Service Account Token Creator
角色授予服務帳戶。如需操作說明,請參閱「授予單一角色」。
建立服務帳戶金鑰
您需要為用於 JWT 憑證擷取的服務帳戶建立 P12 服務帳戶金鑰。
如要建立服務帳戶金鑰,請完成下列步驟:
在 Google Cloud 控制台中,前往「IAM & Admin」(IAM 與管理) 的「Service accounts」(服務帳戶) 頁面。
選取 Google Cloud 專案。
按一下您在上一節「建立服務帳戶」中,為 JWT 憑證式權杖擷取作業建立的服務帳戶電子郵件地址。
在服務帳戶名稱下方,按一下「金鑰」分頁標籤。
點選「新增金鑰」下拉式選單,然後選取「建立新的金鑰」,即可建立服務帳戶金鑰。
接受 P12 做為金鑰類型,然後按一下「建立」。
私密金鑰會下載到您的電腦中。
記下私密金鑰檔案 (
notasecret
) 的密碼。將私密金鑰和密碼提供給 SAP 管理員,以便將私密金鑰匯入
STRUST
,詳情請參閱「將服務帳戶金鑰匯入 STRUST」。
指定用於簽署 JWT 的服務帳戶
如要指定用於 JWT 簽署的服務帳戶,請按照下列步驟操作:
在 SAP GUI 中執行交易代碼
/GOOG/SDK_IMG
。或者,執行交易代碼
SPRO
,然後按一下「SAP Reference IMG」。依序點選「ABAP SDK for Google Cloud」「Basic Settings」「Configure Parameters」。
按一下「New Entries」。
在「Parameter Name」(參數名稱) 欄位中,輸入
JWT_SERVC_ACCT
。系統會自動填入參數說明。在「參數值」欄位中,輸入服務帳戶的名稱。
儲存新項目。
在 SAP 主機系統上設定 Google Cloud 安全性設定
如要為您建立的服務帳戶啟用 JWT 簽署功能,以便根據 JWT 擷取權杖,您必須在 SAP 主機系統上設定Google Cloud 的安全性設定。
建立新的安全儲存轉送 (SSF) 應用程式
每個 SSFAPPLIC
項目可讓您儲存單一服務帳戶金鑰。
如要儲存多個專案的服務帳戶金鑰,請按照相同步驟建立多個 SSFAPPLIC
項目。
如要在 SSFAPPLIC
表格中建立新項目,請按照下列步驟操作:
- 在 SAP GUI 中,輸入交易代碼
SE16
。 - 在「Table Name」(資料表名稱) 欄位中輸入
SSFAPPLIC
,然後建立新項目。 - 在「APPLIC」欄位中,輸入 SSF 應用程式的名稱,例如
ZG_JWT
。 - 除了 B_INCCERTS、B_DETACHED、B_ASKPWD 和 B_DISTRIB 欄位,請選取所有其他欄位。
- 在「DESCRIPT」(說明)DESCRIPT 欄位中輸入
JWT Signature for GCP
。 儲存新項目。
這個項目會成為交易
STRUST
中的新節點,您可以在其中匯入服務帳戶金鑰。
啟用 STRUST
節點
使用交易 SSFA
為 JWT Signature for GCP
啟用 STRUST
節點。
如要啟用 STRUST
節點,請執行下列步驟:
- 在 SAP GUI 中,輸入交易代碼
SSFA
。 - 按一下「New Entries」。
在「SSF Application」(SSF 應用程式) 下拉式清單中,選取
JWT Signature for GCP
。 這是您在資料表SSFAPPLIC
中建立的新項目。系統會自動填入應用程式專屬的 SSF 參數。
儲存新項目。
交易
STRUST
中已啟用新節點SSF JWT Signature for GCP
。
將服務帳戶金鑰匯入 STRUST
如要將服務帳戶金鑰匯入 STRUST
,請完成下列步驟:
在 SAP GUI 中,輸入交易代碼
STRUST
。確認交易
STRUST
中的新節點為SSF JWT Signature for GCP
。匯入私密金鑰檔案:
- 在選單列中依序選取「PSE」>「Import」。
- 根據您的 SAP 系統,選取適當的私密金鑰:
- SAP S/4HANA
- 選取 P12 私密金鑰。
- 輸入檔案密碼
notasecret
,然後按一下「確定」。
- SAP ECC
- 選取 PSE 私密金鑰。您必須將先前下載的 P12 私密金鑰轉換成 PSE 私密金鑰。如要進一步瞭解如何將 P12 金鑰轉換為 PSE 金鑰,請參閱「將 P12 金鑰轉換為 PSE 金鑰」。
- 輸入您在私密金鑰轉換期間建立的檔案 PIN 碼 (從 P12 金鑰轉換為 PSE 金鑰),然後按一下「確定」。
- SAP S/4HANA
依序選取「PSE」>「另存新檔」。
選取「SSF Application」,然後在對應的輸入欄位中,選取您在「建立新的安全儲存轉送 (SSF) 應用程式」中建立的新 SSF 應用程式節點。
儲存新項目。
服務金鑰會附加至 SSF 應用程式節點
SSF JWT Signature for GCP
。
將 P12 私密金鑰轉換為 PSE 金鑰
如果您的 SAP 系統是 SAP NetWeaver 7.0x (SAP ECC),則必須將 P12 金鑰轉換為 PSE 金鑰。
如要將 P12 金鑰轉換為 PSE 金鑰,請按照下列步驟操作:
前往下列路徑:
/usr/sap/SID/SYS/exe/run/
將 SID 替換為 SAP 系統 ID。
替換預留位置後,執行下列指令:
sapgenpse import_p12 -p PSE_PATH_AND_FILE_NAME P12_PATH_AND_FILE_NAME.p12
更改下列內容:
PSE_PATH_AND_FILE_NAME
:指定 PSE 檔案的路徑和檔案名稱P12_PATH_AND_FILE_NAME
:指定 P12 金鑰檔案的路徑和檔案名稱
輸入 P12 私密金鑰檔案 (
notasecret
) 的密碼。為 PSE 私密金鑰建立新的 PIN 碼,然後重新輸入 PIN 碼。
請記下 PIN 碼,將 PSE 私密金鑰檔案匯入
STRUST
時,需要提供這個 PIN 碼。
如需 SAP 提供的資訊,瞭解如何將 P12 金鑰轉換為 PSE 金鑰,請參閱:
啟用 Google Cloud API
在 Google Cloud 控制台中,為需要驗證的 Google Cloud 專案啟用 IAM 服務帳戶憑證 API。除了 IAM 服務帳戶憑證 API 之外,您還需要啟用打算使用 SDK 存取的任何其他支援的 API。
如要瞭解如何啟用 API,請參閱「啟用 API」。 Google Cloud
建立服務帳戶,授權存取 Google Cloud API
如要驗證及授權存取 Google Cloud API,ABAP SDK for Google Cloud 需要 IAM 服務帳戶。
建立服務帳戶
在 Google Cloud 控制台中,建立 IAM 服務帳戶。這個服務帳戶必須是 Google Cloud 專案中的主體,該專案包含您打算使用 SDK 執行的Google Cloud API。如果您在包含 Google Cloud API 的專案中建立服務帳戶,系統會自動將該服務帳戶新增為專案主體。
如果您在啟用 Google Cloud API 的專案以外的專案中建立服務帳戶,則需要額外步驟,將服務帳戶新增至該專案。
在 Google Cloud 控制台中,建立 IAM 服務帳戶,用於驗證及授權存取 Google Cloud API。
如要瞭解如何建立服務帳戶,請參閱「建立服務帳戶」。
在 Google Cloud 控制台中,授予服務帳戶存取 API 功能所需的 IAM 角色。如要瞭解 Google Cloud API 的角色需求,請參閱個別 API 說明文件,並遵循最低權限原則。如要進一步瞭解 API 專用的預先定義角色,請參閱「尋找 API 適用的 IAM 角色 Google Cloud 」。
如果您在其他專案中建立服務帳戶,而不是在包含您打算使用 SDK 取用 Google Cloud API 的專案中建立,請記下服務帳戶的名稱。將服務帳戶新增至專案時,您會指定名稱。 詳情請參閱「將服務帳戶加進 Google Cloud 專案」。
將服務帳戶新增至 Google Cloud 專案
如果您在專案中建立 ABAP SDK for Google Cloud 的服務帳戶,但該專案不包含您打算使用 SDK 執行的 Google Cloud API,則必須將服務帳戶新增至包含 Google Cloud API 的 Google Cloud 專案。
如果您在包含Google Cloud API 的專案中建立服務帳戶,可以略過這個步驟。
如要將現有服務帳戶新增至包含 Google Cloud API 的 Google Cloud 專案,請按照下列步驟操作:
前往 Google Cloud 控制台的「IAM Permissions」(IAM 權限) 頁面:
確認頁面頂端附近顯示的專案名稱,是否為包含目標Google Cloud API 的專案。例如:
專案「
PROJECT_NAME
」的權限如果不是,請切換專案。
在「IAM」頁面中,按一下「授予存取權」
。系統會開啟「授予『PROJECT_NAME
』的存取權」對話方塊。在「Grant access to」(授予「
PROJECT_NAME
」的存取權) 對話方塊中,執行下列步驟:- 在「新增主體」欄位中,指定服務帳戶名稱。
在「Select a role」(請選擇角色) 欄位中,指定相關角色。 舉例來說,如要修改 Pub/Sub 的主題和訂閱項目,以及發布和調用訊息,可以指定 Pub/Sub 編輯者角色 (
roles/pubsub.editor
)。如要進一步瞭解 API 專用的預先定義角色,請參閱 IAM 基本和預先定義角色參考資料。
視 API 用途新增其他角色。 採用 Google 建議的最佳做法,並遵循最低權限原則。
按一下 [儲存]。服務帳戶會顯示在「IAM」IAM頁面的專案主體清單中。
現在可以使用服務帳戶存取這個專案中的 Google Cloud API。
建立 SAP 設定
如要使用 JWT 驗證,請建立必要的 SAP 設定。
在用戶端金鑰資料表中指定存取設定
如要指定存取權設定,請執行下列步驟:
在 SAP GUI 中執行交易代碼
/GOOG/SDK_IMG
。或者,執行交易代碼
SPRO
,然後按一下「SAP Reference IMG」。依序點選「ABAP SDK for Google Cloud」「Basic Settings」「Configure Client Key」。
按一下「New Entries」。
在下列欄位中輸入值:
欄位 說明 Google Cloud 金鑰名稱 指定用戶端金鑰設定的名稱。 Google Cloud 服務帳戶名稱 以電子郵件地址格式指定服務帳戶名稱,該服務帳戶是在「建立服務帳戶」步驟中,為 ABAP SDK for Google Cloud 建立。例如:
sap-example-svc-acct@example-project-123456.
。Google Cloud 範圍 預設和必要範圍為 https://www.googleapis.com/auth/cloud-platform
。 如需指定其他範圍,請以半形逗號分隔的清單形式提供。專案 ID 指定包含目標 API 的 Google Cloud 專案 ID。 指令名稱 請將這個欄位留空。 授權類別 指定授權類別 /GOOG/CL_AUTH_JWT
。授權欄位 請將這個欄位留空。 權杖更新秒數 請將這個欄位留空。 授權參數 1 指定您在「建立新的安全儲存轉送 (SSF) 應用程式」一節中建立的 SSF 應用程式名稱。 儲存新項目。
建立新的 RFC 目的地
使用 ABAP 版 Google Cloud SDK 建立 IAM API 和其他 API 的 RFC 目的地,例如 Pub/Sub API v1。
RFC 目的地名稱 | 附註 |
---|---|
ZGOOG_IAMCREDENTIALS |
這個 RFC 目的地以 IAM API 為目標。 |
ZGOOG_OAUTH2_TOKEN |
這個 RFC 目的地是針對以權杖為基礎的驗證 Google Cloud 端點。 |
ZGOOG_PUBSUB_V1 |
這個 RFC 目的地會以 Pub/Sub API 為目標。 |
如要瞭解如何建立 RFC 目的地,請參閱「RFC 目的地」。
在服務對應表中指定 RFC 目的地
在服務對應表中,指定 IAM API 和其他 API 的 RFC 目的地,您打算使用 ABAP 版 Google Cloud SDK 取用這些 API。
如要指定 RFC 目的地,請執行下列步驟:
在 SAP GUI 中執行交易代碼
/GOOG/SDK_IMG
。或者,執行交易代碼
SPRO
,然後按一下「SAP Reference IMG」。依序點選「ABAP SDK for Google Cloud」>「Basic Settings」>「Configure Service Mapping」。
按一下「New Entries」。
為 IAM API 和其他 API 指定 RFC 目的地。例如:
名稱 服務名稱 RFC 目的地 Google Cloud 金鑰名稱 iamcredentials:v1
ZGOOG_IAMCREDENTIALS
Google Cloud 金鑰名稱 googleapis.com/oauth2
ZGOOG_OAUTH2_TOKEN
Google Cloud 金鑰名稱 pubsub.googleapis.com
ZGOOG_PUBSUB_V1
儲存新項目。
驗證驗證設定
如要驗證驗證設定是否就緒,請按照下列步驟操作:
在 SAP GUI 中執行交易代碼
/GOOG/SDK_IMG
。或者,執行交易代碼
SPRO
,然後按一下「SAP Reference IMG」。依序點選「ABAP SDK for Google Cloud」>「Utilities」>「Validate Authentication Configuration」。
輸入用戶端金鑰名稱。
按一下 [Execute] (執行)。
「結果」欄中的綠色勾號表示所有設定步驟都已順利完成。
取得支援
如需協助解決 ABAP SDK for Google Cloud 的問題,請按照下列步驟操作:
在 Cloud 論壇上向社群提問,並討論 ABAP SDK for Google Cloud。
收集所有可用的診斷資訊,然後與 Cloud Customer Care 團隊聯絡。如要瞭解如何與 Customer Care 聯絡,請參閱「取得 SAP on Google Cloud支援服務」。