סקירה כללית
GKE ב-AWS משתמש במפתחות סימטריים של AWS Key Management Service (KMS) בניהול הלקוח כדי להצפין:
- נתוני מצב של Kubernetes ב-etcd
- מכונת EC2 נתוני משתמשים
- EBS volumes להצפנה במנוחה של מישור הבקרה ונתוני מאגר הצמתים
בסביבות ייצור, מומלץ להשתמש במפתחות שונים להצפנת נפח ולהגדרות. כדי לצמצם עוד יותר את הסיכונים במקרה של פריצה למפתח, אפשר גם ליצור מפתחות שונים לכל אחד מהמקרים הבאים:
- הגדרת מישור הבקרה של האשכול
- מסד נתונים של מישור הבקרה של האשכול
- עוצמת הקול הראשית של מישור הבקרה של האשכול
- נפח הבסיס של מישור הבקרה של האשכול
- הגדרת מאגר צמתים
- נפח הבסיס של מאגר הצמתים
כדי לשפר את האבטחה, אפשר ליצור מדיניות מפתח AWS KMS שמקצה רק את קבוצת ההרשאות המינימלית הנדרשת. מידע נוסף זמין במאמר יצירת מפתחות KMS עם הרשאות ספציפיות.
יצירת מפתח AWS KMS
כדי ליצור מפתח, מריצים את הפקודה הבאה:
aws --region AWS_REGION kms create-key \
--description "KEY_DESC"
מחליפים את מה שכתוב בשדות הבאים:
AWS_REGIONבשם האזור שלכם ב-AWSKEY_DESCבתיאור טקסט של המפתח
לכל מפתח שיוצרים, שומרים את הערך שנקרא KeyMetadata.Arn בפלט של הפקודה הזו לשימוש מאוחר יותר.
יצירת מפתחות KMS עם הרשאות ספציפיות
אם יוצרים מפתחות נפרדים לפונקציות שונות, צריך לספק מדיניות מפתחות KMS לכל מפתח, כדי להעניק הרשאות מתאימות למפתח הזה. אם לא מציינים מדיניות מפתח כשיוצרים מפתח, AWS KMS יוצר מדיניות מפתח שמוגדרת כברירת מחדל ומעניקה לכל הגורמים המורשים בחשבון הבעלים גישה בלתי מוגבלת לכל הפעולות שקשורות למפתח.
כשיוצרים מדיניות הרשאות למפתח, צריך לאפשר למדיניות AWS IAM גישה למדיניות ההרשאות למפתח. בנוסף, מדיניות המפתח צריכה להעניק לחשבון שלכם הרשאות להשתמש במדיניות IAM. בלי הרשאה ממדיניות המפתח, למדיניות IAM שמאפשרת הרשאות אין השפעה. מידע נוסף זמין במאמר מדיניות לגבי מפתחות ב-AWS KMS.
בטבלה הבאה מתוארות ההרשאות של כל אחד מתפקידי AWS IAM שמשמשים את GKE on AWS.
| תפקיד סוכן שירות של GKE Multi-Cloud API | תפקיד מישור הבקרה | תפקיד במאגר הצמתים | AWS Service Role For AutoScaling | |
|---|---|---|---|---|
| הצפנה של הגדרות מישור הבקרה של האשכול | kms:Encrypt | kms:Decrypt | לא רלוונטי | לא רלוונטי |
| הצפנה של מסד הנתונים של מישור הבקרה של האשכול | לא רלוונטי | kms:Encrypt kms:Decrypt |
לא רלוונטי | לא רלוונטי |
| הצפנה של נפח האחסון הראשי במישור הבקרה של האשכול | kms:GenerateDataKeyWithoutPlaintext | kms:CreateGrant | לא רלוונטי | לא רלוונטי |
| הצפנה של נפח הבסיס של מישור הבקרה של האשכול | לא רלוונטי | לא רלוונטי | לא רלוונטי | קטעים חשובים במדיניות שמאפשרים גישה למפתח בניהול הלקוח |
| הצפנה של הגדרות מאגר הצמתים | kms:Encrypt | לא רלוונטי | kms:Decrypt | לא רלוונטי |
| הצפנה של נפח הבסיס של מאגר הצמתים | לא רלוונטי | לא רלוונטי | לא רלוונטי | קטעים חשובים במדיניות שמאפשרים גישה למפתח בניהול הלקוח |
| דרישות אחרות | kms:DescribeKey | לא רלוונטי | לא רלוונטי | לא רלוונטי |