Melakukan autentikasi ke GKE di Azure dengan identitas eksternal
Gabungan identitas tenaga kerja memberikan akses identitas non-Google ke layanan Google Cloud. Dalam konteks GKE di Azure, hal ini berarti Anda dapat menggunakan identitas eksternal yang sudah ada untuk membuat atau mengakses cluster GKE tanpa mengandalkan kredensial Google.
Manfaat menggunakan penggabungan identitas tenaga kerja adalah sebagai berikut:
- Dengan demikian, Anda tidak perlu lagi memiliki akun duplikat di berbagai platform atau penyedia.
- Anda menetapkan izin hanya sekali, tanpa memerlukan konfigurasi di beberapa platform.
- Anda menyederhanakan akses pengguna, karena diperlukan login dan sandi yang lebih sedikit.
Sebelum memulai
Sebelum dapat mengizinkan pengguna atau grup eksternal untuk mengakses cluster GKE, Anda perlu melakukan langkah-langkah berikut:
Agar pengguna atau grup eksternal dapat menggunakan GKE di Azure API, konfigurasikan penggabungan identitas tenaga kerja.:
- Untuk pengguna Azure, lihat Mengonfigurasi penggabungan identitas tenaga kerja dengan Azure AD.
- Untuk pengguna Okta, lihat Mengonfigurasi penggabungan identitas tenaga kerja dengan Okta.
- Untuk pengguna dari platform lain, lihat Mengonfigurasi penggabungan identitas tenaga kerja.
Tetapkan peran
gkemulticloud.viewer
kepada pengguna eksternal atau grup agar mereka dapat mengakses cluster. Tetapkan perancontainer.clusterViewer
untuk melihat cluster di Konsol Google Cloud.Perhatikan bahwa peran adalah kumpulan izin. Saat menetapkan peran pada entity (akun pengguna, grup, atau layanan), Anda memberi entitas tersebut semua izin yang terdapat pada peran tersebut.
Pengguna
Untuk pengguna individu, Anda perlu menetapkan peran
gkemulticloud.viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud Anda.WORKFORCE_POOL_ID
: ID yang secara unik mengidentifikasi kumpulan identitas tenaga kerja Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.SUBJECT_VALUE
: ID yang secara unik mengidentifikasi pengguna eksternal. Misalnya, ID dapat berupa alamat email sepertialex@cymbalgroup.com
.
Grup
Untuk grup, Anda perlu menetapkan peran
gkemulticloud.viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud Anda.WORKFORCE_POOL_ID
: ID yang secara unik mengidentifikasi kumpulan identitas tenaga kerja Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.GROUP_ID
: ID yang secara unik mengidentifikasi grup eksternal.
Opsional: Tetapkan peran Identity and Access Management (IAM) yang sesuai kepada pengguna atau grup eksternal Anda. Langkah ini hanya diperlukan jika Anda ingin memberi pengguna atau grup kemampuan untuk membuat atau mengupdate cluster; langkah ini tidak diperlukan hanya untuk mengakses cluster.
Pengguna
Untuk pengguna individu, Anda perlu menetapkan peran
gkemulticloud.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud Anda.WORKFORCE_POOL_ID
: ID yang secara unik mengidentifikasi kumpulan identitas tenaga kerja Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.SUBJECT_VALUE
: ID yang secara unik mengidentifikasi pengguna eksternal. Misalnya, ID dapat berupa alamat email sepertialex@cymbalgroup.com
.
Grup
Untuk grup, Anda perlu menetapkan peran
gkemulticloud.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud Anda.WORKFORCE_POOL_ID
: ID yang secara unik mengidentifikasi kumpulan identitas tenaga kerja Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.GROUP_ID
: ID yang secara unik mengidentifikasi grup eksternal.
Untuk mengetahui informasi selengkapnya tentang peran dan izin API yang diperlukan untuk GKE di Azure, lihat Peran dan izin API.
Memberikan akses eksternal ke cluster GKE
Ada dua metode untuk menyiapkan penggabungan identitas tenaga kerja sehingga pengguna atau grup eksternal dapat mengakses cluster GKE Anda.
Metode #1 mengharuskan Anda menentukan file RBAC dan menerapkannya ke cluster. Metode ini menawarkan kontrol yang telah disesuaikan atas izin, seperti mengizinkan pengguna akses hanya baca ke resource tanpa memberi mereka akses yang lebih luas.
Metode #2 mengharuskan Anda menentukan akses untuk identitas eksternal saat membuat atau memperbarui cluster. Metode ini memberikan hak istimewa administratif penuh kepada pengguna atau grup yang ditentukan.
Pilih metode yang paling sesuai dengan tingkat kontrol akses yang Anda inginkan: metode #1 untuk izin yang lebih terperinci, atau metode #2 untuk memberikan hak admin cluster penuh.
Metode #1: menggunakan file RBAC
Metode pertama untuk memberikan akses eksternal ke cluster GKE melibatkan penggunaan file RBAC. Ikuti langkah-langkah berikut:
Tentukan file YAML RBAC yang menyertakan subjek (pengguna atau grup) dan izin yang ingin Anda berikan kepada subjek dalam cluster GKE. Berikut adalah contoh konfigurasi YAML RBAC untuk pengguna individual dan untuk grup:
Pengguna
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-user subjects: - kind: User name: principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
Ganti kode berikut:
WORKFORCE_POOL_ID
: ID yang secara unik mengidentifikasi kumpulan identitas tenaga kerja Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.SUBJECT_VALUE
: ID yang secara unik mengidentifikasi pengguna eksternal. Misalnya, ID dapat berupa alamat email sepertialex@cymbalgroup.com
.
Grup
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-group subjects: - kind: Group name: principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
Ganti kode berikut:
WORKFORCE_POOL_ID
: ID yang secara unik mengidentifikasi kumpulan identitas tenaga kerja Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.GROUP_ID
: ID yang secara unik mengidentifikasi grup eksternal.
Identifikasi cluster GKE yang ingin Anda konfigurasi dan tetapkan sebagai konteks aktif menggunakan perintah berikut:
kubectl config use-context CLUSTER_CONTEXT
Ganti
CLUSTER_CONTEXT
dengan nama konteks yang sesuai untuk cluster Anda.Setelah cluster GKE yang diinginkan ditetapkan sebagai konteks aktif, terapkan konfigurasi RBAC ke cluster menggunakan perintah berikut:
kubectl apply -f RBAC_PATH
Ganti
RBAC_PATH
dengan jalur ke file RBAC yang Anda buat atau edit.Saat Anda menjalankan perintah ini, pengguna atau grup yang ditentukan dalam konfigurasi RBAC sekarang memiliki izin untuk mengakses dan mengelola cluster GKE yang ditargetkan, seperti yang ditentukan dalam aturan RBAC.
Jika perlu melakukan perubahan berikutnya pada izin, ubah file RBAC dan terapkan kembali ke cluster dengan mengulangi langkah-langkah sebelumnya.
Metode #2: memberikan akses ke identitas eksternal selama pembuatan atau update cluster
Metode #2 memberikan akses ke identitas eksternal selama pembuatan atau proses update cluster.
Untuk membuat cluster, ikuti langkah-langkah di bagian Membuat cluster. Untuk mengupdate cluster, ikuti langkah-langkah di bagian Mengupdate cluster.
Saat menjalankan perintah gcloud
untuk membuat atau memperbarui cluster, tentukan
parameter admin-users
dan/atau admin-groups
sebagai berikut:
gcloud container azure clusters [create|update] CLUSTER_NAME \
--location=LOCATION
--admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
--admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda.LOCATION
: region Google Cloud tempat cluster Anda dikelola.WORKFORCE_POOL_ID
: ID yang secara unik mengidentifikasi kumpulan identitas tenaga kerja Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.SUBJECT_VALUE
: ID yang secara unik mengidentifikasi pengguna eksternal. Misalnya, ID dapat berupa alamat email sepertialex@cymbalgroup.com
.GROUP_ID
: ID yang secara unik mengidentifikasi grup eksternal.
Ringkasan memberikan akses ke cluster GKE kepada ID eksternal
Setelah menjalankan metode #1 atau metode #2, pengguna atau grup eksternal
yang ditentukan dapat
menggunakan Google Cloud Console
untuk terhubung dan melihat detail cluster. Atau, mereka dapat menggunakan kubectl
dengan identitas dari gcloud CLI untuk mengelola, memanipulasi, dan berkomunikasi dengan cluster.
Untuk menjalankan perintah kubectl
terhadap cluster GKE, lihat
cara membuat entri kubeconfig
.