Jenis akun layanan

Akun layanan dapat dibagi menjadi kategori berikut:

  • Akun layanan yang dikelola pengguna, yang Anda buat dan kelola sendiri
  • Agen layanan, yang dibuat dan dikelola Google Cloud

Halaman ini menjelaskan cara pembuatan dan penggunaan setiap jenis akun layanan.

Akun layanan yang dikelola pengguna

Akun layanan yang dikelola pengguna adalah akun layanan yang Anda buat di project Anda. Anda dapat memperbarui, menonaktifkan, dan menghapus akun layanan ini atas kebijaksanaan Anda. Anda juga dapat mengelola akses utama lain pada akun layanan ini.

Anda dapat membuat akun layanan yang dikelola pengguna di project Anda menggunakan API IAM, konsol Google Cloud, atau Google Cloud CLI.

Secara default, Anda dapat membuat hingga 100 akun layanan yang dikelola pengguna di suatu project. Apabila kuota ini tidak memenuhi kebutuhan Anda, Anda dapat menggunakan konsol Google Cloud untuk Meminta penambahan kuota. Hanya akun layanan yang dibuat pengguna yang diperhitungkan dalam kuota ini—akun layanan default dan agen layanan tidak diperhitungkan dalam kuota.

Ketika Anda membuat akun layanan yang dikelola pengguna di project Anda, Anda akan memilih nama untuk akun layanan Anda. Nama ini muncul di alamat email yang mengidentifikasi akun layanan, dan menggunakan format berikut:

service-account-name@project-id.iam.gserviceaccount.com

Untuk mempelajari cara membuat akun layanan, lihat Membuat akun layanan.

Akun layanan default

Akun layanan default adalah akun layanan yang dikelola pengguna dan yang dibuat secara otomatis ketika Anda mengaktifkan atau menggunakan layanan Google Cloud tertentu. Akun layanan ini memungkinkan layanan dapat men-deploy tugas yang mengakses resource Google Cloud lainnya. Anda bertanggung jawab mengelola akun layanan default setelah akun tersebut dibuat.

Apabila aplikasi Anda berjalan di lingkungan Google Cloud yang memiliki akun layanan default, aplikasi Anda dapat menggunakan kredensial sebagai akun layanan default untuk memanggil Cloud API Google. Atau, Anda dapat membuat akun layanan yang dikelola pengguna Anda sendiri dan menggunakannya untuk mengautentikasi. Untuk mengetahui detailnya, lihat Menyiapkan Kredensial Default Aplikasi.

Bergantung pada konfigurasi kebijakan organisasi Anda, akun layanan default mungkin secara otomatis diberi peran Editor di project Anda. Sebaiknya Anda menonaktifkan pemberian peran otomatis dengan menerapkan batasan kebijakan organisasi iam.automaticIamGrantsForDefaultServiceAccounts. Jika Anda membuat organisasi setelah 3 Mei 2024, batasan ini akan diterapkan secara default.

Jika Anda menonaktifkan pemberian peran otomatis, Anda harus menentukan peran mana yang akan diberikan ke akun layanan default, lalu memberikan peran tersebut secara manual.

Jika akun layanan default sudah memiliki peran Editor, sebaiknya ganti peran Editor dengan peran yang kurang permisif.Untuk mengubah peran akun layanan dengan aman, gunakan Policy Simulator untuk melihat dampak perubahan, lalu berikan dan cabut peran yang sesuai.

Tabel berikut mencantumkan layanan yang dapat membuat akun layanan default:

Layanan Nama akun layanan Alamat email
Setiap App Engine, dan layanan Google Cloud yang menggunakan App Engine Akun layanan default App Engine project-id@appspot.gserviceaccount.com
Compute Engine, dan setiap layanan Google Cloud yang menggunakan Compute Engine Akun layanan default Compute Engine project-number-compute@developer.gserviceaccount.com

Agen layanan

Beberapa layanan Google Cloud memerlukan akses ke resource Anda agar layanan tersebut dapat bertindak atas nama Anda. Misalnya, ketika Anda menjalankan Cloud Run untuk menjalankan container, layanan tersebut memerlukan akses ke setiap topik Pub/Sub yang dapat memicu container.

Untuk memenuhi kebutuhan ini, Google Cloud membuat dan mengelola akun layanan untuk beberapa layanan Google Cloud. Akun layanan ini dikenal sebagai agen layanan. Anda mungkin melihat agen layanan di kebijakan izin project, di log audit, atau di halaman IAM di konsol Google Cloud.

Agen layanan tidak dibuat di project Anda, sehingga Anda tidak akan menemukannya saat melihat akun layanan project Anda. Anda tidak dapat mengaksesnya secara langsung.

Secara default, agen layanan tidak tercantum di halaman IAM di konsol Google Cloud, meskipun agen tersebut telah diberi peran pada project Anda. Untuk melihat pemberian peran bagi agen layanan, pilih kotak centang Sertakan pemberian peran yang disediakan Google.

Google Cloud memiliki jenis agen layanan berikut:

Agen layanan khusus layanan

Sebagian besar agen layanan bersifat khusus layanan—agen tersebut bertindak atas nama layanan perorangan. Dalam berbagai macam kasus, agen layanan ini diperlukan agar layanan berfungsi dengan baik. Misalnya, agen layanan adalah agen yang memungkinkan Cloud Logging sink untuk menulis log ke bucket Cloud Storage.

Setiap agen layanan terhubung dengan resource Resource ini biasanya adalah project, folder, atau organisasi, meskipun juga dapat berupa resource khusus layanan—misalnya, instance Cloud SQL. Resource ini menentukan cakupan tindakan agen layanan. Misalnyua, jika agen layanan dikaitkan dihubungkan dengan project, agen layanan akan bertindak atas nama layanan untuk project dan resource turunannya.

Anda dapat menentukan manakah jenis resource yang akan dikaitkan dengan agen layanan dengan memeriksa alamat emailnya:

  • Jika agen layanan dihubungkan dengan project, folder, atau organisasi alamat emailnya berisi ID numerik untuk project, folder, atau organisasi tersebut.
  • Jika agen layanan dihubungkan dengan sumber khusus layanan, alamat emailnya berisi ID project dan identitas pengenal unik. ID project numerik ini menyatakan manakah project yang memiliki resource yang dihubungkan dengan agen layanan. Identitas pengenal unik membedakan agen layanan dengan agen layanan lainnya yang ada di dalam project yang sama.

Agent Layanan Google API

Kebijakan izin project Anda kemungkinan merujuk ke akun layanan dengan nama Agen Layanan API Google, dengan alamat email yang menggunakan format berikut: project-number@cloudservices.gserviceaccount.com.

Akun layanan ini menjalankan proses internal Google Cloud atas nama Anda. Peran ini secara otomatis diberi peran Editor (roles/editor) pada project.

Pengelola peran untuk agen layanan

Log audit untuk IAM mungkin mengacu pada akun layanan service-agent-manager@system.gserviceaccount.com.

Akun layanan ini mengelola peran yang diberikan kepada agen layanan lainnya. Akun layanan ini hanya dapat dilihat dalam log audit.

Misalnya, jika Anda menggunakan API baru, Google Cloud mungkin secara otomatis membuat agen layanan baru dan memberikan peran untuk API tersebut di project Anda. Memberikan peran ini akan membuat entri log audit, yang menunjukkan bahwa service-agent-manager@system.gserviceaccount.com menetapkan kebijakan izin untuk project.

Pembuatan agen layanan

Waktu yang tepat untuk pembuatan agen layanan bergantung pada jenis resource yang akan dihubungkan dengan agen layanan tersebut.

Agen layanan yang dihubungkan dengan resource khusus layanan dibuat jika Anda membuat resource. Untuk informasi lebih lanjut tentang cara mengidentifikasi dan mengonfigurasi agen layanan ini, serta meninjau dokumentasi untuk resource yang dihubungkan.

Agen layanan yang dihubungkan dengan project, folder, dan organisasi dibuat saat Anda membutuhkannya, biasanya ketika Anda pertama kali menggunakan suatu layanan. Jika perlu, Anda juga dapat meminta Google Cloud untuk membuat agen layanan bagi suatu layanan sebelum Anda menggunakan layanan. Untuk informasi lebih lanjut, lihat Membuat dan memberikan peran pada agen layanan.

Peran agen layanan

Beberapa tindakan di Google Cloud memerlukan agen layanan untuk membuat dan mengakses resource atas nama Anda. Misalnya, ketika Anda membuat cluster Dataproc, agen layanan Dataproc memerlukan izin untuk membuat instance Compute Engine di project Anda agar dapat membuat cluster.

Untuk mendapatkan akses ini, agen layanan memerlukan peran IAM tertentu. Banyak agen layanan level project diberikan peran yang dibutuhkan secara otomatis. Nama dari peran yang diberikan otomatis ini biasanya berakhiran serviceAgent atau ServiceAgent. Untuk agen layanan lain, Anda harus memberikan peran bagi mereka agar layanan dapat berfungsi dengan benar. Untuk mengetahui agen layanan mana yang diberikan peran secara otomatis, lihat referensi agen layanan.

Jika Anda meminta Google Cloud untuk membuat agen layanan sebelum Anda menggunakan layanan, Anda harus memberikan agen layanan peran yang biasanya diberikan secara otomatis. Hal ini dikarenakan agen layanan yang dibuat berdasarkan permintaan pengguna tidak diberikan peran secara otomatis. Jika Anda tidak memberikan agen layanan peran ini, beberapa layanan mungkin tidak berfungsi dengan baik. Untuk mempelajari cara memberikan peran untuk agen layanan, lihat Membuat dan memberikan peran untuk agen layanan.

Agen layanan utama

Dalam referensi agen layanan, beberapa agen layanan diidentifikasi sebagai agen layanan utama. Agen layanan utama adalah agen layanan yang alamat emailnya ditampilkan ketika Anda memicu pembuatan agen layanan suatu layanan.

Logging audit

Terkadang, saat akun utama memulai operasi, agen layanan akan menjalankan tindakan atas nama akun utama. Namun, saat Anda meninjau log audit untuk agen layanan, akan sulit untuk mengetahui atas nama siapa agen layanan tersebut bertindak, dan alasannya.

Untuk membantu Anda memahami konteks tindakan agen layanan, beberapa agen layanan menyertakan detail tambahan dalam log auditnya, seperti tugas yang terkait dengan tindakan dan akun utama yang membuat tugas.

Agen layanan berikut menyertakan detail tambahan ini dalam log auditnya:

Detail tambahan ini ada di kolom serviceDelegationHistory log audit, yang disusun bertingkat di kolom authenticationInfo. Kolom ini berisi informasi berikut:

  • Prinsipal asli yang membuat tugas
  • Agen layanan yang menjalankan tindakan
  • Layanan tempat agen layanan berada
  • ID tugas

Misalnya, example-user@example.com membuat tugas menggunakan BigQuery Connection API. Tugas ini memerlukan salah satu agen layanan BigQuery Connection API untuk menjalankan tindakan. Dalam hal ini, log audit untuk tindakan agen layanan akan berisi kolom serviceDelegationHistory yang mirip dengan berikut ini:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "bqcx-442188550395-jujw@gcp-sa-bigquery-condel.iam.gserviceaccount.com",
      "serviceDelegationHistory": {
        "originalPrincipal": "user:my-user@example.com",
        "serviceMetadata": [
          {
            "principalSubject": "serviceAccount:bqcx-442188550395-jujw@gcp-sa-bigquery-condel.iam.gserviceaccount.com",
            "serviceDomain": "bigquery.googleapis.com",
          }
        ]
      }
    }
  }
}

Langkah selanjutnya

Coba sendiri

Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.

Mulai secara gratis