Halaman ini menjelaskan cara mengaktifkan emulator IMDS, yang mengemulasi layanan metadata instance AWS (IMDS). Anda dapat menjalankan emulator sebagai file bantuan untuk menjalankan workload lama di GKE pada node pool AWS. Jika Anda memiliki beban kerja lama yang tidak secara langsung mendukung Workload Identity, gunakan emulator ini untuk mengakses data IMDS.
Batasan
- Cluster Anda harus menggunakan Kubernetes versi 1.24 atau yang lebih baru.
- Emulator tidak didukung di GKE generasi sebelumnya di AWS.
- Server emulator IMDS hanya menayangkan permintaan kredensial
(
API_VERSION/meta-data/iam/security-credentials/
). Semua permintaan metadata lainnya akan menampilkan error 404. - Deployment file bantuan mengharuskan container init memiliki kapasitas konteks keamanan
NET_ADMIN
danNET_RAW
. Jika tidak yakin apakah container tersebut memiliki konteks tersebut, hubungi tim keamanan Anda. - Token AWS STS dapat bertahan selama satu jam. Token peran dari metadata EC2 dapat bertahan selama 24 jam. Hal ini tidak akan memengaruhi penggunaan emulator, tetapi Anda mungkin perlu mengetahui informasi ini selama audit keamanan.
- Emulator IMDS hanya mengemulasi respons IMDSv1. IMDSv2 tidak didukung.
Mengaktifkan emulator
Untuk mengaktifkan emulator IMDS, tambahkan label dan anotasi ke metadata untuk Pod. Anda juga dapat mengaktifkan emulator menggunakan Deployment, DaemonSet, atau resource lain yang membuat Pod:
Tambahkan label dan nilai berikut ke Pod Anda:
gkemulticloud.googleapis.com/aws-imds-emulator-enabled: "True"
Satu-satunya nilai yang dapat diterima untuk label ini adalah
True
. Semua nilai lainnya (termasuktrue
dengant
huruf kecil) akan menonaktifkan emulator.Tambahkan anotasi berikut ke Pod Anda:
gkemulticloud.googleapis.com/aws-imds-emulator-role-arn: ARN_ROLE
Ganti
ARN_ROLE
dengan Amazon Resource Name (ARN) yang menentukan peran yang Anda inginkan untuk resource.
Contoh
Contoh berikut adalah Pod dengan emulator IMDS diaktifkan:
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
gkemulticloud.googleapis.com/aws-imds-emulator-enabled: "True"
annotations:
gkemulticloud.googleapis.com/aws-imds-emulator-role-arn: "arn:aws:iam::123456789012:role/my-example-role"
spec:
serviceAccountName: my-sa
containers:
- name: nginx
image: nginx