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

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

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

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

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

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

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

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

הכנת הסביבה

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

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

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

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

כדי ליצור קטגוריית WORM:

  1. להגדיר תקופת שמירה כשיוצרים את הקטגוריה. תקופת השמירה מגדירה כמה ימים כל גרסת אובייקט נעולה מפני מחיקה או שינוי. תקופת השמירה הזו נפרדת ממשך האחסון המינימלי של סוג האחסון (למשל, מינימום של 30 יום לסוג האחסון Standard). לדוגמה, בקטגוריה הבאה מוגדרת תקופת שמירה של 365 ימים. אם אתם צריכים לחרוג מהמגבלות של מדיניות שמירת הנתונים, פנו למפעיל התשתית (IO).

    apiVersion: object.gdc.goog/v1
    kind: Bucket
    metadata:
      name: foo-logging-bucket
      namespace: foo-service
    spec:
      description: "Audit logs for foo"
      storageClass: Standard
      bucketPolicy:
        lockingPolicy:
          defaultObjectRetentionDays: 365
    
  2. מקצים את התפקיד project-bucket-object-viewer לכל המשתמשים שצריכים גישת קריאה בלבד:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-readonly-access
    roleRef:
      kind: Role
      name: project-bucket-object-viewer
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-log-processor
    - kind: User
      name: bob@example.com
      apiGroup: rbac.authorization.k8s.io
    
  3. מקצים את התפקיד project-bucket-object-admin למשתמשים שצריכים לכתוב תוכן בקטגוריה:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-write-access
    roleRef:
      kind: Role
      name: project-bucket-object-admin
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-service-account