Membuat bucket penyimpanan untuk project

Halaman ini menunjukkan cara membuat bucket penyimpanan yang terisolasi dari jaringan Google Distributed Cloud (GDC).

Sebelum memulai

Bucket penyimpanan adalah resource yang dicakup ke project tertentu. Project bertindak sebagai penampung, mengelompokkan bucket Anda dan memungkinkan pengelolaannya melalui server Management API. Sebelum dapat melakukan operasi di halaman ini, Anda harus membuat project baru atau memilih project yang sudah ada dengan izin yang memadai.

Peran IAM yang diperlukan

Hubungi Admin Project IAM Anda untuk meminta peran berikut di namespace project Anda:

  • Project Bucket Admin (project-bucket-admin): membuat, memperbarui, dan menghapus bucket penyimpanan.
  • Project Bucket Object Viewer (project-bucket-object-viewer): melihat dan memeriksa detail bucket dan objek penyimpanan.

Untuk mengetahui informasi selengkapnya, lihat Memberikan akses bucket.

Menyiapkan lingkungan Anda

Untuk menjalankan perintah terhadap server API pengelolaan atau server API global, lakukan hal berikut:

  1. Login dan buat file kubeconfig untuk server API pengelolaan zonal jika Anda belum memilikinya.
  2. Untuk bucket dual-zona, lakukan hal berikut:
    • Verifikasi dengan Operator Infrastruktur (IO) Anda bahwa resource kustom BucketLocationConfig telah dibuat untuk zona yang dipasangkan.
    • Buat file kubeconfig untuk server API global.

Panduan penamaan bucket penyimpanan

Nama bucket harus mematuhi konvensi penamaan berikut:

  • Bersifat unik dalam project. Server Management API menambahkan awalan unik ke nama bucket yang sepenuhnya memenuhi syarat, sehingga tidak ada konflik dalam organisasi. Jika terjadi konflik awalan dan nama bucket di seluruh organisasi, pembuatan bucket akan gagal dengan error "nama bucket sedang digunakan".
  • Jangan menyertakan informasi identitas pribadi (PII).
  • Mematuhi DNS.
  • Memiliki minimal 1 dan maksimal 55 karakter.
  • Mulai dengan huruf dan hanya gunakan huruf, angka, dan tanda hubung.

Membuat bucket

Secara default, bucket menggunakan kelas penyimpanan Standard. Jika Nearline Storage telah diaktifkan oleh Operator Infrastruktur (IO) Anda, Anda juga dapat memilih kelas penyimpanan Nearline untuk data yang lebih jarang diakses. Penyimpanan nearline didukung untuk bucket zona tunggal dan zona ganda.

Konsol

  1. Di menu navigasi, klik Object Storage.
  2. Di pemilih project, pilih project tempat Anda ingin membuat bucket.
  3. Klik Create Bucket.
  4. Dalam alur pembuatan bucket, tetapkan nama yang unik di semua bucket dalam project.
  5. Masukkan deskripsi.
  6. Di bagian Kelas penyimpanan, pilih Standard atau Nearline. Opsi Nearline hanya terlihat jika Nearline storage diaktifkan.
  7. Opsional: Klik tombol toggle_off untuk menetapkan kebijakan retensi dan masukkan jumlah hari yang Anda inginkan. Hubungi IO Anda jika Anda perlu melampaui batas kebijakan retensi.
  8. Klik Create. Pesan berhasil akan muncul dan Anda akan diarahkan kembali ke halaman Bucket.

Untuk memverifikasi bahwa Anda telah berhasil membuat bucket baru, muat ulang halaman Bucket setelah beberapa menit dan periksa apakah status bucket berubah dari Not ready menjadi Ready.

API

Untuk membuat bucket zonal, terapkan spesifikasi bucket ke namespace project Anda:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f bucket.yaml

Berikut adalah contoh spesifikasi bucket menggunakan class penyimpanan 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

Berikut adalah contoh spesifikasi bucket menggunakan class penyimpanan 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

Berikut adalah contoh spesifikasi bucket dengan versi enkripsi sebagai 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

Untuk mengetahui detail selengkapnya, lihat referensi Bucket API.

Berikut adalah contoh spesifikasi bucket zona ganda untuk server API global:

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

Untuk membuat bucket dual-zona menggunakan Nearline Storage, tetapkan storageClass: Nearline.

Perhatikan bahwa hanya enkripsi V2 yang didukung untuk bucket zona ganda dan semua operasi untuk membuat, memperbarui, atau menghapus resource bucket zona ganda harus dilakukan terhadap server API global.

Untuk membuat bucket zona ganda, terapkan spesifikasi terhadap server API global:

kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f bucket.yaml

gdcloud

Untuk membuat bucket zona tunggal dengan gdcloud menggunakan kelas penyimpanan Nearline:

gdcloud storage buckets create BUCKET_NAME \
    --location=ZONE_NAME \
    --location-type=SingleZone \
    --storage-class=Nearline

Untuk membuat bucket zona ganda dengan gdcloud menggunakan lokasi global:

gdcloud storage buckets create BUCKET_NAME \
    --location=ZONE_1,ZONE_2 \
    --location-type=AsyncDualZone \
    --storage-class=Nearline

Jika --storage-class tidak ada, Standard akan digunakan secara default.

Untuk mengetahui detail selengkapnya, lihat gdcloud storage buckets create.

Setelah membuat bucket, jalankan perintah berikut untuk mengonfirmasi dan memeriksa detail bucket:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG describe buckets BUCKET_NAME -n PROJECT_NAMESPACE

Bagian Status memiliki dua kolom penting: Encryption (untuk detail enkripsi) dan Fully Qualified Name (yang berisi FULLY_QUALIFIED_BUCKET_NAME).

Enkripsi v1

Informasi ini adalah tentang AEADKey yang diberi nama obj-FULLY_QUALIFIED_BUCKET_NAME, yang berfungsi sebagai referensi ke kunci enkripsi yang digunakan untuk mengenkripsi objek yang disimpan dalam bucket. Berikut ini contohnya:

Status:
  Encryption:
    Key Ref:
      Kind: AEADKey
      Name: obj-FULLY_QUALIFIED_BUCKET_NAME
      Namespace: PROJECT_NAMESPACE
    Type: CMEK

Enkripsi v2

Informasi ini berkaitan dengan Secret yang diberi nama kek-ref-FULLY_QUALIFIED_BUCKET_NAME, yang berfungsi sebagai referensi untuk AEADKey default yang aktif. AEADKey default yang aktif dipilih secara acak untuk mengenkripsi objek yang diupload ke bucket saat AEADKey tertentu tidak ditentukan.

Berikut ini contohnya:

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

Anda juga dapat menjalankan perintah berikut untuk memverifikasi bahwa AEADKey yang diperlukan telah dibuat:

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