Kontrol akses
DataHub menggunakan Resource Access Management (RAM) untuk mengelola kontrol akses. Hanya pengguna RAM yang telah diberi izin tertentu yang dapat mengakses sumber daya di DataHub. Akun Alibaba Cloud memiliki semua izin terhadap sumber daya yang dimilikinya. Secara default, pengguna RAM tidak memiliki izin untuk mengakses sumber daya di DataHub setelah dibuat. Anda harus melampirkan kebijakan yang berisi izin akses ke DataHub pada pengguna RAM agar mereka dapat mengakses sumber daya tersebut. Untuk informasi lebih lanjut tentang cara membuat pengguna RAM dan melampirkan kebijakan, lihat Mengikat perangkat MFA ke akun Alibaba Cloud. Topik ini menjelaskan cara menggunakan RAM untuk menerapkan kontrol akses di DataHub.
Mengizinkan izin kepada pengguna RAM
Jenis Sumber Daya DataHub yang Dapat Diakses oleh Pengguna RAM
Pengguna RAM dapat mengakses sumber daya berikut di DataHub: proyek, topik, dan langganan. DataHub mendukung otentikasi RAM untuk proyek, topik, dan langganan. Namun, otentikasi RAM tidak dapat digunakan untuk mengakses data shard. Langganan adalah tindakan menentukan aplikasi untuk membaca dan memproses catatan dalam topik dari proyek tertentu.
Tipe sumber daya | Deskripsi |
Proyek | acs:dhs:$region:$accountid:projects/$projectName |
Topik | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
Langganan | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
Operasi API di DataHub dan Kebijakan RAM yang Sesuai
Proyek
Operasi | Aksi | Sumber daya |
CreateProject | dhs:CreateProject | acs:dhs:$region:$accountid:projects/* |
ListProject | dhs:ListProject | acs:dhs:$region:$accountid:projects/* |
DeleteProject | dhs:DeleteProject | acs:dhs:$region:$accountid:projects/$projectName |
GetProject | dhs:GetProject | acs:dhs:$region:$accountid:projects/$projectName |
Topik
Operasi | Aksi | Sumber daya |
CreateTopic | dhs:CreateTopic | acs:dhs:$region:$accountid:projects/$projectName/topics/* |
ListTopic | dhs:ListTopic | acs:dhs:$region:$accountid:projects/$projectName/topics/* |
DeleteTopic | dhs:DeleteTopic | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
GetTopic | dhs:GetTopic | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
UpdateTopic | dhs:UpdateTopic | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
Langganan
Operasi | Aksi | Sumber daya |
CreateSubscription | dhs:CreateSubscription | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/* |
DeleteSubscription | dhs:DeleteSubscription | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
GetSubscription | dhs:GetSubscription | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
UpdateSubscription | dhs:UpdateSubscription | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
ListSubscription | dhs:ListSubscription | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/* |
CommitOffset | dhs:GetSubscription | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
GetOffset | dhs:GetSubscription | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId |
Konektor
Operasi | Aksi | Sumber daya |
CreateConnector | dhs:CreateConnector | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/* |
DeleteConnector | dhs:DeleteConnector | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/* |
GetConnector | dhs:GetConnector | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/* |
UpdateConnector | dhs:UpdateConnector | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/* |
ListConnector | dhs:ListConnector | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/* |
Shard
Operasi | Aksi | Sumber daya |
ListShard | dhs:ListShard | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
MergeShard | dhs:UpdateShard | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
SplitShard | dhs:UpdateShard | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
PubSub
Operasi | Aksi | Sumber daya |
PutRecords | dhs:PutRecords | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
GetRecords | dhs:GetRecords | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
GetCursor | dhs:GetRecords | acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName |
Kondisi yang Dapat Diterapkan pada Kebijakan RAM untuk DataHub
Kondisi | Fitur | Nilai valid |
acs:SourceIp | Menentukan alamat IP atau blok CIDR. | Alamat IP reguler. Anda dapat menyetel bidang ini ke asterisk (*) sebagai wildcard. |
acs:SecureTransport | Menentukan apakah HTTPS digunakan untuk mengakses objek yang ditentukan. | true/false |
acs:MFAPresent | Menentukan apakah autentikasi multi-faktor (MFA) digunakan selama login pengguna. | true/false |
acs:CurrentTime | Menentukan waktu ketika objek yang ditentukan dapat diakses. | Tentukan waktu dalam standar ISO 8601. |
Kebijakan Sistem
DataHub menyediakan kebijakan sistem yang dapat dilampirkan ke pengguna RAM. Anda dapat menyesuaikan kebijakan ini sesuai dengan kebutuhan Anda.
AliyunDataHubFullAccess
Kebijakan ini memberikan semua izin pada DataHub kepada pengguna RAM. Biasanya, kebijakan ini digunakan untuk mengelola sumber daya di DataHub.
AliyunDataHubReadOnlyAccess
Kebijakan ini memberikan izin baca saja pada DataHub kepada pengguna RAM sehingga mereka dapat menanyakan informasi tentang semua sumber daya di DataHub. Contohnya, kebijakan ini dapat digunakan untuk menanyakan informasi tentang proyek, melihat daftar proyek, atau membaca data. Namun, kebijakan ini tidak dapat digunakan untuk memperbarui, membuat, atau menulis data.
AliyunDataHubSubscribeAccess
Kebijakan ini memberikan pengguna RAM izin untuk berlangganan data di DataHub. Kebijakan ini hanya dapat digunakan untuk memanggil operasi API yang melibatkan pembacaan data, termasuk GetTopic, ListShard, GetRecords, serta semua operasi terkait langganan dan offset.
AliyunDataHubPublishAccess
Kebijakan ini memberikan pengguna RAM izin untuk mempublikasikan data ke DataHub. Kebijakan ini hanya dapat digunakan untuk memanggil operasi API yang melibatkan penulisan data, termasuk GetTopic, ListShard, dan PutRecords.
Kebijakan Kustom
Jika kebijakan sistem yang disediakan oleh DataHub tidak memenuhi kebutuhan Anda, Anda dapat membuat kebijakan kustom. Untuk membuat kebijakan kustom, lakukan langkah-langkah berikut: Masuk ke konsol RAM menggunakan akun Alibaba Cloud. Di panel navigasi kiri, pilih Izin > Kebijakan. Di halaman Kebijakan, klik Buat Kebijakan. Contoh kebijakan kustom:
Menampilkan Proyek yang Dapat Diakses di Konsol DataHub
// Untuk mengizinkan pengguna RAM melihat proyek yang pengguna RAM miliki izin untuk mengakses di konsol DataHub, tambahkan konfigurasi berikut ke blok pernyataan.
// Untuk menampilkan proyek yang dapat diakses di konsol DataHub, izin untuk memanggil operasi ListProject dan GetProject diperlukan.
{
"Action": ["dhs:ListProject","dhs:GetProject"],
"Resource": "acs:dhs:*:*:projects/*",
"Effect": "Allow"
}Buat Topik di Konsol DataHub
// Untuk menampilkan topik dari suatu proyek di konsol DataHub, izin untuk memanggil operasi ListTopic dan GetTopic diperlukan.
// Untuk memberikan pengguna RAM izin untuk membuat topik di proyek bernama "test" di konsol DataHub, gunakan konfigurasi berikut.
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:ListProject", "dhs:GetProject"],
"Resource": "acs:dhs:*:*:projects/*",
"Effect": "Allow"
},
{
"Action": ["dhs:ListTopic", "dhs:GetTopic", "dhs:CreateTopic"],
"Resource": "acs:dhs:*:*:projects/test/topics/*",
"Effect": "Allow"
}
]
}Kebijakan Kustom Lainnya
// Contoh kebijakan kustom yang memberikan pengguna RAM izin untuk menanyakan informasi tentang topik dalam proyek tertentu.
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:ListTopic", "dhs:GetTopic"],
"Resource": "acs:dhs:cn-hangzhou:12121312:projects/foo/topics/*",
"Effect": "Allow"
}
]
}
// Contoh kebijakan kustom yang memberikan pengguna RAM semua izin pada langganan ke topik dalam proyek bernama "foo".
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:*Subscription"],
"Resource": "acs:dhs:cn-hangzhou:*:projects/foo/topics/*/subscriptions/*",
"Effect": "Allow"
}
]
}
// Contoh kebijakan kustom yang memberikan pengguna RAM izin untuk menanyakan informasi tentang langganan ke topik dalam proyek bernama "foo".
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:ListSubscription"],
"Resource": "acs:dhs:cn-hangzhou:*:projects/foo/topics/*/subscriptions/*",
"Effect": "Allow"
}
]
}
// Contoh kebijakan kustom yang memberikan pengguna RAM izin untuk melakukan commit offset untuk langganan dengan ID "14985645198374IoCK" ke topik t1 dalam proyek bernama "foo".
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:GetSubscription"],
"Resource": "acs:dhs:cn-hangzhou:*:projects/foo/topics/t1/subscriptions/14985645198374IoCK",
"Effect": "Allow"
}
]
}
// Contoh kebijakan kustom yang memberikan pengguna RAM izin untuk membagi atau menggabungkan shard untuk topik tertentu. Operasi yang tersedia adalah ListShard, SplitShard, dan MergeShard.
{
"Version": "1",
"Statement": [
{
"Action": ["dhs:*Shard"],
"Resource": "acs:dhs:cn-hangzhou:12121312:projects/foo/topics/bar",
"Effect": "Allow"
}
]
}