Dokumen ini menjelaskan cara melakukan autentikasi ke Workload Manager secara terprogram. Cara Anda melakukan autentikasi ke Workload Manager bergantung pada antarmuka yang Anda gunakan untuk mengakses API dan lingkungan tempat kode Anda dijalankan.
Untuk mengetahui informasi selengkapnya tentang autentikasi Google Cloud , lihat Metode autentikasi.
Akses API
Workload Manager mendukung akses terprogram. Anda dapat mengakses API dengan cara berikut:
REST
Anda dapat melakukan autentikasi ke Workload Manager API menggunakan kredensial gcloud CLI atau menggunakan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya tentang autentikasi permintaan REST, baca bagian Melakukan autentikasi untuk menggunakan REST. Untuk mengetahui informasi tentang jenis kredensial, baca bagian kredensial gcloud CLI dan kredensial ADC.
Menyiapkan autentikasi untuk Workload Manager
Cara menyiapkan autentikasi bergantung pada lingkungan tempat kode Anda dijalankan.
Opsi penyiapan autentikasi berikut adalah yang paling umum digunakan. Untuk mengetahui opsi lainnya dan informasi tentang autentikasi, lihat Metode autentikasi.
Untuk lingkungan pengembangan lokal
Anda dapat menyiapkan kredensial untuk lingkungan pengembangan lokal dengan cara berikut:
- Kredensial pengguna untuk library klien atau alat pihak ketiga
- Kredensial pengguna untuk permintaan REST dari command line
- Peniruan akun layanan
Library klien atau alat pihak ketiga
Siapkan Kredensial Default Aplikasi (ADC) di lingkungan lokal Anda:
-
Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Layar login akan muncul. Setelah Anda login, kredensial Anda akan disimpan dalam file kredensial lokal yang digunakan oleh ADC.
Untuk informasi selengkapnya tentang cara menggunakan ADC di lingkungan lokal, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Permintaan REST dari command line
Saat membuat permintaan REST dari command line, Anda dapat menggunakan kredensial gcloud CLI dengan menyertakan gcloud auth print-access-token sebagai bagian dari perintah yang mengirimkan permintaan itu.
Contoh berikut mencantumkan akun layanan untuk project yang ditentukan. Anda dapat menggunakan pola yang sama untuk setiap permintaan REST.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Google Cloud Anda.
Untuk mengirim permintaan Anda, luaskan salah satu opsi berikut:
Untuk mengetahui informasi selengkapnya tentang melakukan autentikasi menggunakan REST dan gRPC, lihat Melakukan autentikasi untuk menggunakan REST. Untuk mengetahui informasi tentang perbedaan antara kredensial ADC lokal dan kredensial gcloud CLI, lihat Konfigurasi autentikasi gcloud CLI dan konfigurasi ADC.
Peniruan akun layanan
Pada umumnya, Anda dapat menggunakan kredensial pengguna untuk melakukan autentikasi dari lingkungan pengembangan lokal. Jika hal tersebut tidak memungkinkan, atau jika Anda perlu menguji izin yang ditetapkan ke akun layanan, Anda dapat menggunakan peniruan akun layanan. Anda harus memiliki izin iam.serviceAccounts.getAccessToken, yang disertakan dalam peran IAM Service Account Token Creator (roles/iam.serviceAccountTokenCreator).
Anda dapat menyiapkan gcloud CLI agar menggunakan peniruan akun layanan dengan perintah gcloud config set:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Untuk bahasa pemrograman tertentu, Anda dapat menggunakan peniruan akun layanan guna membuat file ADC lokal yang akan digunakan library klien. Pendekatan ini hanya didukung untuk library klien Go, Java, Node.js, dan Python—tidak didukung untuk bahasa pemrograman lain.
Untuk menyiapkan file ADC lokal dengan peniruan akun layanan, gunakan flag --impersonate-service-account dengan perintah gcloud auth application-default login:
gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL
Untuk mengetahui informasi selengkapnya tentang peniruan akun layanan, lihat Menggunakan peniruan akun layanan.
Di Google Cloud
Untuk mengautentikasi workload yang berjalan di Google Cloud, gunakan kredensial akun layanan yang dilampirkan ke resource komputasi tempat kode Anda berjalan, seperti instance virtual machine (VM) Compute Engine. Pendekatan ini merupakan metode autentikasi yang direkomendasikan untuk kode yang berjalan di resource komputasi Google Cloud .
Untuk sebagian besar layanan, Anda harus melampirkan akun layanan saat membuat resource yang akan menjalankan kode Anda. Anda tidak dapat menambahkan atau mengganti akun layanan tersebut belakangan. Satu-satunya pengecualian adalah Compute Engine, yang memungkinkan Anda melampirkan akun layanan ke instance VM kapan saja.
Gunakan gcloud CLI untuk membuat akun layanan dan melampirkannya ke resource Anda:
-
Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Menyiapkan autentikasi:
-
Pastikan Anda memiliki peran IAM Create Service Accounts
(
roles/iam.serviceAccountCreator) dan peran IAM Project IAM Admin (roles/resourcemanager.projectIamAdmin). Pelajari cara memberikan peran. -
Buat akun layanan:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ganti
SERVICE_ACCOUNT_NAMEdengan nama untuk akun layanan. -
Untuk memberikan akses ke project dan resource Anda, berikan peran ke akun layanan:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Ganti kode berikut:
SERVICE_ACCOUNT_NAME: nama dari akun layanan.PROJECT_ID: project ID dimana Anda membuat akun layananROLE: peran yang akan diberikan
- Untuk memberikan peran lain ke akun layanan, jalankan perintah seperti yang Anda lakukan di langkah sebelumnya.
-
Berikan peran yang diperlukan ke akun utama yang akan melampirkan akun layanan ke resource lain.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Ganti kode berikut:
SERVICE_ACCOUNT_NAME: nama dari akun layanan.PROJECT_ID: project ID dimana Anda membuat akun layananUSER_EMAIL: alamat email untuk Akun Google
-
Pastikan Anda memiliki peran IAM Create Service Accounts
(
-
Buat resource yang akan menjalankan kode Anda, lalu lampirkan akun layanan ke resource tersebut. Misalnya, jika Anda menggunakan Compute Engine:
Buat instance Compute Engine. Konfigurasikan instance sebagai berikut:-
Ganti
INSTANCE_NAMEdengan nama instance pilihan Anda. -
Tetapkan flag
--zoneke zona tempat Anda ingin membuat instance. -
Tetapkan flag
--service-accountke alamat email untuk akun layanan yang Anda buat.
gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL
-
Ganti
Untuk mengetahui informasi selengkapnya tentang cara melakukan autentikasi ke Google API, lihat Metode autentikasi.
Lingkungan lokal atau di penyedia cloud lain
Metode yang direkomendasikan untuk menyiapkan autentikasi dari luar Google Cloud adalah menggunakan workload identity federation. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan lokal atau penyedia cloud lainnya di dokumentasi autentikasi.
Kontrol akses untuk Workload Manager
Setelah melakukan autentikasi ke Workload Manager, Anda harus diberi otorisasi untuk mengakses resource Google Cloud . Workload Manager menggunakan Identity and Access Management (IAM) untuk otorisasi.
Untuk mengetahui informasi selengkapnya tentang peran Workload Manager, lihat Kontrol akses dengan IAM. Untuk mengetahui informasi selengkapnya tentang IAM dan otorisasi, lihat Ringkasan IAM.
Langkah berikutnya
- Pelajari Google Cloud metode autentikasi.
- Lihat daftar kasus penggunaan autentikasi.