Menggunakan akun layanan kustom

Panduan ini menjelaskan cara mengonfigurasi Vertex AI untuk menggunakan akun layanan kustom dalam skenario berikut:

Kapan harus menggunakan akun layanan kustom

Saat Vertex AI berjalan, Vertex AI umumnya bertindak dengan izin salah satu dari beberapa akun layanan yang dibuat dan dikelola Google untuk project Google Cloud Anda. Untuk memberi Vertex AI peningkatan akses ke layanan Google Cloud lainnya dalam konteks tertentu, Anda dapat menambahkan peran tertentu ke agen layanan Vertex AI.

Namun, menyesuaikan izin agen layanan mungkin tidak memberikan kontrol akses mendetail yang Anda inginkan. Beberapa kasus penggunaan umum mencakup:

  • Mengurangi izin akses untuk tugas dan model Vertex AI. Agen layanan Vertex AI default memiliki akses ke BigQuery dan Cloud Storage.
  • Mengizinkan akses tugas yang berbeda ke resource yang berbeda. Sebaiknya izinkan banyak pengguna meluncurkan tugas dalam satu project. Namun, berikan akses tugas setiap pengguna hanya ke tabel BigQuery atau bucket Cloud Storage tertentu.

Misalnya, Anda mungkin ingin menyesuaikan setiap tugas pelatihan kustom yang Anda jalankan secara terpisah agar memiliki akses ke berbagai resource Google Cloud di luar project Anda.

Selain itu, menyesuaikan izin agen layanan tidak mengubah izin yang tersedia ke container yang menyalurkan prediksi dari Model yang dilatih khusus.

Untuk menyesuaikan akses setiap kali melakukan pelatihan kustom atau menyesuaikan izin container prediksi Model yang dilatih khusus, Anda harus menggunakan akun layanan kustom.

Akses default

Bagian ini menjelaskan akses default yang tersedia untuk container pelatihan kustom dan container prediksi resource Model yang dilatih kustom. Saat menggunakan akun layanan kustom, Anda akan mengganti akses ini untuk resource CustomJob, HyperparameterTuningJob, TrainingPipeline, atau DeployedModel tertentu.

Container pelatihan

Saat Anda membuat CustomJob, HyperparameterTuningJob, atau TrainingPipeline kustom, container pelatihan dijalankan menggunakan Vertex AI Kustom project Google Cloud Anda Code Service Agent secara default.

Pelajari Agen Layanan Kode Kustom Vertex AI lebih lanjut, termasuk cara memberinya akses ke resource Google Cloud tambahan.

Container prediksi

Saat Anda men-deploy Model yang dilatih khusus ke Endpoint, container prediksi akan berjalan menggunakan akun layanan yang dikelola oleh Vertex AI. Akun layanan ini berbeda dengan agen layanan Vertex AI.

Akun layanan yang digunakan container prediksi secara default memiliki izin untuk membaca artefak model yang disediakan oleh Vertex AI pada URI yang disimpan di AIP_STORAGE_URI variabel lingkungan. Jangan mengandalkan akun layanan untuk memiliki izin lain. Anda tidak dapat menyesuaikan izin akun layanan.

Mengonfigurasi akun layanan kustom

Bagian berikut menjelaskan cara menyiapkan akun layanan kustom untuk digunakan dengan Vertex AI dan cara mengonfigurasi CustomJob, HyperparameterTuningJob, TrainingPipeline, atau DeployedModel untuk menggunakan akun layanan. Perlu diperhatikan bahwa Anda tidak dapat mengonfigurasi akun layanan kustom untuk mengambil image dari Artifact Registry. Vertex AI menggunakan akun layanan default untuk menarik gambar.

Menyiapkan akun layanan kustom

Untuk menyiapkan akun layanan kustom, lakukan hal berikut:

  1. Buat akun layanan yang dikelola pengguna. Akun layanan yang dikelola pengguna dapat berada dalam project yang sama dengan resource Vertex AI Anda atau dalam project yang berbeda.

  2. Memberikan peran IAM akun layanan baru Anda yang memberikan akses ke layanan dan resource Google Cloud yang Anda inginkan agar dapat digunakan Vertex AI selama pelatihan kustom atau prediksi.

  3. Opsional: Jika akun layanan yang dikelola pengguna berada dalam project yang berbeda dengan tugas pelatihan Anda, konfigurasikan akun layanan yang dikelola pengguna sehingga dapat dilampirkan pada tugas pelatihan.

  4. Opsional: Jika Anda juga berencana menggunakan akun layanan yang dikelola pengguna untuk prediksi, Anda harus memberikan peran Admin Akun Layanan (roles/iam.serviceAccountAdmin) kepada Layanan Vertex AI Agen proyek tempat Anda menggunakan Vertex AI:

    gcloud iam service-accounts add-iam-policy-binding \
      --role=roles/iam.serviceAccountAdmin \
      --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \
      CUSTOM_SERVICE_ACCOUNT
    

    Ganti kode berikut:

    • AI_PLATFORM_SERVICE_AGENT: Alamat email Vertex AI Service Agent project Anda, yang memiliki format berikut:

      service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com

      Untuk menemukan Agen Layanan Vertex AI, buka halaman IAM di Konsol Google Cloud.

      Buka IAM

    • CUSTOM_SERVICE_ACCOUNT: Alamat email akun layanan yang dikelola pengguna baru yang Anda buat di langkah pertama bagian ini.

Menentukan akun layanan kustom untuk resource Vertex AI

Proses mengonfigurasi Vertex AI agar menggunakan akun layanan tertentu untuk suatu resource disebut melampirkan akun layanan ke resource. Bagian berikut menjelaskan cara melampirkan akun layanan yang Anda buat di bagian sebelumnya ke beberapa resource Vertex AI.

Melampirkan akun layanan ke resource pelatihan kustom

Untuk mengonfigurasi Vertex AI agar menggunakanakun layanan baru selama pelatihan khusus, menentukan alamat email akun layanan di bagian serviceAccount kolom CustomJobSpec ketika Anda memulai pelatihan khusus. Bergantung pada jenis resource pelatihan kustom yang Anda buat, penempatan kolom ini di permintaan API akan berbeda:

  • Jika Anda membuat CustomJob, tentukan alamat email akun layanan di CustomJob.jobSpec.serviceAccount.

    Pelajari lebih lanjut cara membuat CustomJob.

  • Jika Anda membuat HyperparameterTuningJob, tentukan alamat email akun layanan di HyperparameterTuningJob.trialJobSpec.serviceAccount.

    Pelajari cara membuat HyperparameterTuningJob lebih lanjut.

  • Jika Anda membuat TrainingPipeline kustom tanpa penyesuaian hyperparameter, tentukan alamat email akun layanan di TrainingPipeline.trainingTaskInputs.serviceAccount.

  • Jika Anda membuat TrainingPipeline kustom dengan penyesuaian hyperparameter, tentukan alamat email akun layanan di TrainingPipeline.trainingTaskInputs.trialJobSpec.serviceAccount.

Melampirkan akun layanan ke container yang menayangkan prediksi online

Untuk mengonfigurasi container prediksi Model yang dilatih khusus agar menggunakan akun layanan baru, tentukan alamat email akun layanan saat Anda men-deploy Model ke Endpoint:

Konsol

Ikuti Men-deploy model menggunakan Konsol Google Cloud. Saat Anda menentukan setelan model, pilih akun layanan dari menu drop-down Akun layanan.

gcloud

Ikuti Men-deploy model menggunakan Vertex AI API. Saat menjalankan perintah gcloud ai endpoints deploy-model, gunakan flag --service-account untuk menentukan alamat email akun layanan Anda.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • ENDPOINT_ID: ID untuk endpoint.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
  • MODEL_ID: ID untuk model yang akan di-deploy.
  • DEPLOYED_MODEL_NAME: Nama untuk DeployedModel. Anda juga dapat menggunakan nama tampilan Model untuk DeployedModel.
  • MACHINE_TYPE: Opsional. Resource mesin yang digunakan untuk setiap node deployment ini. Setelan defaultnya adalah n1-standard-2. Pelajari jenis-jenis mesin lebih lanjut.
  • MIN_REPLICA_COUNT: Jumlah minimum node untuk deployment ini. Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan beban prediksi, hingga mencapai jumlah maksimum node dan tidak pernah kurang dari jumlah ini.
  • MAX_REPLICA_COUNT: Jumlah maksimum node untuk deployment ini. Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan oleh beban prediksi, hingga jumlah node ini, dan tidak pernah kurang dari jumlah minimum node.
  • CUSTOM_SERVICE_ACCOUNT: Alamat email akun layanan. Contoh: SA_NAME@PROJECT_ID.iam.gserviceaccount.com.

Jalankan perintah gcloud ai endpoints deploy-model:

Linux, macOS, atau Cloud Shell

gcloud ai endpoints deploy-model ENDPOINT_ID \
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --min-replica-count=MIN_REPLICA_COUNT \
  --max-replica-count=MAX_REPLICA_COUNT \
  --traffic-split=0=100 \
  --service-account=CUSTOM_SERVICE_ACCOUNT

Windows (PowerShell)

gcloud ai endpoints deploy-model ENDPOINT_ID `
  --region=LOCATION `
  --model=MODEL_ID `
  --display-name=DEPLOYED_MODEL_NAME `
  --machine-type=MACHINE_TYPE `
  --min-replica-count=MIN_REPLICA_COUNT `
  --max-replica-count=MAX_REPLICA_COUNT `
  --traffic-split=0=100 `
  --service-account=CUSTOM_SERVICE_ACCOUNT

Windows (cmd.exe)

gcloud ai endpoints deploy-model ENDPOINT_ID ^
  --region=LOCATION ^
  --model=MODEL_ID ^
  --display-name=DEPLOYED_MODEL_NAME ^
  --machine-type=MACHINE_TYPE ^
  --min-replica-count=MIN_REPLICA_COUNT ^
  --max-replica-count=MAX_REPLICA_COUNT ^
  --traffic-split=0=100 ^
  --service-account=CUSTOM_SERVICE_ACCOUNT
 

API

Ikuti Men-deploy model menggunakan Vertex AI API. Saat Anda mengirim permintaan projects.locations.endpoints.deployModel, tetapkan kolom deployedModel.serviceAccount ke alamat email akun layanan Anda.

Mengakses layanan Google Cloud dalam kode Anda

Jika Anda mengonfigurasi Vertex AI untuk menggunakan akun layanan kustom dengan mengikuti petunjuk di bagian sebelumnya, container pelatihan atau container prediksi Anda dapat mengakses layanan dan resource Google Cloud apa pun yang dapat diakses akun layanan menjadi sasaran.

Untuk mengakses layanan Google Cloud, tulis kode pelatihan atau kode penyaluran prediksi Anda untuk menggunakan Kredensial Default Aplikasi (ADC) dan secara eksplisit tentukan project ID atau nomor project resource yang ingin Anda akses. Pelajari lebih lanjut cara menulis kode untuk mengakses layanan Google Cloud lainnya.

Langkah selanjutnya

  • Pelajari Kontrol akses untuk Vertex AI lebih lanjut.
  • Pelajari izin IAM tertentu dan operasi yang didukungnya.