Mengenkripsi ulang objek yang melanggar kebijakan bucket CMEK default

Halaman ini menjelaskan cara menggunakan Storage Intelligence advisor untuk mengidentifikasi dan mengenkripsi ulang objek yang melanggar kebijakan kunci enkripsi yang dikelola pelanggan (CMEK) default bucket.

Saat Anda menetapkan kunci Cloud KMS default di bucket, Cloud Storage akan mengenkripsi objek baru dengan kunci tersebut, kecuali jika permintaan upload Anda menentukan kunci yang berbeda. Namun, Cloud Storage tidak otomatis mengenkripsi ulang objek yang ada yang Anda upload sebelum menetapkan kunci default. Objek tersebut tetap dienkripsi dengan metode enkripsi aslinya. Untuk mengetahui informasi selengkapnya tentang metode enkripsi yang tersedia, lihat Opsi enkripsi data.

Advisor Storage Intelligence menampilkan temuan Objek melanggar kebijakan bucket CMEK default saat bucket dengan kunci Cloud Key Management Service (Cloud KMS) default berisi objek yang tidak dienkripsi dengan CMEK. Temuan adalah anomali atau kesenjangan konfigurasi keamanan yang terdeteksi dari metrik dan metadata objek Anda yang memerlukan perhatian Anda. Untuk ringkasan advisor Storage Intelligence, lihat Tentang advisor Storage Intelligence. Untuk mengetahui daftar lengkap temuan, lihat Katalog referensi temuan.

Nilai minimum yang memicu temuan

Saat Anda mengaktifkan Storage Intelligence, Cloud Storage akan otomatis mengevaluasi metadata enkripsi level bucket dan level objek di seluruh project, folder, atau organisasi Anda. Advisor Storage Intelligence menghasilkan temuan saat bucket memenuhi kedua kriteria berikut:

Temuan dasar pengukuran awal akan muncul dalam waktu 48 jam setelah Anda mengaktifkan Storage Intelligence dan diperbarui setiap 24 jam. Untuk mengurangi volume pemberitahuan, advisor Storage Intelligence menggabungkan pelanggaran tingkat objek berdasarkan bucket di dasbor Anda. Anda dapat mengkueri metadata enkripsi tingkat objek di set data Insight Penyimpanan.

Merespons temuan

Untuk merespons temuan, identifikasi objek yang terpengaruh di setiap bucket dan enkripsi ulang objek tersebut dengan kunci Cloud KMS default bucket:

  1. Lihat detail temuan untuk mengidentifikasi bucket yang terpengaruh dan salin nama resource Kunci KMS default setiap bucket.

  2. Opsional: Untuk melihat daftar objek dalam bucket yang tidak dienkripsi dengan CMEK, buat kueri set data Insight Penyimpanan di BigQuery. Jika Anda belum mengonfigurasi set data tertaut, lihat Mengonfigurasi set data Insight Penyimpanan.

    SELECT
      bucket,
      name,
      encryptionType
    FROM
      `DATASET_NAME.object_attributes_latest_snapshot_view`
    WHERE
      bucket = 'BUCKET_NAME'
      AND encryptionType != 'CMEK'
      AND timeDeleted IS NULL
      AND softDeleteTime IS NULL;

    Ganti kode berikut:

    • DATASET_NAME: nama set data tertaut Insight Penyimpanan Anda di BigQuery.
    • BUCKET_NAME: nama bucket yang terpengaruh.
  3. Gunakan tabel berikut untuk memilih metode enkripsi ulang untuk objek aktif Anda:

    Skenario Tindakan yang disarankan Detail
    Objek aktif yang terpengaruh menggunakan enkripsi standar (GMEK) Mengenkripsi ulang objek yang dienkripsi GMEK dalam skala besar menggunakan Storage batch operations Ekspor file manifes CSV dari objek GMEK aktif yang terpengaruh dari BigQuery dan jalankan tugas Storage batch operations untuk menulis ulang objek dengan kunci Cloud KMS default bucket.
    Objek aktif yang terpengaruh menggunakan kunci enkripsi yang disediakan pelanggan (CSEK) Mengenkripsi ulang objek yang dienkripsi CSEK menggunakan Google Cloud CLI Karena Google Cloud tidak menyimpan kunci enkripsi yang disediakan pelanggan (CSEK), Storage batch operations tidak dapat mendekripsi objek yang dienkripsi CSEK. Gunakan perintah gcloud storage objects update untuk menulis ulang objek yang dienkripsi CSEK dengan kunci Cloud KMS default bucket.

    Setelah Anda mengenkripsi ulang semua objek yang tidak sesuai dalam bucket, temuan akan dihapus untuk bucket tersebut selama siklus refresh 24 jam berikutnya. Namun, temuan tetap aktif dalam kasus berikut hingga Anda atau Cloud Storage menghapus permanen versi objek yang dipertahankan:

Mengenkripsi ulang objek yang dienkripsi GMEK dalam skala besar menggunakan Storage batch operations

Untuk mengenkripsi ulang objek GMEK aktif dalam skala besar, ekspor file manifes CSV dari BigQuery dan jalankan tugas operasi batch Storage:

  1. Jalankan kueri EXPORT DATA berikut di BigQuery untuk membuat manifes CSV menggunakan set data Insight Penyimpanan:

    EXPORT DATA OPTIONS(
      uri='gs://DESTINATION_BUCKET/manifests/objects_violating_default_policies_*.csv',
      format='CSV',
      overwrite=true,
      header=true
    ) AS
    SELECT
      bucket,
      name
    FROM
      `DATASET_NAME.object_attributes_latest_snapshot_view`
    WHERE
      bucket = 'BUCKET_NAME'
      AND encryptionType = 'GMEK'
      AND timeDeleted IS NULL
      AND softDeleteTime IS NULL;

    Ganti kode berikut:

    • DESTINATION_BUCKET: nama bucket Cloud Storage tempat Anda ingin menyimpan file manifes CSV yang diekspor.
    • DATASET_NAME: nama set data tertaut Insight Penyimpanan Anda di BigQuery.
    • BUCKET_NAME: nama bucket yang terpengaruh.
  2. Selesaikan Prasyarat storage batch operation, dan minta administrator Anda untuk memberikan peran Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) pada kunci Cloud KMS default bucket ke kedua agen layanan berikut:

    • Agen layanan Storage batch operations (service-PROJECT_NUMBER@gcp-sa-storagebatchoperations.iam.gserviceaccount.com)
    • Agen layanan Cloud Storage (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

    Ganti PROJECT_NUMBER dengan nomor project dari project yang berisi bucket.

  3. Jalankan perintah gcloud storage batch-operations jobs create untuk membuat tugas Storage batch operations menggunakan file manifes dan mengenkripsi ulang objek dengan kunci Cloud KMS default bucket. Untuk memverifikasi konfigurasi tugas sebelum mengubah objek, sertakan flag --dry-run:

    gcloud storage batch-operations jobs create JOB_NAME \
      --bucket="BUCKET_NAME" \
      --manifest-location="gs://DESTINATION_BUCKET/manifests/objects_violating_default_policies_*.csv" \
      --rewrite-object="kms-key=DEFAULT_KMS_KEY"

    Ganti kode berikut:

    • JOB_NAME: ID unik untuk tugas batch, seperti update-encryption-to-cmek-job.
    • BUCKET_NAME: nama bucket yang terpengaruh.
    • DESTINATION_BUCKET: nama bucket yang berisi file manifes yang diekspor.
    • DEFAULT_KMS_KEY: nama resource kunci Cloud KMS default bucket, dalam format projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.

Mengenkripsi ulang objek yang dienkripsi CSEK menggunakan Google Cloud CLI

Karena Google Cloud tidak menyimpan kunci enkripsi yang disediakan pelanggan (CSEK), Storage batch operations tidak dapat mendekripsi objek yang dienkripsi CSEK. Untuk mengenkripsi ulang objek yang dienkripsi CSEK dengan kunci Cloud KMS default bucket, jalankan perintah gcloud storage objects update dengan flag --decryption-keys dan --encryption-key:

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \
  --decryption-keys=DECRYPTION_KEY \
  --encryption-key=DEFAULT_KMS_KEY

Ganti kode berikut:

  • BUCKET_NAME: nama bucket yang terpengaruh.
  • OBJECT_NAME: nama objek yang dienkripsi CSEK yang ingin Anda enkripsi ulang. Untuk memperbarui beberapa objek dalam satu perintah, gunakan karakter pengganti URI atau flag --read-paths-from-stdin (-I).
  • DECRYPTION_KEY: kunci AES-256 berenkode base64 RFC 4648 yang mengenkripsi objek.
  • DEFAULT_KMS_KEY: nama resource kunci Cloud KMS default bucket, dalam format projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.

Langkah berikutnya