Skenario untuk mengekspor persyaratan Kepatuhan Cloud Logging

Last reviewed 2022-10-26 UTC

Skenario ini menunjukkan cara mengekspor log dari Cloud Logging ke Cloud Storage untuk memenuhi persyaratan kepatuhan organisasi Anda. Organisasi menghadapi banyak persyaratan semacam itu untuk membuat dan menjaga logging file. Misalnya, jika kepatuhan Sarbanes Oxley (SOX) dianggap sangat penting, Anda dapat mempertahankan log untuk pengguna, database, dan aktivitas konsol. Untuk mengetahui informasi lebih lanjut mengenai periode default dan dapat dikonfigurasi dari retensi log, lihat kuota dan batasan Cloud Logging.

Dalam skenario ini, log yang diekspor dikirimkan ke bucket Cloud Storage yang Anda konfigurasi. Anda memberikan izin untuk membatasi akses ke log sesuai kebutuhan. Untuk mengurangi biaya penyimpanan jangka panjang, Anda dapat menggunakan fitur manajemen siklus proses objek di Cloud Storage untuk memindahkan log ke kelas Nearline atau Coldline storage lalu menghapusnya setelah periode retensi yang diperlukan telah terlewati.

Skenario ini menganggap arsitektur web umum tiga tingkat yang berjalan di Google Cloud dengan mesin virtual (VM), database, dan sistem penyimpanan pendukung. Untuk lingkungan ini, jenis log berikut yang diekspor: semua log audit, log terkait mesin virtual, log penyimpanan, dan log database. Anda dapat mengubah jenis log yang diekspor dengan menyesuaikan filter pencatatan log dalam contoh ini.

Menyiapkan ekspor logging

Diagram berikut menunjukkan langkah-langkah untuk mengaktifkan ekspor logging ke Cloud Storage.

Mengaktifkan dukungan logging.

Menyiapkan bucket ekspor logging di Cloud Storage

Ikuti petunjuk untuk menyiapkan bucket Cloud Storage yang akan menghosting log Anda yang sudah diekspor. Untuk kelas penyimpanan default, pilih Regional, kecuali Anda membutuhkan kelas Multi-Regional, Nearline, atau Coldline storage.

Mengonfigurasi pengelolaan siklus proses objek untuk bucket Cloud Storage

Skenario ini menganggap persyaratan retensi untuk semua log berlangsung selama 7 tahun. Untuk to meminimalkan biaya penyimpanan, Anda dapat menambahkan aturan siklus proses di Cloud Storage untuk memindahkan log ke Nearline atau Coldline storage setelah jumlah hari tertentu, lalu menghapus log jika Anda tidak lagi diharuskan untuk menyimpannya.

Praktik terbaik: Memindahkan log ke Nearline atau Coldline kemudian menghapusnya membantu Anda mengelola biaya operasional penyimpanan log yang sedang berlangsung.

Anda dapat mengikuti petunjuk untuk membuat aturan siklus proses. Screenshot berikut menggambarkan serangkaian aturan menurun yang mengubah kelas penyimpanan menjadi Nearline setelah 60 hari, mengubah kelas penyimpanan menjadi Coldline setelah 120 hari, lalu menghapus log setelah 2555 hari yaitu sekitar 7 tahun.

Aturan menurun.

Mengaktifkan logging audit untuk semua layanan

Log audit akses data—kecuali untuk BigQuery—nonaktif secara default. Untuk mengaktifkan semua log audit, ikuti petunjuk untuk memperbarui kebijakan Identity and Access Management (IAM) dengan konfigurasi yang tercantum dalam dokumentasi kebijakan audit . Langkah-langkahnya adalah sebagai berikut.

  • Mendownload kebijakan IAM saat ini sebagai file.
  • Menambahkan objek JSON atau YAML kebijakan log audit ke file kebijakan saat ini.
  • Memperbarui proyek Google Cloud dengan file kebijakan yang telah diubah.

Berikut merupakan contoh objek JSON yang mengaktifkan semua log audit untuk seluruh layanan.

"auditConfigs": [
    {
        "service": "allServices",
        "auditLogConfigs": [
            { "logType": "ADMIN_READ" },
            { "logType": "DATA_READ"  },
            { "logType": "DATA_WRITE" },
        ]
    },
]

Mengonfigurasi ekspor logging

Setelah menyiapkan ekspor gabungan atau ekspor log, Anda perlu meningkatkan kualitas filter logging untuk mengekspor log audit, log terkait virtual machine, log penyimpanan, dan log database. Filter logging berikut mencakup Aktivitas Admin dan log audit Akses Data dan log untuk jenis resource tertentu.

logName:"/logs/cloudaudit.googleapis.com" OR
resource.type:gce OR
resource.type=gcs_bucket OR
resource.type=cloudsql_database OR
resource.type=bigquery_resource

Dari Google Cloud CLI, gunakan gcloud logging sinks create perintah atau organizations.sinks.create panggilan API untuk membuat sink dengan filter yang sesuai. Contoh gcloud perintah berikut membuat sink yang akan dipanggil gcp_logging_sink_gcs untuk organisasi. Sink mencakup semua project turunan dan menentukan filter untuk memilih log audit secara masing-masing.

gcloud logging sinks create gcp_logging_sink_gcs \
    storage.googleapis.com/gcp-logging-export-000100011000 \
    --log-filter='logName: "/logs/cloudaudit.googleapis.com" OR \
    resource.type:\"gce\" OR \
    resource.type=\"gcs_bucket\" OR   \
    resource.type=\"cloudsql_database\" OR  \
    resource.type=\"bigquery_resource\"' \
    --include-children   \
    --organization=324989855333

Output perintah mirip dengan berikut ini:

Created [https://logging.googleapis.com/v2/organizations/324989855333/sinks/gcp_logging_sink_gcs].
Please remember to grant `serviceAccount:gcp-logging-sink-gcs@logging-o324989855333.iam.gserviceaccount.com` full-control access to the bucket.
More information about sinks can be found at /logging/docs/export/configure_export

serviceAccountEntri dikembalikan dari panggilan API termasuk identitasnya gcp-logging-sink-gcs@logging-o324989855333.iam.gserviceaccount.com. Identitas ini mewakili akun layanan Google Cloud yang telah dibuat untuk ekspor. Hingga Anda memberikan identitas ini akses menulis ke tujuan, ekspor entri log dari sink ini akan gagal. Untuk mencari tahu informasi selengkapnya, lihat bagian atau dokumentasi tentang Memberikan akses untuk suatu resource.

Menetapkan izin kebijakan IAM untuk bucket Cloud Storage

Dengan menambahkan akun layanan gcp-logging-sink-gcs@logging-o324989855333.iam.gserviceaccount.com ke gcp-logging-export-000100011000 bucket dengan izin Storage Object Creator, , Anda juga memberikan izin bagi akun layanan untuk menulis di bucket. Hingga Anda menambahkan izin ini, ekspor sink akan mengalami kegagalan.

Untuk menambahkan izin ke gcp-logging-export bucket, ikuti langkah-langkah ini:

  1. Di Konsol Google Cloud, buka Storage Browser:

    BUKA STORAGE BROWSER

  2. Pilih bucket gcp-logging-export.

  3. Klik Tampilkan panel info, kemudian pilih izin Storage Object Creator.

    Izin kebijakan IAM - Storage Object Creator.

Setelah Anda membuat ekspor loggin menggunakan filter sebelumnya, file log akan mulai mengisi bucket Cloud Storage di project yang dikonfigurasi.

Praktik terbaik: Anda dapat menerapkan kebijakan dengan izin yang paling sedikit sesuai dengan kebutuhan Anda. Anda dapat mengonfigurasi izin bucket berdasarkan akun pengguna Google Cloud khusus, Google Groups, atau akun layanan Google Cloud. Gunakan izin IAM untuk memberikan akses ke bucket Cloud Storage serta akses massal ke suatu objek bucket.

Untuk contoh kumpulan izin, Anda dapat melakukan hal berikut:

  • Menghapus semua pengguna yang dianggap tidak penting dari izin bucket Cloud Storage.
  • Menambah kontrol penuh untuk admin Cloud Storage.
  • Memberi izin kepada pengguna ekspor untuk menulis file ekspor logging.
  • Memberi akses untuk melihat ekspor logging Google Cloud bagi pengguna perorangan lain.

Anda dapat memperbarui izin IAM untuk bucket secara langsung di konsol Google Cloud melalui gsutil alat command-line, atau melalui API IAM. Contoh berikut menunjukkan kumpulan contoh izin dan screenshot terkait dengan bucket Cloud Storage di konsol Google Cloud.

Peran: Storage Admin

  • Deskripsi IAM: Kontrol penuh atas resource Cloud Storage
  • Penggunaan: Gunakan peran ini untuk memberi akses kepada pengguna admin pada resource Cloud Storage tanpa memberi akses untuk mengubah isi yang tersimpan di Cloud Storage.
  • Akun contoh:

    storage-admin@example.com

    Peran: Storage Admin.

Peran: Storage Object Admin

  • Deskripsi IAM: Kontrol penuh atas objek Cloud Storage
  • Penggunaan: Gunakan peran ini untuk memberikan akses penuh kepada pengguna admin pada objek file Cloud Storage tanpa memberi akses untuk mengubah konfigurasi resource Cloud Storage.
  • Akun contoh:

    storage-object-admin@example.com: user1@example.com, user2@example.com

    Peran: Storage Object Admin.

Peran: Storage Object Viewer

  • Deskripsi IAM: Akses baca ke objek Cloud Storage
  • Penggunaan: Gunakan peran ini untuk memberi akses hanya baca pada log Google Cloud bagi pengguna.
  • Akun contoh:

    storage-viewer@example.com: user3@example.com

    Peran: Storage Object Viewer.

Praktik terbaik: Jika Anda menggunakan Google Workspace atau Google Grup konsumen, Anda dapat menambah grup Google seperti gcp-logging-export-viewers@example.com dengan izin Storage Object Viewer. Kemudian, Anda dapat menambah pengguna ke atau menghapus pengguna dari grup gcp-logging-export-viewers@example.com tanpa harus mengedit izin bucket Cloud Storage untuk masing-masing perubahan dalam izin lihat pengguna.

Menggunakan log yang diekspor

Setelah Anda membuat ekspor logging dengan menggunakan filter di atas, file log mulai mengisi bucket Cloud Storage dalam project yang dikonfigurasi. Setiap log membuat folder terpisah di dalam bucket, yang kemudian dipecah dalam struktur hierarki berdasarkan tanggal. Anda dapat mengakses log melalui konsol Google Cloud, alat command-line gsutil, atau API IAM. Screenshot berikut menunjukkan contoh struktur folder di dalam konsol Google Cloud.

Contoh struktur folder.

Setiap file log terdiri dari data JSON yang mengikuti format entri textPayload, protoPayload, dan jsonPayload. Seiring waktu, file log di bucket Cloud Storage tunduk pada proses siklus proses Cloud Storage, yang mula-mula memindahkan log ke Nearline storage, lalu memindahkan log ke Coldline storage, terakhir akan menghapus log berdasarkan konfigurasi Anda.

Memberikan akses eksternal

Anda mungkin ingin memberi akses pengguna tertentu pada log yang diekspor, misalnya, analisis keamanan, tim DevOps, dan auditor Anda.

Strategi lokasi log

Ada beberapa opsi untuk memberikan akses pada log di Cloud Storage.

  • Buat salinan log untuk dibagikan.

    Buat salinan file log individu atau kumpulan log secara manual atau terprogram lalu tempatkan salinannya di bucket Cloud Storage terpisah. Kemudian gunakan izin bucket terpisah untuk membagikan log dengan pengguna tertentu jika dibutuhkan.

    Keuntungan: Anda dapat membatasi jumlah data yang diekspos hanya untuk data salinan.

    Kekurangan: Anda harus membuat, membagikan, dan mengelola set data dan izin terpisah yang dapat menimbulkan biaya lebih tinggi.

  • Memberikan akses hanya baca ke semua log.

    Mengatur izin pelihat untuk bucket ekspor logging Cloud Storage secara manual atau terprogram yang akan memberi akses pada semua hasil ekspor log.

    Keuntungan: Akses mudah diberikan.

    Kekurangan: Anda harus memberi akses ke semua log daripada hanya file log tertentu.

Strategi kontrol akses pengguna

Anda dapat menggunakan izin bucket Cloud Storage untuk membagikan ekspor logging bucket Cloud Storage menggunakan Akun Google atu Google Grup tertentu.

  • Menggunakan Google Grup.

    Membuat Google Grup seperti auditors@example.com dengan akses hanya baca ke bucket ekspor logging Cloud Storage. Kemudian, Anda harus mengelola daftar Akun Google dengan menambah atau menghapus auditor ke grup Google.

    Keuntungan: Mudah mengelola akses melalui grup; ada tujuan untuk mengakses pengguna yang jelas.

    Kekurangan: Anda tidak dapat mengetahui siapa pemilik akses tanpa melihat keanggotaan grup.

  • Menggunakan Akun Google perorangan.

    Memberi akses pada Akun Google perorangan atas bucket ekspor logging Cloud Storage bagi setiap pengguna yang membutuhkannya.

    Keuntungan: Mudah menambahkan setiap pengguna baik secara manual maupun terprogram.

    Kekurangan: Anda tidak dapat membedakan pengguna audit dari pelihat lain.

Langkah selanjutnya