本文說明如何設定驗證,以便在 SAP 系統於地端、其他雲端供應商、 Google Cloud以外的其他環境中執行,或由 SAP 透過 SAP RISE 計畫管理時,存取 Google Cloud。
如要向 Google Cloud進行驗證,請使用 Google Cloud已簽署的 JSON Web Token (JWT) 向 Google Cloud取得存取權杖。高階設定步驟如下:
- 啟用 Google Cloud API。
- 建立服務帳戶,以擷取以 JWT 為基礎的權杖。
- 在 SAP LT Replication Server 主機上設定安全性設定 Google Cloud 。
- 建立另一個服務帳戶以進行授權。
- 建立 BigQuery 資料集。
- 設定 TLS/SSL 憑證和 HTTPS。
- 在
/GOOG/CLIENT_KEY
中指定存取權設定。
啟用 Google Cloud API
在 Google Cloud 專案中啟用必要的 Google Cloud API。
如要透過 Pub/Sub 進行 CDC 複製,請啟用下列 API:
- Pub/Sub API
- BigQuery API
- IAM Service Account Credentials API
如要複製串流資料,請啟用下列 API:
- BigQuery API
- IAM Service Account Credentials API
如要瞭解如何啟用 API,請參閱「啟用 API」。 Google Cloud
建立服務帳戶,以擷取以 JWT 為基礎的權杖
如要進行以 JWT 為基礎的驗證,SAP 專用的 BigQuery 連接器需要 IAM 服務帳戶。 Google Cloud
建立服務帳戶
如要建立服務帳戶,以擷取 JWT 型權杖,請完成下列步驟:
在 Google Cloud 控制台中,前往「IAM & Admin」(IAM 與管理) 的「Service accounts」(服務帳戶) 頁面。
如果出現提示,請選取 Google Cloud 專案。
按一下「Create Service Account」(建立服務帳戶)。
指定服務帳戶名稱,並視需要輸入說明。
按一下「建立並繼續」。
在「將專案存取權授予這個服務帳戶」面板中,選取「服務帳戶憑證建立者」角色。
按一下「繼續」。
視情況授予其他使用者服務帳戶的存取權。
按一下 [完成]。服務帳戶會顯示在 Google Cloud 專案的服務帳戶清單中。
建立服務帳戶金鑰
您需要為用於 JWT 憑證擷取的服務帳戶建立 P12 服務帳戶金鑰。
如要建立服務帳戶金鑰,請完成下列步驟:
在 Google Cloud 控制台中,前往「IAM & Admin」(IAM 與管理) 的「Service accounts」(服務帳戶) 頁面。
選取 Google Cloud 專案。
按一下您在上一節「建立服務帳戶」中,為 JWT 憑證式權杖擷取作業建立的服務帳戶電子郵件地址。
在服務帳戶名稱下方,按一下「金鑰」分頁標籤。
點選「新增金鑰」下拉式選單,然後選取「建立新的金鑰」,即可建立服務帳戶金鑰。
接受 P12 做為金鑰類型,然後按一下「建立」。
私密金鑰會儲存到您的電腦中。
記下私密金鑰檔案 (
notasecret
) 的密碼。將私密金鑰和密碼提供給 SAP 管理員,以便將私密金鑰匯入
STRUST
,詳情請參閱「將服務帳戶金鑰匯入 STRUST」。
在 SAP LT Replication Server 主機上啟用服務帳戶的 JWT 簽署功能
如要為您建立的服務帳戶啟用 JWT 簽署功能,以便根據 JWT 擷取權杖,請在表格 /GOOG/BQ_PARAM
中新增 JWT_SERVC_ACCT
參數,並設定服務帳戶。
如要為服務帳戶啟用 JWT 簽署功能,請完成下列步驟:
在 SAP GUI 中,輸入
/GOOG/SLT_SETTINGS
交易,並在前面加上/n
:/n/GOOG/SLT_SETTINGS
在
/GOOG/SLT_SETTINGS
交易的啟動畫面中,從「設定表格」下拉式選單選取「參數」。按一下「執行」圖示。系統會顯示「BigQuery Settings Maintenance - Parameters」(BigQuery 設定維護 - 參數) 畫面。
按一下「插入列」圖示。
在顯示的列中,指定下列設定:
- 在「Parameter Name」(參數名稱) 欄位中,輸入
JWT_SERVC_ACCT
。系統會自動填入參數說明。 - 在「Parameter Value」(參數值) 欄位中,輸入您在上一節「建立服務帳戶」中,為 JWT 型權杖擷取作業建立的服務帳戶電子郵件地址。
- 在「Parameter Name」(參數名稱) 欄位中,輸入
按一下 [儲存]。
系統會將設定儲存為設定表中的記錄,並自動填入「變更者」、「變更時間」和「變更地點」
/GOOG/BQ_PARAM
欄位。
在 SAP LT Replication Server 主機上設定安全性設定 Google Cloud
本節說明如何在 SAP LT 複寫伺服器主機上設定 Google Cloud的安全性設定,包括建立 SSF 應用程式項目,以及將服務帳戶金鑰匯入 STRUST
。
建立新的安全儲存轉送 (SSF) 應用程式
在資料表 SSFAPPLIC
中,ZG_JWT
項目會匯入為 BigQuery Connector for SAP 傳輸的一部分。如果 ZG_JWT
項目未匯入,您需要使用交易 SE16
建立名為 ZG_JWT
的新項目。
如要在 SSFAPPLIC
資料表中建立新項目,請完成下列步驟:
- 在 SAP GUI 中,輸入交易代碼
SE16
。 - 在「Table Name」(資料表名稱) 欄位中輸入
SSFAPPLIC
,然後建立新項目。 - 在「APPLIC」欄位中輸入
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
中建立的新項目。下圖顯示 SAP 自動填入的應用程式專屬 SSF 參數。
儲存新項目。
交易
STRUST
中已啟用新節點SSF JWT Signature for GCP
。現在,請將服務帳戶金鑰匯入這個節點。
將服務帳戶金鑰匯入 STRUST
如要將服務帳戶金鑰匯入 STRUST
,請完成下列步驟:
在 SAP GUI 中,輸入交易代碼
STRUST
。確認交易
STRUST
中的新節點為SSF JWT Signature for GCP
。匯入私密金鑰檔案:
- 在選單列中依序選取「PSE」>「Import」。
- 根據來源系統類型,選取適當的私密金鑰:
- S4/HANA
- 選取 P12 私密金鑰。
- 輸入檔案密碼
notasecret
,然後按一下「確定」。
- ECC
- 選取 PSE 私密金鑰。您必須將先前下載的 P12 私密金鑰轉換成 PSE 私密金鑰。如要進一步瞭解如何將 P12 金鑰轉換為 PSE 金鑰,請參閱「將 P12 金鑰轉換為 PSE 金鑰」。
- 輸入您在私密金鑰轉換期間建立的檔案 PIN 碼 (從 P12 金鑰轉換為 PSE 金鑰),然後按一下「確定」。
- S4/HANA
依序選取「PSE」>「另存新檔」。
選取「SSF Application」選項按鈕,然後在對應欄位中,選取您在「建立新的安全儲存轉送 (SSF) 應用程式」中建立的新 SSF 應用程式節點。
儲存新項目。
服務金鑰會附加至 SSF 應用程式節點
SSF JWT Signature for GCP
。
將 P12 私密金鑰轉換為 PSE 金鑰
如果來源系統是 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 金鑰,請參閱:
- SAP Note 2148457 - How to convert the keypair of a PKCS#12 / PFX container into a PSE file
- SAP Note 2976401 - "import_p12: Error creating PSE" error during converting keypair of PKCS#12 / PFX container into PSE file
建立授權專用的服務帳戶
本節說明如何建立服務帳戶以進行授權,以及如何設定 TLS/SSL 憑證以確保通訊安全。
建立服務帳戶
BigQuery Connector for SAP 需要 IAM 服務帳戶進行驗證和授權,才能存取 Google Cloud 資源。
這個服務帳戶必須是包含已啟用 Google Cloud API 的 Google Cloud 專案中的主體。如果您在與 Google Cloud API 相同的專案中建立服務帳戶,系統會自動將該服務帳戶新增為專案主體。
如果您在啟用 Google Cloud API 的專案以外的專案中建立服務帳戶,則需要額外執行步驟,將服務帳戶新增至啟用 Google Cloud API 的專案。
如要建立服務帳戶,請按照下列步驟操作:
在 Google Cloud 控制台中,前往「IAM & Admin」(IAM 與管理) 的「Service accounts」(服務帳戶) 頁面。
如果出現提示,請選取 Google Cloud 專案。
按一下「Create Service Account」(建立服務帳戶)。
指定服務帳戶名稱,並視需要輸入說明。
按一下「建立並繼續」。
如果您要在啟用 API 的專案中建立服務帳戶,請在「授予這個服務帳戶專案存取權」面板中,視需要選取角色: Google Cloud
如要透過 Pub/Sub 進行 CDC 複製,請選取下列角色:
- Pub/Sub 編輯者
- BigQuery 資料編輯者
- BigQuery 工作使用者
如要複製串流資料,請選取下列角色:
- BigQuery 資料編輯者
- BigQuery 工作使用者
如果您在啟用 Google Cloud API 的專案以外的專案中建立服務帳戶,請勿授予服務帳戶任何角色。
按一下「繼續」。
視情況授予其他使用者服務帳戶的存取權。
按一下 [完成]。服務帳戶會顯示在專案的服務帳戶清單中。
如果您在不同專案中建立服務帳戶,而非包含已啟用 Google Cloud API 的專案,請記下服務帳戶名稱。將服務帳戶新增至已啟用 Google Cloud API 的專案時,您會指定名稱。詳情請參閱 將服務帳戶新增至 BigQuery 專案。
服務帳戶現在會列為IAM 權限頁面上的主體,該頁面位於建立服務帳戶的專案中。 Google Cloud
將服務帳戶新增至目標專案
如果您在啟用 Google Cloud API 的專案以外的專案中,為 BigQuery Connector for SAP 建立服務帳戶,則必須將服務帳戶新增至啟用 Google Cloud API 的專案。
如果您在啟用 Google Cloud API 的專案中建立服務帳戶,可以略過這個步驟。
如要將現有服務帳戶新增至 BigQuery 資料集專案,請完成下列步驟:
前往 Google Cloud 控制台的「IAM Permissions」(IAM 權限) 頁面:
確認頁面頂端附近顯示的專案名稱,是包含已啟用Google Cloud API 的專案。例如:
專案「
PROJECT_NAME
」的權限如果不是,請切換專案。
在「IAM」頁面中,按一下「新增」
。系統會開啟「為『PROJECT_NAME
』新增主體」對話方塊。在「Add principals to "
PROJECT_NAME
"」(將主體新增至「PROJECT_NAME
」) 對話方塊中,完成下列步驟:- 在「新增主體」欄位中,指定服務帳戶名稱。
- 在「Select a role」(選取角色) 欄位中,指定「BigQuery Data Editor」(BigQuery 資料編輯者)。
- 按一下「新增其他角色」。「選取角色」欄位會再次顯示。
- 在「請選擇角色」欄位中,指定「BigQuery 工作使用者」。
- 如要透過 Pub/Sub 進行 CDC 複製,請重複上述步驟,並指定「Pub/Sub 編輯者」。
- 按一下 [儲存]。服務帳戶會顯示在「IAM」IAM頁面的專案主體清單中。
建立 BigQuery 資料集
如要建立 BigQuery 資料集,使用者帳戶必須具備 BigQuery 的適當 IAM 權限。詳情請參閱「必要權限」。
前往 Google Cloud 控制台的「BigQuery」頁面:
點選專案 ID 旁邊的「查看動作」圖示
,然後點選「建立資料集」。在「Dataset ID」(資料集 ID) 欄位中,輸入專屬名稱。詳情請參閱「命名資料集」。
如要進一步瞭解如何建立 BigQuery 資料集,請參閱建立資料集。
設定 TLS/SSL 憑證和 HTTPS
BigQuery Connector for SAP 與 Google 服務之間的通訊會使用 TLS/SSL 和 HTTPS 加密,確保安全無虞。
如要連線至 Google 服務,請按照 Google Trust Services 的建議操作。 您至少必須從 Google Trust Services 存放區下載所有根 CA 憑證。
為確保您使用的是最新且可信任的根憑證授權單位憑證,建議每六個月更新一次系統的根憑證存放區。Google 會在 Google Trust Services 公布新增和移除的根 CA 憑證。 如要自動接收通知,請訂閱 Google Trust Services 的 RSS 動態消息。
在 SAP GUI 中,使用
STRUST
交易將根 CA 憑證匯入SSL client SSL Client (Standard)
PSE 資料夾。如需 SAP 提供的詳細資訊,請參閱 SAP 說明 - 維護 PSE 認證清單。
在 SAP LT Replication Server 主機上,確認任何防火牆規則或 Proxy 都已設定為允許從 HTTPS 連接埠傳出流量至 BigQuery API。
具體來說,SAP LT Replication Server 必須能夠存取下列Google Cloud API:
https://bigquery.googleapis.com
https://iamcredentials.googleapis.com
https://pubsub.googleapis.com
如要讓 BigQuery Connector for SAP 透過虛擬私有雲網路中的 Private Service Connect 端點存取 Google Cloud API,您必須設定 RFC 目的地,並在這些 RFC 目的地中指定 Private Service Connect 端點。詳情請參閱 RFC 目的地。
如要進一步瞭解如何設定 TLS/SSL,請參閱 SAP 附註 510007 - Additional considerations for setting up TLS/SSL on Application Server ABAP。
在「/GOOG/CLIENT_KEY
」中指定存取權設定
使用交易 SM30
指定Google Cloud的存取權設定。BigQuery Connector for SAP 會將設定儲存為/GOOG/CLIENT_KEY
自訂設定資料表中的記錄。
如要指定存取權設定,請按照下列步驟操作:
在 SAP GUI 中,輸入交易代碼
SM30
。選取
/GOOG/CLIENT_KEY
設定表格。在下列表格欄位中輸入值:
欄位 資料類型 說明 名稱 字串 為設定指定描述性名稱,例如
CLIENT_KEY
BQC_CKEY
。用戶端金鑰名稱是不重複的 ID,BigQuery Connector for SAP 會使用這個 ID 識別 Google Cloud的存取設定。
服務帳戶名稱 字串 服務帳戶名稱 (電子郵件地址格式),是在「建立服務帳戶」步驟中為 BigQuery Connector for SAP 建立。例如:
sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
。範圍 字串 存取權範圍。 指定
https://www.googleapis.com/auth/cloud-platform
API 存取權範圍,如 Compute Engine 建議。專案 ID 字串 目標 BigQuery 資料集所屬專案的 ID。 指令名稱 字串 請將這個欄位留空。
授權類別 字串 /GOOG/CL_GCP_AUTH_JWT
授權欄位 不適用 請將這個欄位留空。 權杖更新秒數 整數 請將這個欄位留空。 權杖快取 布林值 請將這個欄位留空。
設定 RFC 目的地
如要將 BigQuery Connector for SAP 連接至 Google Cloud,建議使用 RFC 目的地。
範例 RFC 目的地 GOOG_OAUTH2_TOKEN
、GOOG_IAMCREDENTIALS
和 GOOG_BIGQUERY
會匯入為 BigQuery Connector for SAP 傳輸的一部分。
您需要複製範例 RFC 目的地,藉此建立新的 RFC 目的地。
如要設定 RFC 目的地,請執行下列操作:
在 SAP GUI 中,輸入交易代碼
SM59
。(建議) 複製範例 RFC 目的地,然後建立新的 RFC 目的地,並記下新的 RFC 目的地名稱。您會在後續步驟中使用這些值。
BigQuery Connector for SAP 會使用 RFC 目的地連線至Google Cloud API。
如要測試以 RFC 目的地為基礎的連線,可以略過這個步驟,並使用範例 RFC 目的地。
針對您建立的 RFC 目的地,請執行下列操作:
前往「技術設定」分頁,確認「服務編號」欄位的值已設為
443
。RFC 目的地會使用這個通訊埠進行安全通訊。前往「Logon & Security」(登入和安全性) 分頁,確認「SSL Certificate」(SSL 憑證) 欄位已設為「DEFAULT SSL Client (Standard)」(預設 SSL 用戶端 (標準)) 選項。
您也可以視需要設定 Proxy 設定、啟用 HTTP 壓縮,以及指定 Private Service Connect 端點。
儲存變更。
如要測試連線,請按一下「連線測試」。
包含
404 Not Found
的回應是可以接受且預期的,因為 RFC 目的地中指定的端點對應至Google Cloud 服務,而非服務代管的特定資源。這類回應表示目標 Google Cloud服務可連線,但找不到目標資源。
在 SAP GUI 中,輸入交易代碼
SM30
。在您於前一節建立的
/GOOG/CLIENT_KEY
資料表中,記下「Name」欄位的值。在
/GOOG/SERVIC_MAP
表格中,使用下列欄位值建立項目:Google Cloud 金鑰名稱 Google 服務名稱 RFC 目的地 CLIENT_KEY_TABLE_NAME
bigquery.googleapis.com
指定以 BigQuery 為目標的 RFC 目的地名稱。如果您使用範例 RFC 目的地進行測試,請指定 GOOG_BIGQUERY
。CLIENT_KEY_TABLE_NAME
pubsub.googleapis.com
指定以 Pub/Sub 為目標的 RFC 目的地名稱。如果您使用範例 RFC 目的地進行測試,請指定 GOOG_PUBSUB
。CLIENT_KEY_TABLE_NAME
iamcredentials.googleapis.com
指定以 IAM 為目標的 RFC 目的地名稱。如要使用範例 RFC 目的地進行測試,請指定 GOOG_IAMCREDENTIALS
。CLIENT_KEY_TABLE_NAME
googleapis.com/oauth2
指定 RFC 目的地名稱,該目的地會以 Google OAuth 2.0 權杖端點為目標,用於交換 JWT 以取得存取權杖。如果使用範例 RFC 目的地進行測試,請指定 GOOG_OAUTH2_TOKEN
。將
CLIENT_KEY_TABLE_NAME
換成您在上一步記下的用戶端金鑰名稱。
設定 Proxy 設定
使用 RFC 目的地連線至 Google Cloud時,您可以透過 SAP 環境中使用的 Proxy 伺服器,從 BigQuery Connector for SAP 傳送通訊內容。
如果您不想使用 Proxy 伺服器,或 SAP 環境中沒有 Proxy 伺服器,可以略過這個步驟。
如要為 BigQuery Connector for SAP 設定 Proxy 伺服器,請完成下列步驟:
在 SAP GUI 中,輸入交易代碼
SM59
。選取以 IAM 為目標的 RFC 目的地。
前往「技術設定」分頁,然後在「HTTP Proxy 選項」部分中輸入欄位值。
針對以 BigQuery 為目標的 RFC 目的地,重複執行上一個步驟。
啟用 HTTP 壓縮
使用 RFC 目的地連線至 Google Cloud時,可以啟用 HTTP 壓縮。
如不想啟用這項功能,可以略過這個步驟。
如要啟用 HTTP 壓縮功能,請按照下列步驟操作:
在 SAP GUI 中,輸入交易代碼
SM59
。選取以 BigQuery 為目標的 RFC 目的地。
前往「特殊選項」分頁。
在「HTTP Version」(HTTP 版本) 欄位中,選取「HTTP 1.1」。
針對「Compression」(壓縮選項) 欄位,請選取適當的值。
如需壓縮選項的相關資訊,請參閱 SAP Note 1037677 - HTTP compression compresses certain documents only
指定 Private Service Connect 端點
如要讓 BigQuery Connector for SAP 使用 Private Service Connect 端點,以私下使用 BigQuery 和 IAM,則必須在 Google Cloud 專案中建立這些端點,並在相應的 RFC 目的地中指定這些端點。
如要讓 BigQuery Connector for SAP 繼續使用預設的公開 API 端點連線至 BigQuery 和 IAM,請略過這個步驟。
如要設定 BigQuery Connector for SAP 使用 Private Service Connect 端點,請按照下列步驟操作:
在 SAP GUI 中,輸入交易代碼
SM59
。確認您已為 BigQuery 和 IAM 建立新的 RFC 目的地。如需建立這些 RFC 目的地,請參閱設定 RFC 目的地。
選取以 BigQuery 為目標的 RFC 目的地,然後執行下列操作:
前往「技術設定」分頁。
在「Target Host」(目標主機) 欄位中,輸入您建立的 Private Service Connect 端點名稱,以便存取 BigQuery。
前往「登入與安全性」分頁。
確認「服務編號」欄位已指定
443
值。在「SSL Certificate」(SSL 憑證) 欄位中,確認已選取「DEFAULT SSL Client (Standard)」(預設 SSL 用戶端 (標準)) 選項。
選取以 IAM 為目標的 RFC 目的地,然後執行下列操作:
前往「技術設定」分頁。
在「目標主機」欄位中,輸入您建立的 Private Service Connect 端點名稱,以便存取 IAM。
前往「登入與安全性」分頁。
確認「服務編號」欄位已指定
443
值。在「SSL Certificate」(SSL 憑證) 欄位中,確認已選取「DEFAULT SSL Client (Standard)」(預設 SSL 用戶端 (標準)) 選項。