הגנה על הנתונים באמצעות רשות אישורים (CA) בניהול הלקוח

אתם יכולים להצפין בצורה מאובטחת את כל הנתונים שמועברים בין אפליקציות הלקוח לבין Memorystore for Valkey. זוהי הצפנה בזמן ההעברה. באמצעות הצפנה בזמן ההעברה, כל התעבורה ב-Valkey מוצפנת באמצעות פרוטוקול Transport Layer Security ‏ (TLS). כך מובטח שכל הנתונים שעוברים בין האפליקציות שלכם לבין Memorystore for Valkey יישארו סודיים ולא ישונו.

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

למקרים שבהם נעשה שימוש בהצפנה במעבר יש רשויות אישורים (CA). אתם משתמשים ב-CA כדי לאמת את האישורים של המכונות במופעים שלכם.

אחד ממצבי ה-CA שבהם אפשר להשתמש הוא CA בניהול הלקוח. אתם יכולים להשתמש ב-CA בניהול הלקוח עבור מופעי Memorystore for Valkey. אם אתם צריכים לנהל רשויות אישורים משלכם מסיבות של תאימות, אתם יכולים להשתמש במצב רשות אישורים. כדי להשתמש במצב הזה, צריך להגדיר מאגר CA משלכם שמתארח ב-Certificate Authority Service.

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

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

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

לפני שמשתמשים במצב CA בניהול הלקוח, חשוב לוודא שאתם עומדים בדרישות הבאות.

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

כדי לקבל את ההרשאות שנדרשות ליצירה של מאגר CA ו-CA, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ (roles/privateca.caManager) CA Service Operation Manager בשירות CA.

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

תהליך עבודה לשימוש ברשות אישורים בניהול הלקוח

כדי להשתמש ברשות אישורים בניהול הלקוח, צריך לבצע את השלבים הבאים:

  1. יצירת מאגר של רשויות אישורים כדי להגדיר מופע לשימוש ב-CA בניהול הלקוח, צריך ליצור מאגר CA בשירות CA. מאגר כתובות ה-IP צריך להיות באותו אזור שבו נמצא המופע.
  2. יצירת רשות אישורים במאגר רשויות האישורים אחרי שיוצרים את מאגר ה-CA, צריך להשתמש בשירות CA כדי ליצור לפחות CA אחד במאגר.
  3. הקצאת הרשאה לחשבון השירות של Memorystore for Valkey להנפקת אישורי שרת עם רשויות אישורים ממאגר רשויות האישורים שיוצרים.
  4. יוצרים מכונה כדי להשתמש ב-CA בניהול הלקוח.

יצירת מאגר רשויות אישורים

אפשר ליצור מאגר CA ב-CA Service באותו פרויקט שבו אתם מתכננים ליצור את מופעי Memorystore for Valkey, או ליצור את מאגר ה-CA בפרויקט אחר. עם זאת, אם תיצרו את מאגר ה-CA בפרויקט אחר, יכול להיות ש-VPC Service Controls יחסום אתכם מיצירת מופעים, בהתאם למדיניות הארגון שלכם. כדי לפתור את הבעיה, צריך לוודא שהפרויקט שמארח את מאגר ה-CA ואת ה-CA, והפרויקט שמארח את Memorystore for Valkey שייכים לאותו גבול גזרה לשירות. מידע נוסף זמין במאמרים פרטים והגדרה של גבולות גזרה לשירות וניהול גבולות גזרה לשירות.

כדי ליצור מאגר רשויות אישורים, פועלים לפי ההוראות במאמר בנושא יצירת מאגר רשויות אישורים. אפשר לאשר את ערכי ברירת המחדל של מאגר אישורי ה-CA, עם הגדרות החובה הבאות:

  • יוצרים את מאגר רשויות האישורים באותו אזור שבו מתכננים ליצור את המכונה. רשימת האזורים שנתמכים ב-Memorystore for Valkey זמינה במאמר מיקומי Memorystore for Valkey.
  • הגדרה של בקשות לאישורים שמבוססות על הגדרות.
  • מתן הרשאה לשמות DNS בשמות חלופיים לנושא (SAN). כשמגדירים את מגבלות הזהות של מאגר רשויות האישורים, לא מגדירים הגבלות על הפורמט של שמות ה-DNS שעלולים להתנגש עם מה ש-Memorystore for Valkey עשוי להוסיף ל-SAN.

יצירת רשות אישורים במאגר רשויות האישורים

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

אפשר ליצור רשות אישורים (CA) בסיסית או רשות אישורים משנית.

כדי ליצור רשות אישורים (CA) בסיסית, פועלים לפי ההוראות במאמר יצירת רשות אישורים (CA) בסיסית. אפשר לאשר את ערכי ברירת המחדל של ה-CA, אבל חשוב לוודא שיוצרים את ה-CA במצב Enabled.

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

אם יוצרים רשות אישורים משנית, צריך קודם ליצור ולהגדיר את רשות אישורי הבסיס.

מעניקים לחשבון השירות גישה למאגר רשויות האישורים

כדי לוודא שלחשבון השירות של Memorystore for Valkey יש הרשאות לבקש ולחתום על אישורים עבור המופעים, צריך להקצות את התפקיד roles/privateca.certificateRequester לחשבון השירות עבור מאגר רשויות האישורים שיצרתם.

חשבון השירות הזה הוא בפורמט הבא:
service-PROJECT_NUMBER@cloud-memorystore.iam.gserviceaccount.com. מחליפים את PROJECT_NUMBER במספר הפרויקט של פרויקט Google Cloud .

gcloud

כדי לתת לחשבון השירות גישה למאגר תעודות ה-CA, משתמשים בפקודה gcloud privateca pools add-iam-policy-binding.

gcloud privateca pools add-iam-policy-binding CA_POOL_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--member serviceAccount:SERVICE_ACCOUNT_NAME \
--role=roles/privateca.certificateRequester

מחליפים את הפרטים הבאים:

  • CA_POOL_ID: המזהה של מאגר רשויות האישורים שיצרתם.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud שבו רוצים ליצור את המופעים.
  • REGION_ID: האזור שבו נמצא מאגר אישורי ה-CA.
  • SERVICE_ACCOUNT_NAME: השם של חשבון השירות של Memorystore for Valkey. מספר הפרויקט של חשבון השירות הזה זהה למספר הפרויקט שמשויך ל-PROJECT_ID.

יצירת מופע שמשתמש ב-CA בניהול הלקוח

המסוף

פועלים לפי השלבים במאמר יצירת מופעים.

gcloud

כדי ליצור מכונה שמשתמשת ב-CA בניהול הלקוח, משתמשים בפקודה gcloud memorystore instances create.

gcloud memorystore instances create INSTANCE_ID \
--location=REGION_ID \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/PROJECT_ID/global/networks/NETWORK_ID", "projectId": "PROJECT_ID"}}]}]' \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT \
--engine-version=ENGINE_VERSION \
--mode=MODE \
--transit-encryption-mode=server-authentication \
--server-ca-mode=customer-managed-cas-ca \
--server-ca-pool="projects/CA_POOL_PROJECT_ID/locations/REGION_ID/caPools/CA_POOL_ID"

מחליפים את הפרטים הבאים:

  • INSTANCE_ID: המזהה של המכונה שיוצרים. מזהה המופע צריך להיות באורך של 1 עד 63 תווים, ולהכיל רק אותיות קטנות, מספרים או מקפים. הוא צריך להתחיל באות קטנה ולהסתיים באות קטנה או במספר.

  • REGION_ID: האזור שבו רוצים שהמכונה תמוקם. צריך ליצור את המופע באותו אזור שבו נמצא מאגר רשויות האישורים שיצרתם.

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

  • NETWORK_ID: המזהה של הרשת שרוצים להשתמש בה כדי ליצור את המכונה.

  • REPLICA_COUNT: מספר העותקים (לכל רסיס). הערכים הקבילים הם 0 עד 5.

  • NODE_TYPE: סוג הצומת. הערכים הקבילים הם:

    • shared-core-nano
    • standard-small
    • highmem-medium
    • highmem-xlarge
  • SHARD_COUNT: מספר הרסיסים במופע. מספר הרסיסים קובע את קיבולת הזיכרון הכוללת לאחסון נתוני המופע. מידע נוסף על מפרטים של מופעים זמין במאמר מפרט של מופע וצומת.

  • ENGINE_VERSION: הגרסה של המכונה. הערכים הקבילים לפרמטר הזה הם VALKEY_7_2, VALKEY_8_0 ו-VALKEY_9_0. אם לא מציינים ערך, ערך ברירת המחדל הוא VALKEY_9_0.

  • MODE: קובעת אם המופע הוא Cluster Mode Enabled או Cluster Mode Disabled. אם לא מציינים את השדה הזה, ברירת המחדל של המופע היא Cluster Mode Enabled. מידע נוסף מופיע במאמר בנושא הפעלה והשבתה של מצב אשכול.

  • CA_POOL_PROJECT_ID: המזהה של מאגר רשויות האישורים שיצרתם.

  • REGION_ID: האזור שבו נמצאת מאגר ה-CA. המופע שאתם יוצרים ומאגר ה-CA חייבים להיות באותו אזור.

  • CA_POOL_ID: המזהה של מאגר רשויות האישורים שיצרתם.

הפרמטר server-ca-mode מייצג את מצב ה-CA של המופע. במקרה של רשות אישורים שמנוהלת על ידי הלקוח, customer-managed-cas-ca הוא הערך של הפרמטר. אם לא משתמשים בפרמטר הזה, מצב ברירת המחדל של CA הוא לכל מופע.

לדוגמה:

gcloud memorystore instances create my-instance \
--location=us-central1 \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/my-project/global/networks/my-network", "projectId": "my-project"}}]}] \
--replica-count=1 \
--node-type=highmem-medium \
--shard-count=3 \
--engine-version=VALKEY_9_0 \
--mode=CLUSTER \
--transit-encryption-mode=server-authentication \
--server-ca-mode=customer-managed-cas-ca \
--server-ca-pool="projects/my-CA-pool-project/locations/us-central1/caPools/my-CA-pool"

החלפת אישורי השרת של המופע

בנוסף לרוטציה השבועית של האישורים בצד השרת שמבוצעת על ידי Memorystore for Valkey, אתם יכולים לבצע רוטציה של האישורים לפי דרישה.

gcloud

כדי להחליף את אישורי השרתים של כל המכונות במופע, משתמשים בפקודה gcloud memorystore instances update.

gcloud memorystore instances update INSTANCE_ID \
--location=REGION_ID \
--rotate-server-certificate

מחליפים את הפרטים הבאים:

  • INSTANCE_ID: המזהה של המכונה שמכילה מכונות שרוצים לבצע עבורן רוטציה של אישורי השרת
  • REGION_ID: האזור שבו נמצאת המכונה

לדוגמה:

gcloud memorystore instances update my-instance \
--location=us-central1 \
--rotate-server-certificate

מגבלות

ההגבלות הבאות חלות כשמשתמשים ב-CA בניהול הלקוח עם Memorystore for Valkey:

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

פתרון בעיות

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

הודעת השגיאה מטרה פתרון בעיות
FAILED_PRECONDITION: GetClusterCertificateAuthority not supported for customer-managed CAs אם אתם משתמשים ב-CA בניהול הלקוח, אתם לא יכולים להשתמש ב-Memorystore for Valkey כדי לאחזר את אישורי ה-CA. כדי לקבל את אישורי ה-CA של רשות אישורים בניהול הלקוח, צריך להשתמש בשירות CA.
Server certificate rotation can only be triggered for customer-managed CAs. אתם מנסים להחליף אישורי שרתים עבור מופע, אבל מצב ה-CA של המופע הוא per-instance או shared. אי אפשר לבצע רוטציה של אישורי שרת אלא אם המצב שבו משתמשים עבור מופע הוא בניהול הלקוח.
Invalid format for server CA pool: {CA pool resource}. Expected projects/{project}/locations/{location}/caPools/{caPool}. הפורמט של מאגר אישורי ה-CA שבו אתם משתמשים כדי ליצור את המופע לא תקין. למאגר הרשות שמנפיקה את האישורים (CA), משתמשים בפורמט הבא:
projects/CA_POOL_PROJECT_ID/locations/REGION_ID/ caPools/CA_POOL_ID
The instance/cluster's server CA pool must be in the same region as the instance/cluster. CA Pool region: {CA pool region}, Instance/cluster region: {cluster region}. אתם מנסים ליצור מופע שנמצא באזור אחר ממאגר רשויות האישורים. חשוב לוודא שהמופע שאתם יוצרים ומאגר רשויות האישורים נמצאים באותו אזור.
Request is prohibited by organization's policy for CA Pool {CA pool ID}. Google Cloud הפרויקט שמארח את מאגר רשויות ה-CA והפרויקט שמארח את המופע לא נמצאים באותו גבול גזרה לשירות. מגדירים את VPC Service Controls כך שהפרויקטים יהיו שייכים לאותו גבול גזרה לשירות.
Permission privateca.certificates.create denied on {CA pool ID}. Make sure that you granted the roles/privateca.certificateRequester role to the service account {P4SA email}. לחשבון השירות של Memorystore for Valkey אין את התפקיד roles/privateca.certificateRequester במאגר של רשויות האישורים. כתוצאה מכך, אי אפשר ליצור אישורי שרת ב-Memorystore for Valkey. מקצים לחשבון השירות את התפקיד roles/privateca.certificateRequester. מידע נוסף מופיע במאמר מתן גישה לחשבון השירות למאגר רשויות האישורים.
Resource {CA pool ID} not found. ל-Memorystore for Valkey אין אפשרות למצוא את מאגר רשויות האישורים שציינתם כשניסיתם ליצור את המופע. בודקים את מזהה הפרויקט, המיקום והשם של מאגר רשויות האישורים.
There are no enabled CAs in the CaPool {CA pool ID}. Please ensure that there is at least one enabled Certificate Authority to issue a certificate. לא מופעלים רשויות אישורים במאגר רשויות האישורים. לכן, Memorystore for Valkey לא יכול ליצור אישורי שרת למופע. חשוב לוודא שיצרתם לפחות CA אחד במאגר ה-CA, ושה-CA נמצא במצב Enabled.
Quota exhausted for CA Service. Check quotas for the project hosting the CA Pool: {CA pool ID}. חרגתם מהמכסה של שירות ה-CA בפרויקט Google Cloud שמארח את מאגר ה-CA. שירות Memorystore for Valkey לא יכול לבצע פעולות שדורשות את השירות הזה. בודקים את המכסה של שירות ה-CA בפרויקט. מידע נוסף זמין במאמר מכסות ומגבלות.
server_ca_pool must be provided when server_ca_mode is SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. ניסיתם ליצור מכונה שמשתמשת במצב CA בניהול הלקוח. עם זאת, לא סיפקת מידע על מאגר הרשויות המוסמכות. מציינים את מזהה הפרויקט, המיקום והשם של מאגר רשויות האישורים.
server_ca_pool must not be provided when server_ca_mode is not SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. אתם מנסים ליצור מכונה שמשתמשת במצב CA משותף או במצב CA לכל מכונה. במצבי ה-CA האלה לא נעשה שימוש בפרמטר server_ca_pool. אי אפשר להשתמש בפרמטר הזה אלא אם מצב ה-CA הוא בניהול הלקוח.