Halaman ini menjelaskan cara mengautentikasi Config Sync ke image OCI atau repositori Helm Anda. Config Sync memerlukan akses hanya baca ke sumber tepercaya Anda agar dapat membaca konfigurasi, menerapkannya ke cluster, dan menyinkronkannya.
Memilih metode autentikasi
Metode autentikasi yang Anda gunakan bergantung pada apa yang didukung untuk jenis sumber Anda.
Tabel berikut merangkum metode autentikasi yang dapat Anda gunakan dengan Config Sync:
Metode | Sumber yang didukung | Deskripsi | Batasan |
---|---|---|---|
Tidak ada autentikasi | Git, OCI, Helm | Tidak diperlukan penyiapan tambahan. | Hanya berfungsi jika sumber tepercaya Anda bersifat publik. |
Pasangan kunci SSH | Git | Didukung oleh sebagian besar penyedia Git. | Memerlukan pengelolaan kunci. Tidak didukung untuk OCI atau Helm. |
token | Git, Helm | Didukung oleh sebagian besar penyedia Git. Alternatif yang baik jika organisasi Anda tidak mengizinkan penggunaan kunci SSH. Mendukung nama pengguna dan sandi untuk Helm. | Memerlukan pengelolaan token. Masa berlaku token dapat berakhir. Tidak didukung untuk OCI. |
Akun layanan Kubernetes | OCI, Helm | Menggunakan IAM untuk memberikan akses Artifact Registry langsung ke akun layanan Kubernetes. Memerlukan Workload Identity Federation for GKE diaktifkan di cluster Anda. | Tidak didukung untuk Git. |
Akun layanan Google | Git | Menggunakan IAM, yang menghindari penyimpanan kredensial di Secret Kubernetes. Direkomendasikan untuk Secure Source Manager dan Cloud Source Repositories. Memerlukan Workload Identity Federation for GKE diaktifkan di cluster Anda. | Memerlukan konfigurasi sebelum dan setelah menginstal Config Sync di cluster Anda. Tidak didukung untuk repositori yang dihosting di luar Secure Source Manager atau Cloud Source Repositories. |
Aplikasi GitHub | Git | Integrasi langsung dengan GitHub. Memungkinkan izin terperinci. | Hanya didukung untuk repositori yang dihosting di GitHub. Hanya didukung di Config Sync versi 1.19.1 dan yang lebih baru. |
Config Sync juga mendukung metode autentikasi berikut; namun, metode ini hanya direkomendasikan jika Anda tidak dapat menggunakan salah satu opsi yang tercantum dalam tabel sebelumnya:
- cookiefile: mungkin tidak didukung untuk semua penyedia Git. Tidak didukung untuk OCI atau Helm.
- Akun layanan default Compute Engine (
gcenode
): tidak direkomendasikan karena metode ini hanya berfungsi jika Workload Identity Federation for GKE dinonaktifkan. Didukung untuk Git, OCI, dan Helm. - Akun layanan Google untuk Helm dan OCI: didukung, tetapi tidak direkomendasikan karena metode akun layanan Kubernetes memerlukan lebih sedikit konfigurasi.
Sebelum memulai
Sebelum Anda memberikan akses hanya baca Config Sync ke sumber tepercaya Anda, selesaikan tugas berikut:
Siapkan, atau miliki akses ke, image OCI atau repositori Helm tempat Anda menyimpan file konfigurasi yang ingin disinkronkan oleh Config Sync. Untuk informasi selengkapnya, lihat referensi berikut:
- Menambahkan konfigurasi ke sumber tepercaya: informasi konseptual tentang konfigurasi.
- Praktik terbaik GitOps: tips dan praktik terbaik umum untuk mengatur dan mengelola repositori Anda.
- Menggunakan repo tidak terstruktur: rekomendasi untuk menggunakan dan mengatur repositori tidak terstruktur.
Buat, atau miliki akses ke, cluster GKE. Sebelum membuat cluster, tinjau persyaratan dan rekomendasi konfigurasi cluster untuk Config Sync.
Memberikan akses ke image OCI
Bagian ini menjelaskan cara memberikan akses hanya baca Config Sync ke image OCI dengan menggunakan metode autentikasi yang didukung.
Anda harus menyimpan image OCI di Artifact Registry untuk melakukan autentikasi ke Config Sync.
Menggunakan akun layanan Kubernetes
Untuk melakukan autentikasi dengan akun layanan Kubernetes, cluster Anda harus mengaktifkan Workload Identity Federation untuk GKE atau Workload Identity Federation fleet untuk GKE.
Untuk memberikan akses hanya baca Config Sync ke image OCI Anda menggunakan akun layanan Kubernetes, selesaikan langkah-langkah berikut:
-
Untuk mendapatkan izin yang diperlukan untuk membuat binding kebijakan, minta administrator untuk memberi Anda peran IAM Admin Akun Layanan (
roles/iam.serviceAccountAdmin
) pada akun layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran kustom atau peran yang telah ditentukan lainnya.
Berikan peran IAM Pembaca Artifact Registry (
roles/artifactregistry.reader
) ke akun layanan Kubernetes yang mencakup kumpulan Workload Identity Federation untuk GKE:Berikan izin di seluruh project jika izin yang sama berlaku untuk semua repositori dalam project.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
Berikan izin khusus repositori jika Anda ingin akun layanan memiliki tingkat akses yang berbeda untuk setiap repositori di project Anda.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Ganti kode berikut:
PROJECT_ID
: project ID Anda.FLEET_HOST_PROJECT_ID
: jika Anda menggunakan Workload Identity Federation for GKE, nilai ini sama dengan project ID. Jika Anda menggunakan fleet Workload Identity Federation untuk GKE, nilai ini adalah project ID fleet tempat cluster Anda terdaftar.REPOSITORY
: ID gambar.LOCATION
: lokasi regional atau multi-regional repositori.
Saat Anda menginstal Config Sync, gunakan akun layanan Kubernetes (k8sserviceaccount
) sebagai jenis autentikasi.
Menggunakan akun layanan default Compute Engine
Sebagai alternatif untuk akun layanan Google, jika Anda belum mengaktifkan Workload Identity Federation untuk GKE, Anda dapat menggunakan akun layanan Compute Engine untuk melakukan autentikasi.
Untuk menggunakan akun layanan default Compute Engine guna memberikan akses hanya baca Config Sync ke repositori Anda, berikan izin baca ke akun layanan Compute Engine di Artifact Registry:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:PROJECT_NUMBER-compute@ \
--role=roles/artifactregistry.reader
Ganti kode berikut:
PROJECT_ID
: project ID AndaPROJECT_NUMBER
: nomor project Anda.
Saat Anda menginstal Config Sync,
gunakan akun layanan Compute Engine (gcenode
) sebagai jenis autentikasi.
Memberikan akses ke repositori Helm
Bagian ini menjelaskan cara memberikan akses hanya baca Config Sync ke diagram Helm yang disimpan di repositori.
Menggunakan token
Untuk menggunakan token guna memberikan akses hanya baca Config Sync ke repositori Helm Anda, buat Secret yang menggunakan nama pengguna dan sandi repositori Helm Anda:
kubectl create secret generic SECRET_NAME \
--namespace=config-management-system \
--from-literal=username=USERNAME \
--from-literal=password=PASSWORD
Ganti kode berikut:
SECRET_NAME
: nama untuk Secret Anda.USERNAME
: nama pengguna repositori Helm Anda.PASSWORD
: sandi repositori Helm Anda.
Saat Anda menginstal Config Sync, gunakan token (token
) sebagai jenis autentikasi.
Anda juga harus menentukan Nama rahasia di kolom spec.helm.secretRef.name
.
Menggunakan akun layanan Kubernetes
Untuk mengautentikasi menggunakan akun layanan Kubernetes, Anda harus memenuhi persyaratan berikut:
- Repositori Anda ada di Artifact Registry.
- Cluster Anda telah mengaktifkan Workload Identity Federation untuk GKE atau Workload Identity Federation untuk GKE berbasis fleet.
Untuk menggunakan akun layanan Kubernetes guna memberikan akses hanya baca Config Sync ke repositori Helm Anda, selesaikan langkah-langkah berikut:
-
Untuk mendapatkan izin yang diperlukan untuk membuat binding kebijakan, minta administrator untuk memberi Anda peran IAM Admin Akun Layanan (
roles/iam.serviceAccountAdmin
) pada akun layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran kustom atau peran yang telah ditentukan lainnya.
Untuk menggunakan akun layanan Kubernetes guna memberikan akses hanya baca Config Sync ke repositori Helm Anda, berikan peran IAM Pembaca Artifact Registry (
roles/artifactregistry.reader
) ke akun layanan Kubernetes yang mencakup kumpulan Workload Identity Federation untuk GKE:Berikan izin di seluruh project jika izin yang sama berlaku untuk semua repositori dalam project.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
Berikan izin khusus repositori jika Anda ingin akun layanan memiliki tingkat akses yang berbeda untuk setiap repositori di project Anda.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Ganti kode berikut:
PROJECT_ID
: project ID Anda.FLEET_HOST_PROJECT_ID
: jika Anda menggunakan Workload Identity Federation for GKE, nilai ini sama dengan project ID. Jika Anda menggunakan fleet Workload Identity Federation untuk GKE, nilai ini adalah project ID fleet tempat cluster Anda terdaftar.REPOSITORY
: ID gambar.LOCATION
: lokasi regional atau multi-regional repositori.
Saat Anda menginstal Config Sync, gunakan akun layanan Kubernetes (k8sserviceaccount
) sebagai jenis autentikasi.
Menggunakan akun layanan default Compute Engine
Sebagai alternatif untuk akun layanan Google, jika Anda belum mengaktifkan Workload Identity Federation untuk GKE, Anda dapat menggunakan akun layanan Compute Engine untuk melakukan autentikasi.
Untuk menggunakan akun layanan default Compute Engine guna memberikan akses hanya baca Config Sync ke repositori Anda, berikan izin baca ke akun layanan Compute Engine di Artifact Registry:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:PROJECT_NUMBER-compute@ \
--role=roles/artifactregistry.reader
Ganti kode berikut:
PROJECT_ID
: project ID AndaPROJECT_NUMBER
: nomor project Anda.
Saat Anda menginstal Config Sync,
gunakan akun layanan Compute Engine (gcenode
) sebagai jenis autentikasi.