Layanan Kebijakan Organisasi memiliki beberapa batasan terkelola dan telah ditetapkan yang dapat memengaruhi akun layanan di organisasi Anda. Halaman ini membantu Anda memahami error yang dihasilkan oleh kebijakan organisasi tersebut, dan langkah-langkah yang dapat Anda lakukan untuk mengatasi error tersebut.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna memecahkan masalah kebijakan organisasi, minta administrator untuk memberi Anda peran IAM Administrator kebijakan organisasi (roles/orgpolicy.policyAdmin
) di organisasi.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran kustom atau peran yang telah ditentukan lainnya.
Memecahkan masalah pembuatan kunci akun layanan yang dinonaktifkan
Jika batasan iam.disableServiceAccountKeyCreation
diterapkan untuk organisasi Anda, Anda tidak dapat membuat kunci untuk akun layanan apa pun di organisasi Anda. Untuk mengetahui informasi selengkapnya tentang batasan ini, lihat
Menonaktifkan pembuatan kunci akun layanan.
Error pembuatan kunci
Jika Anda mencoba membuat kunci akun layanan, tetapi tindakan tersebut diblokir oleh batasan iam.disableServiceAccountKeyCreation
, Anda akan mendapatkan pesan error berikut:
Konsol
Di konsol Google Cloud , dialog akan muncul dengan judul Pembuatan kunci akun layanan dinonaktifkan. Dialog menyatakan bahwa batasan
iam.disableServiceAccountKeyCreation
diterapkan pada organisasi Anda.
gcloud
ERROR: (gcloud.iam.service-accounts.keys.create) FAILED_PRECONDITION: Key
creation is not allowed on this service account.
- '@type': type.googleapis.com/google.rpc.PreconditionFailure
violations:
- description: Key creation is not allowed on this service account.
subject: projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID@PROJECT_ID.?configvalue=SERVICE_ACCOUNT_ID%40PROJECT_ID.
type: constraints/iam.disableServiceAccountKeyCreation
REST
{
"error": {
"code": 400,
"message": "Key creation is not allowed on this service account.",
"status": "FAILED_PRECONDITION",
"details": [
{
"@type": "type.googleapis.com/google.rpc.PreconditionFailure",
"violations": [
{
"type": "constraints/iam.disableServiceAccountKeyCreation",
"subject": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID@PROJECT_ID.?configvalue=SERVICE_ACCOUNT_ID%40PROJECT_ID.",
"description": "Key creation is not allowed on this service account."
}
]
}
]
}
}
Resolusi yang direkomendasikan untuk error pembuatan kunci akun layanan
Jika kebijakan organisasi mencegah Anda membuat kunci akun layanan, sebaiknya lakukan hal berikut:
Menilai apakah kunci akun layanan diperlukan.
Sebaiknya jangan gunakan kunci akun layanan untuk autentikasi. Hal ini karena kunci akun layanan dapat menjadi risiko keamanan jika tidak dikelola dengan benar, sehingga meningkatkan kerentanan Anda terhadap ancaman seperti kebocoran kredensial, eskalasi hak istimewa, pengungkapan informasi, dan penyangkalan.
Dalam sebagian besar kasus, Anda harus menggunakan alternatif yang lebih aman untuk melakukan autentikasi, bukan menggunakan kunci akun layanan.
Jika kunci akun layanan diperlukan untuk kasus penggunaan Anda, nonaktifkan batasan
iam.disableServiceAccountKeyCreation
untuk project Anda.
Untuk menonaktifkan batasan kebijakan organisasi, nonaktifkan penerapan untuk batasan, atau kecualikan project Anda dari penerapan:
Untuk menonaktifkan penerapan batasan untuk seluruh organisasi Anda, lakukan hal berikut:
Pastikan Anda memiliki peran Administrator Kebijakan Organisasi (
roles/orgpolicy.policyAdmin
) di tingkat organisasi. Peran ini hanya tersedia untuk diberikan di organisasi, dan tidak muncul dalam daftar peran untuk project.Untuk mempelajari cara memberikan peran di tingkat organisasi, lihat Mengelola akses ke project, folder, dan organisasi.
Di konsol Google Cloud , buka halaman Organization policies.
Di pemilih project, pilih organisasi yang ingin Anda nonaktifkan batasan
iam.disableServiceAccountKeyCreation
-nya.Di kolom Filter, masukkan
iam.disableServiceAccountKeyCreation
. Kemudian, di daftar kebijakan, klik Nonaktifkan pembuatan kunci akun layanan.Klik Manage Policy.
Di bagian Policy source, pastikan Override parent's policy dipilih.
Di bagian Enforcement, nonaktifkan penerapan untuk batasan kebijakan organisasi ini.
Klik Setel kebijakan.
Untuk mengecualikan project Anda dari penegakan, lakukan hal berikut:
-
Pastikan Anda memiliki peran Administrator Tag (
roles/resourcemanager.tagAdmin
) dan peran Administrator Kebijakan Organisasi (roles/orgpolicy.policyAdmin
) di tingkat organisasi. Untuk mempelajari cara memberikan peran di tingkat organisasi, lihat Mengelola akses ke project, folder, dan organisasi. -
Di tingkat organisasi, buat kunci tag dan nilai tag yang akan Anda gunakan untuk menentukan apakah resource harus dikecualikan dari kebijakan organisasi. Sebaiknya buat tag dengan kunci
disableServiceAccountKeyCreation
dan nilaienforced
dannot_enforced
.Untuk mempelajari cara membuat kunci tag dan nilai tag, lihat Membuat dan menentukan tag baru.
-
Lampirkan tag
disableServiceAccountKeyCreation
ke organisasi dan tetapkan nilainya keenforced
. Semua resource dalam organisasi mewarisi nilai tag ini, kecuali jika diganti dengan nilai tag yang berbeda.Untuk mempelajari cara melampirkan tag ke resource, lihat Melampirkan tag ke resource.
-
Untuk setiap akun layanan yang ingin Anda kecualikan dari kebijakan organisasi, lampirkan tag
disableServiceAccountKeyCreation
dan tetapkan nilainya kenot_enforced
. Menetapkan nilai tag untuk akun layanan dengan cara ini akan menggantikan nilai tag yang diwarisi dari organisasi. -
Buat atau perbarui kebijakan organisasi yang mencegah pembuatan kunci akun layanan sehingga tidak menerapkan batasan untuk resource yang dikecualikan. Kebijakan ini harus memiliki aturan berikut:
-
Konfigurasi batasan
iam.disableServiceAccountKeyCreation
agar tidak diterapkan pada resource apa pun dengan tagdisableServiceAccountKeyCreation: not_enforced
. Kondisi dalam aturan ini akan terlihat seperti berikut:"resource.matchTag('ORGANIZATION_ID/disableServiceAccountKeyCreation', 'not_enforced')"
-
Konfigurasi batasan
iam.disableServiceAccountKeyCreation
agar diterapkan pada semua resource lainnya.
-
-
Pastikan Anda memiliki peran Administrator Tag (
Memecahkan masalah pembuatan akun layanan yang dinonaktifkan
Jika batasan iam.disableServiceAccountCreation
diterapkan untuk organisasi Anda, Anda tidak dapat membuat akun layanan di project mana pun di organisasi Anda. Untuk mengetahui informasi selengkapnya tentang batasan ini, lihat
Menonaktifkan pembuatan akun layanan.
Error pembuatan akun layanan
Jika Anda mencoba membuat akun layanan, tetapi tindakan tersebut diblokir oleh batasan iam.disableServiceAccountCreation
, Anda akan mendapatkan pesan error berikut:
Konsol
Di konsol Google Cloud , dialog akan muncul dengan judul Pembuatan akun layanan gagal. Dialog menyatakan, Tindakan yang dicoba gagal, coba lagi.
gcloud
ERROR: (gcloud.iam.service-accounts.create) FAILED_PRECONDITION: Service account
creation is not allowed on this project.
- '@type': type.googleapis.com/google.rpc.PreconditionFailure
violations:
- description: Service account creation is not allowed on this project.
subject: projects/PROJECT_ID/serviceAccounts/?configvalue=
type: constraints/iam.disableServiceAccountCreation
REST
{
"error": {
"code": 400,
"message": "Service account creation is not allowed on this project.",
"status": "FAILED_PRECONDITION",
"details": [
{
"@type": "type.googleapis.com/google.rpc.PreconditionFailure",
"violations": [
{
"type": "constraints/iam.disableServiceAccountCreation",
"subject": "projects/PROJECT_ID/serviceAccounts/?configvalue=",
"description": "Service account creation is not allowed on this project."
}
]
}
]
}
}
Resolusi yang direkomendasikan untuk error pembuatan akun layanan
Jika kebijakan organisasi mencegah Anda membuat akun layanan, sebaiknya Anda melakukan hal berikut:
Menilai apakah akun layanan diperlukan.
Tinjau Memilih waktu untuk menggunakan akun layanan guna mengonfirmasi bahwa akun layanan diperlukan untuk kasus penggunaan Anda.
Jika akun layanan diperlukan untuk kasus penggunaan Anda, nonaktifkan batasan
iam.disableServiceAccountCreation
untuk project Anda.
Untuk menonaktifkan batasan kebijakan organisasi, nonaktifkan penerapan untuk batasan, atau kecualikan project Anda dari penerapan:
Untuk menonaktifkan penerapan batasan untuk seluruh organisasi Anda, lakukan hal berikut:
Pastikan Anda memiliki peran Administrator Kebijakan Organisasi (
roles/orgpolicy.policyAdmin
) di tingkat organisasi. Peran ini hanya tersedia untuk diberikan di organisasi, dan tidak muncul dalam daftar peran untuk project.Untuk mempelajari cara memberikan peran di tingkat organisasi, lihat Mengelola akses ke project, folder, dan organisasi.
Di konsol Google Cloud , buka halaman Organization policies.
Di pemilih project, pilih organisasi yang ingin Anda nonaktifkan batasan
iam.disableServiceAccountCreation
-nya.Di kolom Filter, masukkan
iam.disableServiceAccountCreation
. Kemudian, di daftar kebijakan, klik Nonaktifkan pembuatan akun layanan.Klik Manage Policy.
Di bagian Policy source, pastikan Override parent's policy dipilih.
Di bagian Enforcement, nonaktifkan penerapan untuk batasan kebijakan organisasi ini.
Klik Setel kebijakan.
Untuk mengecualikan project Anda dari penegakan, lakukan hal berikut:
-
Pastikan Anda memiliki peran Administrator Tag (
roles/resourcemanager.tagAdmin
) dan peran Administrator Kebijakan Organisasi (roles/orgpolicy.policyAdmin
) di tingkat organisasi. Untuk mempelajari cara memberikan peran di tingkat organisasi, lihat Mengelola akses ke project, folder, dan organisasi. -
Di tingkat organisasi, buat kunci tag dan nilai tag yang akan Anda gunakan untuk menentukan apakah resource harus dikecualikan dari kebijakan organisasi. Sebaiknya buat tag dengan kunci
disableServiceAccountCreation
dan nilaienforced
dannot_enforced
.Untuk mempelajari cara membuat kunci tag dan nilai tag, lihat Membuat dan menentukan tag baru.
-
Lampirkan tag
disableServiceAccountCreation
ke organisasi dan tetapkan nilainya keenforced
. Semua resource dalam organisasi mewarisi nilai tag ini, kecuali jika diganti dengan nilai tag yang berbeda.Untuk mempelajari cara melampirkan tag ke resource, lihat Melampirkan tag ke resource.
-
Untuk setiap project atau folder yang ingin Anda kecualikan dari kebijakan organisasi, lampirkan tag
disableServiceAccountCreation
dan tetapkan nilainya kenot_enforced
. Menetapkan nilai tag untuk project atau folder dengan cara ini akan menggantikan nilai tag yang diwarisi dari organisasi. -
Buat atau perbarui kebijakan organisasi yang mencegah pembuatan akun layanan sehingga tidak menerapkan batasan untuk resource yang dikecualikan. Kebijakan ini harus memiliki aturan berikut:
-
Konfigurasi batasan
iam.disableServiceAccountCreation
agar tidak diterapkan pada resource apa pun dengan tagdisableServiceAccountCreation: not_enforced
. Kondisi dalam aturan ini akan terlihat seperti berikut:"resource.matchTag('ORGANIZATION_ID/disableServiceAccountCreation', 'not_enforced')"
-
Konfigurasi batasan
iam.disableServiceAccountCreation
agar diterapkan pada semua resource lainnya.
-
-
Pastikan Anda memiliki peran Administrator Tag (
Memecahkan masalah pemberian peran ke akun layanan default
Akun layanan default dibuat secara otomatis saat Anda menggunakan layananGoogle Cloud tertentu. Mereka memiliki ID berikut:
- Akun layanan default App Engine:
PROJECT_ID@
- Akun layanan default Compute Engine:
PROJECT_NUMBER-compute@
Semua akun layanan default secara otomatis diberi peran Editor (roles/editor
) saat dibuat, kecuali jika batasan kebijakan organisasi iam.automaticIamGrantsForDefaultServiceAccounts
diterapkan untuk project Anda. Batasan ini mencegah peran Editor diberikan secara otomatis kepada akun layanan default.
Error saat memberikan peran dasar ke akun layanan
Jika batasan iam.automaticIamGrantsForDefaultServiceAccounts
diterapkan untuk project Anda, workload di project Anda yang menggunakan akun layanan default mungkin mengalami error izin yang tidak memadai. Untuk mempelajari peran yang akan diberikan ke akun layanan default, lihat Resolusi yang direkomendasikan untuk memberikan peran ke akun layanan default.
Batasan iam.automaticIamGrantsForDefaultServiceAccounts
tidak menyebabkan
error dengan sendirinya. Namun, karena batasan ini, ada kemungkinan beban kerja yang menggunakan akun layanan default tidak akan memiliki izin yang diperlukan.
Resolusi yang direkomendasikan untuk memberikan peran ke akun layanan default
Jika kebijakan organisasi mencegah Anda memberikan peran Editor atau Pemilik ke akun layanan default, Anda harus menemukan peran yang kurang permisif untuk diberikan ke akun layanan. Peran yang diperlukan akun layanan bergantung pada layanan yang Anda gunakan dan tugas yang ingin Anda selesaikan.
Tinjau tabel berikut untuk menentukan peran yang akan diberikan ke akun layanan default, bergantung pada layanan yang Anda gunakan:
Layanan | Akun layanan default | Peran yang akan diberikan |
---|---|---|
App Engine |
Akun layanan default App Engine (PROJECT_ID@ )
|
Peran Akun Cloud Build (roles/cloudbuild.builds.builder )
|
Compute Engine |
Akun layanan default Compute Engine
(PROJECT_NUMBER-compute@ )
|
Peran yang diperlukan akun layanan default bergantung pada tugas yang ingin Anda selesaikan. Untuk mengetahui peran yang diperlukan, tinjau dokumentasi untuk tugas yang ingin Anda selesaikan, atau tinjau Menemukan peran standar yang tepat. Saat memutuskan peran mana yang akan diberikan, ikuti praktik terbaik yang dijelaskan di halaman Akun layanan dalam dokumentasi Compute Engine. |
Cloud Build |
Akun layanan default Compute Engine
(PROJECT_NUMBER-compute@ )
|
Peran Akun Layanan Cloud Build (roles/cloudbuild.builds.builder )
|
Cloud Deploy |
Akun layanan default Compute Engine
(PROJECT_NUMBER-compute@ )
|
Untuk melihat peran yang akan diberikan ke akun layanan ini, temukan panduan memulai Cloud Deploy yang sesuai dengan kasus penggunaan Anda, lalu berikan peran yang dijelaskan dalam panduan memulai tersebut. Untuk melihat daftar panduan memulai Cloud Deploy, lihat Panduan memulai di dokumentasi Cloud Deploy. |
Cloud Run Functions dan Cloud Functions |
Akun layanan default Compute Engine
(PROJECT_NUMBER-compute@ )
|
Untuk men-deploy fungsi: Peran Akun Cloud Build ( Untuk mengetahui informasi selengkapnya, lihat Akun layanan kustom untuk Cloud Build. |
Cloud Run |
Akun layanan default Compute Engine
(PROJECT_NUMBER-compute@ )
|
Peran yang diperlukan akun layanan default bergantung pada tugas yang ingin Anda selesaikan. Untuk mengetahui peran yang diperlukan, tinjau dokumentasi untuk tugas yang ingin Anda selesaikan, atau tinjau Menemukan peran standar yang tepat. Untuk mengetahui detail tentang peran Cloud Run, lihat Kontrol akses dengan IAM dalam dokumentasi Cloud Run. |
Google Kubernetes Engine |
Akun layanan default Compute Engine
(PROJECT_NUMBER-compute@ )
|
Peran Akun Layanan Node Default Kubernetes Engine ( Untuk mengetahui informasi selengkapnya, lihat Menggunakan akun layanan IAM dengan hak istimewa terendah. |
Workflows |
Akun layanan default Compute Engine
(PROJECT_NUMBER-compute@ )
|
Peran yang diperlukan akun layanan default bergantung pada tugas yang ingin Anda selesaikan. Untuk mengetahui peran yang diperlukan, tinjau dokumentasi untuk tugas yang ingin Anda selesaikan, atau tinjau Menemukan peran standar yang tepat. Ikuti praktik terbaik yang dijelaskan di halaman Memberikan izin alur kerja untuk mengakses resource Google Cloud dalam dokumentasi Workflows. |