בקרת גישה באמצעות IAM

בדף הזה מתוארים תפקידי IAM ב-Certificate Authority Service.

שירות CA משתמש בתפקידים של ניהול זהויות והרשאות גישה (IAM) לבקרת גישה. באמצעות IAM תוכלו לשלוט בגישה למשאבים: להגדיר למי (זהות) תהיה גישה למשאב מסוים ואיזה סוג של גישה (תפקיד) תהיה לו. תפקידי IAM מכילים קבוצה של הרשאות שמאפשרות למשתמשים לבצע פעולות ספציפיות במשאבים של Google Cloud. אם תפעלו לפי העיקרון של הרשאות מינימליות כשאתם מעניקים תפקידי IAM, תוכלו להגן על התקינות של משאבי Certificate Authority Service ולנהל את האבטחה של מאגר רשויות האישורים ושל תשתית של מפתח ציבורי (PKI) כולה.

במאמר הענקה, שינוי וביטול גישה למשאבים במאמרי העזרה של IAM מוסבר איך מקצים תפקידי IAM למשתמש או לחשבון שירות.

תפקידים מוגדרים מראש

בטבלה הבאה מפורטים התפקידים המוגדרים מראש ב-IAM וההרשאות שמשויכות לכל אחד מהם:

תפקיד הרשאות תיאור
מפקח של שירות CA
roles/privateca.auditor
privateca.caPools.get
privateca.caPools.getIamPolicy
privateca.caPools.list
privateca.certificateAuthorities.list
privateca.certificateAuthorities.get
privateca.certificateTemplates.get
privateca.certificateTemplates.getIamPolicy
privateca.certificateTemplates.list
privateca.certificates.list
privateca.certificates.get
privateca.locations.get
privateca.locations.list
privateca.operations.get
privateca.operations.list
privateca.certificateRevocationLists.list
privateca.certificateRevocationLists.get
privateca.certificateRevocationLists.getIamPolicy
resourcemanager.projects.get
resourcemanager.projects.list
לתפקיד CA Service Auditor יש הרשאת קריאה בלבד לכל המשאבים של שירות CA, והוא יכול לאחזר ולרשום מאפיינים של מאגר CA, של CA, של אישורים, של רשימות ביטול, של מדיניות IAM ושל פרויקטים. מומלץ להקצות את התפקיד הזה לאנשים שאחראים לאימות האבטחה והתפעול של מאגר רשויות האישורים, ושלא הוקצו להם תחומי אחריות יומיומיים לניהול השירות.
מבקש אישורים של שירות CA
roles/privateca.certificateRequester
privateca.certificates.create משתמשים עם תפקיד של שולחי בקשות לאישור של שירות CA יכולים לשלוח בקשות לאישור למאגר CA. מומלץ להעניק את התפקיד הזה לאנשים מהימנים שמורשים לבקש אישורים.

משתמש עם התפקיד הזה יכול לבקש אישורים שרירותיים בכפוף למדיניות ההנפקה.

בניגוד לתפקיד 'Certificate Manager של שירות CA', התפקיד הזה לא מאפשר למשתמש לקבל או לראות את האישור שהונפק לאחרונה, או לקבל מידע כלשהו על מאגר ה-CA.
CA Service Workload Certificate Requester
roles/privateca.workloadCertificateRequester
privateca.certificates.createForSelf משתמש עם הרשאה לשלוח בקשות לאישור של עומס עבודה בשירות CA יכול לבקש אישורים משירות CA עם הזהות של המתקשר.
מנהל אישורים של שירות CA
roles/privateca.certificateManager
כל ההרשאות מ-roles/privateca.auditor, ובנוסף:
privateca.certificates.create
מנהל אישורים של שירות CA יכול לשלוח בקשות להנפקת אישורים למאגר CA כמו מבקש אישורים של שירות CA. בנוסף, התפקיד הזה מקבל בירושה גם את ההרשאות של התפקיד CA Service Auditor. מומלץ להקצות את התפקיד הזה לאנשים שאחראים ליצירה, למעקב ולבדיקה של בקשות אישורים במאגר CA, כמו מנהל או מהנדס ראשי.
משתמש בתבנית אישורים של שירות CA
roles/privateca.templateUser
privateca.certificateTemplates.get
privateca.certificateTemplates.list
privateca.certificateTemplates.use
משתמש בתבנית אישור של שירות CA יכול לקרוא, לרשום ולהשתמש בתבניות אישורים.
מנהל תפעול של שירות CA
roles/privateca.caManager
כל ההרשאות מ-roles/privateca.auditor, ובנוסף:
privateca.certificates.update
privateca.caPools.create
privateca.caPools.delete
privateca.caPools.update
privateca.certificateAuthorities.create
privateca.certificateAuthorities.delete
privateca.certificateAuthorities.update
privateca.certificateRevocationLists.update
privateca.certificateTemplates.create
privateca.certificateTemplates.delete
privateca.certificateTemplates.update
privateca.certificates.update
privateca.operations.cancel
privateca.operations.delete
resourcemanager.projects.get
resourcemanager.projects.list
storage.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 Reader
roles/privateca.poolReader
privateca.caPools.get משתמש עם התפקיד 'קורא מאגרי CA' בשירות CA יכול לקרוא מאגרי CA בשירות CA.
אדמין של שירות CA
roles/privateca.admin
כל ההרשאות מ-roles/privateca.certificateManager ו-roles/privateca.caManager, בנוסף:

privateca.*.setIamPolicy
privateca.caPools.use
privateca.operations.cancel
privateca.operations.delete
resourcemanager.projects.get
resourcemanager.projects.list
storage.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, מריצים את הפקודות הבאות.

  1. יוצרים חשבון שירות עם התפקיד Service Agent (סוכן שירות).

    gcloud

    gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_ID
    

    כאשר:

    • PROJECT_ID הוא המזהה הייחודי של הפרויקט שבו נוצר מאגר רשויות האישורים.
  2. מקצים לחשבון השירות את התפקידים הנדרשים באמצעות הפקודה הבאה של 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
  3. מקצים לחשבון השירות את התפקידים 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 הצגת רשימה של פעולות ממושכות בפרויקט.

המאמרים הבאים