Pelajari cara mengautentikasi layanan penyaluran Knative Anda dengan Workload Identity Federation untuk GKE untuk mengakses Google Cloud API seperti Compute API, Storage, dan API Database, atau API Machine Learning.
Untuk mengautentikasi layanan penayangan Knative, Anda harus:
- Mengaktifkan Workload Identity Federation untuk GKE di cluster Anda
- Konfigurasikan izin
- Ikatkan Akun Layanan Kubernetes (KSA) menjadi Akun Layanan Google (GSA)
Setelah mengikuti langkah-langkah ini, Anda dapat men-deploy layanan penyaluran Knative baru yang menggunakan identitas yang Anda buat.
Mengaktifkan Workload Identity Federation untuk GKE pada cluster Anda
Untuk menyiapkan Workload Identity Federation untuk GKE dengan inferensi Knative, Anda dapat menyiapkan Fleet Workload Identity Federation daripada menggunakan file JSON Akun Layanan Google Cloud.
Konfigurasi izin untuk mengaktifkan semua metrik
Untuk mengaktifkan metrik, seperti melaporkan jumlah permintaan atau meminta latensi ke
Kemampuan Observasi Google Cloud, Anda harus memberikan izin tulis untuk Cloud Monitoring. Sebagai
Anda dapat memberikan
Peran Penulis Metrik Monitoring
(roles/monitoring.metricWriter
) ke Akun Layanan Google yang
yang terkait dengan penyaluran Knative karena mencakup semua
izin untuk menulis data pemantauan. Lihat
Menggunakan akun layanan untuk mengetahui informasi selengkapnya
informasi tentang cara membuat Akun Layanan Google.
Mengikat akun layanan
Anda perlu menyiapkan hubungan untuk Akun Layanan Kubernetes (KSA) agar dapat bertindak sebagai akun layanan Google (GSA). Beban kerja apa pun yang berjalan sebagai KSA yang Anda mengikat, otomatis melakukan autentikasi sebagai GSA saat mengakses Google Cloud API. KSA yang Anda ikat harus ada di dalam cluster dan namespace Layanan inferensi Knative tempat Anda ingin menggunakan Workload Identity Federation untuk GKE. GSA dapat berasal dari project Google Cloud yang berbeda dari Project Google Cloud tempat cluster berada.
Jika GSA tidak ada, buat GSA; sebaliknya, dan langsung ke langkah berikutnya. Anda dapat membuat GSA untuk digunakan dengan penayangan Knative dalam project Google Cloud di organisasi Anda, lalu menggunakannya dari dalam Project Google Cloud tempat layanan penyaluran Knative Anda berjalan.
Untuk membuat GSA baru, jalankan perintah berikut:
gcloud iam service-accounts create GSA_NAME
Ganti GSA_NAME dengan nama akun layanan Google yang baru.
Untuk informasi selengkapnya tentang cara menggunakan akun layanan Google dengan Layanan penyaluran Knative, lihat Menggunakan akun layanan.
Pastikan GSA Anda memiliki Peran IAM yang yang dibutuhkan. Anda dapat memberikan peran tambahan menggunakan perintah berikut:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role "ROLE_NAME"
Ganti:
- PROJECT_ID: dengan ID project Google Cloud tempat akun Google Service Account tinggal.
- GSA_NAME dengan nama Akun Layanan Google Anda.
- ROLE_NAME dengan peran IAM yang akan ditetapkan ke
GSA, seperti
roles/monitoring.metricWriter
.
Jika Akun Layanan Kubernetes tidak ada, buat akun di layanan yang sama Namespace Kubernetes sebagai layanan penayangan Knative Anda; sebaliknya, lewati ke langkah berikutnya:
kubectl create serviceaccount --namespace K8S_NAMESPACE KSA_NAME
Lakukan binding akun layanan Google dan Kubernetes untuk membuat identitas, lalu deploy ke cluster Anda:
Izinkan KSA meniru identitas GSA dengan membuat Kebijakan IAM pengikatan di antara keduanya.
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[K8S_NAMESPACE/KSA_NAME]" \ GSA_NAME@GSA_PROJECT_ID.iam.gserviceaccount.com
Ganti:
- PROJECT_ID dengan ID project Google Cloud untuk cluster tempat Akun Layanan Kubernetes dan penayangan Knative Anda tetap ada.
- K8S_NAMESPACE/KSA_NAME dengan namespace dan nama Akun Layanan Kubernetes Anda.
- GSA_NAME@GSA_PROJECT_ID dengan nama Akun Layanan Google dan ID project Google Cloud. Anda dapat menggunakan Akun Layanan Google di organisasi. Untuk melihat Akun Layanan Google Anda, lihat Mencantumkan akun layanan.
Tambahkan
iam.gke.io/gcp-service-account=GSA_NAME@GSA_PROJECT_ID
ke KSA, menggunakan alamat email GSA.kubectl annotate serviceaccount \ --namespace K8S_NAMESPACE KSA_NAME \ iam.gke.io/gcp-service-account=GSA_NAME@GSA_PROJECT_ID.iam.gserviceaccount.com
Ganti:
- K8S_NAMESPACE/KSA_NAME dengan namespace dan nama Akun Layanan Kubernetes tempat Anda membuat binding.
- GSA_NAME@GSA_PROJECT_ID dengan nama Akun Layanan Google dan ID project Google Cloud yang Anda membuat binding.
Men-deploy layanan baru untuk menggunakan Workload Identity Federation untuk GKE
Men-deploy layanan penayangan Knative baru yang menggunakan Workload Identity Federation for GKE dibuat.
Konsol
Buka penyaluran Knative di Konsol Google Cloud:
Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit & Deploy Revisi Baru.
Di bagian Setelan lanjutan, klik Penampung.
Klik menu dropdown akun Layanan dan pilih akun layanan yang diinginkan.
Klik Berikutnya untuk melanjutkan ke bagian berikutnya.
Di bagian Konfigurasi cara layanan ini dipicu, memilih konektivitas yang ingin Anda gunakan untuk memanggil layanan.
Klik Create untuk men-deploy image ke inferensi Knative, lalu tunggu hingga deployment selesai.
Command line
Untuk layanan yang ada, tetapkan Akun Layanan Kubernetes dengan menjalankan
gcloud run services update
dengan parameter berikut:gcloud run services update SERVICE --service-account KSA_NAME
Ganti:
- SERVICE dengan nama layanan penayangan Knative Anda.
- KSA_NAME dengan Akun Layanan Kubernetes yang Anda gunakan untuk menciptakan workload identity.
Untuk layanan baru, tetapkan Akun Layanan Kubernetes dengan menjalankan perintah
gcloud run deploy
dengan--service-account
:gcloud run deploy --image IMAGE_URL --service-account KSA_NAME
Ganti:
- IMAGE_URL dengan referensi ke image container,
misalnya,
gcr.io/cloudrun/hello
. - KSA_NAME dengan Akun Layanan Kubernetes yang Anda gunakan untuk menciptakan workload identity.
- IMAGE_URL dengan referensi ke image container,
misalnya,
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke
YAML dengan perintah gcloud run services describe
menggunakan
Tanda --format=export
.
Anda kemudian dapat memodifikasi
file YAML itu dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
Download konfigurasi layanan Anda menjadi file bernama
service.yaml
pada ruang kerja lokal:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama Anda Layanan penyaluran Knative.
Di file lokal Anda, perbarui atribut
serviceAccountName:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: serviceAccountName: KSA_NAME
Ganti
- SERVICE dengan nama layanan penayangan Knative Anda.
- KSA_NAME dengan Akun Layanan Kubernetes yang Anda yang digunakan untuk membuat workload identity.
Deploy konfigurasi ke layanan penyaluran Knative Anda dengan menjalankan perintah berikut:
gcloud run services replace service.yaml
Memigrasikan layanan yang ada agar menggunakan Workload Identity Federation untuk GKE
Jika Anda mengaktifkan Workload Identity Federation untuk GKE pada cluster yang ada, setiap layanan di cluster yang ingin Anda gunakan Workload Identity Federation untuk GKE harus dimigrasikan. Pelajari cara memigrasikan data yang ada Google.
Langkah berikutnya
Pelajari cara mengelola akses ke layanan IT perusahaan mereka.