במאמר הזה מוסבר איך לנהל את הגישה למשאבים של 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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
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# ולהתקין את Cloud KMS C# SDK.
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Java ולהתקין את Java SDK של Cloud KMS.
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 במחזיק מפתחות, יש לו את ההרשאות שמשויכות לכל המפתחות במחזיק המפתחות הזה.
ההפך לא נכון. כלומר, למשתמש שיש לו הרשאה במפתח אבל אין לו הרשאה באוסף המפתחות ברמת ההורה, אין הרשאות באוסף המפתחות הזה.