יצירת קטגוריות אחסון לפרויקטים

בדף הזה מוסבר איך ליצור קטגוריות אחסון מבודלות (air-gapped) ב-Google Distributed Cloud ‏(GDC).

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

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

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

הנחיות למתן שמות לקטגוריות אחסון

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

  • הוא צריך להיות ייחודי במסגרת הפרויקט. שרת ה-Management API מוסיף קידומת ייחודית לשם המוגדר במלואו של הקטגוריה, כדי למנוע התנגשויות בתוך הארגון. במקרה הלא סביר של התנגשות בין תוספת לשם לבין שם של קטגוריה בארגונים שונים, יצירת הקטגוריה תיכשל ותוצג השגיאה 'שם הקטגוריה נמצא בשימוש'.
  • אל תכללו פרטים אישיים מזהים (PII).
  • השם צריך להיות תואם ל-DNS.
  • להכיל לפחות תו אחד ולא יותר מ-55 תווים.
  • השם חייב להתחיל באות ויכול להכיל רק אותיות, מספרים ומקפים.

יצירת קטגוריה

כברירת מחדל, הקטגוריות משתמשות בסוג האחסון Standard. אם ספק התשתית (IO) הפעיל את Nearline storage, אפשר גם לבחור את סוג האחסון (storage class) Nearline לנתונים שניגשים אליהם בתדירות נמוכה יותר. ‫Nearline Storage נתמך גם בקטגוריות של אזור יחיד וגם בקטגוריות של שני אזורים.

המסוף

  1. בתפריט הניווט, לוחצים על Object Storage (אחסון אובייקטים).
  2. ברשימת הפרויקטים, בוחרים את הפרויקט שבו רוצים ליצור את הקטגוריה.
  3. לוחצים על Create Bucket.
  4. בתהליך יצירת הקטגוריה, מקצים שם ייחודי לכל הקטגוריות בפרויקט.
  5. הזן תיאור
  6. בקטע Storage class, בוחרים באפשרות Standard או Nearline. האפשרות Nearline מוצגת רק אם אחסון Nearline מופעל.
  7. אופציונלי: לוחצים על המתג toggle_off כדי להגדיר מדיניות שמירת נתונים ומזינים את מספר הימים הרצוי. אם אתם צריכים לחרוג ממגבלות מדיניות השמירה, אתם יכולים לפנות ל-IO.
  8. לוחצים על יצירה. תוצג הודעה על הצלחת הפעולה ותועברו חזרה לדף 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