בדף הזה מוסבר איך ליצור קטגוריות אחסון מבודלות (air-gapped) ב-Google Distributed Cloud (GDC).
לפני שמתחילים
מרחב שמות של פרויקט מנהל משאבי קטגוריות בשרת Management API. כדי לעבוד עם קטגוריות ואובייקטים, צריך פרויקט.
כדי לבצע את הפעולה הבאה, צריך גם הרשאות מתאימות ל-bucket. מידע נוסף זמין במאמר הענקת גישה לקטגוריה.
הנחיות למתן שמות לקטגוריות אחסון
השמות של הקטגוריות צריכים לעמוד במוסכמות הבאות למתן שמות:
- הוא צריך להיות ייחודי במסגרת הפרויקט. שרת ה-Management API מוסיף קידומת ייחודית לשם המוגדר במלואו של הקטגוריה, כדי למנוע התנגשויות בתוך הארגון. במקרה הלא סביר של התנגשות בין תוספת לשם לבין שם של קטגוריה בארגונים שונים, יצירת הקטגוריה תיכשל ותוצג השגיאה 'שם הקטגוריה נמצא בשימוש'.
- אל תכללו פרטים אישיים מזהים (PII).
- השם צריך להיות תואם ל-DNS.
- להכיל לפחות תו אחד ולא יותר מ-55 תווים.
- השם חייב להתחיל באות ויכול להכיל רק אותיות, מספרים ומקפים.
יצירת קטגוריה
כברירת מחדל, הקטגוריות משתמשות בסוג האחסון Standard. אם ספק התשתית (IO) הפעיל את Nearline storage, אפשר גם לבחור את סוג האחסון (storage class) Nearline לנתונים שניגשים אליהם בתדירות נמוכה יותר. Nearline Storage נתמך גם בקטגוריות של אזור יחיד וגם בקטגוריות של שני אזורים.
המסוף
- בתפריט הניווט, לוחצים על Object Storage (אחסון אובייקטים).
- ברשימת הפרויקטים, בוחרים את הפרויקט שבו רוצים ליצור את הקטגוריה.
- לוחצים על Create Bucket.
- בתהליך יצירת הקטגוריה, מקצים שם ייחודי לכל הקטגוריות בפרויקט.
- הזן תיאור
- בקטע Storage class, בוחרים באפשרות Standard או Nearline. האפשרות Nearline מוצגת רק אם אחסון Nearline מופעל.
- אופציונלי: לוחצים על המתג toggle_off כדי להגדיר מדיניות שמירת נתונים ומזינים את מספר הימים הרצוי. אם אתם צריכים לחרוג ממגבלות מדיניות השמירה, אתם יכולים לפנות ל-IO.
- לוחצים על יצירה. תוצג הודעה על הצלחת הפעולה ותועברו חזרה לדף Buckets.
כדי לוודא שיצרתם בהצלחה דלי חדש, רעננו את הדף Buckets אחרי כמה דקות ובדקו שהסטטוס של הדלי השתנה מ-Not ready ל-Ready.
CLI
כדי ליצור קטגוריה, צריך להחיל מפרט קטגוריה על מרחב השמות של הפרויקט:
kubectl apply -f bucket.yaml
הדוגמה הבאה מציגה הגדרה של קטגוריה באמצעות סוג האחסון Standard:
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: DESCRIPTION
storageClass: Standard
bucketPolicy:
lockingPolicy:
defaultObjectRetentionDays: RETENTION_DAY_COUNT
הדוגמה הבאה מציגה הגדרה של קטגוריה באמצעות סוג האחסון Nearline:
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: DESCRIPTION
storageClass: Nearline
bucketPolicy:
lockingPolicy:
defaultObjectRetentionDays: RETENTION_DAY_COUNT
הדוגמה הבאה מציגה הגדרה של קטגוריה עם גרסת הצפנה v1:
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
labels:
object.gdc.goog/encryption-version: v1
spec:
description: DESCRIPTION
storageClass: Standard
bucketPolicy:
lockingPolicy:
defaultObjectRetentionDays: RETENTION_DAY_COUNT
מידע נוסף מופיע במאמר הפניית API של קטגוריות.
הדוגמה הבאה מציגה מפרט של קטגוריה עם שני אזורים ב-API הגלובלי של אדמין הארגון:
apiVersion: object.global.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: PROJECT_NAME
spec:
location: LOCATION_NAME
description: Sample DZ Bucket
storageClass: Standard
כדי ליצור קטגוריה בשני אזורים באמצעות Nearline Storage, מגדירים את storageClass: Nearline.
הערה: רק הצפנה בגרסה 2 נתמכת בקטגוריות של אזורים כפולים, וכל הפעולות ליצירה, לעדכון או למחיקה של משאב בקטגוריה של אזורים כפולים חייבות להתבצע מול שרת ה-API הגלובלי.
gdcloud
כדי ליצור קטגוריה עם אזור יחיד באמצעות gdcloud עם סוג האחסון Nearline:
gdcloud storage buckets create BUCKET_NAME \
--location=ZONE_NAME \
--location-type=SingleZone \
--storage-class=Nearline
כדי ליצור קטגוריה בשני אזורים עם gdcloud באמצעות המיקום הגלובלי:
gdcloud storage buckets create BUCKET_NAME \
--location=ZONE_1,ZONE_2 \
--location-type=AsyncDualZone \
--storage-class=Nearline
אם לא מציינים את --storage-class, המערכת משתמשת ב-Standard כברירת מחדל.
פרטים נוספים זמינים במאמר gdcloud storage buckets create.
אימות של יצירת דלי ומשאבים קשורים
אחרי שיוצרים את הקטגוריה, אפשר להריץ את הפקודה הבאה כדי לאשר ולבדוק את פרטי הקטגוריה:
kubectl describe buckets BUCKET_NAME -n PROJECT_NAMESPACE
בקטע סטטוס יש שני שדות חשובים: הצפנה (לפרטי ההצפנה) ושם מלא (שכולל את FULLY_QUALIFIED_BUCKET_NAME).
הצפנה גרסה 1
המידע מתייחס למפתח AEAD שנקרא obj-FULLY_QUALIFIED_BUCKET_NAME, שמשמש כהפניה למפתח ההצפנה שמשמש להצפנת אובייקטים שמאוחסנים בדלי. לדוגמה:
Status:
Encryption:
Key Ref:
Kind: AEADKey
Name: obj-FULLY_QUALIFIED_BUCKET_NAME
Namespace: PROJECT_NAMESPACE
Type: CMEK
הצפנה גרסה 2
המידע מתייחס לסוד שנקרא kek-ref-FULLY_QUALIFIED_BUCKET_NAME, שמשמש כהפניה למפתחות AEAD פעילים שמוגדרים כברירת מחדל. מערכת בוחרת באופן אקראי מתוך AEADKeys פעילים שמוגדרים כברירת מחדל כדי להצפין אובייקטים שמועלים לקטגוריה, אם לא מצוין AEADKey ספציפי.
לדוגמה:
Status:
Encryption:
Key Ref:
Kind: Secret
Name: kek-ref-FULLY_QUALIFIED_BUCKET_NAME
Namespace: PROJECT_NAMESPACE
Type: CMEK
אפשר גם להריץ את הפקודה הבאה כדי לוודא שנוצרו מפתחות AEAD:
kubectl get aeadkeys -n PROJECT_NAMESPACE -l cmek.security.gdc.goog/resource-name=FULLY_QUALIFIED_BUCKET_NAME