בקרת גישה באמצעות IAM
בדף הזה מתוארים תפקידי IAM ב-Certificate Authority Service.
שירות CA משתמש בתפקידים של ניהול זהויות והרשאות גישה (IAM) לבקרת גישה. באמצעות IAM תוכלו לשלוט בגישה למשאבים: להגדיר למי (זהות) תהיה גישה למשאב מסוים ואיזה סוג של גישה (תפקיד) תהיה לו. תפקידי IAM מכילים קבוצה של הרשאות שמאפשרות למשתמשים לבצע פעולות ספציפיות במשאבים של Google Cloud. אם תפעלו לפי העיקרון של הרשאות מינימליות כשאתם מעניקים תפקידי IAM, תוכלו להגן על התקינות של משאבי Certificate Authority Service ולנהל את האבטחה של מאגר רשויות האישורים ושל תשתית של מפתח ציבורי (PKI) כולה.
במאמר הענקה, שינוי וביטול גישה למשאבים במאמרי העזרה של IAM מוסבר איך מקצים תפקידי IAM למשתמש או לחשבון שירות.
תפקידים מוגדרים מראש
בטבלה הבאה מפורטים התפקידים המוגדרים מראש ב-IAM וההרשאות שמשויכות לכל אחד מהם:
| תפקיד | הרשאות | תיאור |
|---|---|---|
מפקח של שירות CAroles/privateca.auditor |
privateca.caPools.getprivateca.caPools.getIamPolicyprivateca.caPools.listprivateca.certificateAuthorities.listprivateca.certificateAuthorities.getprivateca.certificateTemplates.getprivateca.certificateTemplates.getIamPolicyprivateca.certificateTemplates.listprivateca.certificates.listprivateca.certificates.getprivateca.locations.getprivateca.locations.listprivateca.operations.getprivateca.operations.listprivateca.certificateRevocationLists.listprivateca.certificateRevocationLists.getprivateca.certificateRevocationLists.getIamPolicyresourcemanager.projects.getresourcemanager.projects.list
|
לתפקיד CA Service Auditor יש הרשאת קריאה בלבד לכל המשאבים של שירות CA, והוא יכול לאחזר ולרשום מאפיינים של מאגר CA, של CA, של אישורים, של רשימות ביטול, של מדיניות IAM ושל פרויקטים. מומלץ להקצות את התפקיד הזה לאנשים שאחראים לאימות האבטחה והתפעול של מאגר רשויות האישורים, ושלא הוקצו להם תחומי אחריות יומיומיים לניהול השירות. |
מבקש אישורים של שירות CAroles/privateca.certificateRequester |
privateca.certificates.create
|
משתמשים עם תפקיד של שולחי בקשות לאישור של שירות CA יכולים לשלוח בקשות לאישור למאגר CA. מומלץ להעניק את התפקיד הזה לאנשים מהימנים שמורשים לבקש אישורים. משתמש עם התפקיד הזה יכול לבקש אישורים שרירותיים בכפוף למדיניות ההנפקה. בניגוד לתפקיד 'Certificate Manager של שירות CA', התפקיד הזה לא מאפשר למשתמש לקבל או לראות את האישור שהונפק לאחרונה, או לקבל מידע כלשהו על מאגר ה-CA. |
CA Service Workload Certificate Requesterroles/privateca.workloadCertificateRequester |
privateca.certificates.createForSelf
|
משתמש עם הרשאה לשלוח בקשות לאישור של עומס עבודה בשירות CA יכול לבקש אישורים משירות CA עם הזהות של המתקשר. |
מנהל אישורים של שירות CAroles/privateca.certificateManager |
כל ההרשאות מ-roles/privateca.auditor, ובנוסף:privateca.certificates.create
|
מנהל אישורים של שירות CA יכול לשלוח בקשות להנפקת אישורים למאגר CA כמו מבקש אישורים של שירות CA. בנוסף, התפקיד הזה מקבל בירושה גם את ההרשאות של התפקיד CA Service Auditor. מומלץ להקצות את התפקיד הזה לאנשים שאחראים ליצירה, למעקב ולבדיקה של בקשות אישורים במאגר CA, כמו מנהל או מהנדס ראשי. |
משתמש בתבנית אישורים של שירות CAroles/privateca.templateUser |
privateca.certificateTemplates.getprivateca.certificateTemplates.listprivateca.certificateTemplates.use
|
משתמש בתבנית אישור של שירות CA יכול לקרוא, לרשום ולהשתמש בתבניות אישורים. |
מנהל תפעול של שירות CAroles/privateca.caManager |
כל ההרשאות מ-roles/privateca.auditor, ובנוסף:privateca.certificates.updateprivateca.caPools.createprivateca.caPools.deleteprivateca.caPools.updateprivateca.certificateAuthorities.createprivateca.certificateAuthorities.deleteprivateca.certificateAuthorities.updateprivateca.certificateRevocationLists.updateprivateca.certificateTemplates.createprivateca.certificateTemplates.deleteprivateca.certificateTemplates.updateprivateca.certificates.updateprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
מנהל פעולות של שירות CA יכול ליצור, לעדכן ולמחוק מאגרי CA ו-CA. התפקיד הזה יכול גם לבטל אישורים וליצור קטגוריות של Cloud Storage. הוא כולל גם את אותן היכולות כמו ב-CA Service Auditor. בתפקיד הזה, אנשים אחראים להגדרת מאגרי CA ולפריסתם בארגון, וגם להגדרת מדיניות ההנפקה של מאגר ה-CA. התפקיד הזה לא מאפשר ליצור אישורים. כדי לעשות את זה, צריך להשתמש בתפקידים CA Service Certificate Requester (שליחת בקשות לאישור שירות CA), CA Service Certificate Manager (ניהול אישורים של שירות CA) או CA Service Admin (אדמין של שירות CA). |
CA Service Pool Readerroles/privateca.poolReader |
privateca.caPools.get |
משתמש עם התפקיד 'קורא מאגרי CA' בשירות CA יכול לקרוא מאגרי CA בשירות CA. |
אדמין של שירות CAroles/privateca.admin |
כל ההרשאות מ-roles/privateca.certificateManager ו-roles/privateca.caManager, בנוסף:privateca.*.setIamPolicyprivateca.caPools.useprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
התפקיד CA Service Admin (אדמין של שירות CA) מקבל בירושה הרשאות מהתפקידים CA Service Operation Manager (מנהל תפעול של שירות CA) ו-CA Service Certificate Manager (מנהל אישורים של שירות CA). התפקיד הזה יכול לבצע את כל הפעולות בשירות CA. אדמין של שירות CA יכול להגדיר מדיניות IAM למאגר CA וליצור קטגוריות ב-Cloud Storage. מומלץ להקצות את התפקיד הזה לעיתים רחוקות אחרי שהשירות מוגדר. בתפקיד הזה, אנשים יכולים לבצע את כל ההיבטים של הניהול, כולל הקצאת הרשאות לאחרים וניהול בקשות לאישור ב-CA Service. מומלץ להטמיע אמצעי בקרה מיוחדים ולשלוט בגישה לחשבון עם התפקיד הזה, כדי למנוע גישה או שימוש לא מורשים. |
התפקיד 'סוכן שירות' של שירות CA
כשמספקים מפתחות Cloud KMS קיימים או קטגוריות Cloud Storage קיימות, צריך להעניק גישה למשאב הרלוונטי לחשבון השירות של סוכן השירות של CA Service (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com).
ב-Cloud KMS, נדרש roles/cloudkms.signerVerifier כדי להשתמש במפתח החתימה ולקרוא את המפתח הציבורי. נדרש roles/viewer כדי לעקוב אחרי המפתח לצורך שילוב עם Cloud Monitoring.
כדי להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) להצפנת נתונים במצב מנוחה, צריך להקצות את התפקיד roles/cloudkms.cryptoKeyEncrypterDecrypter. כך סוכן השירות יכול להצפין ולפענח נתונים במצב מנוחה.
ב-Cloud Storage, נדרשת הרשאה roles/storage.objectAdmin כדי לכתוב את אישור ה-CA ואת רשימות ה-CRL לקטגוריה. נדרשת הרשאת roles/storage.legacyBucketReader כדי לעקוב אחרי הקטגוריה לצורך שילוב עם Cloud Monitoring. מידע נוסף זמין במאמר תפקידי IAM ל-Cloud Storage.
כשניגשים לשירות דרך ה-API, מריצים את הפקודות הבאות.
יוצרים חשבון שירות עם התפקיד Service Agent (סוכן שירות).
gcloud
gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_IDכאשר:
- PROJECT_ID הוא המזהה הייחודי של הפרויקט שבו נוצר מאגר רשויות האישורים.
מקצים לחשבון השירות את התפקידים הנדרשים באמצעות הפקודה הבאה של
gcloud.אם מספקים מפתחות Cloud KMS קיימים:
gcloud
למפתחות חתימה של Cloud KMS:
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.signerVerifier'gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/viewer'למפתחות הצפנה של Cloud KMS:
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.cryptoKeyEncrypterDecrypter'כאשר:
- KEY_NAME הוא השם של המפתח.
- KEYRING_NAME הוא השם של אוסף המפתחות.
- 'LOCATION' הוא המיקום ב-Cloud KMS שבו יצרתם את אוסף המפתחות.
- PROJECT_NUMBER הוא מספר הפרויקט של הפרויקט שמכיל את המפתח. Google Cloud
מקצים לחשבון השירות את התפקידים
roles/storage.objectAdminו-roles/storage.legacyBucketReaderבאמצעות הפקודהgcloudהבאה.אם מספקים קטגוריות קיימות של Cloud Storage:
gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.objectAdminכאשר:
- BUCKET_NAME הוא השם של הקטגוריה ב-Cloud Storage.
- PROJECT_NUMBER הוא המזהה הייחודי של חשבון השירות.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.legacyBucketReader
הרשאות API
בטבלה הבאה מפורטות ההרשאות שנדרשות למבצע הקריאה החוזרת (caller) כדי להפעיל קריאה לכל שיטה של CA Service API:
| הרשאה | תיאור |
|---|---|
privateca.caPools.create |
יוצרים מאגר של רשויות אישורים (CA). |
privateca.caPools.update |
עדכון מאגר רשויות אישורים. |
privateca.caPools.list |
הצגת רשימה של מאגרי רשויות אישורים בפרויקט. |
privateca.caPools.get |
אחזור מאגר של רשות אישורים. |
privateca.caPools.delete |
מחיקה של מאגר רשויות אישורים. |
privateca.caPools.use |
שימוש במאגר תעודות CA. |
privateca.caPools.getIamPolicy |
מאחזרים את מדיניות ה-IAM של מאגר רשויות האישורים. |
privateca.caPools.setIamPolicy |
הגדרת מדיניות IAM למאגר אישורים. |
privateca.certificateAuthorities.create |
יוצרים רשות אישורים. |
privateca.certificateAuthorities.delete |
מתזמנים מחיקה של רשות אישורים. |
privateca.certificateAuthorities.get |
קבלת בקשת חתימה על אישור CA או CA. |
privateca.certificateAuthorities.list |
הצגת רשימה של רשויות אישורים בפרויקט. |
privateca.certificateAuthorities.update |
עדכון של רשות אישורים, כולל הפעלה, השבתה ושחזור של רשות האישורים. |
privateca.certificates.create |
שליחת בקשות לאישורים מ-CA Service. |
privateca.certificates.createForSelf |
שליחת בקשה לאישורים מ-CA Service עם הזהות של המתקשר. |
privateca.certificates.get |
אחזור אישור והמטא-נתונים שלו. |
privateca.certificates.list |
הצגת רשימה של כל האישורים ב-CA. |
privateca.certificates.update |
עדכון המטא-נתונים של אישור, כולל ביטול. |
privateca.certificateRevocationLists.get |
קבלת רשימת אישורים שבוטלו (CRL) ברשות אישורים (CA). |
privateca.certificateRevocationLists.getIamPolicy |
קבלת מדיניות IAM עבור CRL. |
privateca.certificateRevocationLists.list |
הצגת רשימה של כל ה-CRL ברשות אישורים. |
privateca.certificateRevocationLists.setIamPolicy |
הגדרת מדיניות IAM עבור CRL. |
privateca.certificateRevocationLists.update |
עדכון של CRL. |
privateca.certificateTemplates.create |
יוצרים תבנית אישור. |
privateca.certificateTemplates.get |
אחזור של תבנית אישור. |
privateca.certificateTemplates.list |
הצגת רשימה של כל תבניות האישורים. |
privateca.certificateTemplates.update |
מעדכנים תבנית אישור. |
privateca.certificateTemplates.delete |
מחיקת תבנית אישור. |
privateca.certificateTemplates.getIamPolicy |
קבלת מדיניות IAM לתבנית אישור. |
privateca.certificateTemplates.setIamPolicy |
הגדרת מדיניות IAM לתבנית אישור. |
privateca.certificateTemplates.use |
שימוש בתבנית של אישור. |
privateca.operations.cancel |
ביטול פעולה ממושכת. |
privateca.operations.delete |
מחיקת פעולה ממושכת. |
privateca.operations.get |
קבלת פעולה ממושכת. |
privateca.operations.list |
הצגת רשימה של פעולות ממושכות בפרויקט. |
המאמרים הבאים
- IAM מאפשר לנהל את ההרשאות ואת היקפי הגישה למשאבים של Google Cloud באופן מרכזי.
- איך מגדירים מדיניות IAM
- מידע נוסף על מפתחות הצפנה בניהול הלקוח (CMEK)