Komponen ack-pod-identity-webhook mengotomatiskan konfigurasi RAM Roles for Service Accounts (RRSA) di kluster Container Service for Kubernetes (ACK). Komponen ini menggunakan MutatingAdmissionWebhook Kubernetes untuk menyuntikkan pemasangan volume token OpenID Connect (OIDC) dan variabel lingkungan ke dalam pod, sehingga memungkinkan akses tanpa kata sandi ke layanan Alibaba Cloud dengan isolasi izin tingkat pod.
Cara kerja
Saat sebuah pod dibuat di kluster, webhook mencegat permintaan tersebut dan memeriksa konfigurasi pada empat tingkatan: komponen, namespace, service account, dan pod. Jika kondisi terpenuhi, webhook menyuntikkan hal berikut ke dalam spesifikasi pod:
Pemasangan volume token OIDC untuk otentikasi
Variabel lingkungan untuk akses Security Token Service (STS), termasuk
ALIBABA_CLOUD_STS_ENDPOINT,ALIBABA_CLOUD_STS_REGION, danALIBABA_CLOUD_VPC_ENDPOINT_ENABLED(versi 0.4.0 dan seterusnya)
Hal ini menghilangkan kebutuhan akan kredensial AccessKey statis. Setiap pod hanya mengasumsikan peran RAM yang terkait dengan service account-nya, sehingga memberikan isolasi izin detail halus.
Untuk petunjuk penyiapan, lihat Gunakan RRSA untuk mengonfigurasi izin RAM untuk ServiceAccount dan menerapkan isolasi izin pod.
Referensi konfigurasi
Komponen ini mendukung konfigurasi pada empat tingkatan. Konfigurasi tingkat lebih rendah memiliki prioritas lebih tinggi daripada konfigurasi tingkat lebih tinggi.
Konfigurasi komponen
| Parameter | Tipe | Deskripsi | Bawaan | Versi |
|---|---|---|---|---|
AutoInjectSTSEnvVars | boolean | Menyuntikkan variabel lingkungan terkait STS (ALIBABA_CLOUD_STS_ENDPOINT, ALIBABA_CLOUD_STS_REGION, ALIBABA_CLOUD_VPC_ENDPOINT_ENABLED) ke semua pod secara bawaan. Atur ke false untuk menonaktifkan. | true | 0.4.0+ |
Konfigurasi namespace
| Parameter | Tipe | Deskripsi |
|---|---|---|
pod-identity.alibabacloud.com/injection | Label | Atur ke on untuk mengaktifkan penyuntikan konfigurasi otomatis ke semua pod dalam namespace. Nilai lain atau ketiadaan label ini akan menonaktifkan penyuntikan tingkat namespace. |
apiVersion: v1
kind: Namespace
metadata:
name: test
labels:
pod-identity.alibabacloud.com/injection: 'on'Konfigurasi service account
| Parameter | Tipe | Deskripsi | Versi |
|---|---|---|---|
pod-identity.alibabacloud.com/role-name | Anotasi | Nama peran RAM yang akan dikaitkan dengan service account ini. Diperlukan agar penyuntikan dapat dilakukan. | - |
pod-identity.alibabacloud.com/service-account-token-expiration | Anotasi | Periode validitas token OIDC dalam detik. Rentang valid: 600 hingga 43200. Bawaan: 3600. Nilai tidak valid akan dikembalikan ke nilai bawaan. | - |
pod-identity.alibabacloud.com/inject-sts-endpoint | Anotasi | Atur ke on untuk menyuntikkan variabel lingkungan ALIBABA_CLOUD_STS_ENDPOINT ke dalam pod. | 0.3.0+ |
apiVersion: v1
kind: ServiceAccount
metadata:
name: test-sa
namespace: test
annotations:
pod-identity.alibabacloud.com/role-name: test-role
pod-identity.alibabacloud.com/service-account-token-expiration: '3600'
pod-identity.alibabacloud.com/inject-sts-endpoint: 'on'Konfigurasi pod
| Parameter | Tipe | Deskripsi | Versi |
|---|---|---|---|
pod-identity.alibabacloud.com/injection | Label | Atur ke on untuk mengaktifkan penyuntikan untuk pod ini. Jika tidak diatur, konfigurasi namespace yang menentukan perilaku penyuntikan. | 0.2.0+ |
pod-identity.alibabacloud.com/service-account-token-expiration | Anotasi | Periode validitas token OIDC untuk pod ini dalam detik. Rentang valid: 600 hingga 43200. Bawaan: 3600. Memiliki prioritas lebih tinggi daripada anotasi pada service account. | - |
pod-identity.alibabacloud.com/only-containers | Anotasi | Membatasi penyuntikan hanya ke kontainer tertentu. Pisahkan nama kontainer dengan koma. Jika tidak diatur, semua kontainer menerima penyuntikan. | - |
pod-identity.alibabacloud.com/skip-containers | Anotasi | Mengecualikan kontainer tertentu dari penyuntikan. Pisahkan nama kontainer dengan koma. Jika suatu kontainer muncul di kedua anotasi only-containers dan skip-containers, pengaturan only-containers untuk kontainer tersebut diabaikan. | - |
apiVersion: v1
kind: Pod
metadata:
name: test-pod
namespace: test
labels:
pod-identity.alibabacloud.com/injection: 'on'
annotations:
pod-identity.alibabacloud.com/service-account-token-expiration: '3600'
pod-identity.alibabacloud.com/only-containers: 'controller,test'Prioritas konfigurasi
Jika suatu pengaturan ada di beberapa tingkatan, prioritas berikut berlaku (tertinggi ke terendah):
Pod – Anotasi dan label tingkat pod menggantikan semua tingkatan lainnya.
Service account – Anotasi service account berlaku untuk semua pod yang menggunakan service account tersebut, kecuali diganti di tingkat pod.
Namespace – Label namespace mengaktifkan penyuntikan untuk semua pod dalam namespace tersebut.
Komponen – Pengaturan tingkat komponen mengontrol perilaku global webhook.
Anotasi pod-identity.alibabacloud.com/service-account-token-expiration pada pod menggantikan anotasi yang sama pada service account.
Log perubahan
November 2025
| Versi | Image | Tanggal | Perubahan | Dampak |
|---|---|---|---|---|
| 0.4.0 | registry-cn-hangzhou.ack.aliyuncs.com/acs/ack-pod-identity-webhook:0.4.0 | 24 November 2025 | Menambahkan penyuntikan bawaan variabel lingkungan STS: ALIBABA_CLOUD_STS_ENDPOINT, ALIBABA_CLOUD_STS_REGION, dan ALIBABA_CLOUD_VPC_ENDPOINT_ENABLED. Nonaktifkan dengan AutoInjectSTSEnvVars: false. Meningkatkan Golang ke versi 1.24.10. | Peningkatan komponen yang tidak normal dapat menyebabkan pembuatan pod gagal. Lakukan peningkatan selama jam sepi. |
September 2025
| Versi | Image | Tanggal | Perubahan | Dampak |
|---|---|---|---|---|
| 0.3.1 | registry-cn-hangzhou.ack.aliyuncs.com/acs/ack-pod-identity-webhook:0.3.1 | 08 September 2025 | Meningkatkan Golang ke versi 1.24.6 untuk peningkatan stabilitas. | Peningkatan komponen yang tidak normal dapat menyebabkan pembuatan pod gagal. Lakukan peningkatan selama jam sepi. |
Juni 2025
| Versi | Image | Tanggal | Perubahan | Dampak |
|---|---|---|---|---|
| 0.3.0 | registry-cn-hangzhou.ack.aliyuncs.com/acs/ack-pod-identity-webhook:v0.3.0.0-g433f84b-aliyun | 06 Juni 2025 | Menambahkan anotasi ServiceAccount pod-identity.alibabacloud.com/inject-sts-endpoint untuk menyuntikkan ALIBABA_CLOUD_STS_ENDPOINT. | Peningkatan komponen yang tidak normal dapat menyebabkan pembuatan pod gagal. Lakukan peningkatan selama jam sepi. |
Maret 2025
| Versi | Image | Tanggal | Perubahan | Dampak |
|---|---|---|---|---|
| 0.2.1 | registry-cn-hangzhou.ack.aliyuncs.com/acs/ack-pod-identity-webhook:v0.2.1.0-g52e519c-aliyun | 18 Maret 2025 | Meningkatkan Golang ke versi 1.23.7 untuk peningkatan stabilitas. | Peningkatan komponen yang tidak normal dapat menyebabkan pembuatan pod gagal. Lakukan peningkatan selama jam sepi. |
Desember 2024
| Versi | Image | Tanggal | Perubahan | Dampak |
|---|---|---|---|---|
| 0.2.0 | registry-cn-hangzhou.ack.aliyuncs.com/acs/ack-pod-identity-webhook:v0.2.0.11-g2f0c2e7-aliyun | 19 Desember 2024 | Menambahkan penyuntikan tingkat pod melalui label pod-identity.alibabacloud.com/injection: 'on'. Mengoptimalkan dukungan Kubernetes 1.32. | Peningkatan komponen yang tidak normal dapat menyebabkan pembuatan pod gagal. Lakukan peningkatan selama jam sepi. |
Juni 2023
| Versi | Image | Tanggal | Perubahan | Dampak |
|---|---|---|---|---|
| 0.1.1 | registry.cn-hangzhou.aliyuncs.com/acs/ack-pod-identity-webhook:v0.1.1.0-gbddcb74-aliyun | 07 Juni 2023 | Meningkatkan kompatibilitas dengan kluster ACK serverless. | Peningkatan komponen yang tidak normal dapat menyebabkan pembuatan pod gagal. Lakukan peningkatan selama jam sepi. |
Februari 2023
| Versi | Image | Tanggal | Perubahan | Dampak |
|---|---|---|---|---|
| 0.1.0 | registry.cn-hangzhou.aliyuncs.com/acs/ack-pod-identity-webhook:v0.1.0.9-g26b8fde-aliyun | 01 Februari 2023 | Rilis awal. Pemasangan token OIDC otomatis dan konfigurasi variabel lingkungan untuk pod aplikasi. | Rilis awal. |