הפעלת Cloud KMS Autokey

במאמר הזה מוסבר איך להפעיל ולהגדיר את Cloud KMS Autokey באמצעות מסוף Google Cloud ,‏ Google Cloud CLI,‏ Cloud KMS API או Terraform. אתם יכולים להפעיל את Autokey עם אחסון מפתחות בפרויקט ייעודי לתיקייה, או להפעיל את Autokey עם אחסון מפתחות באותו פרויקט לפרויקט ספציפי או לכל הפרויקטים בתיקייה. מידע נוסף על Autokey זמין במאמר סקירה כללית על Autokey.

המסמך הזה מיועד לאדמינים.

העברת הגדרות של מפתחות אוטומטיים

כשמגדירים Autokey בתיקייה, תיקיות צאצא ופרויקטים בתוך התיקייה הזו מקבלים בירושה את הגדרת Autokey של תיקיית האב שלהם. כשמגדירים את Autokey בתיקיית צאצא או בפרויקט צאצא, אפשר להחליט אם להעביר את ההגדרה בירושה מהמשאב האב או ליצור הגדרת Autokey חדשה למשאב הזה. הגדרות של Autokey שמוחלות על משאבי צאצא מבטלות את ההגדרה של תיקיית האב.

בטבלה הבאה מוצגים תרחישים נתמכים לשימוש בהגדרת Autokey:

סוג המשאב הגדרת Autokey תיאור
ארגון לא רלוונטי אי אפשר להפעיל את Autokey בארגונים. משאבי צאצא בארגון יורשים משאב AutokeyConfig ריק. במסוף Google Cloud , המשאבים האלה מציגים סטטוס של לא מופעל עבור Autokey. אם רוצים להגביל את השימוש ב-Autokey בארגון או להשבית אותו לגמרי, אפשר להשתמש במדיניות הארגון. מידע נוסף זמין במאמר בנושא שליטה בשימוש במפתחות אוטומטיים.
תיקייה DEDICATED_KEY_PROJECT התכונה Autokey עם אחסון מפתחות ייעודי לפרויקט מופעלת בפרויקטים של משאבים בתיקייה. בפרויקטים של משאבים שמוגדרים עם ההגדרה הזו, Autokey יוצר מפתחות בפרויקט המפתחות הייעודי.
תיקייה RESOURCE_PROJECT האפשרות 'הוספת מפתח אוטומטית' עם אחסון מפתחות באותו פרויקט מופעלת בפרויקטים של משאבים בתוך התיקייה. בפרויקטים של משאבים שמקבלים בירושה את ההגדרה הזו, Autokey יוצר מפתחות באותו פרויקט שבו נמצאים המשאבים שהוא מגן עליהם.
תיקייה DISABLED התכונה Autokey מושבתת בתיקייה, אבל תיקיות צאצא ופרויקטים עדיין יכולים לעקוף את ההגדרה הזו. אם רוצים להגביל את השימוש ב-Autokey בתיקייה או להשבית אותו לגמרי, אפשר להשתמש במדיניות הארגון. מידע נוסף זמין במאמר בנושא שליטה בשימוש במקשי Autokey.
תיקייה KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED התיקייה יורשת את הגדרת המקשים האוטומטיים מהתיקייה או מהארגון ברמת ההורה.
פרויקט RESOURCE_PROJECT האפשרות 'מפתח אוטומטי' עם אחסון מפתחות באותו פרויקט מופעלת בפרויקט המשאב. למשאבים שנוצרו בפרויקט הזה, Autokey יוצר מפתחות באותו הפרויקט.
פרויקט DISABLED התכונה 'הוספת נקודות מפתח אוטומטית' מושבתת בפרויקט המשאב. מפתחים שיוצרים משאבים בפרויקט הזה צריכים ליצור ולספק מפתחות באופן ידני אם הם רוצים להשתמש ב-CMEK למשאבים שהם יוצרים.
פרויקט KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED הפרויקט יורש את הגדרת המקשים האוטומטיים מהתיקייה הראשית שלו.

לפני שמתחילים

כדי להפעיל את Autokey עם אחסון מפתחות בפרויקט ייעודי לתיקייה, צריך לוודא שיש לכם את הדברים הבאים:

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

  • אם יש לכם פרויקטים של משאבים שבהם אתם רוצים להשתמש ב-Autokey עם אחסון מפתחות בפרויקט ייעודי, אבל הם לא נמצאים בתיקייה שבה תפעילו את Autokey, אתם יכולים להעביר פרויקטים קיימים של משאבים לתיקיות חדשות.

כדי להפעיל את Autokey עם אחסון מפתחות באותו פרויקט, צריך להיות לכם אחד מהדברים הבאים:

  • פרויקט Google Cloud שבו רוצים להפעיל את Autokey, ושבו ההרשאה keyHandles.create לא חסומה על ידי מדיניות דחייה של IAM.
  • Google Cloud תיקייה שבה רוצים להפעיל את Autokey, שמכילה לפחות פרויקט אחד שבו ההרשאה keyHandles.create לא חסומה על ידי מדיניות דחייה של IAM.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להפעלה ולהגדרה של Autokey, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בתיקייה, בפרויקט או במשאב אב:

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

התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות להפעלה ולהגדרה של Autokey. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי להפעיל ולהגדיר את Autokey, צריך את ההרשאות הבאות:

  • כדי להפעיל את Autokey:
    • cloudkms.autokeyConfigs.*
    • serviceusage.services.enable
  • כדי להפעיל את Autokey עם אחסון מפתחות בפרויקט ייעודי:
    • resourcemanager.folders.get
    • resourcemanager.folders.getIamPolicy
    • resourcemanager.folders.setIamPolicy
    • billing.resourceAssociations.create
  • כדי לראות את ההגדרה של Autokey:
    • cloudkms.folders.showEffectiveAutokeyConfig
    • cloudkms.projects.showEffectiveAutokeyConfig
  • כדי לראות את כל ההגדרות האפקטיביות של Autokey:
    • cloudasset.assets.query
    • serviceusage.services.use

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

הגדרת Terraform

בקטע הזה יש דוגמאות למשתנים ולמשאבים של Terraform, שהם תנאים מוקדמים לשאר הדוגמאות של Terraform במסמך הזה. אם אתם לא משתמשים ב-Terraform כדי ליצור או לנהל את ההגדרות של Autokey, אתם יכולים לדלג על הקטע הזה.

כאן אפשר ללחוץ כדי להציג או להסתיר את דוגמת ההגדרה של Terraform

הדוגמה הזו מבצעת את פעולות ההגדרה הבאות:

  1. מגדירים משתנים שמשמשים בדוגמאות הבאות של Terraform.
  2. יוצרים תיקיית משאבים. אפשר לדלג על השלב הזה אם אתם מתכננים להשתמש רק באחסון מפתחות באותו פרויקט בפרויקטים נפרדים.
  3. נותנים תפקידי אדמין ומשתמש ב-Autokey.
  variable "organization_ID" {
    description = "Your Google Cloud Org ID"
    type        = string
    default     = "ORGANIZATION_ID"
  }

  variable "billing_account" {
    description = "Your Google Cloud Billing Account ID"
    type        = string
    default     = "BILLING_ACCOUNT_ID"
  }

  /* List the users who should have the authority to enable and configure
    Autokey at a folder level */
  variable "autokey_folder_admins" {
    type    = list(string)
    default = [AUTOKEY_ADMIN_USER_IDS]
  }

  /* List the users who should have the authority to protect their resources
    with Autokey */
  variable "autokey_folder_users" {
    type    = list(string)
    default = [AUTOKEY_DEVELOPER_USER_IDS]
  }

  /* List the users who should have the authority to manage crypto operations
    in the Autokey key project */
  variable "autokey_project_kms_admins" {
    type    = list(string)
    default = [KEY_PROJECT_ADMIN_USER_IDS]
  }

  # Create a new folder
  resource "google_folder" "autokey_folder" {
    parent       = "organizations/${var.organization_ID}"
    display_name = "autokey_folder"
  }
  /* To use a folder that already exists, omit this block and instead create a
     variable for the folder ID instead, and then update subsequent resources
     to use the variable. */

  # Set permissions for key admins to use Autokey in this folder
  resource "google_folder_iam_binding" "autokey_folder_admin" {
    folder  = google_folder.autokey_folder.name
    role    = "roles/cloudkms.autokeyAdmin"
    members = var.autokey_folder_admins
  }

  /* Set permissions for users to protect resources with Autokey in
    this folder */
  resource "google_folder_iam_binding" "autokey_folder_users" {
    folder  = google_folder.autokey_folder.name
    role    = "roles/cloudkms.autokeyUser"
    members = var.autokey_folder_users
  }
  

מחליפים את מה שכתוב בשדות הבאים:

  1. BILLING_ACCOUNT_ID: מזהה Google Cloud החשבון לחיוב. מזהה החשבון לחיוב הוא ערך אלפאנומרי באורך 18 תווים שמופרדים במקפים – לדוגמה, 010101-F0FFF0-10XX01.
  2. AUTOKEY_ADMIN_USER_IDS: רשימה של כתובות אימייל של משתמשים שצריכים לקבל את התפקיד roles/cloudkms.autokeyAdmin, לדוגמה, "Ariel@example.com", "Charlie@example.com".
  3. AUTOKEY_DEVELOPER_USER_IDS: רשימה של כתובות אימייל של משתמשים שצריכים לקבל את התפקיד `roles/cloudkms.autokeyUser` – לדוגמה, "Kalani@example.com", "Mahan@example.com".
  4. KEY_PROJECT_ADMIN_USER_IDS: רשימה של כתובות אימייל של משתמשים שצריך להקצות להם את התפקיד `roles/cloudkms.admin` – לדוגמה, "Sasha@example.com", "Nur@example.com".

הגדרת Autokey עם אחסון מפתחות בפרויקט ייעודי

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

מומלץ ליצור פרויקט מפתחות חדש שיכיל משאבי Cloud KMS שנוצרו על ידי Autokey. מומלץ ליצור את פרויקט המפתח בתוך משאב הארגון. אם כבר יש לכם פרויקט מפתח שאתם רוצים להשתמש בו בשביל מפתחות שנוצרו על ידי Autokey, אתם יכולים לדלג על הקטע יצירת פרויקט מפתח ולהמשיך לקטע הגדרת פרויקט המפתח של Autokey בדף הזה.

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

אם אתם רוצים להעביר את הפרויקט ל-Assured Workloads בעתיד, כדאי ליצור את פרויקט המפתח בתוך אותה תיקייה שבה נמצאים המשאבים שמוגנים על ידי המפתחות האלה.

אם הארגון שלכם משתמש באילוץ מדיניות הארגון constraints/gcp.restrictCmekCryptoKeyProjects כדי לוודא שכל מפתחות ה-CMEK מגיעים מפרויקטים ספציפיים של מפתחות, אתם צריכים להוסיף את פרויקט המפתחות לרשימת הפרויקטים המורשים. מידע נוסף על מדיניות הארגון לגבי CMEK

יצירת פרויקט מרכזי

המסוף

  1. נכנסים לדף Manage resources במסוף Google Cloud .

    כניסה לדף Manage resources

  2. בקטע Select organization (בחירת ארגון), בוחרים את משאב הארגון שבו רוצים ליצור פרויקט.
  3. לוחצים על יצירת פרויקט.
  4. בחלון New project שמופיע, מזינים שם לפרויקט ובוחרים חשבון לחיוב. שם הפרויקט יכול להכיל רק אותיות, מספרים, מירכאות בודדות, מקפים, רווחים או סימני קריאה, והוא צריך להיות באורך של 4 עד 30 תווים.
  5. בקטע Location, בוחרים את המשאב שרוצים להגדיר כמשאב האב של פרויקט המפתח.
  6. כדי לסיים את יצירת הפרויקט, לוחצים על יצירה.

gcloud

  • כדי ליצור פרויקט חדש:

    gcloud projects create PROJECT_ID \
        --PARENT_TYPE=PARENT_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט שמכיל את מחזיק המפתחות.
    • PARENT_TYPE: סוג המשאב שבו רוצים ליצור את פרויקט המפתח החדש. מזינים organization כדי ליצור את פרויקט המפתח החדש בארגון נתון, או מזינים folder כדי ליצור את פרויקט המפתח החדש בתיקייה נתונה.
    • PARENT_ID: המזהה של הארגון או התיקייה שבהם רוצים ליצור את פרויקט המפתח.

REST

  • כדי ליצור פרויקט חדש:

    curl "https://cloudresourcemanager.googleapis.com/v3/projects/"
        --request "POST" \
        --header "authorization: Bearer TOKEN" \
        --header "content-type: application/json" \
        --data '{ "projectId": "PROJECT_ID", "name": "PROJECT_NAME", "parent": "PARENT_TYPE/PARENT_ID" }'
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: המזהה שרוצים להשתמש בו לפרויקט המפתח הייעודי.
    • PROJECT_NAME: השם שבו רוצים להשתמש לפרויקט המפתח הייעודי.
    • PARENT_TYPE: סוג המשאב של משאב האב שבו רוצים ליצור את פרויקט המפתח הייעודי, לדוגמה organizations או folders.
    • PARENT_ID": מזהה המשאב של משאב האב שבו רוצים ליצור את פרויקט המפתח הייעודי.

Terraform

בדוגמה הבאה של Terraform נוצר פרויקט מפתח ייעודי בתיקייה שנוצרה קודם.

/* Define the project ID to use for the dedicated key project. The project
  ID must be 6 to 30 characters with lowercase letters, digits, hyphens. The
  project ID must start with a letter. Trailing hyphens are prohibited */
variable "key_management_project_ID" {
  description = "Sets the project ID for the dedicated key project. This project will contain the Key Rings and Keys generated by Cloud KMS Autokey"
  type        = string
  default     = "KEY_PROJECT_ID"
}

# Create a key project to store keys created by Autokey
resource "google_project" "key_management_project" {
  project_id      = var.key_management_project_ID
  name            = var.key_management_project_ID
  billing_account = var.billing_account
  folder_id       = google_folder.autokey_folder.name
}

output "project_number" {
  value = google_project.key_management_project.number
}

מחליפים את KEY_PROJECT_ID במזהה שבו רוצים להשתמש לפרויקט המפתח הייעודי – לדוגמה, autokey-key-project.

הגדרת שיעבוד פרויקט

אחרי שיוצרים את פרויקט Cloud KMS, מומלץ להגן על הפרויקט באמצעות מנעול למניעת מחיקה (גרסת טרום-השקה (Preview)) כדי למנוע מחיקה מקרית. כשמפעילים מנעול למניעת מחיקה של פרויקט, אי אפשר למחוק את פרויקט Cloud KMS עד שמסירים את המנעול.

הכנת פרויקט המפתח הייעודי

המסוף

  1. מפעילים את Cloud KMS API בפרויקט המפתח.

    להפעלת ה-API

  2. אם משתמשים בפרויקט מפתח חדש, צריך להעניק הרשאות אדמין של Cloud KMS בפרויקט המפתח. חוזרים על השלבים הבאים כדי להעניק לעצמכם ולכל משתמש אחר עם הרשאת אדמין ב-Cloud KMS את התפקיד Cloud KMS Admin:

    1. נכנסים לדף IAM במסוף Google Cloud .

      כניסה לדף IAM

    2. בוחרים את פרויקט המפתח.

    3. לוחצים על Grant Access ומזינים את כתובת האימייל של המשתמש.

    4. בוחרים בתפקיד Cloud KMS Admin.

    5. לוחצים על Save.

gcloud

  1. מפעילים את Cloud KMS API בפרויקט של המפתח:

    gcloud services enable cloudkms.googleapis.com
    
  2. מעניקים הרשאות אדמין ב-Cloud KMS בפרויקט המפתח. מריצים את הפקודה הבאה כדי להעניק את התפקיד roles/cloudkms.admin לעצמכם ולכל משתמש אחר שהוא אדמין של Cloud KMS:

    gcloud projects add-iam-policy-binding PROJECT_NUMBER \
        --role=roles/cloudkms.admin \
        --member=user:KEY_ADMIN_EMAIL
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NUMBER: מספר הפרויקט של פרויקט המפתח.
    • KEY_ADMIN_EMAIL: כתובת האימייל של המשתמש שאחראי לניהול מפתחות Cloud KMS.

REST

  1. מפעילים את Cloud KMS API בפרויקט של המפתח:

    curl "https://serviceusage.googleapis.com/v1/projects/PROJECT_ID/services/cloudkms.googleapis.com:enable" \
        --request "POST" \
        --header "authorization: Bearer TOKEN"
    

    מחליפים את PROJECT_ID במזהה של הפרויקט עם המקש הייעודי.

  2. מאחזרים את מדיניות ה-IAM הנוכחית של פרויקט המפתח הייעודי.

    curl "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy" \
        --request POST \
        --header "authorization: Bearer TOKEN"
        --header "Content-Type: application/json; charset=utf-8" \
        --data '{"options": {"requestedPolicyVersion": 3}}'
    

    התשובה מכילה את מדיניות ההרשאות הנוכחית של הפרויקט.

  3. כדי לערוך את מדיניות ההרשאות שמוחזרת, מוסיפים את התפקיד roles/cloudkms.admin לכל משתמש אדמין ב-Cloud KMS, כולל אתכם, באמצעות הקישור הבא בין תפקידים כדוגמה:json { "role": "roles/cloudkms.admin", "members": [ "PRINCIPAL_LIST" ], }

    מחליפים את PRINCIPAL_LIST ברשימה מופרדת בפסיקים של חשבונות ראשיים של משתמשים. לדוגמה, admin_1@example.com,admin_2@example.com.

    השינוי הזה ייכנס לתוקף רק אחרי שתגדירו את המדיניות החדשה.

  4. מגדירים את מדיניות ההרשאות החדשה.

    curl "https://cloudresourcemanager.googleapis.com/1/projects/PROJECT_ID:setIamPolicy" \
        --request POST \
        --header "authorization: Bearer TOKEN" \
        --header "Content-Type: application/json; charset=utf-8" \
        --data 'ALLOW_POLICY'
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: המזהה של פרויקט המפתחות הייעודי.
    • ALLOW_POLICY: קובץ ה-JSON המעודכן של מדיניות ההרשאות שיצרתם בשלב הקודם, כולל ההרשאות הקיימות לתפקידים וההרשאות שזה עתה הוספתם.

Terraform

דוגמת ה-Terraform הבאה מפעילה את Cloud KMS API בפרויקט המפתח הייעודי ומעניקה את התפקיד roles/cloudkms.admin לחשבונות הראשיים של האדמין ב-Cloud KMS שזוהו קודם.

# Enable the Cloud KMS API in the key project
resource "google_project_service" "enable_api" {
  service                    = "cloudkms.googleapis.com"
  project                    = google_project.key_management_project.project_id
  disable_on_destroy         = false
  disable_dependent_services = false
  depends_on                 = [google_project.key_management_project]
}

/* Grant role for Cloud KMS admins to use Autokey in the
   dedicated key project */
resource "google_project_iam_binding" "autokey_project_admin" {
  project    = google_project.key_management_project.project_id
  role       = "roles/cloudkms.admin"
  members    = var.autokey_project_kms_admins
  depends_on = [ google_project.key_management_project ]
}

הפעלת Cloud KMS Autokey בתיקיית משאבים

המסוף

  1. נכנסים לדף Key management controls במסוף Google Cloud .

    מעבר לאמצעי הבקרה לניהול מפתחות

  2. בכלי לבחירת ההקשר, בוחרים את התיקייה שבה רוצים להפעיל את Autokey עם אחסון מפתחות ייעודי לפרויקט.
  3. בקטע Autokey (הקצאת מקשים אוטומטית), לוחצים על Manage (ניהול).
  4. לוחצים על Configure (הגדרה).
  5. בקטע מקור ההגדרה, בוחרים באפשרות הגדרה לתיקייה.
  6. בקטע Configuration (הגדרה), בוחרים באפשרות Enable dedicated-project key storage (הפעלת אחסון מפתחות בפרויקט ייעודי).
  7. בוחרים את פרויקט המפתח ולוחצים על שליחה.

    תופיע הודעה שתאשר שהתכונה Cloud KMS Autokey מופעלת בתיקייה.

gcloud

  1. יוצרים קובץ YAML שמכיל את הפרטים הבאים AutokeyConfig:

    name: folders/FOLDER_NUMBER/autokeyConfig
    keyProjectResolutionMode: DEDICATED_KEY_PROJECT
    keyProject: projects/PROJECT_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • FOLDER_NUMBER: מספר התיקייה שבה רוצים להפעיל את Autokey עם אחסון מפתחות בפרויקט ייעודי.
    • PROJECT_ID: המזהה של פרויקט המפתחות הייעודי.
  2. מחילים את AutokeyConfig על התיקייה:

    gcloud kms autokey-config update AUTOKEY_CONFIG_PATH
    

    מחליפים את AUTOKEY_CONFIG_PATH בנתיב לקובץ YAML שיצרתם בשלב הקודם.

REST

יוצרים את AutokeyConfig לתיקייה שבה רוצים להפעיל את Autokey עם אחסון מפתחות ייעודי לפרויקט:

curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProject,keyProjectResolutionMode" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"keyProject": "projects/PROJECT_ID", "keyProjectResolutionMode": "DEDICATED_KEY_PROJECT"}'

מחליפים את מה שכתוב בשדות הבאים:

  • FOLDER_ID: המזהה של התיקייה שבה רוצים להפעיל את Autokey.
  • PROJECT_ID: מזהה פרויקט המפתח.

Terraform

/* Enable AutokeyConfig for dedicated-project key storage in the
   folder */
resource "google_kms_autokey_config" "autokey_config" {
  provider    = google-beta
  folder      = google_folder.autokey_folder.folder_id
  key_project = "projects/${google_project.key_management_project.project_id}"
  key_project_resolution_mode = "DEDICATED_KEY_PROJECT"
  /* For folder scope, valid values are DEDICATED_KEY_PROJECT,
     RESOURCE_PROJECT, and DISABLED. With DEDICATED_KEY_PROJECT, define the
    key_project as well. With RESOURCE_PROJECT, omit key_project. Keys will
    be created in the same project as the protected resource. */
}

הגדרת סוכן השירות של Cloud KMS

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

gcloud

  1. יוצרים את סוכן השירות של Cloud KMS:

    gcloud beta services identity create --service=cloudkms.googleapis.com \
        --project=PROJECT_NUMBER
    

    מחליפים את הערך PROJECT_NUMBER במספר הפרויקט של פרויקט המפתח.

    הפלט אמור להיראות כך:

    Service identity created: service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
    

    הפלט של הפקודה מציין שחשבון השירות של Cloud EKM (עם תת-הדומיין gcp-sa-ekms) נוצר. עם זאת, הפקודה יוצרת גם את סוכן השירות של Cloud KMS (עם תחום המשנה gcp-sa-cloudkms), שהוא סוכן השירות שבו תשתמשו בהמשך ההוראות האלה.

  2. נותנים לסוכן השירות הרשאות אדמין ב-Cloud KMS:

    gcloud projects add-iam-policy-binding PROJECT_NUMBER \
        --role=roles/cloudkms.admin \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
    

    מחליפים את הערך PROJECT_NUMBER במספר הפרויקט של פרויקט המפתח.

Terraform

# Create the Cloud KMS service agent
resource "google_project_service_identity" "KMS_Service_Agent" {
  provider   = google-beta
  service    = "cloudkms.googleapis.com"
  project    = google_project.key_management_project.project_id
  depends_on = [google_project.key_management_project]
}

/* Grant role for the Cloud KMS service agent to use delegated
  Cloud KMS administrator permissions */
resource "google_project_iam_member" "autokey_project_admin" {
  project = google_project.key_management_project.project_id
  role    = "roles/cloudkms.admin"
  member  = "serviceAccount:service-${google_project.key_management_project.number}@gcp-sa-cloudkms.iam.gserviceaccount.com"
}

הפעלת Autokey עם אחסון מפתחות באותו פרויקט

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

כדי להפעיל את Autokey עם אחסון מפתחות באותו פרויקט עבור פרויקט מסוים, מבצעים את השלבים הבאים:

המסוף

  1. נכנסים לדף Key management controls במסוף Google Cloud .

    מעבר לאמצעי הבקרה לניהול מפתחות

  2. בכלי לבחירת ההקשר, בוחרים את הפרויקט שבו רוצים להפעיל את Autokey עם אחסון מפתחות באותו פרויקט.
  3. בקטע Autokey (הקצאת מקשים אוטומטית), לוחצים על Manage (ניהול).
  4. לוחצים על Configure (הגדרה).
  5. בשדה מקור ההגדרה, בוחרים באפשרות הגדרה לפרויקט.
  6. בקטע הגדרה, בוחרים באפשרות הפעלת אחסון מפתחות באותו פרויקט.
  7. לוחצים על שליחה.

    תופיע הודעה שתאשר שהתכונה Cloud KMS Autokey מופעלת בפרויקט.

gcloud

  1. יוצרים קובץ YAML שמכיל את הפרטים הבאים AutokeyConfig:

    name: projects/PROJECT_ID/autokeyConfig
    keyProjectResolutionMode: RESOURCE_PROJECT
    keyProject:
    

    מחליפים את PROJECT_ID במזהה של הפרויקט שבו רוצים להפעיל את Autokey עם אחסון מפתחות באותו פרויקט.

  2. מחילים את AutokeyConfig על הפרויקט:

    gcloud kms autokey-config update AUTOKEY_CONFIG_PATH
    

    מחליפים את AUTOKEY_CONFIG_PATH בנתיב לקובץ YAML שיצרתם בשלב הקודם.

  3. מפעילים את Cloud KMS API בפרויקט:

    gcloud services enable cloudkms.googleapis.com
    

REST

  1. באמצעות API בארכיטקטורת REST, יוצרים את AutokeyConfig לפרויקט שבו רוצים להפעיל את Autokey עם אחסון מפתחות באותו פרויקט:

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/autokeyConfig?updateMask=keyProjectResolutionMode,keyProject" \
        --request "PATCH" \
        --header "authorization: Bearer TOKEN" \
        --header "content-type: application/json" \
        --data '{"keyProjectResolutionMode": "RESOURCE_PROJECT", "keyProject": ""}'
    

    מחליפים את PROJECT_ID במזהה הפרויקט שבו רוצים להפעיל את Autokey.

  2. ב-CLI של gcloud, מפעילים את Cloud KMS API בפרויקט:

    gcloud services enable cloudkms.googleapis.com
    

Terraform

כדי להפעיל את Autokey עם אחסון מפתחות באותו פרויקט בפרויקט ספציפי, משתמשים במשאב autokey_config_project שדומה לזה:

/* To set autokey config for a project */
resource "google_kms_autokey_config" "autokey_config_project" {
  provider = google-beta
  project = "projects/${google_project.key_management_project.project_id}"
  key_project_resolution_mode = "RESOURCE_PROJECT"
  # For project scope, valid values are RESOURCE_PROJECT or DISABLED
}

כדי להפעיל את Autokey עם אחסון מפתחות באותו פרויקט לכל הפרויקטים בתיקייה, מבצעים את השלבים הבאים:

המסוף

  1. נכנסים לדף Key management controls במסוף Google Cloud .

    מעבר לאמצעי הבקרה לניהול מפתחות

  2. בכלי לבחירת ההקשר, בוחרים את התיקייה שבה רוצים להפעיל את Autokey עם אחסון מפתחות באותו פרויקט.
  3. לוחצים על Configure (הגדרה).
  4. בקטע מקור ההגדרה, בוחרים באפשרות הגדרה לתיקייה.
  5. בקטע הגדרה, בוחרים באפשרות הפעלת אחסון מפתחות באותו פרויקט.
  6. לוחצים על שליחה.

    תופיע הודעה שתאשר שהתכונה Cloud KMS Autokey מופעלת בתיקייה.

gcloud

  1. יוצרים קובץ YAML שמכיל את הפרטים הבאים AutokeyConfig:

    name: folders/FOLDER_NUMBER/autokeyConfig
    keyProjectResolutionMode: RESOURCE_PROJECT
    keyProject:
    

    מחליפים את FOLDER_NUMBER במספר התיקייה שבה רוצים להפעיל את Autokey עם אחסון מפתחות באותו פרויקט.

  2. מחילים את AutokeyConfig על התיקייה:

    gcloud kms autokey-config update AUTOKEY_CONFIG_PATH
    

    מחליפים את AUTOKEY_CONFIG_PATH בנתיב לקובץ YAML שיצרתם בשלב הקודם.

REST

  1. באמצעות API בארכיטקטורת REST, יוצרים את AutokeyConfig לתיקייה שבה רוצים להפעיל את Autokey עם אחסון מפתחות באותו פרויקט:

    curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProjectResolutionMode,keyProject" \
        --request "PATCH" \
        --header "authorization: Bearer TOKEN" \
        --header "content-type: application/json" \
        --data '{"keyProjectResolutionMode": "RESOURCE_PROJECT", "keyProject": ""}'
    

    מחליפים את FOLDER_ID במזהה התיקייה שבה רוצים להפעיל את Autokey. הפקודה הזו מפעילה את Autokey עם אחסון מפתחות באותו פרויקט לכל הפרויקטים בתיקייה.

  2. ב-CLI של gcloud, מפעילים את Cloud KMS API בכל פרויקט שבו רוצים להשתמש ב-Autokey עם אחסון מפתחות באותו פרויקט:

    gcloud services enable cloudkms.googleapis.com
    

    אפשר להפעיל את Cloud KMS API בכל הפרויקטים בבת אחת, או להפעיל את ה-API בפרויקטים ספציפיים לפי הצורך. המפתחים לא יכולים להשתמש ב-Autokey בפרויקט עד שמפעילים את Cloud KMS API בפרויקט הזה.

Terraform

כדי להפעיל את Autokey עם אחסון מפתחות באותו פרויקט בכל הפרויקטים בתיקייה, משתמשים במשאב folder_config שדומה לזה:

/* Enable AutokeyConfig on a folder */
resource "google_kms_autokey_config" "folder_config" {
  provider    = google-beta
  folder      = google_folder.autokey_folder.name
  key_project_resolution_mode = "RESOURCE_PROJECT"
  /* For folder scope, valid values are DEDICATED_KEY_PROJECT,
     RESOURCE_PROJECT, or DISABLED. With DEDICATED_KEY_PROJECT, define the
     key_project as well. With RESOURCE_PROJECT, omit key_project. Keys will
     be created in the same project as the protected resource. */
}

ניקוי ההגדרות של Autokey

אפשר לנקות את הגדרת המפתחות האוטומטיים בתיקייה או בפרויקט כדי לחזור להשתמש בהגדרה של תיקיית האב.

המסוף

  1. נכנסים לדף Key management controls במסוף Google Cloud .

    מעבר לאמצעי הבקרה לניהול מפתחות

  2. בתפריט לבחירת הקשר, בוחרים את התיקייה או הפרויקט שבהם רוצים לנקות את הגדרת Autokey.
  3. בקטע Autokey (הקצאת מקשים אוטומטית), לוחצים על Manage (ניהול).
  4. לוחצים על Configure (הגדרה).
  5. בשדה מקור ההגדרה, בוחרים באפשרות העברה בירושה.
  6. לוחצים על שליחה.

gcloud

  1. יוצרים קובץ YAML שמכיל את הפרטים הבאים AutokeyConfig:

    name: RESOURCE_TYPE/RESOURCE_ID/autokeyConfig
    keyProjectResolutionMode: KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED
    keyProject:
    

    מחליפים את מה שכתוב בשדות הבאים:

    • RESOURCE_TYPE: סוג המשאב שבו רוצים לנקות את הגדרת המפתח האוטומטי. מגדירים את הערך folders או projects.
    • RESOURCE_ID: המזהה של התיקייה שבה רוצים לנקות את התצורה של Autokey.
  2. מחילים את AutokeyConfig על התיקייה או הפרויקט:

    gcloud kms autokey-config update AUTOKEY_CONFIG_PATH
    

    מחליפים את AUTOKEY_CONFIG_PATH בנתיב לקובץ YAML שיצרתם בשלב הקודם.

REST

מבטלים את הסימון של AutokeyConfig בתיקייה או בפרויקט שבהם רוצים לחזור להגדרת Autokey שעברה בירושה:

curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/autokeyConfig?updateMask:keyProjectResolutionMode,keyProject" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"keyProjectResolutionMode": "KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED", "keyProject": ""}'

מחליפים את מה שכתוב בשדות הבאים:

  • RESOURCE_TYPE: סוג המשאב שבו רוצים להשבית את Autokey. מגדירים את הערך ל-folders או ל-projects.
  • RESOURCE_ID: המזהה של התיקייה שבה רוצים להשבית את Autokey עם אחסון מפתחות באותו פרויקט.

Terraform

# Clear AutokeyConfig for the folder
resource "google_kms_autokey_config" "autokey_config" {
  provider    = google-beta
  folder      = google_folder.autokey_folder.folder_id
  key_project = ""
  key_project_resolution_mode = "KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED"
}

צפייה בהגדרות האפקטיביות של Autokey

אפשר לראות את ההגדרה האפקטיבית של Autokey בתיקייה או בפרויקט. ההגדרות האפקטיביות של Autokey מראות לכם את הפרטים הבאים:

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

המסוף

  1. נכנסים לדף Key management controls במסוף Google Cloud .

    מעבר לאמצעי הבקרה לניהול מפתחות

  2. בתפריט לבחירת הקשר, בוחרים את התיקייה או הפרויקט שבהם רוצים לראות את ההגדרות של Autokey.
  3. בקטע Autokey (הקצאת מקשים אוטומטית), לוחצים על Manage (ניהול).

gcloud

הצגת התאריך שבו המבצע בתוקף AutokeyConfig:

gcloud kms autokey-config show-effective-config \
    --RESOURCE_TYPE=RESOURCE_ID

מחליפים את מה שכתוב בשדות הבאים:

  • RESOURCE_TYPE: סוג המשאב שרוצים להציג בו את ההגדרה האפקטיבית של Autokey. ההגדרה היא folder או project.
  • RESOURCE_ID: המזהה של המשאב שבו רוצים להציג את תצורת ה-Autokey האפקטיבית.

הפלט אמור להיראות כך:

keyProject: KEY_PROJECT
keyProjectResolutionMode: KEY_PROJECT_RESOLUTION_MODE
source:
  name: RESOURCE_IDENTIFIER

הפלט הזה כולל את הערכים הבאים:

  • KEY_PROJECT: מזהה המשאב של פרויקט המפתח, לדוגמה: projects/PROJECT_ID. אם ההגדרה Autokey מושבתת, או אם המשאב הוא תיקייה שבה מופעל אחסון מפתחות באותו פרויקט, השדה הזה לא יופיע.
  • KEY_PROJECT_RESOLUTION_MODE: keyProjectResolutionMode של המשאב. לדוגמה: RESOURCE_PROJECT,‏ DEDICATED_KEY_PROJECT או DISABLED. אם התכונה Autokey לא מופעלת במשאב או במשאב אב כלשהו, השדה הזה לא יופיע.
  • RESOURCE_IDENTIFIER: מזהה המשאב של המשאב שבו מוגדר AutokeyConfig. כך תוכלו לקבוע אם המאפיין AutokeyConfig עובר בירושה ממשאב אב או מוגדר במשאב ששלחתם לגביו שאילתה.

REST

כדי לראות את המדיניות בפועל AutokeyConfig של תיקייה או פרויקט:

curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:showEffectiveAutokeyConfig" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"
  ```

Replace the following:
  • RESOURCE_TYPE: סוג המשאב שרוצים להציג את ההגדרה של Autokey. ההגדרה היא folders או projects.
  • RESOURCE_ID: המזהה של המשאב שבו רוצים להציג את ההגדרה של Autokey.

הפלט אמור להיראות כך:

{
  "keyProject": KEY_PROJECT,
  "keyProjectResolutionMode": KEY_PROJECT_RESOLUTION_MODE,
  "source": {
    RESOURCE_IDENTIFIER
  }
}

הפלט הזה כולל את הערכים הבאים:

  • KEY_PROJECT: מזהה המשאב של פרויקט המפתח, לדוגמה: projects/PROJECT_ID. אם Autokey מושבת, או אם המשאב הוא תיקייה שבה מופעל אחסון מפתחות באותו פרויקט, השדה הזה לא יופיע.
  • KEY_PROJECT_RESOLUTION_MODE: keyProjectResolutionMode של המשאב. לדוגמה: RESOURCE_PROJECT,‏ DEDICATED_KEY_PROJECT או DISABLED. אם התכונה Autokey לא מופעלת במשאב או במשאב אב כלשהו, השדה הזה לא יופיע.
  • RESOURCE_IDENTIFIER: מזהה המשאב של המשאב שבו מוגדר AutokeyConfig. כך תוכלו לקבוע אם המאפיין AutokeyConfig עובר בירושה ממשאב אב או מוגדר במשאב ששלחתם לגביו שאילתה.

SQL

אתם יכולים להשתמש בשאילתת SQL עם מאגר משאבי ענן כדי להעריך את ההגדרה האפקטיבית של Autokey לכל הפרויקטים בתיקייה או בארגון.

  1. מגדירים משתני סביבה של bash למזהה הארגון ולטווח החיפוש.

    export ORG_ID="ORGANIZATION_ID"
    export TARGET_SCOPE="RESOURCE_TYPE/RESOURCE_ID" 
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ORGANIZATION_ID: המזהה המספרי של הארגון.
    • RESOURCE_TYPE: סוג המשאב שבו רוצים להציג את ההגדרות האפקטיביות של Autokey. הערך organizations מאפשר לראות את ההגדרות של כל הפרויקטים בארגון, והערך folders מאפשר לראות את ההגדרות של כל הפרויקטים בתיקייה ספציפית.
    • RESOURCE_ID: המזהה המספרי של הארגון או התיקייה שבהם רוצים לראות את ההגדרות האפקטיביות של Autokey.
  2. משתמשים בפקודה gcloud asset query כדי להריץ את השאילתה.

    gcloud asset query \
        --organization="${ORG_ID}" \
        --statement="
    WITH ProjectConfigs AS (
      SELECT
        p.name AS project_name,
        ARRAY_AGG(
          STRUCT(
            ancestor AS config_source,
            c.resource.data.state AS state,
            c.resource.data.keyProjectResolutionMode AS resolution_mode,
            c.resource.data.keyProject AS key_project
          )
          ORDER BY offset
          LIMIT 1
        )[SAFE_OFFSET(0)] AS effective_config
      FROM
        STANDARD_METADATA p
      CROSS JOIN
        UNNEST(p.ancestors) AS ancestor WITH OFFSET AS offset
      JOIN
        cloudkms_googleapis_com_AutokeyConfig c
      ON
        ancestor = REGEXP_REPLACE(c.name, r'^//cloudkms\.googleapis\.com/([^/]+/\d+)/autokeyConfig$', r'\1')
      WHERE
        p.assetType = 'cloudresourcemanager.googleapis.com/Project'
      GROUP BY
        p.name
    )
    SELECT
      REPLACE(r.name, '//cloudresourcemanager.googleapis.com/', '') AS project_name,
      p.resource.data.projectId AS project_id,
      COALESCE(rc.effective_config.config_source, 'No Autokey') AS effective_config_source,
      rc.effective_config.state AS autokey_config_state,
      rc.effective_config.resolution_mode AS resolution_mode,
      CASE 
        WHEN rc.effective_config.resolution_mode = 'RESOURCE_PROJECT' THEN p.resource.data.projectId
        ELSE COALESCE(REPLACE(rc.effective_config.key_project, 'projects/', ''), 'No Key Project')
      END AS key_project
    FROM
      STANDARD_METADATA r
    LEFT JOIN
      ProjectConfigs rc
    ON
      r.name = rc.project_name
    LEFT JOIN
      cloudresourcemanager_googleapis_com_Project p
    ON
      r.name = p.name
    WHERE
      r.assetType = 'cloudresourcemanager.googleapis.com/Project'
      AND '${TARGET_SCOPE}' IN UNNEST(r.ancestors)
    "
    

    הפלט כולל את השדות הבאים:

    • project_number: מזהה המשאב המספרי המלא של כל פרויקט, לדוגמה: projects/PROJECT_NUMBER.
    • project_id: המזהה של כל פרויקט. לדוגמה: PROJECT_ID.
    • effective_config_source: מזהה המשאב של המשאב שבו מוגדרת תצורת Autokey של הפרויקט. לדוגמה, folders/FOLDER_NUMBER אם התצורה עוברת בירושה מתיקיית אב, או projects/PROJECT_NUMBER אם התצורה מוגדרת בפרויקט. אם לפרויקט אין AutokeyConfig או שהוא לא מקבל אותו בירושה, בשדה הזה יופיע הערך No Autokey.
    • autokey_config_state: מציין אם הגדרת Autokey ACTIVE בתיקייה, גם אם ההגדרה DISABLED. אם לפרויקט אין AutokeyConfig או שהוא לא מקבל אותו בירושה, השדה הזה ריק.
    • resolution_mode: מצב ההחלטה של פרויקט המפתח של הגדרת Autokey האפקטיבית בפרויקט.
    • key_project: מציין איפה Autokey יוצר מפתחות למשאבים בפרויקט – לדוגמה, projects/KEY_PROJECT_ID אם הפרויקט משתמש באחסון מפתחות בפרויקט ייעודי או RESOURCE_PROJECT_ID אם הפרויקט משתמש באחסון מפתחות באותו פרויקט. אם התכונה Autokey לא מופעלת בפרויקט, בשדה הזה מוצג הערך No key project.

השבתת התכונה 'הקלדה אוטומטית'

אותם תפקידים שיכולים להפעיל את Autokey יכולים גם להשבית אותו. כדי להשבית את Autokey, אפשר לבטל את הסימון של AutokeyConfig או להגדיר את feedbackKeyProjectResolutionMode ל-DISABLED. אפשר להשבית את Autokey בתיקייה או בפרויקט. אפשר גם להשבית את Autokey בפרויקטים ספציפיים בתיקייה שבה Autokey מופעל.

אחרי שמשביתים את Autokey בתיקייה או בפרויקט, סוכן השירות של Cloud KMS לא יכול יותר ליצור מפתחות למפתחים כשהם יוצרים משאבים בתיקייה או בפרויקט האלה.

אם רוצים להשבית לגמרי את Autokey, מומלץ גם להסיר את הקישורים של IAM לתפקידים roles/cloudkms.autokeyAdmin ו-roles/cloudkms.autokeyUser.

השבתת Autokey לא משפיעה על מפתחות קיימים בפרויקט המפתחות. אתם יכולים להמשיך להשתמש במפתחות האלה כדי להגן על המשאבים שלכם.

השבתת Autokey לתיקייה או לפרויקט

המסוף

  1. נכנסים לדף Key management controls במסוף Google Cloud .

    מעבר לאמצעי הבקרה לניהול מפתחות

  2. בתפריט לבחירת הקשר, בוחרים את התיקייה או הפרויקט שבהם רוצים להשבית את התכונה 'הקצאת מקשי קיצור אוטומטית'.
  3. בקטע Autokey (הקצאת מקשים אוטומטית), לוחצים על Manage (ניהול).
  4. לוחצים על Configure (הגדרה).
  5. בקטע מקור ההגדרה, בוחרים באפשרות הגדרה לתיקייה או הגדרה לפרויקט.
  6. בקטע Configuration (הגדרה), בוחרים באפשרות Disable autokey for folder (השבתת מפתח אוטומטי לתיקייה) או באפשרות Disable autokey for project (השבתת מפתח אוטומטי לפרויקט).
  7. לוחצים על שליחה.

    תוצג הודעה שבה תתבקשו לאשר שאתם רוצים להשבית את Autokey.

  8. כדי להשבית את Autokey, לוחצים על אישור.

    תופיע הודעה שמאשרת שהתכונה 'מפתח אוטומטי' ב-Cloud KMS מושבתת.

gcloud

  1. יוצרים קובץ YAML שמכיל את הפרטים הבאים AutokeyConfig:

    name: RESOURCE_TYPE/RESOURCE_ID/autokeyConfig
    keyProjectResolutionMode: DISABLED
    keyProject:
    

    מחליפים את מה שכתוב בשדות הבאים:

    • RESOURCE_TYPE: סוג המשאב שבו רוצים להשבית את Autokey. מגדירים את הערך ל-folders או ל-projects.
    • RESOURCE_ID: המזהה של התיקייה שבה רוצים להשבית את Autokey עם אחסון מפתחות באותו פרויקט.
  2. מחילים את AutokeyConfig על התיקייה או הפרויקט:

    gcloud kms autokey-config update AUTOKEY_CONFIG_PATH
    

    מחליפים את AUTOKEY_CONFIG_PATH בנתיב לקובץ YAML שיצרתם בשלב הקודם.

REST

מעדכנים את AutokeyConfig בתיקייה או בפרויקט שבהם רוצים להשבית את Autokey:

curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/autokeyConfig?updateMask:keyProjectResolutionMode,keyProject" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"keyProjectResolutionMode": "DISABLED", "keyProject": ""}'

מחליפים את מה שכתוב בשדות הבאים:

  • RESOURCE_TYPE: סוג המשאב שבו רוצים להשבית את Autokey. מגדירים את הערך ל-folders או ל-projects.
  • RESOURCE_ID: המזהה של התיקייה שבה רוצים להשבית את Autokey עם אחסון מפתחות באותו פרויקט.

Terraform

# Clear AutokeyConfig for the folder
resource "google_kms_autokey_config" "autokey_config" {
  provider    = google-beta
  folder      = google_folder.autokey_folder.folder_id
  key_project = ""
  key_project_resolution_mode = "DISABLED"
}

ביטול תפקידים ב-Autokey

השבתת Autokey על ידי עדכון AutokeyConfig מונעת מסוכן השירות של Cloud KMS הקצאה של מפתחות חדשים בפרויקט או בתיקייה המושפעים. עם זאת, אם רוצים להשבית את Autokey באופן מלא, מומלץ גם להסיר את הקישורים של IAM לתפקידים roles/cloudkms.autokeyAdmin ו-roles/cloudkms.autokeyUser.

  1. אופציונלי: ביטול התפקיד roles/cloudkms.autokeyAdmin:

    gcloud resource-manager folders remove-iam-policy-binding \
        FOLDER_ID --role=roles/cloudkms.autokeyAdmin \
        --member=user:USER_EMAIL
    

    מחליפים את מה שכתוב בשדות הבאים:

    • FOLDER_ID: המזהה של התיקייה שבה השבתתם את Autokey.
    • USER_EMAIL: כתובת האימייל של המשתמש שרוצים לבטל את ההרשאה שלו לנהל את Autokey.
  2. אופציונלי: ביטול התפקיד roles/cloudkms.autokeyUser ברמת התיקייה:

    gcloud resource-manager folders remove-iam-policy-binding \
        FOLDER_ID --role=roles/cloudkms.autokeyUser \
        --member=user:USER_EMAIL
    

    מחליפים את מה שכתוב בשדות הבאים:

    • FOLDER_ID: המזהה של התיקייה שבה השבתתם את Autokey.
    • USER_EMAIL: כתובת האימייל של המשתמש שרוצים לבטל את ההרשאה שלו להשתמש ב-Autokey.
  3. אופציונלי: ביטול התפקיד roles/cloudkms.autokeyUser ברמת הפרויקט:

    gcloud projects remove-iam-policy-binding \
        RESOURCE_PROJECT_NUMBER \
        --role=roles/cloudkms.autokeyUser \
        --member=user:USER_EMAIL
    

    מחליפים את מה שכתוב בשדות הבאים:

    • RESOURCE_PROJECT_NUMBER: מספר הפרויקט של פרויקט משאבים בתיקייה שבה השבתתם את Autokey.
    • USER_EMAIL: כתובת האימייל של המשתמש שרוצים לבטל את ההרשאה שלו להשתמש ב-Autokey.
  4. אופציונלי: אם אתם לא מתכננים להמשיך להשתמש בפרויקט המפתח עבור Autokey לתיקיות אחרות, אתם יכולים לבטל את ההרשאה לתפקיד roles/cloudkms.admin לסוכן השירות של Cloud KMS:

    gcloud projects remove-iam-policy-binding \
        KEY_PROJECT_NUMBER \
        --role=roles/cloudkms.admin \
        --member=serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
    

    מחליפים את הערך KEY_PROJECT_NUMBER במזהה המספרי של פרויקט המפתח.

  5. אופציונלי: אם אתם לא מתכננים להמשיך להשתמש במפתחות שנוצרו בפרויקט המפתחות, אתם יכולים לבטל את ההרשאה לתפקיד roles/cloudkms.admin לאדמין של Cloud KMS:

    gcloud projects remove-iam-policy-binding \
        KEY_PROJECT_NUMBER \
        --role=roles/cloudkms.admin \
        --member=user:KEY_ADMIN_EMAIL
    

    מחליפים את מה שכתוב בשדות הבאים:

    • KEY_PROJECT_NUMBER: מספר הפרויקט של פרויקט המפתח.
    • KEY_ADMIN_EMAIL: כתובת האימייל של המשתמש שרוצים לבטל את ההרשאה שלו להגדיר את Autokey.

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