全部产品
Search
文档中心

API Gateway:Gunakan RAM untuk mengelola izin pada sumber daya API

更新时间:Jun 28, 2025

Anda dapat menggunakan Alibaba Cloud Resource Access Management (RAM) untuk memberikan izin berbeda kepada karyawan di perusahaan Anda terkait sumber daya API. Sebagai penyedia API, Anda dapat membuat pengguna RAM dan memberikan izin spesifik kepada karyawan yang berbeda.

Catatan

Jika bisnis Anda tidak memerlukan pengelolaan izin untuk API, lewati topik ini.

  • Pengguna RAM dapat mengelola sumber daya di API Gateway. Misalnya, pengguna RAM dapat melihat, membuat, atau menghapus grup API, API, atau plugin. Namun, pengguna RAM tidak memiliki kepemilikan atas sumber daya tersebut. Anda dapat menggunakan akun Alibaba Cloud untuk mencabut izin sumber daya dari pengguna RAM kapan saja.

  • Anda dapat menggunakan otorisasi berbasis tag untuk mengisolasi sumber daya antara akun Alibaba Cloud dan pengguna RAM.

  • Sebelum menggunakan RAM untuk mengelola izin pada sumber daya API, pastikan Anda sudah familiar dengan RAM dan API Gateway. Pusat Bantuan Alibaba Cloud menyediakan dokumentasi tentang RAM dan API Gateway untuk membantu Anda memahami layanan-layanan tersebut.

Bab 1: Ikhtisar Kebijakan

Kebijakan mendefinisikan detail izin dan mencakup elemen dasar berikut: Effect, Resource, Action, dan Condition.

1. Kebijakan sistem

API Gateway menyediakan kebijakan sistem bawaan berikut: AliyunApiGatewayFullAccess dan AliyunApiGatewayReadOnlyAccess. Anda dapat masuk ke Konsol RAM untuk melihat kebijakan-kebijakan ini di halaman Kebijakan. image

  • AliyunApiGatewayFullAccess: Memberi otorisasi kepada pengguna RAM untuk mengelola semua sumber daya API Gateway dalam akun Alibaba Cloud terkait, seperti grup API, API, kebijakan throttling, dan aplikasi.

  • AliyunApiGatewayReadOnlyAccess: Mengizinkan pengguna RAM untuk melihat semua sumber daya API Gateway dalam akun Alibaba Cloud terkait, seperti grup API, API, kebijakan throttling, dan aplikasi. Namun, pengguna RAM tidak dapat mengelola sumber daya tersebut.

2. Kebijakan kustom

Anda dapat membuat kebijakan kustom untuk memberikan izin lebih rinci, seperti izin untuk tindakan tertentu atau pada sumber daya tertentu. Misalnya, Anda dapat membuat kebijakan kustom untuk memberikan izin edit pada GetUsers. Untuk melihat kebijakan kustom yang Anda buat, ikuti langkah-langkah berikut: Masuk ke Konsol RAM. Di panel navigasi sebelah kiri, pilih Izin > Kebijakan. Di halaman yang muncul, pilih Custom Policy dari daftar drop-down Policy Type dan temukan kebijakan tersebut.

Bab 2: Sintaks Kebijakan

Kebijakan mendefinisikan serangkaian izin berdasarkan sintaks tertentu. Anda dapat menempelkan kebijakan pada pengguna atau kelompok pengguna untuk memberi mereka izin tertentu pada sumber daya tertentu.

Contoh:

{
  "Version": "1",
  "Statement": [
    {
  "Action": "apigateway:Describe*",
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}
                

Contoh di atas menunjukkan kebijakan yang mengizinkan pengguna RAM untuk menanyakan semua sumber daya di API Gateway.

The Action element describes one or more API operations. The parameters in the Action element must be specified in the following format:

 "Action":"<service-name>:<action-name>"

Parameter:

  • service-name: Nama layanan Alibaba Cloud. Dalam contoh ini, apigateway ditentukan.

  • action-name: Nama operasi API. Anda dapat menggunakan karakter wildcard (*) untuk nama tersebut. Untuk informasi lebih lanjut tentang operasi API yang disediakan oleh API Gateway, lihat tabel di "Bab 3" dari topik ini.

    Jika Anda menetapkan "Action" ke "apigateway:Describe*", pengguna RAM yang diberi otorisasi memiliki izin untuk menanyakan semua sumber daya di API Gateway.

    Jika Anda menetapkan "Action" ke "apigateway:*", pengguna RAM yang diberi otorisasi memiliki izin untuk mengelola semua sumber daya di API Gateway.

Bab 3: Sintaks Sumber Daya

Elemen Resource menentukan satu atau beberapa objek yang dicakup oleh pernyataan. Di API Gateway, Anda dapat menentukan grup API, kebijakan throttling, dan aplikasi dalam elemen Resource. Parameter dalam elemen Resource harus ditentukan dalam format berikut:

acs:<service-name>:<region>:<account-id>:<relative-id>

Parameter:

  • acs: Menunjukkan bahwa ruang lingkup bisnis layanan termasuk dalam cloud publik Alibaba Cloud.

  • service-name: Nama layanan Alibaba Cloud. Dalam contoh ini, apigateway ditentukan.

  • region: Wilayah tempat kebijakan berlaku. Anda dapat menetapkan parameter ini ke karakter wildcard (*), yang menunjukkan bahwa kebijakan berlaku di semua wilayah.

  • account-id: ID akun, seperti 123456789012****. Anda dapat menetapkan parameter ini ke karakter wildcard (*).

  • relative-id: Deskripsi sumber daya yang ingin Anda berikan izin kepada pengguna RAM. Anda dapat menentukan parameter ini dalam format yang mirip dengan jalur file.

RDPath berada dalam salah satu format berikut:

acs:apigateway:$regionid:$accountid:apigroup/$groupId

Contoh:

acs:apigateway:*:*:apigroup/cbd157704e624ab58a204fd3e0b5ad79

Tabel berikut menjelaskan operasi API yang dapat Anda tentukan untuk parameter action-name saat membuat kebijakan untuk mengelola izin pada sumber daya di API Gateway. Untuk informasi lebih lanjut, lihat "Referensi API API Gateway".

action-name

Description

Resource

CreateApiGroup

Membuat grup API.

acs:apigateway:$regionid:$accountid:apigroup/*

ModifyApiGroup

Memodifikasi grup API.

acs:apigateway:$regionid:$accountid:apigroup/$groupId

DeleteApiGroup

Menghapus grup API.

acs:apigateway:$regionid:$accountid:apigroup/$groupId

DescribeApiGroups

Menanyakan grup API.

acs:apigateway:$regionid:$accountid:apigroup/*

CreateApi

Membuat API.

acs:apigateway:$regionid:$accountid:apigroup/$groupId

DeployApi

Menerbitkan API.

acs:apigateway:$regionid:$accountid:apigroup/$groupId

AbolishApi

Menghapus penerbitan API.

acs:apigateway:$regionid:$accountid:apigroup/$groupId

DeleteApi

Menghapus API.

acs:apigateway:$regionid:$accountid:apigroup/$groupId

DescribeApis

Menanyakan API.

acs:apigateway:$regionid:$accountid:apigroup/*

CreatePlugin

Membuat plugin.

acs:apigateway:$regionid:$accountid:plugin/*

ModifyPlugin

Memodifikasi plugin.

acs:apigateway:$regionid:$accountid:plugin/$pluginId

DeletePlugin

Menghapus plugin.

acs:apigateway:$regionid:$accountid:plugin/$pluginId

AttachPlugin

Mengikat plugin ke API.

acs:apigateway:$regionid:$accountid:plugin/$pluginId

DetachPlugin

Melepaskan plugin dari API.

acs:apigateway:$regionid:$accountid:plugin/$pluginId

DescribePluginsByApi

Menanyakan plugin yang terikat pada API.

acs:apigateway:$regionid:$accountid:plugin/$pluginId

CreateApp

Membuat aplikasi.

acs:apigateway:$regionid:$accountid:app/*

ModifyApp

Memodifikasi aplikasi.

acs:apigateway:$regionid:$accountid:app/$appId

DeleteApp

Menghapus aplikasi.

acs:apigateway:$regionid:$accountid:app/$appId

DescribeAppAttributes

Menanyakan aplikasi.

acs:apigateway:$regionid:$accountid:app/$appId

SetApisAuthorities

Mengotorisasi aplikasi untuk memanggil API.

acs:apigateway:$regionid:$accountid:apigroup/$groupId

DescribeAuthorizedApps

Menanyakan aplikasi yang diberi otorisasi untuk memanggil API.

acs:apigateway:$regionid:$accountid:apigroup/$groupId

SetVpcAccess

Membuat otorisasi akses virtual private cloud (VPC).

acs:apigateway:$regionid:$accountid:vpcaccess/*

RemoveVpcAccess

Menghapus otorisasi akses VPC.

acs:apigateway:$regionid:$accountid:vpcaccess/*

DescribeVpcAccesses

Menanyakan otorisasi akses VPC.

acs:apigateway:$regionid:$accountid:vpcaccess/*

DescribeInstances

Menanyakan instance khusus.

acs:apigateway:$regionid:$accountid:instance/$instanceId

Contoh

Otorisasi pengguna RAM untuk menanyakan semua API:

{
          "Version": "1",
          "Statement": [
            {
                      "Action": "apigateway:Describe*",
                      "Resource":"acs:apigateway:$regionid:$accountid:apigroup/*",
                      "Effect": "Allow"
            }
          ]
}                        

Otorisasi pengguna RAM untuk menanyakan semua grup API yang memiliki tag `version:v1`:

{
	  "Version": "1",
	  "Statement": [
	    {
      		"Action": "apigateway:Describe*",
	      	"Resource":"acs:apigateway:$regionid:$accountid:apigroup/*",
	      	"Effect": "Allow", 
                 "Condition": {
                        "StringEquals": {
                             "apigateway:tag/version": "v1"
                        }
                 }
             }
	  ]
}			

Otorisasi pengguna RAM untuk mengelola semua API dalam grup API:

{
          "Version": "1",
          "Statement": [
            {
                      "Action": "apigateway:*",
                      "Resource": [
                              "acs:apigateway:$regionid:$accountid:apigroup/$groupId",
                              "acs:apigateway:$regionid:$accountid:app/$appId",
                              "acs:apigateway:$regionid:$accountid:vpcaccess/*"
                      ],
                      "Effect": "Allow"
            }
          ]
}

Note: In the preceding examples, you can specify the wildcard character (*) for variables based on your business requirements.