Dokumen ini menjelaskan cara mengonfigurasi virtual machine (VM) yang sudah ada agar dapat menggunakan akun layanan lain. Akun layanan adalah jenis akun khusus yang biasanya digunakan oleh aplikasi atau workload komputasi untuk melakukan panggilan API resmi.
Akun layanan diperlukan untuk skenario saat beban kerja, seperti aplikasi kustom, perlu mengakses Trusted Cloud by S3NS resource atau melakukan tindakan tanpa interaksi pengguna akhir. Untuk mengetahui informasi selengkapnya tentang kapan harus menggunakan akun layanan, lihat Praktik terbaik untuk menggunakan akun layanan.
Jika Anda memiliki aplikasi yang perlu melakukan panggilan ke API Trusted Cloud by S3NS , Google merekomendasikan agar Anda menyertakan akun layanan yang dikelola pengguna ke VM tempat aplikasi atau workload berjalan. Kemudian, Anda harus memberikan peran IAM ke akun layanan, sehingga akun layanan dan aplikasi yang berjalan di VM dapat mengakses resourceTrusted Cloud by S3NS .
Sebelum memulai
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses yang digunakan untuk memverifikasi identitas Anda untuk mengakses Trusted Cloud by S3NS layanan dan API.
Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud init
- Set a default region and zone.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, Anda menggunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud init
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Trusted Cloud .
Peran yang diperlukan
Agar mendapatkan izin yang Anda perlukan untuk mengonfigurasi akun layanan di VM, minta administrator untuk memberi Anda peran IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) di VM atau project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Peran bawaan ini berisi izin yang diperlukan untuk mengonfigurasi akun layanan di VM Anda. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengonfigurasi akun layanan di VM Anda:
-
compute.instances.setServiceAccount
-
compute.instances.stop
-
compute.instances.start
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Ringkasan
Sebaiknya konfigurasi akun layanan untuk VM Anda sebagai berikut:
- Buat akun layanan baru yang dikelola pengguna, daripada menggunakan akun layanan default Compute Engine, dan berikan peran IAM ke akun layanan tersebut hanya untuk resource dan operasi yang dibutuhkan.
- Sertakan akun layanan ke VM Anda.
- Tetapkan cakupan platform cloud (
https://www.googleapis.com/auth/cloud-platform
) pada VM Anda. Hal ini memungkinkan akun layanan VM memanggil Trusted Cloud by S3NS API yang dapat digunakannya.- Jika Anda menentukan akun layanan menggunakan konsol Trusted Cloud , tetapkan cakupan akses akun layanan ke Izinkan akses penuh ke semua Cloud API.
- Jika menentukan akun layanan menggunakan Google Cloud CLI atau Compute Engine API, Anda dapat menggunakan parameter
scopes
untuk menetapkan cakupan akses.
Menyiapkan akun layanan
Anda dapat membuat akun layanan yang dikelola pengguna atau menggunakan akun layanan default Compute Engine. Akun layanan yang dikelola pengguna direkomendasikan.
Untuk akun layanan yang dipilih, pastikan peran Identity and Access Management (IAM) yang diperlukan telah ditetapkan.
Dikelola pengguna
Jika Anda belum memiliki akun layanan yang dikelola pengguna, buat akun layanan. Untuk mengetahui petunjuk detailnya, lihat Menyiapkan akun layanan.
Default
Jika Anda familier dengan akun layanan default Compute Engine dan ingin menggunakan kredensial yang disediakan oleh akun layanan default daripada membuat akun layanan baru, Anda dapat memberikan peran IAM ke akun layanan default.
Sebelum Anda menetapkan peran IAM ke akun layanan default, perhatikan bahwa:
Memberikan peran IAM ke akun layanan default akan memengaruhi semua VM yang berjalan sebagai akun layanan default. Misalnya, jika Anda memberikan peran
roles/storage.objectAdmin
kepada akun layanan default, semua VM yang berjalan sebagai akun layanan default dengan cakupan akses yang diperlukan akan memiliki izin yang diberikan oleh peranroles/storage.objectAdmin
. Demikian pula, jika Anda membatasi akses dengan menghilangkan peran tertentu, hal ini akan memengaruhi semua VM yang berjalan sebagai akun layanan default.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 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.
Jika Anda tidak yakin dengan pemberian peran IAM ke akun layanan default, buat akun layanan baru yang dikelola pengguna.
Menyertakan akun layanan dan memperbarui cakupan akses
Untuk mengubah akun layanan dan cakupan akses VM, VM harus dihentikan sementara.
Jika akun layanan berada di project yang berbeda dengan VM, Anda harus mengonfigurasi akun layanan untuk resource dalam project yang berbeda.
Gunakan salah satu metode berikut untuk mengubah akun layanan dan cakupan akses di VM Anda.
Konsol
Buka halaman VM instances.
Klik nama instance VM yang akun layanannya ingin Anda ubah.
Klik
Hentikan. Jika tidak ada opsi Hentikan, klik Tindakan lainnya > Hentikan. Tunggu hingga VM dihentikan.Klik Edit.
Scroll ke bawah ke bagian Service Account.
Dari menu drop-down, pilih akun layanan yang akan ditetapkan ke VM.
- Jika Anda memilih akun layanan yang dikelola pengguna, cakupan akses VM
secara default ditetapkan ke cakupan
cloud-platform
yang direkomendasikan. Jika Anda memerlukan cakupan yang berbeda untuk akun layanan yang dikelola pengguna, gunakan gcloud CLI atau Compute Engine API untuk melampirkan akun layanan. - Jika memilih akun layanan default Compute Engine, Anda dapat mengubah cakupan aksesnya di konsol Trusted Cloud .
- Untuk mengubah cakupan, di bagian Cakupan akses, pilih Tetapkan akses untuk setiap API, lalu tetapkan cakupan yang sesuai dengan kebutuhan Anda.
- Direkomendasikan Jika tidak yakin dengan cakupan akses yang tepat untuk ditetapkan, pilih Izinkan akses penuh ke semua Cloud API lalu pastikan untuk membatasi akses dengan menetapkan peran IAM pada akun layanan.
- Jika Anda memilih akun layanan yang dikelola pengguna, cakupan akses VM
secara default ditetapkan ke cakupan
Klik Simpan untuk menyimpan perubahan.
Klik Mulai/Lanjutkan untuk mereset VM.
gcloud
Hentikan VM menggunakan perintah
instances stop
. GantiVM_NAME
dengan nama instance VM Anda.gcloud compute instances stop VM_NAME
Sertakan akun layanan. Untuk menyertakan akun layanan, gunakan perintah
instances set-service-account
dan masukkan nama VM, email akun layanan, dan cakupan yang diinginkan. Untuk mengetahui informasi selengkapnya tentang cara menetapkan cakupan akses, lihat Praktik terbaik.gcloud compute instances set-service-account VM_NAME \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=SCOPES
Ganti kode berikut:
SERVICE_ACCOUNT_EMAIL
: alamat email untuk akun layanan yang Anda buat. Contoh:my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
. Untuk melihat alamat email, lihat Mencantumkan akun layanan.Jika Anda ingin menghapus akun layanan dari VM, gunakan flag
--no-service-account
.VM_NAME
: nama instance VM.SCOPES
: daftar alias atau URI cakupan yang dipisahkan koma yang diberikan dalam deskripsi untuk tanda--scopes
.Jika Anda ingin menghapus semua cakupan untuk VM, gunakan flag
--no-scopes
sebagai gantinya.
Misalnya, perintah berikut menetapkan akun layanan
my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
ke VM bernama example-instance dan menetapkan cakupan akses pada VM tersebut untuk mengizinkan akses baca/tulis ke Compute Engine dan akses hanya baca ke Cloud Storage:gcloud compute instances set-service-account example-instance \ --service-account=my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com \ --scopes=compute-rw,storage-ro
Mulai VM dengan menggunakan perintah
instances start
. GantiVM_NAME
dengan nama instance VM Anda.gcloud compute instances start VM_NAME
REST
Hentikan VM dengan membuat permintaan
POST
menggunakan metodeinstances.stop
:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
Ganti kode berikut:
PROJECT_ID
: project tempat VM Anda beradaZONE
: zona tempat VM Anda beradaVM_NAME
: nama VM yang ingin Anda hentikan
Sertakan akun layanan dengan membuat permintaan
POST
ke metodesetServiceAccount
:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setServiceAccount { "email": "SERVICE_ACCOUNT_EMAIL", "scopes": [ "SCOPE_URI", "SCOPE_URI", ... ] }
Ganti kode berikut:
PROJECT_ID
: project ID untuk permintaan ini.ZONE
: zona tempat VM ini berada.VM_NAME
: nama VM.SERVICE_ACCOUNT_EMAIL
: alamat email untuk akun layanan yang Anda buat. Contoh:my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
. Untuk melihat alamat email, lihat Mencantumkan akun layanan.SCOPE_URI
: URI cakupan yang diperlukan.
Misalnya, permintaan berikut menggunakan email akun layanan
my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
serta menetapkan cakupan Cloud Storage dan BigQuery:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setServiceAccount { "email": "my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com", "scopes": [ "https://www.s3nsapis.fr/auth/bigquery", "https://www.s3nsapis.fr/auth/devstorage.read_only" ] }
Mulai VM dengan membuat permintaan
POST
menggunakan metodeinstances.start
:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
Ganti kode berikut:
PROJECT_ID
: project tempat VM Anda beradaZONE
: zona tempat VM Anda beradaVM_NAME
: nama VM yang ingin Anda mulai
Melihat akun layanan yang digunakan oleh VM
Untuk melihat semua akun layanan dalam project, lihat Mencantumkan akun layanan.
Jika Anda perlu mengidentifikasi akun layanan yang digunakan oleh VM, selesaikan salah satu prosedur berikut:
console
Buka halaman VM instances.
Klik nama instance VM yang akun layanannya ingin Anda ubah.
Buka bagian API and identity management. Bagian ini menampilkan akun layanan dan cakupan akses yang digunakan oleh VM.
gcloud
Jalankan perintah
gcloud compute instances describe
:gcloud compute instances describe VM_NAME \ --format json
Outputnya mirip dengan hal berikut ini:
{ ... "serviceAccounts":[ { "email":"123845678986-compute@developer.s3ns-system.iam.gserviceaccount.com", "scopes":[ "https://www.s3nsapis.fr/auth/devstorage.full_control" ] } ] ... }
Jika VM tidak menggunakan akun layanan, Anda akan menerima respons tanpa properti
serviceAccounts
.Server Metadata
Buat kueri server metadata dari dalam VM itu sendiri. Buat permintaan ke
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/
:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/" \ -H "Metadata-Flavor: Google"
Jika Anda mengaktifkan satu atau beberapa akun layanan saat membuat instance, perintah
curl
ini akan menampilkan output yang mirip dengan berikut ini:123845678986-compute@developer.s3ns-system.iam.gserviceaccount.com/ default/
Jika instance tidak menggunakan akun layanan, Anda akan menerima respons kosong.
Praktik terbaik
- Batasi hak istimewa akun layanan dan periksa izin akun layanan Anda secara rutin untuk memastikan bahwa izin tersebut merupakan yang terbaru.
- Hapus akun layanan dengan hati-hati. Sebelum menghapusnya, pastikan aplikasi penting Anda tidak lagi menggunakan akun layanan. Jika Anda tidak yakin apakah akun layanan sedang digunakan, sebaiknya nonaktifkan akun layanan, bukan menghapusnya. Akun layanan yang dinonaktifkan dapat diaktifkan kembali jika masih diperlukan.
- Mitigasi risiko keamanan untuk akun layanan Anda. Untuk informasi selengkapnya, lihat Praktik terbaik untuk menggunakan akun layanan.
Apa langkah selanjutnya?
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-19 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-19 UTC."],[[["This document guides you through configuring a virtual machine (VM) to utilize a different service account, which is crucial for applications needing to access Google Cloud resources without end-user intervention."],["Google recommends using user-managed service accounts instead of the default Compute Engine service account, granting them only the necessary IAM roles for specific resources and operations to enhance security."],["To attach a service account and set access scopes to a VM, the VM must be temporarily stopped, after which you can either use the Google Cloud console, gcloud CLI, or REST API to modify these settings."],["You can confirm the service account used by a specific VM through the Google Cloud console, gcloud CLI, or by querying the metadata server within the VM itself."],["It's best practice to limit the privileges of service accounts, regularly review their permissions, and disable them when they are no longer in use instead of deleting them to ensure security and ease of recovery."]]],[]] -