Rencanakan resource groups dan workspaces di AgentRun untuk mencapai isolasi resource dan kontrol akses detail halus dalam skenario perusahaan multi-tim.
Skema yang berlaku: Beberapa tim bisnis berbagi satu akun root. Setiap tim mengelola beberapa proyek dan memerlukan isolasi resource antara lingkungan uji dan produksi, serta antar tim. Developer hanya boleh mengakses resource dalam proyek mereka sendiri.
Diagram arsitektur:

Latar Belakang
Sebuah perusahaan memiliki dua tim bisnis, Tim A dan Tim B, masing-masing bertanggung jawab atas sistem bisnis yang terpisah. Setiap sistem mencakup beberapa proyek, seperti analitik data dan pembelajaran mesin, serta dideploy di lingkungan uji maupun produksi. Seiring pertumbuhan jumlah resource AgentRun, perusahaan menghadapi dua tantangan:
Isolasi dan kepemilikan resource yang jelas: Resource untuk tim dan lingkungan berbeda harus sepenuhnya terisolasi. Harus mudah mengidentifikasi sistem bisnis mana yang dimiliki suatu resource.
Kontrol akses detail halus: Developer hanya boleh mengakses resource dalam proyek mereka sendiri. Administrator sistem bisnis perlu mengelola semua resource untuk tim mereka, tetapi tidak boleh mengakses resource milik tim lain.
Desain Solusi
Pendekatan desain
Gunakan arsitektur dua lapis: resource groups memisahkan resource berdasarkan tim bisnis dan lingkungan, sedangkan workspaces memisahkan resource berdasarkan proyek.
|
Level |
Dimensi |
Pihak yang diberi otorisasi |
|
Resource group |
Tim bisnis × lingkungan (N tim × M lingkungan = N×M resource groups) |
Administrator sistem bisnis, yang mengelola resource groups tim mereka. |
|
Workspace |
Proyek (diasosiasikan dengan resource group yang sesuai). |
Developer, yang mengakses workspace proyek mereka. |
Perencanaan akun dan peran
Solusi ini menggunakan satu Akun Alibaba Cloud (akun root) dan memisahkan izin lintas tim dengan menggunakan RAM users.
|
Peran |
RAM user |
Cakupan izin |
|
Administrator akun root |
Akun Alibaba Cloud (akun root) |
Kontrol penuh atas semua resource. |
|
Administrator Tim A |
Alice |
Semua resource groups dan workspaces untuk Tim A. |
|
Administrator Tim B |
Bob |
Semua resource groups dan workspaces untuk Tim B. |
|
Developer proyek analitik data Tim A |
user01 |
Resource dalam workspace DataAnalysis-Test. |
|
Developer proyek pembelajaran mesin Tim A |
user02 |
Resource dalam workspace MachineLearning-Test. |
Perencanaan resource group dan workspace
Contoh ini membuat empat resource groups dan enam workspaces. Anda dapat menambahkan lebih banyak workspaces untuk Tim B sesuai kebutuhan proyek Anda.
|
Resource group |
Workspaces terkait |
Administrator |
|
TeamA-Test environment |
DataAnalysis-Test workspace, MachineLearning-Test workspace |
Alice |
|
TeamA-Production environment |
DataAnalysis-Production workspace, MachineLearning-Production workspace |
Alice |
|
TeamB-Test environment |
TeamB-Project-Test workspace |
Bob |
|
TeamB-Production environment |
TeamB-Project-Production workspace |
Bob |
Prosedur
Langkah 1: Buat RAM users
Di Konsol RAM, buat RAM users untuk setiap administrator sistem bisnis dan developer.
Contoh ini membuat RAM users berikut:
|
RAM user
|
Peran
|
|
Alice
|
Administrator sistem bisnis A
|
|
Bob
|
Administrator sistem bisnis B
|
|
user01
|
Developer proyek analitik data Tim A
|
|
user02
|
Developer proyek pembelajaran mesin Tim A
|
Untuk membuat pengguna RAM: Masuk ke Konsol RAM. Di panel navigasi sebelah kiri, pilih Identities > Users, lalu klik Create User. Untuk langkah-langkah selengkapnya, lihat Membuat pengguna RAM.
Rekomendasi penamaan: Beri nama pengguna berdasarkan nama atau perannya, seperti alice, bob, atau dev-team-a-001. Hal ini mempermudah identifikasi selama proses otorisasi.
Langkah 2: Buat kelompok sumber daya
Di Konsol Resource Manager, buat resource groups yang sesuai dengan tim bisnis dan lingkungan Anda.
Contoh ini membuat empat resource groups berikut:
-
TeamA-Test environment
-
TeamA-Production environment
-
TeamB-Test environment
-
TeamB-Production environment
Untuk membuat resource group: Login ke Konsol Resource Manager. Di panel navigasi kiri, pilih Resource Groups > Create Resource Group. Untuk langkah-langkah detail, lihat What is Resource Manager?.
Rekomendasi penamaan: Beri nama resource groups agar mencerminkan tim dan lingkungannya, seperti teamA-test dan teamA-prod. Hal ini mempermudah identifikasi tujuannya di konsol.
Langkah 3: Berikan izin resource group
Gunakan akun root Anda untuk memberikan izin kepada setiap administrator sistem bisnis, sehingga mereka hanya dapat mengelola resource groups milik tim mereka sendiri.
Contoh cakupan izin:
|
RAM user
|
Resource group yang diberi otorisasi
|
Kebijakan yang diberikan
|
|
Alice
|
TeamA-Test environment, TeamA-Production environment
|
AdministratorAccess
|
|
Bob
|
TeamB-Test environment, TeamB-Production environment
|
AdministratorAccess
|
Anda dapat memberikan izin dengan dua cara:
-
Dari Konsol Resource Manager: Buka halaman detail resource group, pilih RAM user, lalu sambungkan kebijakan.
-
Dari Konsol RAM: Buka halaman detail RAM user, tentukan resource group, lalu sambungkan kebijakan.
Ikuti prinsip hak istimewa minimal. Jika administrator tim hanya perlu mengelola resource AgentRun, kami merekomendasikan memberikan kebijakan detail halus yang terkait AgentRun alih-alih AdministratorAccess. Contoh ini menggunakan AdministratorAccess demi kesederhanaan. Sesuaikan izin untuk lingkungan produksi Anda sesuai kebutuhan.
Berikut adalah contoh kebijakan kustom yang hanya mengotorisasi operasi AgentRun dalam resource group tertentu:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "agentrun:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:ResourceGroupId": [
"rg-xxxx1",
"rg-xxxx2"
]
}
}
}
]
}
Ganti rg-xxxx1 dan rg-xxxx2 dengan ID sebenarnya dari resource groups Anda, yang dapat Anda temukan di daftar resource group di Konsol Resource Manager. Aksi agentrun:* memberikan semua izin AgentRun. Untuk mempersempit cakupan lebih lanjut, Anda dapat menggantinya dengan aksi spesifik, seperti agentrun:GetWorkspace dan agentrun:ListWorkspaces.
Langkah 4: Buat dan bind workspaces
Administrator sistem bisnis, seperti Alice, kini dapat login ke Konsol AgentRun untuk membuat workspaces bagi setiap proyek di timnya dan mengikat setiap workspace ke resource group yang sesuai.
Alice perlu membuat empat workspaces berikut:
|
Nama workspace
|
Resource group terkait
|
|
DataAnalysis-Test workspace
|
TeamA-Test environment
|
|
MachineLearning-Test workspace
|
TeamA-Test environment
|
|
DataAnalysis-Production workspace
|
TeamA-Production environment
|
|
MachineLearning-Production workspace
|
TeamA-Production environment
|
Untuk membuat workspace: Login ke Konsol AgentRun. Di pojok kiri atas, klik menu drop-down workspace dan pilih Create workspace. Isi nama dan pilih resource group yang sesuai.
Penting: Asosiasi antara workspace dan resource group tidak dapat diubah setelah dibuat. Rencanakan hubungan ini dengan cermat sebelum membuat workspace.
Langkah 5: Berikan izin workspace kepada developer
Developer hanya memerlukan akses ke workspace proyek mereka, yang memerlukan otorisasi berlapis. Empat sub-langkah berikut menunjukkan proses ini dengan memberikan izin kepada user01 untuk DataAnalysis-Test workspace.
Berikan izin untuk melihat daftar workspaces
Pengguna user01 memerlukan izin untuk melihat daftar workspaces dalam resource group TeamA-Test environment agar dapat memilih yang tepat.
Di Konsol RAM, berikan izin berikut kepada user01, dengan cakupan hanya pada resource group TeamA-Test environment:
-
Kebijakan: Kebijakan yang mencakup aksi AgentRun.
-
Cakupan: Hanya resource group
TeamA-Test environment.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "agentrun:ListWorkspaces",
"Resource": "*"
}
]
}
Setelah langkah ini selesai, user01 dapat melihat semua workspaces dalam resource group (DataAnalysis-Test workspace dan MachineLearning-Test workspace), tetapi belum memiliki izin untuk mengelola resource di dalamnya.
Berikan izin untuk resource workspace
Di Konsol AgentRun, berikan izin kepada user01 untuk mengelola resource dalam DataAnalysis-Test workspace, yang mencakup jenis resource berikut:
-
Agent runtime
-
Sandbox
-
Model
-
Tool
-
Knowledge base
-
Memory
-
Credential
-
Monitoring dashboard
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"agentrun:GetAccessToken",
"agentrun:GetAgentDiscoveryResult",
"agentrun:GetAgentRuntime",
"agentrun:GetAgentRuntimeEndpoint",
"agentrun:GetApigLLMModel",
"agentrun:GetBrowser",
"agentrun:GetBrowserSession",
"agentrun:GetCodeInterpreter",
"agentrun:GetCodeInterpreterSession",
"agentrun:GetCredential",
"agentrun:GetKnowledgeBase",
"agentrun:GetMemoryCollection",
"agentrun:GetModelProxy",
"agentrun:GetModelService",
"agentrun:GetSandbox",
"agentrun:GetTemplate",
"agentrun:ActivateTemplateMCP",
"agentrun:CreateAgentRuntime",
"agentrun:CreateAgentRuntimeEndpoint",
"agentrun:CreateApigLLMModel",
"agentrun:CreateBrowser",
"agentrun:CreateCodeInterpreter",
"agentrun:CreateCredential",
"agentrun:CreateKnowledgeBase",
"agentrun:CreateMemoryCollection",
"agentrun:CreateModelProxy",
"agentrun:CreateModelService",
"agentrun:CreateSandbox",
"agentrun:CreateTemplate",
"agentrun:CreateWorkspace",
"agentrun:DeleteAgentRuntime",
"agentrun:DeleteAgentRuntimeEndpoint",
"agentrun:DeleteApigLLMModels",
"agentrun:DeleteBrowser",
"agentrun:DeleteCodeInterpreter",
"agentrun:DeleteCredential",
"agentrun:DeleteKnowledgeBase",
"agentrun:DeleteMemoryCollection",
"agentrun:DeleteModelProxy",
"agentrun:DeleteModelService",
"agentrun:DeleteSandbox",
"agentrun:DeleteTemplate",
"agentrun:DeregisterExternalService",
"agentrun:PublishRuntimeVersion",
"agentrun:RegisterExternalService",
"agentrun:StartBrowserSession",
"agentrun:StartCodeInterpreterSession",
"agentrun:StopSandbox",
"agentrun:UpdateAgentRuntime",
"agentrun:UpdateAgentRuntimeEndpoint",
"agentrun:UpdateApigLLMModel",
"agentrun:UpdateCredential",
"agentrun:UpdateKnowledgeBase",
"agentrun:UpdateMemoryCollection",
"agentrun:UpdateModelProxy",
"agentrun:UpdateModelService",
"agentrun:UpdateTemplate",
"agentrun:ListAgentRuntimeEndpoints",
"agentrun:ListAgentRuntimes",
"agentrun:ListAgentResources",
"agentrun:ListAgentRuntimeVersions",
"agentrun:ListApigLLMModels",
"agentrun:ListBrowsers",
"agentrun:ListBrowserSessions",
"agentrun:ListCodeInterpreters",
"agentrun:ListCodeInterpreterSessions",
"agentrun:ListCredentials",
"agentrun:ListKnowledgeBases",
"agentrun:ListMemoryCollections",
"agentrun:ListModelProviders",
"agentrun:ListModelProxies",
"agentrun:ListModelServices",
"agentrun:ListSandboxes",
"agentrun:ListTemplates",
"agentrun:ListTools",
"agentrun:GetTool",
"agentrun:CreateTool",
"agentrun:DeleteTool",
"agentrun:UpdateTool"
],
"Resource": "acs:agentrun:*:<your-account-id>:workspaces/DataAnalysis-Test/*"
}
]
}
Untuk menambahkan anggota: Buka Konsol AgentRun, navigasi ke DataAnalysis-Test workspace, lalu pilih Member Management > Add Member. Pilih user01 dan tetapkan peran yang sesuai, seperti Developer.
Setelah langkah ini selesai, user01 dapat membuat, melihat, dan mengelola resource tertentu dalam DataAnalysis-Test workspace, tetapi tidak dapat mengelola resource apa pun di MachineLearning-Test workspace.
Berikan izin untuk resource global tingkat akun
Beberapa resource AgentRun bersifat global, artinya cakupannya berada di tingkat akun, bukan workspace tertentu. Resource ini memerlukan izin tingkat akun yang terpisah.
Nama domain kustom adalah contoh khas resource global tingkat akun. Jika user01 perlu mengonfigurasi atau melihat nama domain kustom, berikan kebijakan terkait di tingkat akun di Konsol RAM. Untuk cakupan otorisasi, pilih seluruh Akun Alibaba Cloud.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"agentrun:*CustomDomain*"
],
"Resource": "*"
}
]
}
Tidak semua pengguna memerlukan izin ini. Jika user01 tidak perlu mengelola nama domain kustom, Anda dapat melewati sub-langkah ini.
Berikan izin untuk layanan dependensi
Resource AgentRun mungkin bergantung pada layanan Alibaba Cloud lainnya, seperti OSS atau FC. Tabel berikut mencantumkan dependensi izin umum.
|
Skema dependensi
|
Layanan cloud yang diperlukan
|
Kebijakan yang direkomendasikan
|
|
Penyimpanan data knowledge base
|
OSS
|
Izin baca dan tulis untuk bucket OSS tertentu.
|
|
Komputasi dasar agent runtime
|
FC
|
Izin hanya-baca atau pemanggilan untuk FC.
|
|
Kueri log dan pemantauan
|
SLS
|
Izin baca untuk Logstore SLS tertentu.
|
Ikuti prinsip hak istimewa minimal. Berikan izin berdasarkan kebutuhan bisnis aktual developer. Gunakan kebijakan tingkat resource untuk membatasi akses ke resource spesifik seperti bucket dan Logstore bila memungkinkan.
Langkah 6: Tetapkan resource ke workspaces
Setelah mengonfigurasi izin, tetapkan semua resource AgentRun ke workspace yang benar.
Resource baru: Saat membuat resource AgentRun, pilih workspace target. Resource tersebut akan secara otomatis ditetapkan ke resource group yang terikat pada workspace tersebut.
Resource yang sudah ada: Untuk menetapkan resource yang belum berada di workspace, gunakan fitur transfer resource.
Untuk menetapkan resource: Buka halaman manajemen resource di Konsol AgentRun, temukan resource target, pilih workspace tujuan, lalu konfirmasi tindakan.
Peringatan: Memindahkan resource dapat memengaruhi tugas yang sedang berjalan. Kami merekomendasikan memindahkan resource selama jam sepi dan memberi tahu developer terkait terlebih dahulu.
Hasil
Setelah menyelesaikan langkah-langkah ini, setiap peran memiliki izin sebagai berikut:
|
Identitas |
Resource groups yang terlihat |
Workspaces yang dapat diakses |
Cakupan operasi resource |
|
Akun Alibaba Cloud (akun root) |
Semua kelompok sumber daya |
Semua workspaces |
Tanpa batasan |
|
Alice |
TeamA-Test environment, TeamA-Production environment |
Semua workspaces di bawah Tim A |
Semua resource di semua workspaces Tim A |
|
Bob |
TeamB-Test environment, TeamB-Production environment |
Semua workspaces di bawah Tim B |
Semua resource di semua workspaces Tim B |
|
user01 |
TeamA-Test environment (daftar terlihat) |
DataAnalysis-Test workspace |
Semua jenis resource dalam workspace ini |
|
user02 |
TeamA-Test environment (daftar terlihat) |
MachineLearning-Test workspace |
Semua jenis resource dalam workspace ini |
Keduauser01danuser02dapat melihat semua workspaces di bawah resource groupTeamA-Test environment, tetapi masing-masing hanya dapat mengelola resource dalam workspace yang diotorisasi. Resource sepenuhnya terisolasi antara Tim A dan Tim B, serta antara lingkungan uji dan produksi.
Perangkap umum
|
Perangkap |
Masalah |
Praktik yang direkomendasikan |
|
Menggunakan satu workspace untuk semua proyek. |
Pendekatan ini mencegah isolasi izin tingkat proyek. Developer dapat melihat resource satu sama lain. |
Buat workspace terpisah untuk setiap proyek. |
|
Memberikan |
Developer menerima izin yang melebihi tanggung jawab mereka, meningkatkan risiko operasi tidak disengaja. |
Berikan izin detail halus berbasis peran di tingkat workspace. |
|
Menggunakan resource group yang sama untuk lingkungan uji dan produksi. |
Developer mungkin secara tidak sengaja memodifikasi resource produksi. |
Buat resource groups terpisah untuk lingkungan uji dan produksi. |
|
Membuat workspaces sebelum merencanakan resource groups. |
Karena ikatan workspace ke resource group bersifat permanen, perencanaan yang tidak tepat dapat menghasilkan struktur yang tidak dapat diubah. |
Rencanakan resource groups Anda terlebih dahulu, lalu buat workspaces dan ikatkan. |