במאמר הזה מוסבר איך לנהל את הגישה למשאבים של Cloud KMS.
סקירה כללית
כדי לנהל את הגישה למשאבי Cloud KMS, כמו מפתחות וקבוצות מפתחות, צריך להקצות תפקידים בניהול זהויות והרשאות גישה (IAM). אתם יכולים להעניק או להגביל את היכולת לבצע פעולות הצפנה ספציפיות, כמו רוטציה של מפתח או הצפנת נתונים. אפשר להקצות תפקידי IAM ב:
- מפתח ישירות
- אוסף מפתחות, שמועבר בירושה לכל המפתחות באוסף המפתחות הזה
- Google Cloud פרויקט, שמועבר בירושה לכל המפתחות בפרויקט
- תיקייה Google Cloud , שכל המפתחות בכל הפרויקטים בתיקייה יורשים
- Google Cloud ארגון, שמועבר בירושה לכל המפתחות בתיקיות בארגון
רשימה מלאה של פעולות ב-Cloud KMS, תפקידי IAM והרשאות מופיעה במאמר הרשאות ותפקידים. רשימה מלאה של משאבי Cloud KMS והקשר ביניהם זמינה במאמר משאבי Cloud KMS.
לפני שמתחילים
כדי לבצע את המשימות האלה, אתם צריכים הרשאה לניהול משאבי Cloud KMS בפרויקט Google Cloud . התפקיד Cloud KMS Admin (roles/cloudkms.admin) כולל את ההרשאות הנדרשות.
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init - יוצרים משאב, כמו אוסף מפתחות.
- מקבלים את מזהי המשאבים של המשאבים שנוצרו, כמו אוסף מפתחות, מפתח וגרסת מפתח.
רק משתמשים ב-IAM עם התפקידים Owner (roles/owner) או Cloud KMS Admin (roles/cloudkms.admin) יכולים לתת או לבטל גישה למשאבי Cloud KMS.
הקצאת תפקידים במשאב
בדוגמה הבאה מוקצה תפקיד שמעניק גישה למפתח Cloud KMS:
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה האחרונה של Google Cloud CLI או לשדרג אליה.
gcloud kms keys add-iam-policy-binding key \
--keyring key-ring \
--location location \
--member principal-type:principal-email \
--role roles/role
מחליפים את key בשם המפתח. מחליפים את key-ring בשם של אוסף המפתחות שבו נמצא המפתח. מחליפים את הערך location במיקום ב-Cloud KMS של אוסף המפתחות. מחליפים את principal-type ואת principal-email בסוג החשבון הראשי ובכתובת האימייל של החשבון הראשי. מחליפים את role בשם התפקיד שרוצים להוסיף.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח בשפת C# ולהתקין את ה-SDK של Cloud KMS C# .
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך לקרוא על שימוש ב-PHP ב- Google Cloud ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
ביטול הגישה למשאב
כדי להסיר את הגישה של גורם ראשי למפתח Cloud KMS:
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה האחרונה של Google Cloud CLI או לשדרג אליה.
gcloud kms keys remove-iam-policy-binding key \
--keyring key-ring \
--location location \
--member principal-type:principal-email \
--role roles/role-name
מחליפים את key בשם המפתח. מחליפים את key-ring בשם של אוסף המפתחות שבו נמצא המפתח. מחליפים את הערך location במיקום ב-Cloud KMS של אוסף המפתחות. מחליפים את principal-type ואת principal-email בסוג החשבון הראשי ובכתובת האימייל של החשבון הראשי. מחליפים את role-name בשם התפקיד שרוצים להסיר.
כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח בשפת C# ולהתקין את ה-SDK של Cloud KMS C# .
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך לקרוא על שימוש ב-PHP ב- Google Cloud ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
הצגת הרשאות במשאב
כדי לראות את מדיניות ה-IAM של מפתח Cloud KMS:
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה האחרונה של Google Cloud CLI או לשדרג אליה.
gcloud kms keys get-iam-policy key \
--keyring key-ring \
--location location
מחליפים את key בשם המפתח. מחליפים את key-ring בשם של אוסף המפתחות שבו נמצא המפתח. מחליפים את הערך location במיקום ב-Cloud KMS של אוסף המפתחות.
כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח בשפת C# ולהתקין את ה-SDK של Cloud KMS C# .
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך לקרוא על שימוש ב-PHP ב- Google Cloud ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
העיקרון של הרשאות מינימליות
כדי לפעול לפי העיקרון של הרשאות מינימליות, צריך להעניק את קבוצת ההרשאות הכי מצומצמת לאובייקט הכי נמוך בהיררכיית המשאבים.
כדי לתת לחשבון משתמש הרשאות להצפנת נתונים (אבל לא לפענוח שלהם), צריך לתת לו את התפקיד
roles/cloudkms.cryptoKeyEncrypterבמפתח.כדי להעניק לחשבון משתמש הרשאות להצפנה ולפענוח של נתונים, צריך להעניק לו את התפקיד
roles/cloudkms.cryptoKeyEncrypterDecrypterבמפתח.כדי להעניק לחשבון משתמש הרשאות לאימות נתונים (אבל לא לחתימה עליהם), צריך להקצות לו את התפקיד
roles/cloudkms.publicKeyViewerבמפתח.כדי להעניק לחשבון משתמש הרשאות לחתום על נתונים ולאמת אותם, צריך להעניק לו את התפקיד
roles/cloudkms.signerVerifierבמפתח.כדי לתת לחשבון משתמש הרשאות לניהול מפתח, צריך לתת לו את התפקיד
roles/cloudkms.adminבמפתח.
זוהי רשימה חלקית בלבד. רשימה מלאה של הרשאות ותפקידים מופיעה במאמר בנושא הרשאות ותפקידים ב-Cloud KMS.
היררכיה וירושה
אפשר לציין את הקישורים למדיניות בפרויקט, באוסף המפתחות, במפתח, במשימת הייבוא ובמשאבים אחרים של Cloud KMS.
מכיוון שמפתחות שייכים למחזיקי מפתחות, ומחזיקי מפתחות שייכים לפרויקטים, סובייקט עם תפקיד או הרשאה ספציפיים ברמה גבוהה יותר בהיררכיה הזו יורש את אותן הרשאות במשאבי הצאצא. כלומר, משתמש עם התפקיד owner בפרויקט הוא גם owner בכל מחזיקי המפתחות והמפתחות בפרויקט הזה. באופן דומה, אם למשתמש מוענק התפקיד cloudkms.admin במחזיק מפתחות, יש לו את ההרשאות המשויכות לכל המפתחות במחזיק המפתחות הזה.
ההפך לא נכון. כלומר, למשתמש שיש לו הרשאה במפתח אבל אין לו הרשאה באוסף המפתחות ברמת ההורה, אין הרשאות באוסף המפתחות הזה.