Ada berbagai jenis metode autentikasi yang tersedia untuk berbagai mode akses:
Kasus penggunaan | Metode autentikasi | Tentang metode autentikasi ini |
---|---|---|
Mengakses sumber data langsung dari dalam agen. | Service account | Agen yang di-deploy memiliki akses ke semua resource yang izin aksesnya dimiliki oleh akun layanannya. |
Mengirim permintaan ke endpoint menggunakan kunci API dari dalam agen. | Kunci API | Pastikan API yang ingin Anda gunakan mendukung kunci API sebelum menggunakan metode autentikasi ini. |
Menangani akun pengguna, pendaftaran, login, atau otorisasi untuk pengguna akhir agen. | ID klien OAuth | Memerlukan agen Anda untuk meminta dan menerima izin dari pengguna. |
Peran
Agen yang Anda deploy di Vertex AI Agent Engine berjalan menggunakan Agen Layanan AI Platform Reasoning Engine atau akun layanan kustom Anda. Lihat Menyiapkan identitas dan izin untuk agen Anda untuk mengetahui informasi selengkapnya.
Agen Layanan Reasoning Engine AI Platform
Akun layanan AI Platform Reasoning Engine Service Agent menggunakan format
service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com
.
Akun layanan memiliki Vertex AI
Reasoning Engine Service Agent peran (roles/aiplatform.reasoningEngineServiceAgent
)
yang memberikan izin default yang diperlukan untuk agen yang di-deploy. Anda dapat melihat
daftar lengkap izin default di
dokumentasi IAM.
Mencantumkan peran agen yang di-deploy
Konsol
Buka halaman IAM.
Pilih project yang sesuai dengan project Google Cloud Anda.
Temukan Principal yang cocok dengan akun layanan yang digunakan sebagai identitas agen Anda.
Peran agen yang di-deploy dapat ditemukan di kolom Peran.
gcloud
Pertama, instal dan lakukan inisialisasi
gcloud
CLI. Kemudian, jalankan perintah berikut:
gcloud projects get-iam-policy PROJECT_ID_OR_NUMBER \
--flatten="bindings[].members" \
--filter="bindings.members:serviceAccount:PRINCIPAL" \
--format="value(bindings.role)"
di mana
PROJECT_ID_OR_NUMBER
adalah ID atau nomor project Anda, danPRINCIPAL
didasarkan pada akun layanan yang digunakan saat agen di-deploy di Vertex AI Agent Engine.
Untuk mengetahui detailnya, buka dokumentasi IAM dan referensi CLI.
Python
Pertama, instal library klien dengan menjalankan
pip install google-api-python-client
Kemudian, lakukan autentikasi diri Anda, dan jalankan perintah berikut untuk mencantumkan peran agen yang di-deploy:
from google.cloud import resourcemanager_v3
from google.iam.v1 import iam_policy_pb2
project_id = "PROJECT_ID"
principal = "PRINCIPAL"
crm_service = resourcemanager_v3.ProjectsClient()
policy = crm_service.get_iam_policy(iam_policy_pb2.GetIamPolicyRequest(
resource=f"projects/{project_id}"
))
for binding in policy.bindings:
for member in binding.members:
if principal in member:
print(binding.role)
Tempat PRINCIPAL
didasarkan pada
akun layanan
yang digunakan saat agen di-deploy di Vertex AI Agent Engine.
Memberikan peran untuk agen yang di-deploy
Konsol (direkomendasikan)
Buka halaman IAM.
Pilih project yang sesuai dengan project Google Cloud Anda.
Temukan Principal yang cocok dengan akun layanan yang digunakan sebagai identitas agen Anda.
Tambahkan peran yang diperlukan ke Akun Utama dengan mengklik tombol edit, menambahkan peran, sebelum mengklik tombol simpan.
gcloud
Pertama, instal dan lakukan inisialisasi
gcloud
CLI. Kemudian, jalankan perintah berikut:
gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE_NAME
di mana
PRINCIPAL
didasarkan pada akun layanan yang digunakan saat agen di-deploy di Vertex AI Agent Engine.ROLE_NAME
adalah nama peran yang ingin Anda berikan. Untuk mengetahui daftar peran bawaan, lihat Memahami peran.
Untuk mengetahui detailnya, buka dokumentasi IAM dan referensi CLI.
Python
Sebaiknya jangan tulis kode Python Anda sendiri untuk memberikan atau mencabut peran bagi agen yang di-deploy. Sebagai gantinya, sebaiknya gunakan konsol Google Cloud atau gcloud
untuk operasi satu kali, atau Terraform untuk mengelola kontrol akses IAM secara terprogram. Jika Anda ingin atau perlu melakukannya di Python, lihat
dokumentasi untuk library klien IAM.
Mencabut peran dari agen yang di-deploy
Konsol (direkomendasikan)
Buka halaman IAM.
Pilih project yang sesuai dengan project Google Cloud Anda.
Temukan Principal yang cocok dengan akun layanan yang digunakan sebagai identitas agen Anda.
Cabut peran dari Akun utama dengan mengklik tombol edit, menghapus peran yang sesuai, sebelum mengklik tombol simpan.
gcloud
Pertama, instal dan lakukan inisialisasi
gcloud
CLI. Kemudian, jalankan perintah berikut:
gcloud projects remove-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE_NAME
di mana
PRINCIPAL
didasarkan pada akun layanan yang digunakan saat agen di-deploy di Vertex AI Agent Engine.ROLE_NAME
adalah nama peran yang ingin Anda cabut. Untuk mengetahui daftar peran bawaan, lihat Memahami peran.
Untuk mengetahui detailnya, buka dokumentasi IAM dan referensi CLI.
Python
Sebaiknya jangan tulis kode Python Anda sendiri untuk memberikan atau mencabut peran bagi agen yang di-deploy. Sebagai gantinya, sebaiknya gunakan konsol Google Cloud atau gcloud
untuk operasi satu kali, atau Terraform untuk mengelola kontrol akses IAM secara terprogram. Jika Anda ingin atau perlu melakukannya di Python, lihat
dokumentasi untuk library klien IAM.
Rahasia
Secret berisi satu atau beberapa versi secret, beserta metadata seperti label dan informasi replikasi. Payload sebenarnya dari secret disimpan dalam versi secret. Secret dikelola (melalui Secret Manager) di tingkat project, dan dapat dibagikan di seluruh agen yang di-deploy. Untuk mencantumkan secret yang sesuai dengan agen di Secret Manager, Anda dapat menambahkan label dan menggunakannya untuk pemfilteran.
Membuat secret
Konsol
Buka halaman Secret Manager.
Di halaman Secret Manager, klik Buat Secret.
Di kolom Name, masukkan nama untuk secret (misalnya,
my-secret
).Opsional: Untuk menambahkan versi secret saat membuat secret awal, di kolom Secret value, masukkan nilai untuk secret tersebut (misalnya,
abcd1234
).Buka Label, lalu klik Tambahkan label.
Masukkan kunci dan nilai yang sesuai untuk membuat label.
Klik Buat secret.
gcloud
Pertama, instal dan lakukan inisialisasi
gcloud
CLI. Kemudian, jalankan perintah berikut:
gcloud secrets create SECRET_ID --replication-policy="automatic"
gcloud secrets versions add SECRET_ID --data-file="FILE_PATH"
di mana
SECRET_ID
adalah ID rahasia atau ID yang sepenuhnya memenuhi syarat untuk rahasia.FILE_PATH
adalah jalur lengkap (termasuk nama file) ke file yang berisi detail versi.
Untuk mengetahui detailnya, buka dokumentasi Secret Manager untuk membuat secret dan versi secret, atau referensi CLI untuk membuat secret dan versi secret.
Python
Pertama, instal library klien dengan menjalankan
pip install google-cloud-secret-manager
Kemudian, autentikasi diri Anda, dan jalankan perintah berikut
from google.cloud import secretmanager
import google_crc32c
client = secretmanager.SecretManagerServiceClient()
secret = client.create_secret(request={
"parent": "projects/PROJECT_ID",
"secret_id": "SECRET_ID",
"secret": { # google.cloud.secretmanager_v1.types.Secret
# Required. The replication policy cannot be changed after the Secret has been created.
"replication": {"automatic": {}},
# Optional. Labels to associate with the secret.
"labels": {"type": "api_key", "provider": "anthropic"},
# Optional. The secret's time-to-live in seconds with format (e.g.,
# "900s" for 15 minutes). If specified, the secret versions will be
# automatically deleted upon reaching the end of the TTL period.
"ttl": "TTL",
},
})
anthropic_api_key = "API_KEY" # The secret to be stored.
payload_bytes = anthropic_api_key.encode("UTF-8")
# Optional. Calculate payload checksum.
crc32c = google_crc32c.Checksum()
crc32c.update(payload_bytes)
version = client.add_secret_version(request={
"parent": secret.name,
"payload": {
"data": payload_bytes,
"data_crc32c": int(crc32c.hexdigest(), 16), # Optional.
},
})
print(f"Added secret version: {version.name}")
Mendapatkan secret
Konsol
Buka halaman Secret Manager.
Di halaman Secret Manager, klik nama secret yang akan dideskripsikan.
Halaman Detail secret mencantumkan informasi tentang secret.
gcloud
Pertama, instal dan lakukan inisialisasi
gcloud
CLI. Kemudian, jalankan perintah berikut:
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID
di mana
VERSION_ID
adalah ID versi secret, danSECRET_ID
adalah ID rahasia atau ID yang sepenuhnya memenuhi syarat untuk rahasia.
Untuk mengetahui detailnya, buka dokumentasi Secret Manager, atau referensi CLI.
Python
Pertama, instal library klien dengan menjalankan
pip install google-cloud-secret-manager
Kemudian, autentikasi diri Anda, dan jalankan perintah berikut
from google.cloud import secretmanager
client = secretmanager.SecretManagerServiceClient()
name = client.secret_path("PROJECT_ID", "SECRET_ID")
response = client.get_secret(request={"name": name})
Mencantumkan rahasia
Konsol
Buka halaman Secret Manager.
Di tabel Secrets, klik kolom Filter.
Pilih properti filter dan nilai yang sesuai, misalnya
Location:asia-east1
.Tabel akan otomatis difilter berdasarkan nilai yang dimasukkan.
(Opsional) Untuk memfilter versi rahasia: pilih rahasia untuk mengakses versinya, lalu gunakan opsi Filter di tabel Versi.
gcloud
Pertama, instal dan lakukan inisialisasi
gcloud
CLI.
Untuk mencantumkan semua secret project, jalankan perintah berikut:
gcloud secrets list --filter="FILTER"
dengan FILTER
adalah string (misalnya name:asecret OR name:bsecret
)
atau ekspresi reguler (misalnya name ~ "secret_ab.*"
).
Untuk mencantumkan semua versi secret, jalankan perintah berikut:
gcloud secrets versions list SECRET_ID
dengan SECRET_ID
adalah ID rahasia atau ID yang sepenuhnya memenuhi syarat
untuk rahasia.
Untuk mengetahui detailnya, buka dokumentasi Secret Manager untuk memfilter secret dan mencantumkan versi secret, atau referensi CLI untuk mencantumkan secret dan versi secret.
Python
Pertama, instal library klien dengan menjalankan
pip install google-cloud-secret-manager
Kemudian, autentikasi diri Anda, dan jalankan perintah berikut
from google.cloud import secretmanager
client = secretmanager.SecretManagerServiceClient()
for secret in client.list_secrets(request={
"parent": "projects/PROJECT_ID",
"filter": "FILTER", # e.g. "labels.provider=anthropic"
}):
print(f"Found secret: {secret.name}")
Memperbarui secret
Konsol
Buka halaman Secret Manager.
Di halaman Secret Manager, klik kotak centang di samping nama secret.
Jika Panel Info ditutup, klik Tampilkan Panel Info untuk menampilkannya.
Di Panel Info, pilih tab Label.
Klik Tambahkan label, lalu masukkan kunci dan nilai untuk label.
Klik Simpan.
gcloud
Pertama, instal dan lakukan inisialisasi
gcloud
CLI. Kemudian, jalankan perintah berikut:
gcloud secrets update SECRET_ID --update-labels=KEY=VALUE
di mana
SECRET_ID
adalah ID rahasia atau ID yang sepenuhnya memenuhi syarat untuk rahasia,KEY
adalah kunci label, danVALUE
adalah nilai label yang sesuai.
Untuk mengetahui detailnya, buka dokumentasi Secret Manager atau referensi CLI.
Python
Pertama, instal library klien dengan menjalankan
pip install google-cloud-secret-manager
Kemudian, autentikasi diri Anda, dan jalankan perintah berikut
from google.cloud import secretmanager
client = secretmanager.SecretManagerServiceClient()
name = client.secret_path("PROJECT_ID", "SECRET_ID")
response = client.update_secret(request={
"secret": {
"name": name,
"labels": {"type": "api_key", "provider": "anthropic"}, # updated labels
},
"update_mask": {"paths": ["labels"]},
})
print(f"Updated secret: {response.name}")
Menghapus secret
Konsol
Buka halaman Secret Manager.
Di halaman Secret Manager, di kolom Tindakan untuk secret, klik Lihat lebih banyak.
Di menu, pilih Hapus.
Dalam dialog Hapus rahasia, masukkan nama rahasia.
Klik tombol Hapus rahasia.
gcloud
Pertama, instal dan lakukan inisialisasi
gcloud
CLI.
Untuk menghapus versi rahasia, jalankan perintah berikut:
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID
di mana
VERSION_ID
adalah nama resource versi secret, danSECRET_ID
adalah ID rahasia atau ID yang sepenuhnya memenuhi syarat untuk rahasia.
Untuk menghapus secret dan semua versinya, jalankan perintah berikut:
gcloud secrets delete SECRET_ID
dengan SECRET_ID
adalah ID rahasia atau ID yang sepenuhnya memenuhi syarat untuk rahasia
Untuk mengetahui detailnya, buka dokumentasi Secret Manager untuk menghapus secret dan menghancurkan versi secret, atau referensi CLI untuk menghapus secret dan menghancurkan versi secret.
Python
Pertama, instal library klien dengan menjalankan
pip install google-cloud-secret-manager
Kemudian, autentikasi diri Anda, dan jalankan perintah berikut
from google.cloud import secretmanager
client = secretmanager.SecretManagerServiceClient()
name = client.secret_path("PROJECT_ID", "SECRET_ID")
client.delete_secret(request={"name": name})
Kredensial dan klien OAuth
Client ID digunakan untuk mengidentifikasi satu agen ke server OAuth Google. Jika agen Anda berjalan di beberapa platform, setiap platform akan memerlukan client ID sendiri. Pada tingkat tinggi, untuk mengintegrasikan agen berbasis OAuth, Anda harus melakukan hal berikut:
Buat klien dan kredensial OAuth.
Simpan ID dan rahasia klien di Secret Manager. (Lihat Membuat secret).
Akses secret di agen Anda selama pengembangan.
Buat kredensial klien OAuth
Di konsol Google Cloud , buka halaman Google Auth Platform > Clients.
(Jika diperlukan) Jika layar menampilkan "Google Auth Platform not configured yet", klik Get Started dan isi Project Configurations. (Setelan ini dapat diperbarui nanti.) Untuk mengetahui detail tentang kesiapan produksi, buka Kepatuhan terhadap Kebijakan OAuth 2.0.
Klik Buat Klien.
Tetapkan Application type ke
Web application
.Tetapkan nama klien OAuth ke
OAUTH_CLIENT_DISPLAY_NAME
.Di bagian Authorized redirect URIs, tambahkan URI untuk
REDIRECT_URI
.Di bagian Client Secrets, klik tombol "download JSON". File
client_secret.json
yang berisi konten berikut akan didownload:
{'web': {
'client_id': "CLIENT_ID",
'client_secret': "CLIENT_SECRET",
'project_id': "PROJECT_ID",
'redirect_uris': [REDIRECT_URIs],
'auth_uri': 'https://accounts.google.com/o/oauth2/auth',
'token_uri': 'https://www.googleapis.com/oauth2/v3/token',
'auth_provider_x509_cert_url': 'https://www.googleapis.com/oauth2/v1/certs',
'javascript_origins': "JAVASCRIPT_ORIGINS", # Optional.
}}
- Simpan ID dan rahasia klien di Secret Manager, misalnya,
from google.cloud import secretmanager
import google_crc32c
import json
client = secretmanager.SecretManagerServiceClient()
secret = client.create_secret(request={
"parent": "projects/PROJECT_ID",
"secret_id": "OAUTH_SECRET_ID", # e.g. "oauth-client-demo"
"secret": {
"labels": {"type": "oauth_client"},
"replication": {"automatic": {}},
},
})
payload_bytes = json.dumps(cred).encode("UTF-8")
crc32c = google_crc32c.Checksum()
crc32c.update(payload_bytes)
client.add_secret_version(request={
"parent": secret.name,
"payload": {
"data": payload_bytes,
"data_crc32c": int(crc32c.hexdigest(), 16),
},
})
Mencantumkan klien OAuth
Di konsol Google Cloud , buka halaman Google Auth Platform > Clients.
Kredensial klien OAuth yang Anda miliki akan dicantumkan.
Menghapus klien OAuth
Di konsol Google Cloud , buka halaman Google Auth Platform > Clients.
Pilih kredensial klien OAuth yang akan dihapus, lalu klik hapus.