Anda dapat mengonfigurasi AI Platform Training untuk menggunakan akun layanan pilihan Anda saat menjalankan aplikasi pelatihan. Dengan menggunakan akun layanan kustom, Anda dapat menyesuaikan resource Google Cloud yang dapat diakses kode pelatihan tanpa memberikan izin yang terlalu luas ke akun layanan yang digunakan AI Platform Training secara default. Selain itu, Anda dapat menggunakan akun layanan kustom untuk memberi kode Anda akses ke layanan Google Cloud tambahan seperti Secret Manager.
Panduan ini berfokus pada izin resource AI Platform Training untuk mengakses resource Google Cloud lainnya. Untuk mempelajari izin yang Anda perlukan untuk mengakses resource Pelatihan AI Platform itu sendiri, baca Kontrol akses.
Memahami agen layanan
Secara default, AI Platform Training menggunakan agen layanan untuk menjalankan tugas pelatihan. Agen layanan ini diidentifikasi oleh alamat email dengan format berikut:
service-PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com
PROJECT_NUMBER diganti dengan nomor project untuk project Google Cloud Anda.
Temukan akun layanan yang sesuai untuk project Anda di konsol Google Cloud atau menggunakan Google Cloud CLI:
Konsol Google Cloud
Buka halaman IAM di konsol Google Cloud,
pilih Sertakan pemberian peran yang disediakan Google,
dan temukan akun utama yang cocok dengan format alamat email yang dijelaskan sebelumnya di bagian ini. Akun layanan
juga memiliki nama Google Cloud ML Engine Service Agent
.
gcloud
Jalankan perintah berikut di lingkungan Shell tempat Anda telah melakukan inisialisasi gcloud CLI:
gcloud projects get-iam-policy PROJECT_ID \
--flatten="bindings[].members" \
--format="table(bindings.members)" \
--filter="bindings.role:roles/ml.serviceAgent" \
| grep serviceAccount:
Ganti PROJECT_ID dengan ID project Google Cloud Anda.
Perintah ini menghasilkan output berikut:
serviceAccount:GOOGLE_MANAGED_SERVICE_ACCOUNT
GOOGLE_MANAGED_SERVICE_ACCOUNT adalah alamat email agen layanan AI Platform project Anda.
Agen layanan ini memiliki izin yang sesuai untuk sebagian besar tugas pelatihan. Misalnya, bucket dapat membaca dari dan menulis ke bucket Cloud Storage dalam project Google Cloud yang sama.
Jika memerlukan aplikasi pelatihan untuk dijalankan dengan izin tambahan, Anda dapat menetapkan peran Identity and Access Management (IAM) tambahan ke akun layanan ini. Misalnya, Anda dapat memberinya akses ke bucket Cloud Storage di project Google Cloud lain.
Menggunakan akun layanan kustom
Jika Anda ingin memberikan atau membatasi izin Google Cloud untuk tugas pelatihan tertentu, gunakan akun layanan kustom sebagai pengganti agen layanan.
Untuk melakukannya, siapkan akun layanan kustom terlebih dahulu. Kemudian, tentukan akun layanan kustom saat Anda membuat tugas pelatihan.
Menyiapkan akun layanan kustom
Untuk menyiapkan akun layanan kustom, lakukan hal berikut:
Berikan peran IAM akun layanan baru Anda untuk memberikan izin yang diperlukan aplikasi pelatihan saat dijalankan.
Jika akun layanan yang dikelola pengguna berada dalam project yang berbeda dengan tugas pelatihan Anda, konfigurasikan akun layanan yang dikelola pengguna sehingga dapat dilampirkan ke tugas pelatihan.
Menentukan akun layanan kustom untuk tugas pelatihan
Untuk mengonfigurasi AI Platform Training agar menggunakan akun layanan kustom saat
menjalankan aplikasi pelatihan, tentukan kolom
trainingInput.serviceAccount
saat Anda
membuat tugas pelatihan.
Jika menggunakan gcloud CLI untuk membuat tugas pelatihan, Anda harus menggunakan file config.yaml
untuk menentukan kolom ini. Contoh:
trainingInput:
serviceAccount: CUSTOM_SERVICE_ACCOUNT
Ganti CUSTOM_SERVICE_ACCOUNT dengan alamat email akun layanan yang dikelola pengguna yang Anda siapkan di bagian sebelumnya dalam panduan ini.
Mengakses layanan Google Cloud dari kode pelatihan
Dalam kode pelatihan, jika Anda ingin mengakses layanan Google Cloud lainnya dari tugas pelatihan, gunakan Kredensial Default Aplikasi (ADC). Banyak library klien Google Cloud melakukan autentikasi dengan ADC secara default. Anda tidak perlu mengonfigurasi variabel lingkungan apa pun; AI Platform Training secara otomatis mengonfigurasi ADC untuk melakukan autentikasi sebagai akun layanan kustom yang Anda tentukan di langkah sebelumnya.
Namun, saat Anda menggunakan library klien Google Cloud dalam kode pelatihan, library tersebut mungkin tidak terhubung ke project Google Cloud yang benar secara default. Jika log pelatihan Anda melaporkan error izin, hal ini mungkin menjadi masalahnya. Saat Anda membuat tugas pelatihan, AI Platform Training tidak menjalankan kode pelatihan Anda secara langsung di project Google Cloud Anda; sebagai gantinya, AI Platform Training menjalankan kode Anda di project terpisah yang dikelola oleh Google. Pelatihan AI Platform menggunakan project ini secara eksklusif untuk operasi yang terkait dengan project Anda. Oleh karena itu, jangan mencoba menyimpulkan project ID dari lingkungan dalam kode pelatihan Anda; tentukan project ID secara eksplisit.
Jika tidak ingin melakukan hardcode pada project ID dalam kode pelatihan, Anda dapat
mereferensikan variabel lingkungan CLOUD_ML_PROJECT_ID
. AI Platform Training
menetapkan variabel lingkungan ini di setiap container pelatihan untuk memuat
nomor project dari project tempat Anda memulai
pelatihan kustom. Banyak alat Google Cloud yang dapat menerima nomor project
ke mana pun alat tersebut mengambil ID project.
Misalnya, pertimbangkan untuk menjalankan tugas pelatihan di project Google Cloud dengan ID PROJECT_ID. Jika Anda ingin menggunakan Klien Python untuk Google BigQuery untuk mengakses tabel BigQuery dalam project yang sama, jangan mencoba menyimpulkan project di kode pelatihan Anda:
Pemilihan project secara implisit
from google.cloud import bigquery
client = bigquery.Client()
Sebagai gantinya, gunakan kode yang secara eksplisit memilih project:
Pemilihan project secara eksplisit
from google.cloud import bigquery
project_number = os.environ["CLOUD_ML_PROJECT_ID"]
client = bigquery.Client(project=project_number)
Langkah selanjutnya
Pelajari cara membuat tugas pelatihan, dan baca opsi konfigurasi tambahan untuk tugas Anda.
Baca cara menggunakan Cloud Storage dengan Pelatihan AI Platform.
Pelajari selengkapnya tentang akun layanan.