ב-Cloud KMS, המשאבים מאורגנים בהיררכיה. ההיררכיה הזו עוזרת לכם לנהל את המשאבים ולהעניק גישה אליהם ברמות שונות של פירוט. המפתחות נכללים באוספי מפתחות, ואוספי מפתחות קיימים בתוך פרויקט. חיבורי EKM קיימים גם בתוך פרויקט. אפשר לארגן את הפרויקטים בתיקיות או בארגונים.
בנושא הזה מפורטת היררכיית המשאבים ב-Cloud KMS. מידע נוסף על משאבים באופן כללי זמין במאמר היררכיית המשאבים. Cloud de Confiance
היררכיית המשאבים
היקף תפקיד ה-IAM משתנה בהתאם לרמה בהיררכיית המשאבים שבה ניתן התפקיד. בטבלה הזו מוצגות היכולות בפועל שמוענקות על ידי התפקיד Cloud KMS CryptoKey Encrypter (roles/cloudkms.cryptoKeyEncrypter) ברמות שונות בהיררכיה.
אתם יכולים לנהל את הגישה למפתחות או לאוספי מפתחות, אבל לא לגרסאות ספציפיות של מפתחות.
| היררכיית המשאבים | יכולת |
|---|---|
| ארגון | הצפנה באמצעות כל המפתחות בכל הפרויקטים בארגון |
| תיקייה | הצפנה באמצעות כל המפתחות בכל הפרויקטים בתיקייה |
| פרויקט | הצפנה באמצעות כל המפתחות בפרויקט |
| מחזיק מפתחות | הצפנה באמצעות כל המפתחות בצרור המפתחות |
| מפתח | הצפנה באמצעות המפתח הזה בלבד |
עקרונות האבטחה
IAM עוזר לאכוף את עקרונות האבטחה הקשורים זה לזה של הפרדת תפקידים ושל הרשאות מינימליות:
כשמיישמים את עקרון הפרדת התפקידים, אף חבר לא מקבל את כל הגישה שנדרשת כדי להשלים פונקציה עסקית קריטית. לדוגמה, פקיד בנק יכול למשוך כספים מחשבון רק אם בעל החשבון נמצא פיזית במקום ויוזם את העסקה.
כשמחילים את העיקרון של הרשאות מינימליות, לחברים יש רק את רמת הגישה המינימלית שנדרשת להם כדי להשלים את הפונקציות העסקיות הספציפיות שלהם. לדוגמה, פקיד בנק לא מקבל באופן אוטומטי את היכולת לאשר הלוואה ללקוח.
תפקידים מוגדרים מראש
ב-IAM יש תפקידים מוגדרים מראש שמעניקים גישה לכל סוג של משאבי Cloud de Confiance . אם אף אחד מהתפקידים המוגדרים מראש לא מתאים לצרכים שלכם, אתם יכולים ליצור תפקיד בהתאמה אישית.
מערכת IAM מציעה את התפקידים המוגדרים מראש הבאים ל-Cloud KMS:
| Role | Permissions |
|---|---|
Cloud KMS Admin( Provides access to Cloud KMS resources, except for access to restricted resource types and cryptographic operations. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter/Decrypter( Provides ability to use Cloud KMS resources for encrypt and decrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS Viewer( Enables Get and List operations. Lowest-level resources where you can grant this role:
|
|
Cloud KMS Autokey Admin( Enables management of AutokeyConfig. |
|
Cloud KMS Autokey User( Grants ability to use KeyHandle resources. |
|
Cloud KMS CryptoKey Decrypter( Provides ability to use Cloud KMS resources for decrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Decrypter Via Delegation( Enables Decrypt operations via other Cloud de Confiance by S3NS services Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter( Provides ability to use Cloud KMS resources for encrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter/Decrypter Via Delegation( Enables Encrypt and Decrypt operations via other Cloud de Confiance by S3NS services Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter Via Delegation( Enables Encrypt operations via other Cloud de Confiance by S3NS services Lowest-level resources where you can grant this role:
|
|
Cloud KMS Crypto Operator( Enables all Crypto Operations. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Decapsulator Beta( Enables Decapsulate and GetPublicKey operations |
|
Cloud KMS EkmConnections Admin( Enables management of EkmConnections. |
|
Cloud KMS Encryption Dashboard Viewer( Enables viewing KMS encryption dashboard. |
|
Cloud KMS Expert PQ Asymmetric Signing Key Manager( Enables PQ asymmetric signing key management. |
|
Cloud KMS Expert Raw AES-CBC Key Manager( Enables raw AES-CBC keys management. Lowest-level resources where you can grant this role:
|
|
Cloud KMS Expert Raw AES-CTR Key Manager( Enables raw AES-CTR keys management. Lowest-level resources where you can grant this role:
|
|
Cloud KMS Expert Raw PKCS#1 Key Manager( Enables raw PKCS#1 keys management. Lowest-level resources where you can grant this role:
|
|
Cloud KMS single-tenant HSM Executor( Grants ability to execute SingleTenantHsmInstanceProposal resources. |
|
Cloud KMS single-tenant HSM Key Creator( Grants ability to use single-tenant HSM instances to create keys. This role must be combined with another role that grants the ability to create cryptoKeys. |
|
Cloud KMS single-tenant HSM Proposer( Grants ability to create SingleTenantHsmInstances and SingleTenantHsmInstanceProposals. |
|
Cloud KMS single-tenant HSM Quorum Member( Grants ability to approve SingleTenantHsmInstanceProposal resources. |
|
Cloud KMS Importer( Enables ImportCryptoKeyVersion, CreateImportJob, ListImportJobs, and GetImportJob operations |
|
Key Access Justifications Enrollment Viewer( Grant ability to view Key Access Justification enrollment configs of a project. |
|
Key Access Justifications Policy Config Admin( Grant ability to manage Key Access Justifications Policy at parent resource level. |
|
Cloud KMS Protected Resources Viewer( Enables viewing protected resources. |
|
Cloud KMS CryptoKey Public Key Viewer( Enables GetPublicKey operations Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Signer( Enables Sign operations Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Signer/Verifier( Enables Sign, Verify, and GetPublicKey operations Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Verifier( Enables Verify and GetPublicKey operations Lowest-level resources where you can grant this role:
|
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Cloud KMS Organization Service Agent( Gives Cloud KMS organization-level service account access to managed resources. |
|
Cloud KMS Service Agent( Gives Cloud KMS service account access to managed resources. |
|
Cloud KMS KACLS Service Agent( Grants Cloud KMS KACLS Service Agent access to KMS resource permissions to perform DEK encryption/decryption. |
|
תפקידים בהתאמה אישית
בנוסף לתפקידים שהוגדרו מראש, אפשר ליצור תפקידים בהתאמה אישית. תפקידים בהתאמה אישית מאפשרים לכם לאכוף את העיקרון של הרשאות מינימליות, כי אתם יכולים להעניק לתפקיד את ההרשאות המינימליות שנדרשות לביצוע משימה מסוימת.
תפקיד בהתאמה אישית כולל הרשאה אחת או יותר מההרשאות שמפורטות בהפניה ל-IAM.
ההרשאות שקשורות ל-Cloud Key Management Service API מתחילות במחרוזת cloudkms.
מידע נוסף זמין במאמר בנושא רמות התמיכה להרשאות בתפקידים בהתאמה אישית.
מידע על ההרשאות שנדרשות להפעלת method ספציפית של Cloud Key Management Service API זמין בהפניה ל-API של אותה method.
הנחיות כלליות לניהול גישה ב-Cloud KMS
מומלץ להימנע משימוש בתפקידים בסיסיים ברמת הפרויקט, כמו owner, editor ו-viewer. בתפקידים האלה אין הפרדה בין היכולת לנהל מפתחות לבין היכולת להשתמש במפתחות לפעולות קריפטוגרפיות, ולכן לא מומלץ להשתמש בהם בסביבות ייצור. במקום זאת, צריך להשתמש בתפקידים מוגדרים מראש או ליצור תפקידים בהתאמה אישית שמשקפים את הדרישות העסקיות שלכם.
הדוגמאות הבאות ממחישות כמה הנחיות טובות לאבטחה:
בארגון גדול או מורכב, יכול להיות שתבחרו בגישה כמו זו שמתוארת בהמשך:
- נותנים לחברים בצוות אבטחת ה-IT את התפקיד Cloud KMS Admin (
roles/cloudkms.admin) בכל הפרויקטים. אם חברי צוות שונים מטפלים בהיבטים שונים של מחזור החיים של מפתח, אתם יכולים להעניק לחברי הצוות האלה תפקיד עם הרשאות ספציפיות יותר, כמו התפקיד 'יבואן ב-Cloud KMS' (roles/cloudkms.importer). - צריך להעניק למשתמשים או לאפליקציות שקוראים או כותבים נתונים מוצפנים את התפקיד Encrypter / Decrypter ב-Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter). - מקצים למשתמשים או לאפליקציות שצריכים לצפות בחלק הציבורי של מפתח שמשמש להצפנה אסימטרית את התפקיד 'צפייה במפתח ציבורי של Cloud KMS' (
roles/cloudkms.publicKeyViewer). - ליצור תפקידים מוגדרים מראש שמתאימים לדרישות העסקיות שלכם. לדוגמה, יכול להיות שמשתמש מסוים יצטרך לעקוב אחרי המכסות של פרויקט ולצפות בנתוני יומן.
- נותנים לחברים בצוות אבטחת ה-IT את התפקיד Cloud KMS Admin (
בארגון קטן עם דרישות אבטחה פשוטות, אפשר לבחור בגישה פשוטה יותר ולהעניק תפקיד רחב כמו אדמין ארגוני (
roles/resourcemanager.organizationAdmin). עם זאת, יכול להיות שהגישה הזו לא תתאים לדרישות שלכם בהמשך.מומלץ לארח את המפתחות ב Cloud de Confiance פרויקט נפרד מהנתונים שמוגנים על ידי המפתחות האלה. משתמש עם תפקיד בסיסי או תפקיד עם הרשאות גבוהות בפרויקט אחד, כמו
editor, לא יכול להשתמש בתפקיד הזה כדי לקבל גישה לא מורשית למפתחות בפרויקט אחר.לא מומלץ להעניק את התפקיד
ownerלאף חבר. בלי התפקידowner, אף חבר בפרויקט לא יכול ליצור מפתח ולהשתמש בו כדי לפענח נתונים או לחתום עליהם, אלא אם כל אחת מההרשאות האלה מוענקת לחבר הזה. כדי להעניק גישת אדמין רחבה בלי להעניק את היכולת להצפין או לפענח, מקצים במקום זאת את התפקיד Cloud KMS Admin (roles/cloudkms.admin).כדי להגביל את הגישה לנתונים מוצפנים, כמו נתוני לקוחות, אפשר להגביל את הגישה למפתח ואת השימוש במפתח לפענוח. אם צריך, אפשר ליצור תפקידים בהתאמה אישית עם הרשאות ספציפיות כדי לעמוד בדרישות העסקיות.
בדיקת הרשאות
לכל סוג אובייקט ב-Cloud KMS שאפשר להגדיר לו הרשאות IAM ברמת גרנולרית, יש method testIamPermissions.
ה-method testIamPermissions מחזירה את סדרת ההרשאות שניתנו למשתמש ששלח את הקריאה לאובייקט הזה.
- במקרה של מחזיקי מפתחות, אפשר להפעיל את השיטה
cloudkms.keyRings.testIamPermissions. - כדי להפעיל את השיטה
cloudkms.cryptoKeys.testIamPermissionsעבור מפתחות. - במשימות ייבוא מפתחות, אפשר להפעיל את השיטה
cloudkms.keyRings.importJobs.testIamPermissions. - בחיבורי EKM, אפשר להפעיל את השיטה
cloudkms.ekmConnections.testIamPermissions.
אי אפשר להגדיר הרשאות IAM בגרסת מפתח, ולכן לסוג האובייקט CryptoKeyVersion אין את השיטה הזו.
השיטה testIamPermissions של אובייקט מחזירה TestIamPermissionsResponse.
דוגמאות להפעלת שיטות של testIamPermissions מופיעות במסמכי התיעוד בנושא בדיקת הרשאות ב-IAM.
המאמרים הבאים
- IAM מאפשר לנהל את ההרשאות ואת היקפי הגישה למשאבים של Cloud de Confiance באופן מרכזי.
- הסבר על הסוגים השונים של אובייקטים ב-Cloud KMS.