Membuat dan mengelola Ruang Apigee

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Lihat dokumentasi Apigee Edge.

Halaman ini menjelaskan cara membuat Ruang Apigee di organisasi Apigee Anda untuk mengelola kebijakan Identity and Access Management (IAM) untuk resource API Apigee dalam skala besar.

Panduan ini menguraikan langkah-langkah yang diperlukan untuk:

Untuk mengetahui manfaat penggunaan Ruang Apigee guna mengelola resource API Anda, lihat Ruang Apigee.

Sebelum memulai

Sebelum mulai menggunakan Ruang:

  • Sediakan Apigee. Konfirmasi bahwa organisasi Berlangganan Apigee atau Bayar sesuai penggunaan yang ingin Anda gunakan telah disediakan. Untuk mengetahui informasi selengkapnya tentang langkah-langkah yang diperlukan untuk menyediakan Apigee, lihat Pengantar penyediaan.
  • Dapatkan kredensial autentikasi Anda. Sebelum menjalankan perintah untuk membuat dan mengelola Ruang di command line, dapatkan kredensial autentikasi gcloud Anda menggunakan perintah berikut:
    export TOKEN=$(gcloud auth print-access-token)

Peran dan izin yang diperlukan

Make sure that you have the following role or roles on the project: Apigee > Apigee Organization Admin

Check for the roles

  1. In the Google Cloud console, go to the IAM page.

    Go to IAM
  2. Select the project.
  3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

  4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

Grant the roles

  1. In the Google Cloud console, go to the IAM page.

    Buka IAM
  2. Pilih project.
  3. Klik Berikan akses.
  4. Di kolom Akun utama baru, masukkan ID pengguna Anda. Biasanya berupa alamat email untuk Akun Google.

  5. Di daftar Pilih peran, pilih peran.
  6. Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
  7. Klik Simpan.
  8. Membuat Ruang

    Untuk melakukan tugas ini, Anda memerlukan izin apigee.spaces.create. Izin ini disertakan dalam peran Apigee Organization Admin.

    Untuk membuat Ruang di organisasi Apigee Anda, gunakan perintah berikut:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces" \
        --data-raw '{
           "name":"SPACE_NAME",
           "displayName":"DISPLAY_NAME",
        }'

    Dengan:

    • ORG_NAME adalah nama organisasi Apigee Anda.
    • SPACE_NAME adalah nama dan ID Ruang.
    • DISPLAY_NAME adalah nama Ruang seperti yang akan muncul di UI Apigee di Konsol Cloud. Jika tidak ada nama tampilan yang diberikan, nama Ruang akan digunakan sebagai nama tampilan.

    Misalnya, perintah berikut membuat Ruang bernama red di organisasi acme:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
        https://apigee.googleapis.com/v1/organizations/acme/spaces \
        --data-raw '{
           "name":"red",
           "displayName":"Red",
        }'

    Setelah Anda membuat Ruang di organisasi, anggota organisasi yang menggunakan UI Apigee di konsol Cloud akan melihat Ruang sebagai parameter yang tersedia saat membuat resource API di UI. Selain itu, saat melihat daftar proxy API, produk API, dan alur bersama di UI, Ruang akan muncul sebagai atribut untuk resource API yang ditetapkan ke Ruang tersebut.

    Ruang.

    Mengelola anggota dan peran dalam Ruang

    Setelah membuat Ruang, Anda dapat menambahkan anggota tim ke Ruang dan menetapkan peran IAM yang diperlukan untuk membuat dan mengelola resource API di Ruang. Pengguna Apigee hanya dapat membuat dan mengelola resource di Ruang tempat mereka menjadi anggota tim yang diberi izin yang sesuai. Karena kontrol akses IAM diberikan di tingkat Ruang, anggota organisasi tidak dapat mengakses atau mengelola resource Apigee API milik Ruang kecuali jika mereka secara khusus ditambahkan ke Ruang. Untuk mengetahui ringkasan peran dan izin IAM yang diperlukan untuk mengelola resource Ruang, lihat Membuat dan mengelola resource Ruang.

    Menambahkan anggota organisasi ke Ruang

    Saat anggota organisasi ditambahkan ke Ruang, binding kebijakan IAM dibuat untuk ruang yang mengambil dua argumen:

    • Daftar anggota Ruang
    • Peran atau daftar peran yang diberikan kepada anggota

    Untuk melakukan tugas ini, Anda memerlukan izin apigee.spaces.setIamPolicy. Izin ini disertakan dalam peran Apigee Organization Admin.

    Untuk menambahkan anggota organisasi ke Ruang dan menetapkan peran IAM, gunakan perintah berikut:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \
          '{
            "policy":{
              "bindings":[
                {
                  "members": ["user:USER_EMAIL"],
                  "role": "roles/IAM_ROLE"
                }
              ]
            }
          }'

    Dengan:

    • ORG_NAME adalah nama organisasi Apigee.
    • SPACE_NAME adalah nama Ruang.
    • USER_EMAIL adalah alamat email pengguna yang Anda tambahkan ke Ruang.
    • IAM_ROLE adalah nama peran IAM yang Anda tetapkan kepada pengguna sebagai anggota Ruang.

    Misalnya, perintah ini menambahkan pengguna my-email@acme.com ke Ruang red di organisasi acme, dan memberikan peran IAM apigee.spaceContentEditor:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \
          '{
            "policy":{
              "bindings":[
                {
                  "members": ["user:my-email@acme.com"],
                  "role": "roles/apigee.spaceContentEditor"
                }
              ]
            }
          }'

    Peran dan izin tambahan dapat ditambahkan untuk anggota Ruang dengan memperbarui kebijakan IAM untuk Ruang. Untuk memperbarui kebijakan IAM untuk Ruang, gunakan metode setIamPolicy yang dijelaskan di bagian ini, menggunakan daftar peran dan izin yang diinginkan yang telah direvisi. Tindakan ini akan membuat kebijakan IAM baru untuk ruang, dengan peran dan izin yang disesuaikan sebagaimana mestinya.

    Menambahkan tim anggota ke Ruang

    Atau, Anda dapat menambahkan tim anggota ke Ruang dan menetapkan peran IAM. Untuk menambahkan tim anggota ke Ruang dan menetapkan peran IAM, gunakan perintah berikut:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
       "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \
         '{
           "policy":{
             "bindings":[
               {
                 "members": ["group:GROUP_EMAIL"],
                 "role": "roles/IAM_ROLE"
               }
             ]
           }
         }'

    Dengan:

    • ORG_NAME adalah nama organisasi Apigee.
    • SPACE_NAME adalah nama Ruang.
    • GROUP_EMAIL adalah alamat email grup yang Anda tambahkan ke Ruang.
    • IAM_ROLE adalah nama peran IAM yang Anda tetapkan ke tim sebagai anggota Ruang.

    Misalnya, perintah ini menambahkan grup acme-team@acme.com ke Ruang red di organisasi acme dan memberikan peran apigee.spaceContentEditor kepada grup:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
       "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \
         '{
           "policy":{
             "bindings":[
               {
                 "members": ["group:red-team@acme.com"],
                 "role": "roles/apigee.spaceContentEditor"
               }
             ]
           }
         }'

    Seperti yang disebutkan dalam Menambahkan anggota organisasi ke Ruang, peran IAM apigee.spaceContentEditor berisi banyak izin yang diperlukan untuk mengelola resource Ruang. Namun, Anda mungkin perlu memberikan peran tambahan kepada pengguna untuk melakukan tugas tertentu.

    Memverifikasi penetapan kebijakan IAM Spaces

    Untuk melakukan tugas ini, Anda memerlukan izin apigee.spaces.getIamPolicy. Izin ini disertakan dalam peran Apigee Organization Admin.

    Untuk memverifikasi bahwa kebijakan IAM ditetapkan dengan benar untuk ruang, gunakan perintah berikut:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:getIamPolicy"

    Dengan:

    • ORG_NAME adalah nama organisasi Apigee.
    • SPACE_NAME adalah nama Ruang.

    Misalnya, perintah berikut digunakan untuk mengonfirmasi bahwa kebijakan IAM telah ditetapkan dengan benar untuk Ruang merah di organisasi acme:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:getIamPolicy"

    Output perintah menampilkan kebijakan IAM saat ini untuk ruang, dan akan terlihat seperti ini:

    {
      "version": "0",
      "bindings": [
        {
          "role": "roles/apigee.spaceContentEditor",
          "members": [
            "group:red-team@acme.com"
          ]
        }
      ]
    }

    Dalam contoh ini, kebijakan IAM untuk ruang memberikan peran apigee.spaceContentEditor kepada anggota ruang, dalam hal ini, anggota grup red-team@acme.com

    Perhatikan bahwa anggota tim merah adalah satu-satunya anggota organisasi yang diberi akses ke Ruang merah. Artinya, hanya anggota tim merah yang dapat membuat dan mengelola resource API di ruang merah. Jika anggota tim organisasi lain, seperti team-blue@acme.com mencoba mengakses proxy API yang dibuat di Ruang merah, mereka akan melihat error berikut:

    {
      "error": {
        "code": 403,
        "message": "Permission denied on resource \"organizations\/acme\/apis\/proxy-1\" (or it may not exist).",
        "status": "PERMISSION_DENIED"
      }
    }

    Menghapus anggota dari Ruang

    Untuk menghapus anggota, atau sekelompok anggota, dari Ruang, Anda harus menetapkan kebijakan IAM baru untuk ruang, dengan daftar anggota atau grup yang direvisi. Menggunakan metode setIamPolicy akan membuat kebijakan IAM baru untuk ruang, dengan peran dan anggota yang disesuaikan sebagaimana mestinya.

    Misalnya, untuk memperbarui anggota Ruang tim biru, Anda dapat memeriksa kebijakan IAM saat ini terlebih dahulu menggunakan perintah berikut:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:getIamPolicy"

    Output perintah menampilkan kebijakan IAM saat ini untuk ruang, dan akan terlihat seperti ini:

    {
      "version": "0",
      "bindings": [
        {
          "role": "roles/apigee.spaceContentEditor",
          "members": [
            "group: blue-team@acme.com",
            "users: user-a@acme.com, user-b@acme.com, user-c@acme.com"
          ]
        }
      ]
    }

    Untuk menghapus user-b@acme.com dari Ruang, gunakan perintah berikut:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
      "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:setIamPolicy" -d \
        '{
          "policy":{
            "bindings":[
              {
                "members": [
                  "group:blue-team@acme.com",
                  "users: user-a@acme.com, user-c@acme.com"
                ]
                "role": "roles/apigee.spaceContentEditor"
              }
            ]
          }
        }'

    Kebijakan IAM baru untuk Ruang tidak akan lagi menyertakan user-b@acme.com.

    Untuk menghapus anggota dari grup yang disertakan dalam Ruang, hapus anggota dari grup terlebih dahulu, lalu jalankan kembali perintah setIamPolicy untuk memperbarui kebijakan IAM untuk Ruang dengan keanggotaan yang benar untuk alias email grup.

    Mencantumkan semua Ruang di organisasi

    Untuk melakukan tugas ini, Anda memerlukan izin apigee.spaces.list. Izin ini disertakan dalam peran Apigee Organization Admin.

    Untuk mencantumkan semua Ruang di organisasi Apigee, gunakan perintah berikut:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces"

    Dengan ORG_NAME adalah nama organisasi Apigee.

    Misalnya, perintah berikut mencantumkan semua Ruang di organisasi acme:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces"

    Perintah ini akan menampilkan sesuatu seperti berikut:

      {
        "spaces": [
            {
                "name": "red",
                "createTime": "2024-08-02T23:26:03.001512Z",
                "updateTime": "2024-08-02T23:26:03.001512Z"
            },
            {
                "name": "blue",
                "createTime": "2024-08-02T00:34:54.159331Z",
                "updateTime": "2024-08-02T00:34:54.159331Z"
          }
          ]
      }

    Mendapatkan detail Ruang

    Untuk melakukan tugas ini, Anda memerlukan izin apigee.spaces.get. Izin ini disertakan dalam peran Apigee Organization Admin.

    Gunakan perintah berikut untuk mendapatkan detail Ruang:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"

    Dengan:

    • ORG_NAME adalah nama organisasi Apigee.
    • SPACE_NAME adalah nama Ruang.

    Misalnya, perintah berikut mendapatkan detail tentang Ruang red di organisasi acme:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"

    Perintah ini akan menampilkan sesuatu seperti berikut:

      {
          "name": "red",
          "createTime": "2024-08-02T23:26:03.001512Z",
          "updateTime": "2024-08-02T23:26:03.001512Z"
      }

    Memperbarui Ruang

    Untuk melakukan tugas ini, Anda memerlukan izin apigee.spaces.update. Izin ini disertakan dalam peran Apigee Organization Admin.

    Untuk mengupdate Ruang di organisasi Apigee Anda, gunakan perintah berikut:

    curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME" \
          --data-raw '{
            "displayName":"DISPLAY_NAME"
          }'

    Dengan:

    • ORG_NAME adalah nama organisasi Apigee.
    • SPACE_NAME adalah nama dan ID Ruang.
    • DISPLAY_NAME adalah nama tampilan baru untuk Ruang.

    Misalnya, perintah berikut memperbarui nama tampilan Ruang merah di organisasi acme:

    curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces/red" -d \
        '{
          "displayName": "Red team space"
        }'

    Menghapus Ruang

    Untuk melakukan tugas ini, Anda memerlukan izin apigee.spaces.delete. Izin ini disertakan dalam peran Apigee Organization Admin. Sebelum menghapus Ruang, pastikan semua resource di Ruang tersebut juga telah dihapus.

    Untuk menghapus Ruang di organisasi Apigee Anda, gunakan perintah berikut:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"

    Misalnya, perintah berikut menghapus Ruang red di organisasi acme:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"

    Jika Anda mencoba menghapus Ruang dengan resource aktif yang masih terkait dengannya, Anda akan melihat error berikut:

    {
      "error": {
        "code": 400,
        "message": "Space \"red\" has resources associated with it. Please delete the resources before deleting the space.",
        "status": "FAILED_PRECONDITION"
      }
    }

    Untuk mengatasi error, hapus atau pindahkan resource di Ruang sebelum mencoba menghapus Ruang.

    Langkah berikutnya