Anda dapat menggunakan kebijakan kustom untuk memenuhi kebutuhan kontrol akses tertentu. Konsol RAM memungkinkan Anda membuat kebijakan kustom melalui editor visual atau pengeditan skrip. Topik ini menjelaskan konsep dasar, kasus penggunaan, prosedur, sintaks, dan contoh pembuatan kebijakan kustom.
Kasus penggunaan
Kebijakan sistem menyediakan izin coarse-grained. Jika Anda memerlukan kontrol akses fine-grained, Anda dapat membuat kebijakan kustom.
Sebagai contoh, Anda dapat membuat kebijakan kustom untuk memberikan izin kepada RAM user guna hanya mengkueri pengaturan snapshot.
Prosedur
Contoh berikut menunjukkan cara membuat kebijakan kustom.
Contoh 1: Kueri pengaturan Snapshot
Untuk memberikan izin kepada RAM user agar hanya dapat mengkueri pengaturan snapshot, ikuti langkah-langkah berikut:
-
Buka halaman Create Policy. Untuk Service, pilih Media Services > ApsaraVideo Live.
-
Bentangkan daftar read action. Di kotak pencarian, masukkan DescribeLiveSnapshotConfig, lalu pilih dari hasil yang muncul.
-
Klik OK.
-
Masukkan nama kebijakan dan klik OK.
-
Buat RAM user dan sambungkan kebijakan baru tersebut. Untuk informasi selengkapnya, lihat Create a RAM user and grant permissions.
Setelah menyelesaikan langkah-langkah tersebut, RAM user dapat memanggil operasi DescribeLiveSnapshotConfig dan menerima data yang benar. Upaya memanggil operasi lain akan mengembalikan error permission.
Contoh 2: Mengkueri pengaturan snapshot berdasarkan IP
Contoh 1 memberikan izin untuk memanggil operasi DescribeLiveSnapshotConfig. Untuk menambahkan kontrol yang lebih granular, seperti membatasi akses berdasarkan alamat IP, ikuti langkah-langkah berikut:
-
Buka halaman Policies dan temukan kebijakan yang telah Anda buat di Contoh 1.
-
Klik nama kebijakan untuk membuka halaman detail kebijakan.
-
Klik Modify Policy untuk membuka halaman modifikasi dan pilih tab Visual editor. Halaman modifikasi menunjukkan bahwa tipe kebijakan adalah custom policy dan versi saat ini adalah v2. Tab policy document menampilkan konten JSON kebijakan, yang memiliki nilai Effect berupa Allow.
-
Di bagian Condition, klik Add condition. Atur Key menjadi acs:SourceIp, Operator menjadi IpAddress, dan Value menjadi IP Address yang diinginkan.
-
Klik OK, lalu klik OK lagi untuk menyimpan perubahan.
Setelah menyelesaikan langkah-langkah tersebut, operasi hanya akan berhasil jika permintaan dikirim dari alamat IP yang ditentukan. Jika tidak, permintaan akan gagal dengan error permission.
Untuk informasi selengkapnya tentang cara membuat kebijakan kustom, lihat Create a custom policy.
Sintaks
Kebijakan dijelaskan dalam format JSON pada halaman detail kebijakan di tab Isi kebijakan. Berikut ini adalah isi kebijakan untuk Contoh 2:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "live:DescribeLiveSnapshotConfig",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"127.0.0.1"
]
}
}
}
]
}
Berikut penjelasan elemen-elemen dalam dokumen kebijakan:
-
Version
Elemen Version menentukan versi kebijakan. Nilainya harus 1.
-
Statement
Kebijakan terdiri dari satu atau beberapa blok Statement. Setiap pernyataan mendefinisikan izin dan mencakup elemen seperti Action, Effect, Resource, dan Condition. Saat permintaan diajukan, sistem mengevaluasi setiap pernyataan. Efek Deny selalu mengesampingkan efek Allow. Permintaan hanya diizinkan jika sesuai dengan satu atau beberapa pernyataan Allow dan tidak ada pernyataan Deny.
-
Effect
Menentukan efek dari pernyataan, yaitu Allow atau Deny.
-
Action
Menentukan operasi API untuk izin tersebut. Action untuk ApsaraVideo Live menggunakan format
live:API name, sepertilive:DescribeLiveSnapshotConfig. Pisahkan beberapa action dengan koma. Anda dapat menggabungkan beberapa action untuk membuat satu set izin.Untuk daftar semua operasi yang tersedia, lihat API reference.
-
Resource
Menentukan resource atau resources yang dicakup oleh kebijakan. Anda dapat menggunakan karakter wildcard (*). Formatnya adalah
acs:{ramCode}:{region}:{accountId}:{relative}. Elemen Resource dapat berisi daftar beberapa resource. Untuk ApsaraVideo Live, nilai ramCode yang valid adalah live, cdn, dan live-interaction. Field region saat ini tidak didukung dan harus diatur ke*. accountId adalah ID akun Anda. relative menentukan resource secara spesifik. Biasanya diatur ke *, tetapi beberapa operasi mendukung izin tingkat resource. Anda juga dapat mengatur seluruh elemen Resource ke * seperti yang ditunjukkan pada contoh.CatatanSaat Anda menggunakan editor visual, ramCode yang sesuai akan dipilih secara otomatis berdasarkan operasi API.
-
Condition
Menentukan kondisi kapan kebijakan berlaku. Elemen ini bersifat opsional.
Kondisi berikut didukung:
Condition
Description
Value
acs:SourceIp
Menentukan alamat IP atau Blok CIDR.
Alamat IP. Karakter wildcard (*) didukung.
acs:SecureTransport
Menentukan apakah permintaan harus menggunakan HTTPS.
true atau No
acs:MFAPresent
Menentukan apakah pengguna harus masuk dengan multi-factor authentication (MFA).
true atau false
acs:CurrentTime
Menentukan waktu ketika permintaan diterima oleh server.
Waktu dalam format ISO 8601. Contoh: 2012-11-11T23:59:59Z.
Untuk informasi selengkapnya tentang elemen dasar dan sintaks kebijakan, lihat Policy elements dan Policy structure and syntax.
Pengeditan skrip
Setelah memahami sintaks kebijakan, Anda juga dapat memodifikasi kebijakan menggunakan script editing. Sebagai contoh, untuk menambahkan alamat IP 127.0.0.2 ke kebijakan dari Contoh 2, ikuti langkah-langkah berikut:
-
Buka halaman Policies dan temukan kebijakan yang telah Anda buat di Contoh 1.
-
Klik nama kebijakan untuk membuka halaman detail kebijakan.
-
Klik Modify Policy untuk membuka halaman modifikasi, lalu pilih tab JSON.
-
Di array acs:SourceIp, tambahkan alamat IP 127.0.0.2.
-
Klik OK untuk menyimpan perubahan.
Dokumen kebijakan yang diperbarui adalah sebagai berikut:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "live:DescribeLiveSnapshotConfig",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"127.0.0.1",
"127.0.0.2"
]
}
}
}
]
}
Manajemen versi
Untuk mengembalikan kebijakan ke versi sebelumnya, gunakan manajemen versi. Di halaman detail kebijakan, pilih tab Versions, temukan versi yang diinginkan, lalu klik Set As Default Version.
Kebijakan dapat memiliki maksimal lima versi.
Penggunaan lanjutan
Pertimbangkan skenario bisnis berikut untuk membuat kebijakan kustom:
-
Anda ingin mengontrol izin untuk operasi AddLiveAppSnapshotConfig.
-
Operasi tersebut hanya boleh diizinkan pada domainA dan domainB.
Untuk memenuhi persyaratan ini, Anda dapat mengontrol akses pada tingkat resource. Ikuti langkah-langkah berikut:
-
Buka halaman Create Policy. Untuk Service, pilih Media Services > ApsaraVideo Live.
-
Bentangkan daftar write action. Di kotak pencarian, masukkan AddLiveAppSnapshotConfig, lalu pilih dari hasil yang muncul.
-
Di bagian Resource, pilih Specified Resources, lalu klik Add resource. Atur Account ke * dan Resource ke domainA. Ulangi langkah ini untuk menambahkan domainB.
-
Klik OK.
-
Masukkan nama kebijakan dan klik OK. Dokumen kebijakan adalah sebagai berikut:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "live:AddLiveAppSnapshotConfig", "Resource": [ "acs:cdn:*:*:domain/domainA", "acs:cdn:*:*:domain/domainB" ] } ] } -
Sambungkan kebijakan yang telah dibuat ke RAM user target.
Setelah menyelesaikan langkah-langkah tersebut, RAM user hanya dapat menambahkan pengaturan snapshot untuk domainA dan domainB.
Format untuk kontrol tingkat resource bervariasi tergantung operasi API. Kami menyarankan menggunakan editor visual untuk mengonfigurasi izin fine-grained.