בדף הזה מוסבר איך להפעיל את אמולטור IMDS, שמדמה את שירות המטא-נתונים של מופעי AWS (IMDS). אפשר להריץ את האמולטור כ-sidecar כדי לאפשר לעומסי עבודה מדור קודם לפעול במאגרי צמתים של GKE ב-AWS. אם יש לכם עומסי עבודה מדור קודם שלא תומכים ישירות באיחוד שירותי אימות הזהות של עומסי עבודה ב-GKE, תוכלו להשתמש באמולטור הזה כדי לגשת לנתוני IMDS.
מגבלות
- האשכול צריך להשתמש ב-Kubernetes מגרסה 1.24 ואילך.
- האמולטור לא נתמך בדור הקודם של GKE ב-AWS.
- שרת האמולטור של IMDS משרת רק בקשות לפרטי כניסה (
API_VERSION/meta-data/iam/security-credentials/). כל שאר הבקשות למטא-נתונים מחזירות שגיאת 404. - כדי לפרוס קונטיינר sidecar, קונטיינר האתחול צריך לכלול את
NET_ADMINוNET_RAWיכולות הקשר האבטחתי. אם אתם לא בטוחים אם מארח התגים כולל את ההקשרים האלה, כדאי להתייעץ עם צוות האבטחה שלכם. - הטוקן של AWS STS יכול להיות בתוקף למשך שעה. התוקף של אסימון התפקיד מהמטא-נתונים של EC2 הוא עד 24 שעות. המידע הזה לא אמור להשפיע על השימוש שלכם באמולטור, אבל יכול להיות שתצטרכו אותו במהלך ביקורת אבטחה.
- אמולטור ה-IMDS מדמה רק תגובות של IMDSv1. אין תמיכה ב-IMDSv2.
הפעלת האמולטור
כדי להפעיל את אמולטור IMDS, מוסיפים תווית והערה למטא-נתונים של Pod. אפשר גם להפעיל את האמולטור באמצעות Deployment, DaemonSet או כל משאב אחר שיוצר Pods:
מוסיפים את התווית והערך הבאים ל-Pod:
gkemulticloud.googleapis.com/aws-imds-emulator-enabled: "True"הערך הקביל היחיד לתווית הזו הוא
True. כל הערכים האחרים (כוללtrueעם האותtבאותיות קטנות) משביתים את האמולטור.מוסיפים את ההערה הבאה ל-Pod:
gkemulticloud.googleapis.com/aws-imds-emulator-role-arn: ARN_ROLEמחליפים את
ARN_ROLEבשם משאב Amazon (ARN) שמציין את התפקיד שאתם רוצים להקצות למשאב.
דוגמה
הדוגמה הבאה היא של Pod עם הפעלת אמולטור IMDS:
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