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

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

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

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

התפקידים שצריך ב-IAM

כדי לבקש את התפקידים הבאים במרחב השמות של הפרויקט, פנו לאדמין של הפרויקט ב-IAM:

  • אדמין של קטגוריות בפרויקט (project-bucket-admin): יצירה, עדכון ומחיקה של קטגוריות אחסון.
  • ‫Project Bucket Object Viewer‏ (project-bucket-object-viewer): צפייה ובדיקה של פרטי הקטגוריות והאובייקטים של האחסון.

מידע נוסף זמין במאמר מתן גישה לקטגוריה.

הכנת הסביבה

כדי להריץ פקודות בשרת ה-Management API או בשרת ה-API הגלובלי:

  1. אם אין לכם קובץ kubeconfig לשרת ה-API של ניהול האזור, נכנסים לחשבון ויוצרים קובץ כזה.
  2. לקטגוריות בשני אזורים:
    • מוודאים מול מפעיל התשתית (IO) שהמשאב המותאם אישית BucketLocationConfig נוצר בשביל האזורים המותאמים.
    • יוצרים את הקובץ kubeconfig לשרת ה-API הגלובלי.

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

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

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

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

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

המסוף

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

כדי לוודא שהצלחתם ליצור קטגוריה חדשה, רעננו את הדף Buckets אחרי כמה דקות ובדקו שמצב הקטגוריה מתעדכן מ-Not ready ל-Ready.

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.

API

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

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG 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

לפרטים נוספים, קראו את מאמרי העזרה של Bucket 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 הגלובלי.

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

kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f bucket.yaml

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

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG describe buckets BUCKET_NAME -n PROJECT_NAMESPACE

בקטע Status יש שני שדות חשובים: Encryption (לפרטי ההצפנה) ו-Fully Qualified Name (שמכיל את FULLY_QUALIFIED_BUCKET_NAME).

הצפנה גרסה 1

המידע הוא על AEADKey בשם 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, שמשמש כקובץ עזר למפתחות AEADKeys פעילים שמוגדרים כברירת מחדל. מפתחות AEADKeys פעילים שמשמשים כברירת מחדל נבחרים באופן אקראי כדי להצפין אובייקטים שמועלים לקטגוריה, כשלא מצוין מפתח AEADKey ספציפי.

לדוגמה:

Status:
  Encryption:
    Key Ref:
      Kind: Secret
      Name: kek-ref-FULLY_QUALIFIED_BUCKET_NAME
      Namespace: PROJECT_NAMESPACE
    Type: CMEK

אפשר גם להריץ את הפקודה הבאה כדי לוודא שנוצרו מפתחות AEADKeys נדרשים:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get aeadkeys -n PROJECT_NAMESPACE -l  cmek.security.gdc.goog/resource-name=FULLY_QUALIFIED_BUCKET_NAME