Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Dengan IAM Conditions, Anda dapat menentukan dan menerapkan kontrol akses bersyarat untuk resource Google Cloud, termasuk resource API Hub. Untuk mengetahui informasi selengkapnya tentang IAM Conditions, lihat Ringkasan IAM Conditions.
Di API Hub, Anda dapat menerapkan akses kondisional berdasarkan atribut kondisi resource IAM berikut:
- Atribut kondisi resource.service:
Gunakan untuk mengonfigurasi akses bersyarat berdasarkan layanan Google Cloud yang digunakan.
Misalnya, Anda dapat menetapkan kondisi yang membatasi akses pengguna ke resource yang menggunakan
apihub.googleapis.com
. Untuk daftar nilai yang didukung, lihat Nilai layanan resource. - Atribut kondisi resource.type: Gunakan untuk mengonfigurasi akses bersyarat berdasarkan jenis resource yang diakses. Misalnya, Anda dapat menetapkan kondisi yang membatasi akses pengguna ke
apihub.googleapis.com/Api
. Untuk mengetahui daftar nilai yang didukung, lihat Nilai jenis resource. - Atribut kondisi resource.name: Gunakan untuk mengonfigurasi akses bersyarat berdasarkan semua atau sebagian nama resource. Untuk daftar format nama hub API yang didukung, lihat Format nama resource.
Menambahkan kondisi IAM
Untuk menambahkan kondisi IAM ke akun utama yang ada (pengguna, grup, atau akun layanan), lakukan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman IAM.
- Pilih project, folder, atau organisasi Anda.
- Dari daftar akun utama, temukan akun utama yang ingin Anda tambahkan kondisi IAM, lalu klik
Panel Edit akses akan muncul.
(Edit akun utama).
- Temukan peran yang ingin Anda tambahkan kondisi IAM, lalu klik + Tambahkan Kondisi IAM.
- Di panel Tambahkan kondisi, berikan informasi berikut:
- Judul: Masukkan nama untuk kondisi yang Anda tambahkan ke peran.
- Deskripsi: (Opsional) Masukkan deskripsi untuk kondisi.
- Anda dapat menambahkan kondisi menggunakan Pembuat kondisi atau Editor kondisi.
Pembuat kondisi menyediakan antarmuka interaktif untuk memilih jenis kondisi, operator, dan detail lain yang berlaku terkait ekspresi yang Anda inginkan. Editor kondisi menyediakan antarmuka berbasis teks untuk memasukkan ekspresi kondisi secara manual menggunakan sintaksis CEL.
Untuk petunjuk mendetail tentang cara menggunakan Pembuat kondisi atau Editor kondisi, lihat Mengonfigurasi akses berbasis resource.
- Klik Simpan untuk menerapkan kondisi.
- Klik Simpan lagi dari panel Edit akses untuk memperbarui akun utama.
Contoh penggunaan kondisi IAM untuk API hub
Contoh 1: Kontrol akses untuk semua resource API yang dimulai dengan kondisi IAM berdasarkan nama resource.
Ekspresi kondisi berikut menentukan kontrol akses sebagai berikut:
- Akses ke resource API yang diawali dengan awalan. Hal ini mencakup akses ke semua resource API, termasuk versi API, deployment, spesifikasi, operasi, dan definisi.
- Akses non-kondisional berbasis peran default ke resource hub API lainnya.
( resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API_ID_PREFIX") || ( resource.type != "apihub.googleapis.com/Api" && resource.type != "apihub.googleapis.com/Version" && resource.type != "apihub.googleapis.com/Spec" && resource.type != "apihub.googleapis.com/ApiOperation" && resource.type != "apihub.googleapis.com/Definition" ) )
Ganti kode berikut:
PROJECT_ID
: ID Google Cloud project Anda.LOCATION
: Lokasi API hub.API_ID_PREFIX
: Awalan untuk nama resource API.
Contoh 2: Kontrol akses untuk beberapa API dengan kondisi IAM berdasarkan jenis resource.
Ekspresi kondisi berikut menentukan kontrol akses sebagai berikut:
- Akses ke resource API hub API yang dimulai dengan awalan.
- Akses ke resource versi API hub yang dimulai dengan ID versi yang ditentukan.
- Akses ke resource spesifikasi hub API yang dimulai dengan ID spesifikasi yang ditentukan.
- Akses non-kondisional berbasis peran default ke resource hub API lainnya.
( resource.service == "apihub.googleapis.com" && resource.type == "apihub.googleapis.com/Api" && resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API1_ID_PREFIX") ) || ( resource.service == "apihub.googleapis.com" && resource.type == "apihub.googleapis.com/Version" && resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API2_ID/versions/API2_VERSION_ID" ) || ( resource.service == "apihub.googleapis.com" && resource.type == "apihub.googleapis.com/Spec" && resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API3_ID/versions/API3_VERSION_ID/specs/API3_SPEC_ID" ) || ( resource.type != "apihub.googleapis.com/Api" && resource.type != "apihub.googleapis.com/Version" && resource.type != "apihub.googleapis.com/Spec" && resource.type != "apihub.googleapis.com/ApiOperation" && resource.type != "apihub.googleapis.com/Definition" )
PROJECT_ID
: ID Google Cloud project Anda.LOCATION
: Lokasi API hub.API1_ID_PREFIX
: Awalan untuk nama resource API pertama.API2_ID
: ID resource API kedua.API2_VERSION_ID
: ID resource versi API kedua.API3_ID
: ID resource API ketiga.API3_VERSION_ID
: ID resource versi API ketiga.API3_SPEC_ID
: ID resource spesifikasi API ketiga.