Kontrol akses Conversational Analytics API dengan IAM

Conversational Analytics API menggunakan Identity and Access Management (IAM) untuk kontrol akses, yang memungkinkan Anda membagikan agen data dan mengontrol siapa yang memiliki izin untuk membuat, mengelola, dan berinteraksi dengan agen data. Halaman ini menjelaskan peran IAM bawaan yang dapat Anda tetapkan ke akun utama (seperti pengguna, grup, dan akun layanan) untuk memberikan izin ini.

Sebelum memulai

Untuk mendapatkan izin yang Anda perlukan untuk menetapkan peran IAM Conversational Analytics API, minta administrator untuk memberi Anda peran IAM Project IAM Admin (roles/resourcemanager.projectIamAdmin) di project tempat Conversational Analytics API diaktifkan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Ringkasan peran IAM Conversational Analytics API

Peran IAM bawaan untuk Conversational Analytics API memberikan kontrol terperinci atas siapa yang dapat membuat, mengelola, dan berinteraksi dengan agen data. Bagian ini menjelaskan cara membagikan agen data dengan menetapkan peran IAM dan menjelaskan peran IAM yang diperlukan untuk tugas pengguna umum lainnya.

Cara kerja fitur berbagi agen

Anda dapat memberikan peran di tingkat project untuk memberikan izin bagi semua agen dalam project. Untuk mengontrol akses ke agen tertentu, pemilik agen (akun utama dengan peran Gemini Data Analytics Data Agent Owner) dapat mengubah kebijakan IAM agen tersebut secara terprogram.

Diagram berikut menunjukkan cara pemilik agen dapat mengelola akses ke agen tertentu:

Pemilik agen memberikan peran Editor Agen Data dan Pengguna Agen Data kepada pengguna lain.

Dalam skenario ini, Analis Data Senior dengan peran Gemini Data Analytics Data Agent Creator membuat agen. Saat pengguna membuat agen, mereka akan otomatis diberi peran Gemini Data Analytics Data Agent Owner untuk agen tersebut. Sebagai pemilik agen, Analis Data Senior mengelola akses ke agen dengan menetapkan kebijakan IAM-nya dan memberikan peran berikut kepada anggota tim:

  • Editor Agen Data Analitik Data Gemini: Pemilik agen memberikan peran ini kepada Analis Data Junior. Peran ini memungkinkan analis junior mengedit konfigurasi agen dan melakukan chat dengan agen.
  • Gemini Data Analytics Data Agent User: Pemilik agen memberikan peran ini kepada anggota tim yang tidak perlu dapat mengedit konfigurasi agen. Peran ini memungkinkan anggota tim tersebut melakukan chat dengan agen.

Peran yang diperlukan untuk tugas pengguna umum

Untuk membantu Anda memutuskan peran mana yang akan ditetapkan, pertimbangkan tugas pengguna umum berikut:

Membuat agen data baru
Tetapkan peran Gemini Data Analytics Data Agent Creator kepada pengguna yang bertanggung jawab untuk membuat agen data baru dalam project.
Membagikan agen
Tetapkan peran Gemini Data Analytics Data Agent Owner kepada pengguna yang perlu membagikan agen kepada akun utama lain dengan mengelola izin agen.
Mengelola izin agen
Tetapkan peran Gemini Data Analytics Data Agent Owner kepada pengguna yang perlu membagikan agen kepada pengguna lain dengan mengelola izin agen, atau yang memerlukan tingkat kontrol tertinggi atas agen, termasuk kemampuan untuk menghapus agen. Saat pengguna membuat agen, sistem akan otomatis memberikan peran ini kepada pengguna tersebut untuk agen tertentu.
Mengedit konfigurasi agen
Tetapkan peran Gemini Data Analytics Data Agent Editor kepada pengguna yang mengubah konfigurasi agen, seperti konteks atau pemetaan sumber datanya. Pengguna ini tidak memiliki izin untuk membagikan atau menghapus agen.
Melakukan chat dengan agen
Tetapkan peran Gemini Data Analytics Data Agent User kepada pengguna atau aplikasi yang terutama berinteraksi dengan agen dengan mengajukan pertanyaan dan menerima respons.
Melihat konfigurasi agen
Tetapkan peran Gemini Data Analytics Data Agent Viewer kepada pengguna yang memerlukan akses hanya baca untuk melihat konfigurasi agen.
Melakukan chat menggunakan konteks inline
Tetapkan peran Gemini Data Analytics Stateless Chat User kepada pengguna atau aplikasi yang berinteraksi dengan API dalam mode tanpa status, tempat pengguna memberikan semua konteks untuk percakapan dalam setiap permintaan.
Mengkueri data menggunakan bahasa alami
Tetapkan peran Gemini Data Analytics Query Data User kepada pengguna atau aplikasi yang perlu menggunakan bahasa alami untuk mengkueri data dan membuat aplikasi data. Peran ini hanya berlaku untuk Database Cloud, yaitu AlloyDB, GoogleSQL untuk Spanner, Cloud SQL, dan Cloud SQL untuk PostgreSQL.

Peran bawaan untuk Conversational Analytics API

Tabel berikut menjelaskan peran bawaan untuk Conversational Analytics API. Jika peran bawaan tidak memberikan kumpulan izin yang Anda inginkan, Anda juga dapat membuat peran khusus Anda sendiri.

Peran Izin

Gemini Data Analytics Data Agent Creator (roles/geminidataanalytics.dataAgentCreator)

Memberikan izin kepada akun utama untuk membuat resource agen data baru dalam project tertentu. Saat akun utama membuat agen, sistem akan otomatis memberikan peran dataAgentOwner kepada akun utama tersebut untuk agen tertentu.

geminidataanalytics.dataAgents.create

Gemini Data Analytics Data Agent Owner (roles/geminidataanalytics.dataAgentOwner)

Memberikan kontrol penuh kepada akun utama atas siklus proses agen apa pun dalam project, termasuk membagikan dan menghapus agen. Peran ini ditujukan untuk akun utama tepercaya yang dapat mengelola fitur berbagi agen. Peran ini mewarisi semua izin dari peran dataAgentEditor, dataAgentUser, dan dataAgentViewer.

Akun utama dengan peran ini dapat membagikan dan menghapus agen.

  • geminidataanalytics.dataAgents.list
  • geminidataanalytics.dataAgents.get
  • geminidataanalytics.dataAgents.chat
  • geminidataanalytics.dataAgents.update
  • geminidataanalytics.dataAgents.delete
  • geminidataanalytics.dataAgents.getIamPolicy
  • geminidataanalytics.dataAgents.setIamPolicy

Gemini Data Analytics Data Agent Editor (roles/geminidataanalytics.dataAgentEditor)

Memberikan izin untuk mengubah dan mengelola konfigurasi agen yang ada. Peran ini mewarisi semua izin dari peran dataAgentUser dan dataAgentViewer.

  • geminidataanalytics.dataAgents.list
  • geminidataanalytics.dataAgents.get
  • geminidataanalytics.dataAgents.chat
  • geminidataanalytics.dataAgents.update

Gemini Data Analytics Data Agent User (roles/geminidataanalytics.dataAgentUser)

Memberikan izin untuk melakukan chat dengan agen tertentu yang aksesnya telah diberikan kepada akun utama. Peran ini mewarisi semua izin dari peran dataAgentViewer.

  • geminidataanalytics.dataAgents.list
  • geminidataanalytics.dataAgents.get
  • geminidataanalytics.dataAgents.chat

Gemini Data Analytics Data Agent Viewer (roles/geminidataanalytics.dataAgentViewer)

Memberikan izin hanya baca kepada akun utama untuk mencantumkan dan melihat konfigurasi agen. Peran ini tidak mengizinkan chat dengan agen.

  • geminidataanalytics.dataAgents.list
  • geminidataanalytics.dataAgents.get

Gemini Data Analytics Stateless Chat User (roles/geminidataanalytics.dataAgentStatelessUser)

Memberikan izin kepada akun utama untuk memanggil Chat API dalam mode tanpa status. Dengan chat tanpa status, konteks diberikan langsung dalam permintaan, bukan disimpan secara eksplisit dalam konfigurasi agen selama pembuatan.

geminidataanalytics.chat

Gemini Data Analytics Query Data User (roles/geminidataanalytics.queryDataUser)

Memberikan izin kepada akun utama untuk menggunakan bahasa alami guna mengkueri data dan membuat aplikasi data menggunakan QueryData API. Peran ini hanya berlaku untuk Database Cloud, yaitu AlloyDB, GoogleSQL untuk Spanner, Cloud SQL, dan Cloud SQL untuk PostgreSQL.

geminidataanalytics.locations.queryData

Memberikan peran IAM

Anda dapat memberikan peran IAM Conversational Analytics API di tingkat project atau untuk agen tertentu. Memberikan peran di tingkat project akan memberikan izin yang sama kepada akun utama untuk semua agen dalam project tersebut, sedangkan menetapkan kebijakan pada agen tertentu akan memberikan kontrol yang lebih terperinci.

Peran IAM bawaan untuk Conversational Analytics API adalah bagian dari layanan geminidataanalytics. Nama teknis untuk peran ini mengikuti pola roles/geminidataanalytics.ROLE_NAME. Di Google Cloud konsol, Anda dapat menemukan peran ini dengan memfilter layanan Gemini Data Analytics.

Memberikan peran untuk semua agen dalam project

Gunakan Google Cloud konsol atau Google Cloud CLI untuk memberikan peran bagi seluruh project.

konsol

Untuk memberikan peran kepada akun utama di Google Cloud konsol, selesaikan langkah-langkah berikut:

  1. Di Google Cloud konsol, buka halaman IAM.

    Buka IAM

  2. Klik Grant access.

  3. Di kolom New principals, masukkan alamat email pengguna, grup, atau akun layanan.

  4. Dari menu Select a role, filter Gemini Data Analytics untuk melihat peran IAM yang tersedia untuk Conversational Analytics API.

  5. Pilih peran yang sesuai, seperti Gemini Data Analytics Data Agent User.

  6. Klik Save.

gcloud

Untuk memberikan peran menggunakan gcloud CLI, selesaikan langkah-langkah berikut:

  1. Login ke Google Cloud dan tetapkan project Anda:
gcloud auth login
gcloud config set project project_id
  1. Secara opsional, untuk mencantumkan peran IAM Conversational Analytics API yang dapat Anda berikan untuk project Anda, gunakan perintah gcloud iam list-grantable-roles sebagai berikut:
gcloud iam list-grantable-roles //cloudresourcemanager.googleapis.com/projects/project_id --filter "geminidataanalytics"
  1. Berikan peran kepada akun utama menggunakan perintah gcloud projects add-iam-policy-binding.
  • Untuk memberikan peran kepada pengguna, gunakan perintah berikut:
gcloud projects add-iam-policy-binding project_id --member='user:user_email' --role='roles/gda_grantable_role'
  • Untuk menetapkan peran ke akun layanan, gunakan perintah berikut:
gcloud projects add-iam-policy-binding project_id --member='serviceAccount:service_account_email' --role='roles/gda_grantable_role'

Dalam petunjuk sebelumnya, ganti nilai contoh sebagai berikut:

  • project_id: Project ID Anda Google Cloud .
  • user_email: Alamat email pengguna, seperti test-user@example.com.
  • service_account_email: Alamat email akun layanan, seperti test-sa@example.com.
  • gda_grantable_role: Peran IAM Conversational Analytics API tertentu yang ingin Anda berikan, seperti geminidataanalytics.dataAgentCreator.

Memberikan peran untuk agen tertentu

Untuk mengelola akses bagi agen data tertentu, Anda harus mengubah kebijakan izin agen tersebut secara terprogram. Proses ini mengikuti pola baca-ubah-tulis standar, tempat Anda membaca kebijakan saat ini, mengubahnya, lalu menulisnya kembali.

Contoh berikut menunjukkan isi permintaan untuk mendapatkan dan menetapkan kebijakan IAM untuk agen data.

HTTP

Untuk mendapatkan kebijakan yang ada untuk agen, kirim permintaan POST ke endpoint :getIamPolicy dengan isi permintaan berikut:

{
  "resource": "projects/project_id/locations/global/dataAgents/agent_id"
}

Untuk menetapkan kebijakan untuk agen, kirim permintaan POST ke endpoint :setIamPolicy dengan isi permintaan berikut:

{
  "policy": {
    "bindings": [
      {
        "role": "role",
        "members": [
          "user:email"
        ]
      }
    ]
  }
}

Ganti kode berikut:

  • project_id: Project ID Anda Google Cloud .
  • agent_id: ID agen data yang akan digunakan untuk mendapatkan atau menetapkan kebijakan.
  • role: Peran yang akan diberikan, seperti roles/geminidataanalytics.dataAgentUser.
  • email: Alamat email pengguna, seperti test-user@example.com.

Untuk contoh lengkap, lihat Mendapatkan kebijakan IAM untuk agen data dan Menetapkan kebijakan IAM untuk agen data.

Python SDK

Untuk mendapatkan kebijakan yang ada untuk agen, gunakan metode get_iam_policy, seperti dalam contoh permintaan berikut:

resource = "projects/project_id/locations/global/dataAgents/agent_id"
request = iam_policy_pb2.GetIamPolicyRequest(
            resource=resource,
        )

Untuk menetapkan kebijakan untuk agen, gunakan metode set_iam_policy, seperti dalam contoh permintaan berikut:

resource = "projects/project_id/locations/global/dataAgents/agent_id"
policy = policy_pb2.Policy(
    bindings=[
        policy_pb2.Binding(
            role="role",
            members=["user:email"]
        )
    ]
)
request = iam_policy_pb2.SetIamPolicyRequest(
    resource=resource,
    policy=policy
)

Ganti kode berikut:

  • project_id: Project ID Anda Google Cloud .
  • agent_id: ID agen data yang akan digunakan untuk mendapatkan atau menetapkan kebijakan.
  • role: Peran yang akan diberikan, seperti roles/geminidataanalytics.dataAgentUser.
  • email: Alamat email pengguna, seperti test-user@example.com.

Untuk contoh lengkap, lihat Mendapatkan kebijakan IAM untuk agen data dan Menetapkan kebijakan IAM untuk agen data.