אתם יכולים להצפין בצורה מאובטחת את כל הנתונים שמועברים בין אפליקציות הלקוח לבין Memorystore for Redis Cluster. זוהי הצפנה בזמן ההעברה. באמצעות הצפנה בזמן ההעברה, כל התעבורה ב-Redis מוצפנת באמצעות פרוטוקול Transport Layer Security (TLS). כך אפשר לוודא שכל הנתונים שעוברים בין האפליקציות שלכם לבין Memorystore for Redis Cluster יישארו סודיים ולא ייערכו בהם שינויים.
כשמופעלת הצפנה במעבר, לקוחות Redis מתקשרים באופן בלעדי באמצעות חיבור מאובטח. לקוחות Redis שלא מוגדרים ל-TLS נחסמים. אם בוחרים להשתמש בהצפנה במעבר, אתם אחראים לוודא שלקוח Redis יכול להשתמש בפרוטוקול TLS.
לצבירים שמשתמשים בהצפנה במעבר יש רשויות אישורים (CA). משתמשים ב-CA כדי לאמת את האישורים של המכונות באשכולות.
אחד ממצבי ה-CA שבהם אפשר להשתמש הוא CA בניהול הלקוח. אתם יכולים להשתמש ב-CA בניהול הלקוח עבור האשכולות שלכם ב-Memorystore for Redis Cluster. אם אתם צריכים לנהל בעצמכם את רשויות האישורים מסיבות שקשורות לתאימות, אתם יכולים להשתמש במצב הזה של רשויות אישורים. כדי להשתמש במצב הזה, צריך להגדיר מאגר CA משלכם שמתארח ב-Certificate Authority Service.
לפני שמגדירים אשכול לשימוש ב-CAs בניהול הלקוח, צריך ליצור מאגר CA באותו אזור שבו נמצא האשכול, ולפחות CA אחד במאגר הזה באמצעות שירות CA. רשות האישורים יכולה להיות רשות אישורים בסיסית או רשות אישורים משנית. אפשר גם ליצור רשות אישורים משנית בשירות CA ואז לשרשר את רשות האישורים המשנית לרשות אישורים חיצונית ברמה הבסיסית.
כשיוצרים את האשכול, מציינים את מאגר רשויות האישורים. במסגרת ההגדרה הזו, לחשבון השירות הספציפי לפרויקט של Memorystore for Redis Cluster יש הרשאות להשתמש במאגר רשויות האישורים. חשבון השירות מבקש רשות אישורים מהמאגר, ו-Memorystore for Redis Cluster משתמש ברשות האישורים הזו כדי לחתום על אישור השרת של האשכול.
לפני שמתחילים
לפני שמשתמשים במצב CA בניהול הלקוח, חשוב לוודא שאתם עומדים בדרישות הבאות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות ליצירה של מאגר CA ו-CA, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM (roles/privateca.caManager) CA Service Operation Manager בשירות CA.
יכול להיות שתוכלו לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים. מידע נוסף על הקצאת תפקידים מופיע במאמר ניהול הגישה לפרויקטים, לתיקיות ולארגונים.
תהליך עבודה לשימוש ברשות אישורים בניהול הלקוח
כדי להשתמש ברשות אישורים בניהול הלקוח, צריך לבצע את השלבים הבאים:
- יצירת מאגר של רשויות אישורים כדי להגדיר אשכול לשימוש ב-CA בניהול הלקוח, צריך ליצור מאגר CA בשירות CA. מאגר כתובות ה-IP צריך להיות באותו אזור כמו האשכול.
- יצירת רשות אישורים במאגר רשויות האישורים אחרי שיוצרים את מאגר ה-CA, צריך להשתמש בשירות CA כדי ליצור לפחות CA אחד במאגר.
- הקצאת הרשאה לחשבון השירות של Memorystore for Redis Cluster להנפקת אישורי שרת באמצעות רשויות אישורים ממאגר רשויות האישורים שיוצרים.
- יוצרים אשכול כדי להשתמש ב-CA בניהול הלקוח.
יצירת מאגר רשויות אישורים
אפשר ליצור מאגר רשויות אישורים ב-CA Service באותו פרויקט שבו אתם מתכננים ליצור את האשכולות ב-Memorystore for Redis Cluster, או ליצור את מאגר רשויות האישורים בפרויקט אחר. עם זאת, אם תיצרו את מאגר רשויות האישורים בפרויקט אחר, יכול להיות ש-VPC Service Controls יחסום אתכם מיצירת אשכולות, בהתאם למדיניות הארגון שלכם. כדי לפתור את הבעיה, צריך לוודא שהפרויקט שמארח את מאגר רשויות האישורים ואת רשות האישורים, והפרויקט שמארח את Memorystore for Redis Cluster שייכים לאותו גבול גזרה לשירות. מידע נוסף זמין במאמרים פרטים והגדרות של גבול גזרה לשירות וניהול גבולות גזרה לשירות.
כדי ליצור מאגר רשויות אישורים, פועלים לפי ההוראות במאמר בנושא יצירת מאגר רשויות אישורים. אפשר לאשר את ערכי ברירת המחדל של מאגר אישורי ה-CA, עם הגדרות החובה הבאות:
- יוצרים את מאגר רשויות האישורים באותו אזור שבו מתכננים ליצור את האשכול. רשימת האזורים שבהם נתמך Memorystore for Redis Cluster מופיעה במאמר מיקומי Memorystore for Redis Cluster.
- הגדרה של בקשות לאישורים שמבוססות על הגדרות.
- מתן הרשאה לשמות DNS בשמות חלופיים לנושא (SAN). כשמגדירים את מגבלות הזהות של מאגר CA, לא מגדירים הגבלות על הפורמט של שמות ה-DNS שעשויים להתנגש עם מה ש-Memorystore for Redis Cluster עשוי להוסיף ל-SAN.
יצירת רשות אישורים במאגר רשויות האישורים
יוצרים לפחות רשות אישורים אחת במאגר רשויות האישורים שיצרתם.
אפשר ליצור רשות אישורים (CA) בסיסית או רשות אישורים משנית.
כדי ליצור רשות אישורים (CA) בסיסית, פועלים לפי ההוראות במאמר יצירת רשות אישורים (CA) בסיסית. אפשר לאשר את ערכי ברירת המחדל של ה-CA, אבל חשוב לוודא שיוצרים את ה-CA במצב Enabled.
כשמגדירים את האלגוריתם ואת גודל המפתח של רשות האישורים, אפשר לבחור כל אלגוריתם וגודל מפתח.
אם יוצרים רשות אישורים משנית, צריך קודם ליצור ולהגדיר את רשות אישורי הבסיס.
כדי ליצור רשות אישורים משנית בשירות CA, פועלים לפי ההוראות במאמר יצירת רשות אישורים משנית.
כדי ליצור CA משני מ-CA בסיסי חיצוני, פועלים לפי ההוראות במאמר יצירת CA משני מ-CA חיצוני.
מעניקים לחשבון השירות גישה למאגר רשויות האישורים
כדי לוודא שלחשבון השירות של Memorystore for Redis Cluster יש הרשאות לבקש ולחתום על אישורים עבור האשכולות, צריך להקצות את התפקיד roles/privateca.certificateRequester לחשבון השירות עבור מאגר רשויות האישורים שיצרתם.
חשבון השירות הזה הוא בפורמט הבא:
service-PROJECT_NUMBER@cloud-redis.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 Redis Cluster. מספר הפרויקט של חשבון השירות הזה זהה למספר הפרויקט שמשויך ל-PROJECT_ID.
יצירת אשכול שמשתמש ב-CA בניהול הלקוח
המסוף
פועלים לפי השלבים במאמר יצירת מופעים.
gcloud
כדי ליצור אשכול שמשתמש ב-CA בניהול לקוחות, משתמשים בפקודה gcloud redis clusters create.
gcloud redis clusters create CLUSTER_ID \ --region=REGION_ID \ --network=NETWORK \ --replica-count=REPLICA_COUNT \ --node-type=NODE_TYPE \ --shard-count=SHARD_COUNT \ --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"
מחליפים את הפרטים הבאים:
CLUSTER_ID: המזהה של האשכול שאתם יוצרים. מזהה האשכול צריך להיות באורך של 1 עד 63 תווים, ולהכיל רק אותיות קטנות, מספרים או מקפים. הוא צריך להתחיל באות קטנה ולהסתיים באות קטנה או במספר.
REGION_ID: האזור שבו רוצים שהאשכול יהיה ממוקם. צריך ליצור את האשכול באותו אזור שבו נמצא מאגר רשויות האישורים שיצרתם.
NETWORK: הרשת שבה משתמשים כדי ליצור את האשכול. הפורמט הנדרש הוא:
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. מזהה הרשת שבו אתם משתמשים צריך להיות זהה למזהה הרשת שמוגדר במדיניות של חיבור השירות. אחרת, לא תוכלו ליצור את האשכול.REPLICA_COUNT: מספר העותקים (לכל רסיס). הערכים הקבילים הם
0עד5.NODE_TYPE: סוג הצומת. הערכים הקבילים הם:
redis-shared-core-nanoredis-standard-smallredis-highmem-mediumredis-highmem-xlarge
SHARD_COUNT: מספר הרסיסים באשכול. מספר הרסיסים קובע את קיבולת הזיכרון הכוללת לאחסון נתוני האשכול. מידע נוסף על מפרטים של אשכולות זמין במאמר מפרט של אשכול וצומת.
CA_POOL_PROJECT_ID: המזהה של מאגר רשויות האישורים שיצרתם.
REGION_ID: האזור שבו נמצאת בריכת רשויות האישורים. האשכול שאתם יוצרים ובריכת רשויות האישורים חייבים להיות באותו אזור.
CA_POOL_ID: המזהה של מאגר רשויות האישורים שיצרתם.
הפרמטר server-ca-mode מייצג את מצב ה-CA של האשכול. במקרה של רשות אישורים שמנוהלת על ידי הלקוח, customer-managed-cas-ca הוא הערך של הפרמטר.
אם לא משתמשים בפרמטר הזה, מצב ברירת המחדל של CA הוא לכל מופע.
לדוגמה:
gcloud redis clusters create my-cluster \ --region=us-central1 \ --network=projects/my-network-project/global/networks/default \ --replica-count=1 \ --node-type=redis-highmem-medium \ --shard-count=3 \ --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 Redis Cluster, אפשר לבצע רוטציה של האישורים לפי דרישה.
gcloud
כדי להחליף את אישורי השרתים לכל המכונות באשכול, משתמשים בפקודה
gcloud redis clusters update.
gcloud redis clusters update CLUSTER_ID \ --region=REGION_ID \ --rotate-server-certificate
מחליפים את הפרטים הבאים:
- CLUSTER_ID: המזהה של האשכול שמכיל את המכונות שרוצים לבצע רוטציה של אישורי השרת שלהן
- REGION_ID: האזור שבו נמצא האשכול
לדוגמה:
gcloud redis clusters update my-cluster \ --region=us-central1 \ --rotate-server-certificate
מגבלות
כשמשתמשים ב-CA בניהול הלקוח עם Memorystore for Redis Cluster, חלות המגבלות הבאות:
- אחרי שמגדירים CA בניהול הלקוח עבור אשכול, אי אפשר לשנות את ההגדרה. לדוגמה, אי אפשר לשנות את המזהה של מאגר אישורי ה-CA של האשכול.
- אל תמחקו את מאגר רשויות האישורים שמנוהל על ידי הלקוח ואל תבטלו את ההרשאות של חשבון השירות שמשויכות לרשות האישורים. אם תעשו את זה, לא תהיה אפשרות לבצע רוטציה של אישורי השרת והתוקף שלהם יפוג. כתוצאה מכך, אפליקציות הלקוח לא יוכלו להתחבר לאשכול.
פתרון בעיות
בקטע הזה מפורטות הודעות שגיאה שאולי תקבלו כשאתם משתמשים ברשויות אישורים בניהול הלקוח, וגם טיפים לפתרון בעיות שקשורות להודעות האלה.
| הודעת השגיאה | מטרה | פתרון בעיות |
|---|---|---|
FAILED_PRECONDITION: GetClusterCertificateAuthority not
supported for customer-managed CAs |
אם אתם משתמשים ב-CA בניהול הלקוח, אתם לא יכולים להשתמש ב-Memorystore for Redis Cluster כדי לאחזר את אישורי ה-CA. | כדי לקבל את אישורי ה-CA של רשות אישורים בניהול הלקוח, צריך להשתמש בשירות CA. |
Server certificate rotation can only be triggered for
customer-managed CAs. |
אתם מנסים להחליף אישורי שרתים לאשכול, אבל מצב ה-CA של האשכול הוא לכל מופע או משותף. | אי אפשר לבצע רוטציה של אישורי שרת אלא אם המצב שבו משתמשים עבור אשכול הוא בניהול הלקוח. |
Invalid format for server CA pool: {CA pool resource}. Expected
projects/{project}/locations/{location}/caPools/{caPool}. |
המאגר של רשויות האישורים שבו אתם משתמשים כדי ליצור את האשכול הוא בפורמט לא תקין. | למאגר הרשות שמנפיקה את האישורים (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 Redis Cluster אין את התפקיד roles/privateca.certificateRequester במאגר של רשויות האישורים. כתוצאה מכך, Memorystore for Redis Cluster לא יכול ליצור אישורי שרת. |
מקצים לחשבון השירות את התפקיד roles/privateca.certificateRequester. מידע נוסף מופיע במאמר מתן גישה לחשבון השירות למאגר רשויות האישורים. |
Resource {CA pool ID} not found. |
ל-Memorystore for Redis Cluster אין אפשרות למצוא את מאגר רשויות האישורים שציינתם כשניסיתם ליצור את האשכול. | בודקים את מזהה הפרויקט, המיקום והשם של מאגר רשויות האישורים. |
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 Redis Cluster לא יכול ליצור אישורי שרת לאשכול. | חשוב לוודא שיצרתם לפחות CA אחד במאגר ה-CA, ושה-CA נמצא במצב Enabled. |
Quota exhausted for CA Service. Check quotas
for the project hosting the CA Pool: {CA pool ID}. |
חרגתם מהמכסה של CA Service ב Google Cloud פרויקט שמארח את מאגר ה-CA. Memorystore for Redis Cluster לא יכול לבצע פעולות שדורשות את השירות הזה. | בודקים את המכסה של שירות ה-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 הוא בניהול הלקוח. |