Memerlukan izin untuk melampirkan akun layanan ke resource

Saat membuat resource Google Cloud tertentu, Anda memiliki opsi untuk melampirkan akun layanan. Akun layanan yang dilampirkan berfungsi sebagai identitas untuk setiap tugas yang berjalan pada resource, mengizinkan tugas tersebut dapat diautentikasi ke Google Cloud API.

Untuk sebagian besar layanan Google Cloud , pengguna memerlukan izin untuk meniru identitas akun layanan agar dapat melampirkan akun layanan tersebut ke resource. Artinya, pengguna memerlukan izin iam.serviceAccounts.actAs di akun layanan.

Namun, sebelumnya, layanan tertentu mengizinkan pengguna melampirkan akun layanan ke resource meskipun pengguna tidak memiliki izin untuk meniru identitas akun layanan tersebut. Konfigurasi ini mungkin telah memungkinkan pengguna layanan mendapatkan izin tidak jelas yang ditingkatkan.

Tabel berikut mencantumkan layanan yang memiliki konfigurasi ini, beserta perilaku lama setiap layanan:

Layanan Perilaku lama
App Engine Pengguna dapat men-deploy aplikasi App Engine, yang menggunakan identitas akun layanan default App Engine, meskipun tidak memiliki izin untuk meniru identitas akun layanan default App Engine.
Cloud Composer Pengguna dapat melampirkan akun layanan apa pun dalam project ke lingkungan Cloud Composer, meskipun tidak memiliki izin untuk meniru identitas akun layanan project tersebut.
  • Cloud Data Fusion
  • Dataflow
  • Dataproc
Pengguna dapat melampirkan akun layanan default Compute Engine ke resource, meskipun tidak memiliki izin untuk meniru identitas akun layanan default tersebut.
Dataform Pengguna dapat melampirkan akun layanan ke resource Dataform dan membuat pemanggilan alur kerja yang akan dieksekusi sebagai akun layanan tersebut, meskipun mereka tidak memiliki izin untuk meniru identitas akun layanan.

Kini kami mewajibkan layanan ini memeriksa apakah pengguna memiliki izin untuk meniru identitas akun layanan saat melampirkan akun layanan ke resource. Namun, perilaku lama masih ada untuk jenis organisasi sebagai berikut:

  • Organisasi dengan pengguna yang memiliki izin untuk men-deploy aplikasi App Engine, tetapi tidak memiliki izin untuk meniru identitas akun layanan default App Engine.
  • Organisasi dengan pengguna yang memiliki izin untuk men-deploy lingkungan Cloud Composer, tetapi tidak memiliki izin untuk meniru identitas akun layanan mana pun.
  • Organisasi dengan pengguna yang memiliki izin untuk men-deploy resource Cloud Data Fusion, Dataflow, atau Dataproc, tetapi tidak memiliki izin untuk meniru identitas akun layanan default Compute Engine.
  • Organisasi dengan pengguna yang memiliki izin untuk melampirkan akun layanan ke resource Dataform dan membuat pemanggilan alur kerja, tetapi tidak memiliki izin untuk meniru identitas akun layanan.

Jika organisasi Anda masih terpengaruh oleh perilaku lama, Anda akan menerima pesan yang menjelaskan cara menonaktifkannya secara manual. Anda juga dapat melihat bagian di bawah untuk petunjuk mendetail.

Mengamankan App Engine

Untuk menonaktifkan perilaku lama App Engine secara manual, pastikan bahwa pengguna memiliki izin untuk meniru identitas akun layanan App Engine. Kemudian, aktifkan batasan kebijakan organisasi untuk menerapkan pemeriksaan izin akun layanan saat men-deploy aplikasi yang menggunakan identitas akun layanan default App Engine.

  1. Opsional: Gunakan rekomendasi peran untuk memperkecil cakupan izin untuk akun layanan default App Engine dengan aman.

    Akun layanan default App Engine secara otomatis diberi peran Editor yang sangat permisif (roles/editor). Namun, sebaiknya jangan gunakan peran yang sangat permisif dalam konfigurasi produksi.

  2. Pastikan semua pengguna yang men-deploy aplikasi dapat meniru identitas akun layanan default App Engine.

    Untuk memberikan kemampuan ini, beri pengguna peran yang menyertakan izin iam.serviceAccounts.actAs, seperti peran Service Account User (roles/iam.serviceAccountUser). Anda dapat memberikan peran ini pada project atau pada akun layanan default App Engine. Untuk mendapatkan petunjuk, lihat Mengelola peniruan identitas akun layanan.

  3. Aktifkan batasan kebijakan organisasi constraints/appengine.enforceServiceAccountActAsCheck untuk menerapkan pemeriksaan izin akun layanan saat men-deploy aplikasi.

  4. Opsional: Gunakan penegak kebijakan organisasi boolean untuk mengonfirmasi bahwa batasan kebijakan organisasi diterapkan di semua project Anda.

Mengamankan Cloud Composer

Untuk menonaktifkan perilaku lama Cloud Composer secara manual, pastikan bahwa pengguna memiliki izin untuk meniru identitas akun layanan yang mereka lampirkan ke lingkungan baru. Kemudian, aktifkan batasan kebijakan organisasi untuk menerapkan pemeriksaan izin akun layanan saat melampirkan akun layanan ke lingkungan.

  1. Identifikasi semua akun layanan yang terikat ke lingkungan Cloud Composer:

    1. Di konsol Google Cloud , buka halaman Composer environments.

      Buka halaman lingkungan Composer

    2. Klik nama lingkungan.

    3. Di tab Environment configuration, temukan kolom Service account dan catat nama akun layanan.

    4. Ulangi langkah-langkah sebelumnya untuk semua lingkungan Cloud Composer dalam project Anda.

  2. Konfirmasi bahwa akun layanan ini mengikuti prinsip hak istimewa terendah:

  3. Pastikan semua pengguna yang men-deploy atau mengelola lingkungan Cloud Composer dapat meniru identitas akun layanan yang digunakan lingkungan.

    Untuk memberikan kemampuan ini, beri pengguna peran yang menyertakan izin iam.serviceAccounts.actAs, seperti peran Service Account User (roles/iam.serviceAccountUser). Anda dapat memberikan peran ini pada project atau akun layanan individual. Untuk mendapatkan petunjuk, lihat Mengelola peniruan identitas akun layanan.

  4. Aktifkan batasan kebijakan organisasi constraints/composer.enforceServiceAccountActAsCheck untuk menerapkan pemeriksaan izin akun layanan saat melampirkan akun layanan ke lingkungan.

  5. Opsional: Gunakan penegak kebijakan organisasi boolean untuk mengonfirmasi bahwa batasan kebijakan organisasi diterapkan di semua project Anda.

Mengamankan Dataproc, Dataflow, dan Cloud Data Fusion

Untuk menonaktifkan perilaku lama secara manual untuk Dataproc, Dataflow, dan Cloud Data Fusion, pastikan pengguna memiliki izin untuk meniru identitas akun layanan yang mereka lampirkan ke resource baru. Kemudian, aktifkan batasan kebijakan organisasi untuk menerapkan pemeriksaan izin akun layanan saat melampirkan akun layanan ke resource.

Ikuti petunjuk untuk jenis akun layanan yang ingin Anda lampirkan ke resource baru:

  • Jika Anda ingin berhenti menambahkan akun layanan default Compute Engine ke resource baru, ikuti langkah-langkah berikut:

    1. Buat akun layanan baru dan berikan peran yang diperlukan akun layanan tersebut untuk menjalankan tugas pada resource. Pastikan untuk mengikuti prinsip hak istimewa terendah.

      Untuk mempelajari peran yang diperlukan akun layanan untuk menjalankan tugas di resource Dataproc, Dataflow, dan Cloud Data Fusion, lihat referensi berikut:

    2. Izinkan semua pengguna yang men-deploy resource ini untuk meniru identitas akun layanan baru.

      Untuk memberikan kemampuan ini, beri pengguna peran yang menyertakan izin iam.serviceAccounts.actAs, seperti peran Service Account User (roles/iam.serviceAccountUser). Anda dapat memberikan peran ini pada project atau akun layanan. Untuk mendapatkan petunjuk, lihat Mengelola peniruan identitas akun layanan.

    3. Aktifkan batasan kebijakan organisasi berikut untuk menerapkan pemeriksaan izin akun layanan saat melampirkan akun layanan ke resource:

      • constraints/dataflow.enforceComputeDefaultServiceAccountCheck
      • constraints/dataproc.enforceComputeDefaultServiceAccountCheck

      Batasan kebijakan organisasi constraints/dataproc.enforceComputeDefaultServiceAccountCheck juga menerapkan pemeriksaan izin untuk Cloud Data Fusion.

    4. Opsional: Gunakan penegak kebijakan organisasi boolean untuk mengonfirmasi bahwa batasan kebijakan organisasi diterapkan di semua project Anda.

    5. Saat Anda men-deploy resource baru, gunakan akun layanan baru, bukan akun layanan default Compute Engine.

  • Jika Anda ingin terus menambahkan akun layanan default Compute Engine ke resource baru, ikuti langkah-langkah berikut:

    1. Opsional: Gunakan rekomendasi peran untuk memperkecil cakupan izin akun layanan default Compute Engine dengan aman

      Akun layanan default Compute Engine secara otomatis diberi peran Editor yang sangat permisif (roles/editor). Namun, sebaiknya jangan gunakan peran yang sangat permisif dalam konfigurasi produksi.

    2. Pastikan semua pengguna yang men-deploy resource ini dapat meniru identitas akun layanan default Compute Engine.

      Untuk memberikan kemampuan ini, beri pengguna peran yang menyertakan izin iam.serviceAccounts.actAs, seperti peran Service Account User (roles/iam.serviceAccountUser). Anda dapat memberikan peran ini pada project atau di akun layanan default Compute Engine. Untuk mendapatkan petunjuk, lihat Mengelola peniruan identitas akun layanan.

    3. Aktifkan batasan kebijakan organisasi berikut untuk menerapkan pemeriksaan izin akun layanan saat melampirkan akun layanan ke resource:

      • constraints/dataflow.enforceComputeDefaultServiceAccountCheck
      • constraints/dataproc.enforceComputeDefaultServiceAccountCheck
    4. Opsional: Gunakan penegak kebijakan organisasi boolean untuk mengonfirmasi bahwa batasan kebijakan organisasi diterapkan di semua project Anda.

Mengamankan Dataform

Untuk menonaktifkan perilaku lama Dataform secara manual, pastikan bahwa pengguna memiliki izin untuk meniru identitas akun layanan yang mereka lampirkan ke resource Dataform. Kemudian, aktifkan mode bertindak sebagai yang ketat untuk menerapkan pemeriksaan izin akun layanan saat membuat pemanggilan alur kerja.

  1. Periksa masalah izin untuk menghindari gangguan alur kerja Anda. Anda dapat melakukannya dengan membuat kueri Cloud Logging untuk entri khusus Dataform yang menunjukkan bahwa pokok (pengguna atau akun layanan) tidak memiliki izin iam.serviceAccounts.actAs yang diperlukan. Dengan begitu, Anda dapat mengidentifikasi dan menyelesaikan perbedaan akses secara proaktif. Untuk mengetahui informasi selengkapnya, lihat Memeriksa masalah izin di Cloud Logging.

  2. Untuk pengguna atau akun layanan yang perlu membuat pemanggilan alur kerja, beri mereka izin untuk meniru identitas akun layanan yang terkait dengan repositori Dataform. Anda dapat memberikan izin ini dengan memberikan peran Service Account User (roles/iam.serviceAccountUser) pada akun layanan tertentu. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah izin.

  3. Jika Anda menggunakan akun layanan kustom, berikan peran berikut kepada agen layanan Dataform default di akun layanan kustom:

    • Service Account Token Creator (roles/iam.serviceAccountTokenCreator): diperlukan untuk semua operasi repositori menggunakan akun layanan kustom.
    • Pengguna Akun Layanan (roles/iam.serviceAccountUser): hanya diperlukan jika Anda menggunakan konfigurasi alur kerja untuk menjadwalkan atau mengotomatiskan eksekusi. Dengan peran ini, agen layanan Dataform default dapat menjalankan tugas sebagai akun layanan kustom.
  4. Untuk menerapkan pemeriksaan izin bertindak sebagai, aktifkan mode bertindak sebagai yang ketat. Fitur ini meningkatkan keamanan dengan memverifikasi bahwa setiap pengguna yang membuat pemanggilan alur kerja memiliki izin iam.serviceAccounts.actAs di akun layanan yang efektif.

    • Untuk repositori baru, mode bertindak sebagai yang ketat diaktifkan secara default.
    • Untuk repositori yang ada, perbarui repositori dengan menyetel flag strict_act_as_checks ke true.

    Untuk mengetahui informasi selengkapnya, lihat Menggunakan mode berperan ketat.

  5. Audit resource Dataform Anda secara berkala untuk memastikan penggunaan akun layanan dan pemberian izin yang tepat. Gunakan Inventaris Aset Cloud untuk mencantumkan semua resource jenis dataform.Repository dan dataform.WorkflowConfig, lalu periksa kolom resource.data.serviceAccount untuk memeriksa akun layanan mana yang sedang digunakan. Jika akun layanan kustom digunakan, pastikan agen layanan Dataform default memiliki peran Service Account User (roles/iam.serviceAccountUser) dan Service Account Token Creator (roles/iam.serviceAccountTokenCreator) di akun layanan kustom tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengaudit konfigurasi akun layanan.