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.
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. 
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/$groupIdContoh:
acs:apigateway:*:*:apigroup/cbd157704e624ab58a204fd3e0b5ad79Tabel 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.