Mengonfigurasi kontrol akses untuk aplikasi

Halaman ini menjelaskan cara admin Gemini Enterprise dapat menggunakan API untuk mengelola kontrol akses terperinci untuk setiap aplikasi Gemini Enterprise.

Jika Anda perlu mengonfigurasi kontrol akses terperinci tingkat resource di seluruh aplikasi dan penyimpanan data, lihat Mengonfigurasi kontrol akses terperinci untuk aplikasi dan penyimpanan data.

Secara default, izin IAM sering dikelola di tingkat project. IAM tingkat aplikasi memungkinkan kontrol yang lebih terperinci, sehingga admin dapat:

  • Membatasi akses pengguna ke aplikasi tertentu dalam project yang sama Google Cloud .
  • Menyelaraskan izin dengan kebutuhan organisasi dan data silo untuk deployment Gemini Enterprise Anda.

Misalnya, pertimbangkan organisasi dengan aplikasi SDM dan aplikasi seluruh perusahaan. Anggota tim SDM dengan izin tingkat project dapat mengakses kedua aplikasi tersebut. Sebaliknya, dengan menggunakan kebijakan IAM tingkat aplikasi, Anda dapat memberikan akses kepada anggota tim penjualan hanya ke aplikasi seluruh perusahaan, sehingga mencegah mereka mengakses aplikasi SDM.

Diagram contoh kebijakan IAM level aplikasi.

Sebelum memulai

  • Pastikan Anda memiliki peran Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin).

  • Pastikan semua pengguna Gemini Enterprise memiliki lisensi yang valid dan diberi peran Gemini Enterprise Restricted User (roles/discoveryengine.agentspaceRestrictedUser) di tingkat project. Untuk mengetahui petunjuknya, lihat Memberikan izin kepada pengguna.

    Peran ini tidak memberikan akses ke aplikasi apa pun. Peran ini memberikan akses tingkat project yang dibutuhkan pengguna, lalu Anda memberikan akses ke setiap aplikasi. Jika Anda menggunakan peran tingkat project kustom, bukan peran roles/discoveryengine.agentspaceRestrictedUser yang telah ditentukan, pastikan peran kustom Anda menyertakan izin discoveryengine.locations.buildAuthorizationUrl, discoveryengine.dataStores.get, discoveryengine.collections.get, dan discoveryengine.devToolsConfigs.get. Menghilangkan discoveryengine.devToolsConfigs.get akan menyebabkan error 403 PERMISSION_DENIED di Cloud Audit Logs saat aplikasi web memeriksa devToolsConfig.

Transisi dari akses level project ke tingkat aplikasi

Untuk membatasi pengguna ke aplikasi tertentu, Anda harus mengganti peran Gemini Enterprise User tingkat project mereka dengan peran Gemini Enterprise Restricted User, lalu memberikan peran Gemini Enterprise User di tingkat aplikasi.

Untuk melakukan transisi pengguna dari akses tingkat project ke akses tingkat aplikasi, ikuti langkah-langkah berikut. Anda menggunakan Google Cloud konsol untuk perubahan tingkat project, dan API untuk pemberian tingkat aplikasi, yang tidak didukung oleh Google Cloud konsol.

  1. Di Google Cloud konsol, buka halaman IAM.
  2. Temukan pengguna dan hapus peran Gemini Enterprise User (roles/discoveryengine.agentspaceUser) dari izin tingkat project mereka.
  3. Jika belum, berikan peran Gemini Enterprise Restricted User (roles/discoveryengine.agentspaceRestrictedUser) kepada pengguna di tingkat project.
  4. Gunakan metode setIamPolicy untuk memberikan peran Gemini Enterprise User (roles/discoveryengine.agentspaceUser) kepada pengguna untuk setiap aplikasi tertentu yang perlu mereka akses. Untuk mengetahui informasi selengkapnya, lihat Mengelola kebijakan IAM untuk aplikasi.

Mengelola kebijakan IAM untuk aplikasi

Untuk mengelola akses ke aplikasi Gemini Enterprise, Anda dapat menggunakan metode API getIamPolicy dan setIamPolicy.

Langkah-langkah berikut menunjukkan cara mengambil kebijakan saat ini, lalu memperbaruinya untuk memberikan atau mencabut akses pengguna.

Mendapatkan kebijakan IAM aplikasi

Dapatkan kebijakan IAM aplikasi saat ini menggunakan getIamPolicy metode. Sebaiknya ambil kebijakan yang ada terlebih dahulu untuk menghindari penimpaan izin saat ini.

REST

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:getIamPolicy"

Ganti kode berikut:

  • PROJECT_ID: ID project Anda.
  • ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tentukan salah satu nilai berikut:
    • us untuk multi-region AS
    • eu untuk multi-region Uni Eropa
    • global untuk lokasi Global
    Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
  • LOCATION: multi-region penyimpanan data Anda: global, us, atau eu
  • APP_ID: ID aplikasi yang ingin Anda konfigurasi.

Memperbarui kebijakan IAM aplikasi

Untuk memberikan atau mencabut akses pengguna ke aplikasi, perbarui kebijakan IAM aplikasi menggunakan setIamPolicy metode.

Kebijakan IAM menggunakan peran Gemini Enterprise User (roles/discoveryengine.agentspaceUser) untuk memberikan akses langsung kepada pengguna ke aplikasi.

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
      "policy": {
         "etag": "ETAG",
         "bindings": [
          {
            "role": "roles/discoveryengine.agentspaceUser",
            "members": [
              "user:USER_EMAIL",
              "group:GROUP_EMAIL",
              "principal://iam.googleapis.com/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID",
              "principalSet://iam.googleapis.com/locations/global/workloadIdentityPools/POOL_ID/attribute.NAME/VALUE"
            ]
          }
        ]
      }
    }' \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:setIamPolicy"

Ganti kode berikut:

  • ETAG: nilai etag yang Anda dapatkan sebagai respons saat menggunakan metode getIamPolicy.

  • USER_EMAIL, GROUP_EMAIL: satu atau beberapa alamat email pengguna atau grup. Selain user dan group, principal dan principalSet adalah jenis anggota yang valid untuk Workload Identity Federation.

    • Untuk memberikan akses, tambahkan akun utama ke array members. Misalnya, "user:cloudysanfrancisco@gmail.com" atau "group:mcymbalgroup@google.com".

    • Untuk mencabut akses, hapus akun utama dari array members.

  • POOL_ID: ID workload identity pool Anda.

  • SUBJECT_ID: ID subjek untuk identitas tertentu.

  • NAME: Nama atribut.

  • VALUE: Nilai atribut.

  • PROJECT_ID: ID project Anda.

  • ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tentukan salah satu nilai berikut:

    • us untuk multi-region AS
    • eu untuk multi-region Uni Eropa
    • global untuk lokasi Global
    Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.

  • LOCATION: multi-region penyimpanan data Anda: global, us, atau eu.

  • APP_ID: ID aplikasi yang ingin Anda konfigurasi.

Apa langkah selanjutnya?

Jika ingin menghapus aplikasi dengan kebijakan IAM, Anda dapat menghapus pengguna dari kebijakan sebelum menghapus aplikasi. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik untuk menghapus aplikasi dengan kebijakan IAM.