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. |
|
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.
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.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.Aktifkan batasan kebijakan organisasi
constraints/appengine.enforceServiceAccountActAsCheckuntuk menerapkan pemeriksaan izin akun layanan saat men-deploy aplikasi.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.
Identifikasi semua akun layanan yang terikat ke lingkungan Cloud Composer:
Di konsol Google Cloud , buka halaman Composer environments.
Klik nama lingkungan.
Di tab Environment configuration, temukan kolom Service account dan catat nama akun layanan.
Ulangi langkah-langkah sebelumnya untuk semua lingkungan Cloud Composer dalam project Anda.
Konfirmasi bahwa akun layanan ini mengikuti prinsip hak istimewa terendah:
Di konsol Google Cloud , buka halaman IAM, temukan akun layanan, dan tinjau perannya.
Jika perlu, berikan peran yang kurang permisif ke akun layanan. Anda dapat memilih peran dari daftar Peran bawaan IAM, gunakan peran yang disarankan rekomendasi peran, atau buatperan khusus.
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.Aktifkan batasan kebijakan organisasi
constraints/composer.enforceServiceAccountActAsCheckuntuk menerapkan pemeriksaan izin akun layanan saat melampirkan akun layanan ke lingkungan.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:
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:
- Persyaratan akun layanan Dataproc
- Persyaratan akun layanan Dataflow
- Akun layanan Cloud Data Fusion memiliki persyaratan yang sama dengan akun layanan Dataproc.
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.Aktifkan batasan kebijakan organisasi berikut untuk menerapkan pemeriksaan izin akun layanan saat melampirkan akun layanan ke resource:
constraints/dataflow.enforceComputeDefaultServiceAccountCheckconstraints/dataproc.enforceComputeDefaultServiceAccountCheck
Batasan kebijakan organisasi
constraints/dataproc.enforceComputeDefaultServiceAccountCheckjuga menerapkan pemeriksaan izin untuk Cloud Data Fusion.Opsional: Gunakan penegak kebijakan organisasi boolean untuk mengonfirmasi bahwa batasan kebijakan organisasi diterapkan di semua project Anda.
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:
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.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.Aktifkan batasan kebijakan organisasi berikut untuk menerapkan pemeriksaan izin akun layanan saat melampirkan akun layanan ke resource:
constraints/dataflow.enforceComputeDefaultServiceAccountCheckconstraints/dataproc.enforceComputeDefaultServiceAccountCheck
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.
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.actAsyang diperlukan. Dengan begitu, Anda dapat mengidentifikasi dan menyelesaikan perbedaan akses secara proaktif. Untuk mengetahui informasi selengkapnya, lihat Memeriksa masalah izin di Cloud Logging.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.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.
- Service Account Token Creator
(
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.actAsdi 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_checksketrue.
Untuk mengetahui informasi selengkapnya, lihat Menggunakan mode berperan ketat.
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.Repositorydandataform.WorkflowConfig, lalu periksa kolomresource.data.serviceAccountuntuk 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.