Mengintegrasikan Secret Manager dengan Google SecOps

Dokumen ini menjelaskan cara mengintegrasikan Secret Manager dengan Google Security Operations.

Kasus penggunaan

Integrasi Secret Manager menggunakan kemampuan Google SecOps untuk mendukung kasus penggunaan berikut:

  • Memusatkan pengelolaan kredensial: Hilangkan kredensial aplikasi hard code yang disematkan dalam file konfigurasi dan skrip Google SecOps Anda dengan menyimpan, mengaudit, dan mengelolanya secara terpusat dalam Google Cloud.
  • Sinkronkan parameter: Otomatiskan pengelolaan konfigurasi menggunakan tugas sinkronisasi latar belakang untuk mengambil entri dari Google Cloud Secret Manager dan mengupdate instance integrasi, konektor, dan tugas.

Sebelum memulai

Sebelum mengonfigurasi integrasi di platform Google SecOps, pastikan Anda telah mengonfigurasi lingkungan menggunakan langkah-langkah berikut:

  1. Membuat akun layanan:
  2. Aktifkan API yang diperlukan untuk project Anda.
  3. Pilih dan konfigurasikan salah satu metode autentikasi berikut:
    • Opsi 1: Kunci JSON: Metode ini mengandalkan file kunci rahasia statis yang berumur panjang. Gunakan metode ini hanya jika Workload Identity tidak tersedia di lingkungan Anda.
    • Opsi 2: Workload Identity (direkomendasikan): Metode ini menggunakan token akses sementara yang berumur pendek menggunakan peniruan akun layanan, sehingga tidak perlu menyimpan secret apa pun.

Membuat akun layanan

Untuk membuat akun layanan untuk integrasi, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka IAM & Admin > Service Accounts, lalu pilih project Anda.

    Buka Akun Layanan

  2. Klik Create service account.

  3. Berikan nama dan deskripsi, lalu klik Selesai untuk membuat akun.

  4. Berikan izin IAM yang diperlukan ke akun layanan, bergantung pada metode autentikasi yang Anda pilih:

    • Untuk autentikasi kunci akun layanan, berikan peran berikut:
      • Secret Manager Secret Accessor (roles/secretmanager.secretAccessor), memungkinkan integrasi mengakses payload secret.
      • Secret Manager Viewer (roles/secretmanager.viewer), *memberikan izin secretmanager.secrets.list yang diperlukan untuk tindakan Ping guna menguji konektivitas*.
    • Untuk autentikasi Workload Identity:
      • Berikan peran Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) dan Secret Manager Viewer (roles/secretmanager.viewer) kepada akun layanan target yang ditiru identitasnya.
      • Pastikan identitas lingkungan runtime Anda memiliki peran Service Account Token Creator (roles/iam.serviceAccountTokenCreator).

Mengaktifkan API yang diperlukan untuk project Anda

  1. Di konsol Google Cloud , buka APIs & Services.

    Buka APIs & Services

  2. Klik Enable APIs and Services.

  3. Telusuri dan aktifkan Secret Manager API untuk project Anda.

Mengonfigurasi kunci JSON

Anda dapat mengautentikasi integrasi menggunakan file kunci JSON statis atau Workload Identity. Untuk memaksimalkan keamanan lingkungan Anda, gunakan metode Workload Identity. Gunakan metode kunci JSON hanya jika Workload Identity tidak didukung di infrastruktur Anda, karena kunci statis memerlukan rotasi manual dan meningkatkan risiko eksposur kredensial.

Untuk membuat file kunci JSON yang diperlukan untuk mengautentikasi integrasi, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka IAM & Admin > Service Accounts, lalu pilih akun layanan yang Anda buat.

    Buka Akun Layanan

  2. Buka tab Keys.

  3. Klik Add key.

  4. Pilih Buat kunci baru.

  5. Untuk jenis kunci, pilih JSON, lalu klik Create. File JSON akan didownload ke komputer Anda.

  6. Salin seluruh konten file ini dan tempelkan ke Service Account JSON selama konfigurasi integrasi.

Mengonfigurasi izin Secret Manager

Gunakan prosedur berikut untuk memberikan hak istimewa administratif yang diperlukan integrasi untuk mengakses materi rahasia dan memvalidasi konektivitas dalam project Google Cloud Anda:

  1. Di konsol Google Cloud , buka IAM & Admin > IAM.
  2. Temukan akun layanan yang Anda buat dari daftar akun utama, lalu klik edit Edit principal.
  3. Klik Add another role.
  4. Di kolom pemilihan peran, telusuri dan pilih peran berikut:
  5. Klik Simpan.

Mengonfigurasi kredensial Workload Identity

Pilih metode ini atau metode kunci JSON untuk mengautentikasi integrasi. Workload Identity adalah pendekatan yang direkomendasikan dan lebih aman karena menggunakan token akses sementara yang berumur pendek menggunakan peniruan akun layanan, sehingga meminimalkan risiko eksposur kredensial rahasia yang berumur panjang.

Mengidentifikasi identitas instance yang unik

Untuk menggunakan Workload Identity, Anda harus memberi instance Google SecOps izin untuk meniru identitas akun layanan Anda. Langkah ini memungkinkan instance mengakses resource Google Cloud dengan aman.

  1. Di Google SecOps, buka Content Hub > Response Integrations.

  2. Pilih integrasi yang Anda konfigurasi, dan masukkan email akun layanan Anda di Workload Identity Email.

  3. Klik Save > Test. Pengujian diperkirakan akan gagal.

  4. Klik close_small di sebelah kanan Test dan telusuri pesan error untuk email identitas yang diawali dengan gke-init-python@... atau soar-python@....

  5. Salin alamat email unik ini.

Mengizinkan identitas instance di Google Cloud

Setelah mengambil identitas unik untuk instance Google SecOps, Anda harus memberinya otorisasi untuk mengakses resource Google Cloud . Langkah ini mengaktifkan peniruan akun layanan, sehingga platform dapat membuat token berumur singkat dan bertindak atas nama Anda tanpa memerlukan kunci statis.

  1. Di konsol Google Cloud , buka IAM & Admin > Service Accounts.

    Buka Akun Layanan

  2. Pilih akun layanan target dan buka Permissions > Grant Access.

  3. Tempelkan alamat email unik ke kolom New principals dan tetapkan peran Service Account Token Creator (roles/iam.serviceAccountTokenCreator).

Parameter integrasi

Integrasi Secret Manager memerlukan parameter konfigurasi berikut:

Parameter Deskripsi
Service Account JSON

Opsional.

Konten file JSON kunci akun layanan yang digunakan untuk melakukan autentikasi dengan Secret Manager.

Anda dapat mengonfigurasi parameter ini atau Workload Identity Email.

Project ID

Opsional.

Project ID Google Cloud tempat secret Anda disimpan.

Jika tidak ada nilai yang diberikan, integrasi akan mencoba menyimpulkannya dari Service Account JSON jika ada, meskipun sebaiknya tentukan secara eksplisit.

Workload Identity Email

Opsional.

Alamat email akun layanan yang akan ditiru saat melakukan autentikasi menggunakan Workload Identity (Kredensial Default Aplikasi).

Gunakan konfigurasi ini, bukan Service Account JSON, saat platform Google SecOps atau agen jarak jauh berjalan di dalam Google Cloud dengan Workload Identity diaktifkan.

Verify SSL

Wajib.

Jika dipilih, integrasi akan memvalidasi sertifikat SSL saat membuat koneksi ke Secret Manager.

Diaktifkan secara default (True).

Untuk mendapatkan petunjuk tentang cara mengonfigurasi integrasi di Google SecOps, lihat Mengonfigurasi integrasi.

Anda dapat melakukan perubahan pada tahap selanjutnya, jika diperlukan. Setelah mengonfigurasi instance integrasi, Anda dapat menggunakannya dalam playbook. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi dan mendukung beberapa instance, lihat Mendukung beberapa instance.

Tindakan

Untuk mengetahui informasi selengkapnya tentang tindakan, lihat Merespons tindakan yang tertunda dari meja kerja Anda dan Menjalankan tindakan manual dalam kasus Anda.

Ping

Gunakan tindakan Ping untuk memvalidasi konektivitas dan memverifikasi parameter konfigurasi terhadap instance Secret Manager target.

Tindakan ini terutama digunakan untuk pengujian koneksi langsung dari halaman konfigurasi integrasi di Content Hub dan tidak dijalankan pada entitas Google Cloud individual.

Input tindakan

Tidak ada parameter input yang diperlukan untuk tindakan ini.

Output tindakan

Tindakan Ping memberikan output berikut:

Jenis output tindakan Ketersediaan
Lampiran repositori kasus Tidak tersedia
Link repositori kasus Tidak tersedia
Tabel repositori kasus Tidak tersedia
Tabel pengayaan Tidak tersedia
Hasil JSON Tidak tersedia
Pesan output Tersedia
Hasil skrip Tersedia
Pesan output

Tindakan Ping dapat menampilkan pesan output berikut:

Pesan output Deskripsi pesan

Successfully connected to the Secret Manager server with the provided connection parameters!

Tindakan berhasil dan kredensial valid.
Failed to connect to Secret Manager! Error is ERROR_REASON

Tindakan gagal.

Periksa kredensial autentikasi, konfigurasi Project ID, izin IAM, atau konektivitas jaringan Anda. Pastikan akun layanan memiliki izin secretmanager.secrets.list (seperti menggunakan peran Secret Manager Viewer).

Hasil skrip

Tabel berikut mencantumkan nilai untuk output hasil skrip saat menggunakan tindakan Ping:

Nama hasil skrip Nilai
is_success true atau false

Pekerjaan

Untuk mengetahui informasi selengkapnya tentang tugas, lihat Mengonfigurasi tugas baru dan Penjadwalan lanjutan.

Tugas Sinkronisasi Kredensial Integrasi

Gunakan Secret Manager - Sync Integration Credentials Job untuk menyinkronkan parameter konfigurasi secara sistematis dari entri Secret Manager untuk mengupdate instance integrasi platform, konektor, dan konfigurasi tugas latar belakang secara otomatis.

Tugas sinkronisasi latar belakang ini beroperasi secara global dan tidak dijalankan pada setiap entitas.

Perilaku tugas

Tugas ini mengurai objek konfigurasi terstruktur untuk mengkueri definisi secret, dengan menangani dua gaya referensi versi:

  • Notasi Tersirat: Format sebagai projects/<project_id>/secrets/<secret_name>. Tugas sinkronisasi secara dinamis me-resolve dan mengambil versi aktif terbaru dari Secret Manager selama pemrosesan.
  • Notasi Eksplisit: Format sebagai projects/<project_id>/secrets/<secret_name>/versions/<version_id>. Tugas sinkronisasi mengambil entri versi yang disematkan tersebut, meskipun statusnya ditandai sebagai tidak aktif di Google Cloud.

Setiap jalur secret yang ditargetkan di dalam Secret Manager harus berisi string objek JSON yang valid yang memetakan kunci parameter langsung ke nilai kredensial masing-masing.

Contoh konfigurasi Pemetaan Kredensial
{
    "integration_instances": {
        "AzureActiveDirectory_1": {
            "Client ID": "projects/154371241292/secrets/AzureActiveDirectory"
        }
    },
    "connectors": {
        "Crowdstrike - Alerts Connector": {
            "Client Secret": "projects/154371241292/secrets/CrowdstrikeConnectorSecret",
            "Client ID": "projects/154371241292/secrets/CrowdstrikeConnectorID"
        },
        "Microsoft Graph Mail Connector": {
            "Client Secret": "projects/154371241292/secrets/GraphConnectorSecret",
            "Client ID": "projects/154371241292/secrets/GraphConnectorID/versions/3"
        }
    },
    "jobs": {
        "Sync Incidents": {
            "API Root": "projects/154371241292/secrets/API_Root/versions/2"
        }
    }
}

Input tugas

Tugas Kredensial Integrasi Sinkronisasi memerlukan parameter konfigurasi berikut:

Parameter Deskripsi
Environment Name

Wajib.

Nama konteks lingkungan tempat kueri konfigurasi target dilakukan.

Nilai defaultnya adalah Default Environment. Untuk penyiapan yang menargetkan Lingkungan Bersama, berikan *.

Credential Mapping

Wajib.

String JSON yang valid yang menyusun lokasi target tempat instance integrasi, konektor, dan tugas dipetakan ke koordinat resource Secret Manager eksplisitnya.

Service Account JSON

Opsional.

Konten JSON kunci akun layanan yang dikhususkan untuk mengizinkan tugas sinkronisasi latar belakang ini.

Project ID

Opsional.

Cakupan Project ID Google Cloud default yang menghosting resource target.

Workload Identity Email

Opsional.

Email akun layanan kredensial default aplikasi yang akan ditiru identitasnya jika berjalan di dalam infrastruktur Google Cloud dengan Workload Identity aktif.

Verify SSL

Wajib.

Memvalidasi endpoint sertifikat SSL selama tugas sinkronisasi. Diaktifkan secara default (True).

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.