Dokumen ini menjelaskan cara melakukan autentikasi ke Google Cloud menggunakan token melalui Workload Identity Federation. Dengan Workload Identity Federation, Anda dapat memberikan akses beban kerja SAP lokal atau multi-cloud ke resource Google Cloudtanpa menggunakan kunci akun layanan.
Workload Identity Federation mengikuti spesifikasi pertukaran token OAuth 2.0. Anda memberikan kredensial dari IdP ke Layanan Token Keamanan, yang memverifikasi identitas pada kredensial, lalu menampilkan token akses gabungan sebagai gantinya. Anda dapat menggunakan token akses gabungan ini secara langsung dengan layanan yang didukung atau menggunakannya untuk meniru identitas akun layanan dan mendapatkan token akses berumur pendek. Dengan token akses yang berlaku singkat, Anda dapat memanggil Google Cloud API apa pun yang dapat diakses oleh akun layanan.
Anda dapat menggunakan Workload Identity Federation dengan server metadata atau penyedia identitas (IdP) eksternal.
Workload Identity Federation dengan metadata VM
Jika sistem SAP Anda dihosting di Google Cloud tetapi dikelola oleh SAP, Anda dapat menggunakan Workload Identity Federation untuk mengakses resource di projectGoogle Cloud lain dengan aman dari sistem SAP Anda. Workload Identity Federation memungkinkan sistem SAP Anda melakukan autentikasi ke project Google Cloud lain menggunakan metadata VM. Dengan demikian, Anda tidak perlu mengelola kunci akun layanan, sehingga meningkatkan keamanan dan menyederhanakan autentikasi.
Langkah-langkah konfigurasi tingkat tinggi adalah sebagai berikut:
- Di Google Cloud, konfigurasi Workload Identity Federation.
- Di Google Cloud, buat akun layanan.
- Di Google Cloud, berikan akses akun layanan ke kumpulan Workload Identity Federation.
- Di ABAP SDK untuk Google Cloud, konfigurasi kunci klien.
Mengonfigurasi Workload Identity Federation
Untuk mendapatkan izin yang diperlukan guna mengonfigurasi Workload Identity Federation, minta administrator untuk memberi Anda peran IAM berikut pada project:
- Workload Identity Pool Admin (
roles/iam.workloadIdentityPoolAdmin
) - Service Account Admin (
roles/iam.serviceAccountAdmin
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Untuk mengonfigurasi Workload Identity Federation, lakukan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Penyedia dan workload pool baru.
Di bagian Buat identity pool, masukkan nilai untuk kolom berikut:
- Nama: nama untuk pool. Nama ini juga digunakan sebagai ID pool. Anda tidak dapat mengubah ID pool nanti.
- Deskripsi: teks yang menjelaskan tujuan pool.
Klik Lanjutkan.
Di bagian Add a provider to pool, tambahkan server metadata sebagai penyedia:
- Di kolom Pilih penyedia, pilih OpenID Connect (OIDC).
Masukkan detail penyedia berikut:
- Nama penyedia: masukkan nama untuk penyedia.
- Issuer(URL): masukkan URL token server metadata,
https://accounts.google.com
. - Audiens: pilih Audiens yang diizinkan dan masukkan nomor project Google Cloud dari project Google Cloud yang perlu Anda akses. Untuk mengetahui informasi tentang cara mendapatkan nomor project, lihat Mengumpulkan detail instance server metadata Google.
Klik Lanjutkan.
Di bagian Konfigurasi atribut penyedia, lakukan hal berikut:
- Di kolom Google 1, pastikan nilainya adalah
google.subject
. - Di kolom OIDC 1, masukkan
assertion.sub
.
- Di kolom Google 1, pastikan nilainya adalah
Klik Save.
Perhatikan hal berikut:
- ID Kumpulan
- ID Penyedia
Anda memerlukan ID ini saat mengonfigurasi kunci klien.
Mengumpulkan detail instance server metadata Google
Untuk mendapatkan detail instance server metadata Google yang Anda perlukan untuk mengonfigurasi Workload Identity Federation, lakukan langkah-langkah berikut:
-
Di SAP GUI, jalankan kode transaksi
/GOOG/SDK_IMG
.Atau, jalankan kode transaksi
SPRO
, lalu klik IMG Referensi SAP. - Klik ABAP SDK for Google Cloud > Utilities > Get specific metadata values for Google Metadata Server Instance.
- Pilih opsi yang sesuai:
- ID Project Numerik
- Email Akun Layanan Default
- Klik Execute untuk melihat detailnya.
- Catat detailnya. Anda memerlukannya saat mengonfigurasi Workload Identity Federation di konsol Google Cloud.
Membuat akun layanan
Di konsol Google Cloud, buat akun layanan IAM. Akun layanan ini harus merupakan akun utama dalam project Google Cloud yang berisi APIGoogle Cloud yang akan Anda gunakan dengan menggunakan SDK.
Di konsol Google Cloud, pilih project tempat Anda ingin membuat akun layanan.
Jika Anda membuat akun layanan di project yang sama yang berisi API Google Cloud , akun layanan akan ditambahkan sebagai akun utama ke project secara otomatis.
Jika membuat akun layanan dalam project selain project tempatGoogle Cloud API diaktifkan, Anda perlu menambahkan akun layanan ke project tersebut dengan langkah tambahan. Untuk mengetahui informasi selengkapnya, lihat Menambahkan akun layanan ke project Google Cloud.
Buat akun layanan untuk autentikasi dan otorisasi agar dapat mengakses Google Cloud API.
Untuk mengetahui informasi tentang cara membuat akun layanan, lihat Membuat akun layanan.
Di konsol Google Cloud, berikan peran IAM yang diperlukan kepada akun layanan untuk mengakses fungsi API. Untuk memahami persyaratan peran untuk Google Cloud API, lihat dokumentasi API individual dan ikuti prinsip hak istimewa terendah. Untuk mengetahui informasi selengkapnya tentang peran bawaan khusus API, lihat Referensi peran dasar dan bawaan IAM.
Jika Anda membuat akun layanan dalam project selain project yang berisi Google Cloud API yang akan digunakan dengan menggunakan SDK, catat nama akun layanan tersebut. Anda menentukan nama tersebut saat menambahkan akun layanan ke project tersebut.
Menambahkan akun layanan ke project Google Cloud
Jika Anda membuat akun layanan untuk ABAP SDK untuk Google Cloud dalam project selain project yang berisi Google Cloud API yang ingin Anda gunakan dengan SDK, Anda perlu menambahkan akun layanan tersebut ke project Google Cloud yang berisi Google Cloud API.
Jika membuat akun layanan dalam project yang sama yang berisiGoogle Cloud API, Anda dapat melewati langkah ini.
Untuk menambahkan akun layanan yang ada ke project Google Cloud yang berisi API Google Cloud , lakukan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Izin IAM.
Pastikan nama project yang berisi APIGoogle Cloud target ditampilkan di dekat bagian atas halaman. Contoh:
Izin untuk project '
PROJECT_NAME
'Jika tidak, ganti project.
Di halaman Permissions IAM, klik
Grant access.Pada dialog Berikan akses ke '
PROJECT_NAME
' yang muncul, lakukan langkah-langkah berikut:- Di kolom New principals, tentukan nama akun layanan.
Di kolom Pilih peran, tentukan peran yang relevan. Misalnya, untuk Pub/Sub, jika ingin mengubah topik dan langganan, serta akses untuk memublikasikan dan menggunakan pesan, Anda dapat menentukan peran Pub/Sub Editor (
roles/pubsub.editor
).Untuk mengetahui detail selengkapnya tentang peran bawaan khusus API, lihat Referensi peran dasar dan bawaan IAM.
Tambahkan peran tambahan sesuai kebutuhan untuk penggunaan API Anda. Sebaiknya terapkan prinsip hak istimewa terendah.
Klik Save. Akun layanan akan muncul dalam daftar akun utama project di halaman IAM.
Akun layanan sekarang dapat digunakan untuk mengakses Google Cloud API dalam project ini.
Memberi akun layanan akses ke kumpulan Federasi Workload Identity
Untuk meniru akun layanan dari beban kerja gabungan, berikan
Workload Identity User (roles/iam.workloadIdentityUser
)
di akun layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Untuk memberikan akses akun layanan ke kumpulan Workload Identity Federation, lakukan hal berikut:
Di konsol Google Cloud, buka halaman Workload Identity Pool.
Pilih workload identity pool yang Anda buat di bagian konfigurasi Workload Identity Federation.
Untuk memberikan akses ke workload identity pool, klik
Berikan akses.Dalam daftar Service account, pilih akun layanan yang memiliki akses ke API Google Cloud . Jika Anda menggunakan beberapa akun layanan, tambahkan semuanya di sini.
Di kolom Nama atribut, pilih Subjek.
Di kolom Attribute value, masukkan alamat email akun layanan yang diambil dari server metadata, dalam tanda kutip ganda. Contoh,
"svc-acct-compute@example-project-123456."
.Untuk mengetahui informasi tentang cara mengambil alamat email akun layanan dari server metadata, lihat Mengumpulkan detail instance server metadata Google.
Pada dialog Configure your application yang muncul, klik Dismiss.
Mengonfigurasi kunci klien
-
Di SAP GUI, jalankan kode transaksi
/GOOG/SDK_IMG
.Atau, jalankan kode transaksi
SPRO
, lalu klik IMG Referensi SAP. - Klik ABAP SDK for Google Cloud > Basic Settings > Configure Client Key.
- Klik New Entries.
Masukkan nilai untuk kolom berikut:
Kolom Deskripsi Nama Kunci Google Cloud Tentukan nama konfigurasi kunci klien. Nama Akun Layanan Google Cloud Tentukan nama akun layanan, dalam format alamat email, yang dibuat untuk mengakses Google Cloud API pada langkah Membuat akun layanan. Contoh: sap-example-svc-acct@example-project-123456.
.Cakupan Google Cloud Tentukan cakupan akses API, https://www.googleapis.com/auth/cloud-platform
.ID Project Google Cloud Tentukan ID project Google Cloud tempat Anda membuat workload identity pool. Nama perintah Kosongkan kolom ini. Class Otorisasi Tentukan class autentikasi yang sesuai: /GOOG/CL_AUTH_WIF_META_ACCESS
: Menghasilkan token OAuth yang ditandatangani Google./GOOG/CL_AUTH_WIF_META_IDTOKEN
: Menghasilkan token ID yang ditandatangani Google.
Caching Token Flag yang menentukan apakah token akses yang diambil dari Google Cloud disimpan ke cache atau tidak.
Sebaiknya aktifkan penyimpanan token ke dalam cache setelah Anda selesai mengonfigurasi dan menguji koneksi Anda ke Google Cloud.
Detik Pembaruan Token Kosongkan kolom ini. Parameter Otorisasi 1 Tentukan ID workload identity pool. Authorization Parameter 2 Tentukan ID penyedia workload identity. Simpan entri.
Workload Identity Federation dengan IdP eksternal
Anda dapat menggunakan Workload Identity Federation dengan IdP eksternal seperti Amazon Web Services (AWS) atau dengan penyedia identitas (IdP) apa pun yang mendukung OpenID Connect (OIDC), seperti Microsoft Azure atau SAML 2.0.
Untuk autentikasi menggunakan token melalui Workload Identity Federation, langkah-langkah konfigurasi tingkat tinggi adalah sebagai berikut:
- Siapkan IdP eksternal Anda.
- Di Google Cloud, konfigurasi Workload Identity Federation.
- Di Google Cloud, buat akun layanan.
- Di Google Cloud, izinkan beban kerja eksternal untuk meniru identitas akun layanan.
- Di ABAP SDK untuk Google Cloud, implementasikan kode ABAP untuk mengambil token keamanan dari IdP Anda.
- Di ABAP SDK untuk Google Cloud, konfigurasi kunci klien.
Tidak semua Google Cloud produk mendukung Workload Identity Federation. Sebelum menyiapkan autentikasi menggunakan Workload Identity Federation, tinjau daftar produk dan batasan yang didukung. Untuk mengetahui informasi selengkapnya, lihat Workforce identity federation: produk dan batasan yang didukung.
Menyiapkan IdP eksternal Anda
Anda perlu menyiapkan IdP agar beban kerja SAP dapat memperoleh kredensial yang dapat ditukar dengan token keamanan Google OAuth 2.0.
Untuk menyiapkan IdP eksternal, lakukan langkah-langkah berikut bergantung pada IdP Anda:
- Jika Anda menggunakan AWS atau Azure sebagai IdP, ikuti petunjuk untuk menyiapkan IdP eksternal.
- Jika Anda menggunakan IdP lain, ikuti petunjuk untuk menyiapkan IdP eksternal.
Mengonfigurasi Workload Identity Federation
Di Google Cloud, konfigurasikan workload identity pool dan penyedia.
Anda mengonfigurasi kumpulan identitas, yang merupakan entity yang memungkinkan Anda mengelola identitas eksternal. Anda juga mengonfigurasi penyedia workload identity pool, yang merupakan entitas yang menjelaskan hubungan antara Google Cloud dan IdP Anda.
Untuk mengonfigurasi Workload Identity Federation, lakukan langkah-langkah berikut, bergantung pada IdP eksternal Anda:
- Jika Anda menggunakan AWS atau Azure sebagai IdP, ikuti petunjuk untuk membuat kumpulan identitas dan penyedia workload.
- Jika Anda menggunakan IdP lain, ikuti petunjuk untuk membuat workload identity pool dan penyedia.
Perhatikan hal berikut:
- Nomor project: nomor project project Google Cloud tempat Anda membuat workload identity pool.
- ID Pool: ID unik yang mengidentifikasi workload identity pool.
- ID Penyedia: ID yang mengidentifikasi penyedia workload identity pool.
Anda memerlukannya untuk konfigurasi kunci klien ABAP SDK.
Membuat akun layanan
Di konsol Google Cloud, buat akun layanan IAM khusus untuk mengakses Google Cloud API. Akun layanan ini harus merupakan akun utama dalam project Google Cloud yang berisi APIGoogle Cloud yang akan Anda gunakan dengan menggunakan SDK.
Di konsol Google Cloud, aktifkan IAM Service Account Credentials API, Security Token Service API, dan API yang didukung lainnya yang ingin Anda akses menggunakan SDK.
Untuk mengetahui informasi tentang cara mengaktifkan Google Cloud API, lihat Mengaktifkan API.
Buat akun layanan yang merepresentasikan workload.
Berikan peran IAM yang diperlukan kepada akun layanan untuk mengakses fungsi API. Untuk memahami persyaratan peran untuk Google Cloud API, lihat dokumentasi API individual dan ikuti prinsip hak istimewa terendah. Untuk mengetahui informasi selengkapnya tentang peran bawaan khusus API, lihat Menemukan peran IAM untuk Google Cloud API.
Mengizinkan workload eksternal untuk meniru identitas akun layanan
Agar workload eksternal dapat meniru identitas akun layanan, lakukan langkah-langkah berikut, bergantung pada IdP eksternal Anda:
- Jika Anda menggunakan AWS atau Azure sebagai IdP, ikuti petunjuk untuk mengizinkan beban kerja eksternal meniru identitas akun layanan.
- Jika Anda menggunakan IdP lain, ikuti petunjuk untuk mengizinkan workload eksternal meniru identitas akun layanan.
Menerapkan kode ABAP untuk mengambil token keamanan dari IdP Anda
ABAP SDK untuk Google Cloud menyediakan class abstrak /GOOG/CL_AUTH_WIF_BASE
,
yang memiliki logika untuk mengambil token keamanan OAuth 2.0 dari
Layanan Token Keamanan dan token akses OAuth 2.0 dari
IAM Service Account Credentials API. Sebagai developer, Anda perlu
membuat class turunan di namespace yang mewarisi
dari class abstrak /GOOG/CL_AUTH_WIF_BASE
.
Untuk memanggil fungsi Cloud Run dari ABAP SDK untuk Google Cloud menggunakan Workload Identity Federation, SDK menyediakan class abstrak lain /GOOG/CL_AUTH_WIF_ID_TOKEN
. Jika menyiapkan autentikasi menggunakan Workload Identity Federation, Anda perlu membuat satu class turunan lagi di namespace yang diwarisi dari class abstrak /GOOG/CL_AUTH_WIF_ID_TOKEN
. Anda menentukan class turunan ini di
kolom Authorization Class saat mengonfigurasi kunci klien untuk memanggil fungsi Cloud Run.
Pastikan untuk menerapkan
metode GET_EXT_IDP_TOKEN
di class turunan dan menulis logika untuk mendapatkan
token keamanan dari IdP Anda. Isi kolom berikut:
CV_TOKEN
: token yang diambil dari IdP Anda dalam formatstring
.CV_TOKEN_TYPE
: jenis token keamanan yang diambil dari IdP Anda. Jenis token yang didukung adalah:urn:ietf:params:oauth:token-type:jwt
urn:ietf:params:oauth:token-type:id_token
urn:ietf:params:aws:token-type:aws4_request
urn:ietf:params:oauth:token-type:access_token
urn:ietf:params:oauth:token-type:saml2
Nilai yang diisi di CV_TOKEN
dan CV_TOKEN_TYPE
kemudian digunakan oleh metode
class abstrak /GOOG/CL_AUTH_WIF_BASE
untuk menukar dan mengambil
token OAuth 2.0 akhir, yang digunakan dalam panggilan API.
Contoh berikut menunjukkan contoh implementasi metode
GET_EXT_IDP_TOKEN
untuk
penyedia Cloud lainnya seperti AWS dan Azure.
AWS
Azure
Mengonfigurasi kunci klien
-
Di SAP GUI, jalankan kode transaksi
/GOOG/SDK_IMG
.Atau, jalankan kode transaksi
SPRO
, lalu klik IMG Referensi SAP. - Klik ABAP SDK for Google Cloud > Basic Settings > Configure Client Key.
- Klik New Entries.
Masukkan nilai untuk kolom berikut:
Kolom Deskripsi Nama Kunci Google Cloud Tentukan nama konfigurasi kunci klien. Nama Akun Layanan Google Cloud Tentukan nama akun layanan, dalam format alamat email, yang dibuat untuk mengakses Google Cloud API pada langkah Membuat akun layanan. Contoh: sap-example-svc-acct@example-project-123456.
.Cakupan Google Cloud Tentukan cakupan akses API, https://www.googleapis.com/auth/cloud-platform
.ID Project Google Cloud Tentukan ID project Google Cloud tempat Anda membuat workload identity pool. Nama perintah Kosongkan kolom ini. Class Otorisasi Tentukan class turunan, yang berisi implementasi class /GOOG/CL_AUTH_WIF_BASE
. Untuk informasi selengkapnya, lihat Menerapkan kode ABAP untuk mengambil token keamanan dari IdP Anda.Caching Token Flag yang menentukan apakah token akses yang diambil dari Google Cloud disimpan ke cache atau tidak.
Sebaiknya aktifkan penyimpanan token ke dalam cache setelah Anda selesai mengonfigurasi dan menguji koneksi Anda ke Google Cloud.
Detik Pembaruan Token Kosongkan kolom ini. Parameter Otorisasi 1 Tentukan ID workload identity pool. Authorization Parameter 2 Tentukan ID penyedia workload identity. Simpan entri.
Mendapatkan dukungan
Jika Anda memerlukan bantuan untuk menyelesaikan masalah terkait ABAP SDK untuk Google Cloud, lakukan langkah-langkah berikut:
Lihat panduan pemecahan masalah ABAP SDK untuk Google Cloud.
Ajukan pertanyaan dan diskusikan ABAP SDK untuk Google Cloud dengan komunitas di Cloud Forum.
Kumpulkan semua informasi diagnostik yang tersedia dan hubungi Cloud Customer Care. Untuk mengetahui informasi tentang cara menghubungi Layanan Pelanggan, lihat Mendapatkan dukungan untuk SAP di Google Cloud.