All Products
Search
Document Center

AgentLoop:Batasi izin RAM untuk AgentSpace tertentu

Last Updated:Sep 24, 2026

AgentSpace merupakan unit terkecil untuk isolasi sumber daya dan pengelolaan izin di AgentLoop. Gunakan templat kebijakan RAM dalam topik ini untuk memberikan izin manajemen penuh atas AgentLoop kepada Pengguna RAM atau Grup pengguna RAM, atau untuk membatasi pengguna atau grup tersebut hanya pada satu AgentSpace beserta sumber daya Simple Log Service, Cloud Monitor, dan Microservices Engine yang terkait dengannya. Templat berskala menjaga beberapa AgentSpace yang dimiliki oleh Akun Alibaba Cloud yang sama tetap terisolasi satu sama lain.

Cara pemetaan izin AgentSpace ke sumber daya cloud

Setiap AgentSpace di AgentLoop dikaitkan dengan serangkaian sumber daya di layanan Alibaba Cloud lainnya:

  • Simple Log Service (SLS) — Proyek SLS dan Proyek Jejak SLS yang terkait dengan AgentSpace tersebut.

  • Cloud Monitor (CMS) — Ruang kerja CMS yang terkait dengan AgentSpace tersebut.

  • Microservices Engine (MSE) dan AI Registry — Namespace MSE yang terkait dengan AgentSpace tersebut. Di RAM, namespace tersebut diakses melalui awalan sumber daya airegistry, yang mencakup aset seperti prompt dan skill. Jalur sumber daya airegistry menggunakan ID Namespace MSE dalam bentuk saas/${MSENamespaceId}.

Oleh karena itu, membatasi izin pada AgentSpace tertentu berarti membatasi cakupan sumber daya agentloop, log, cms, dan airegistry dalam satu kebijakan.

Pilih templat kebijakan

Tabel berikut memetakan setiap skenario ke templat yang sesuai dan menunjukkan apakah kebijakan halaman utama konsol juga harus disambungkan.

Skenario

Templat

Kebijakan halaman utama konsol

Berikan izin manajemen penuh atas AgentLoop dan semua sumber daya terkaitnya kepada Pengguna RAM atau Grup pengguna RAM

AgentLoopFullAccess

Tidak diperlukan. Templat ini mengizinkan agentloop:* pada semua sumber daya, yang mencakup agentloop:ListAgentSpaces.

Batasi Pengguna RAM atau Grup pengguna RAM hanya pada satu AgentSpace dan izinkan hanya operasi yang telah ditentukan

Templat berskala dengan daftar operasi eksplisit yang diizinkan (Direkomendasikan)

Diperlukan, selain templat yang telah dicakup.

Batasi Pengguna RAM atau Grup pengguna RAM hanya pada satu AgentSpace tanpa memelihara daftar operasi

Templat berskala dengan operasi wildcard

Diperlukan, selain templat berskala.

Kedua templat berskala merupakan alternatif satu sama lain: sambungkan salah satunya, bukan keduanya.

Penting

Sambungkan templat AgentLoopFullAccess atau salah satu templat berskala ke Pengguna RAM atau Grup pengguna RAM yang sama, jangan keduanya. AgentLoopFullAccess mengizinkan agentloop:* pada semua sumber daya, sehingga izin yang dihasilkan tidak dibatasi hanya pada satu AgentSpace.

Kumpulkan nilai sumber daya yang diperlukan

Templat berskala mengacu pada AgentSpace target dan sumber daya terkaitnya berdasarkan nilai aktualnya. Kumpulkan nilai-nilai berikut dari Konsol Manajemen Alibaba Cloud sebelum membuat kebijakan.

Placeholder

Nilai

Tempat Menemukannya

${AgentSpace}

Nama AgentSpace

Di konsol AgentLoop, buka daftar AgentSpace, lalu buka halaman detail AgentSpace target.

${CMSWorkspace}

Nama Ruang kerja CMS

Di konsol Cloud Monitor 2.0, buka daftar Workspace dan pilih workspace yang terkait dengan AgentSpace.

${MSENamespaceId}

ID Namespace MSE

Di konsol MSE, buka daftar Namespace, pilih namespace yang terkait dengan AgentSpace tersebut, lalu salin ID Namespace-nya.

${SLSProject}

Proyek SLS

Di konsol Simple Log Service, buka daftar Proyek dan pilih proyek yang terkait dengan AgentSpace tersebut.

${SLSTraceProject}

Proyek Jejak SLS

Di konsol Simple Log Service, buka daftar Proyek dan pilih proyek jejak yang terkait dengan AgentSpace tersebut.

Penting

Ganti setiap placeholder dengan nilai yang telah Anda kumpulkan sebelum menyambungkan kebijakan berskala. Kebijakan yang masih berisi placeholder tidak akan cocok dengan sumber daya apa pun, sehingga akses akan ditolak.

Templat kebijakan

Semua templat dalam topik ini adalah kebijakan izin RAM. Buat kebijakan kustom di konsol RAM berdasarkan templat yang Anda pilih, lalu sambungkan kebijakan tersebut ke Pengguna RAM atau grup pengguna.

Berikan izin manajemen penuh (AgentLoopFullAccess)

Templat AgentLoopFullAccess memberikan izin manajemen penuh atas AgentLoop dan semua sumber daya terkaitnya. Sambungkan ke Pengguna RAM atau Grup pengguna RAM yang mengelola semua AgentSpace dalam Akun Alibaba Cloud.

Penting

Templat ini tidak membatasi izin hanya pada satu AgentSpace. Templat ini mengizinkan agentloop:* pada semua sumber daya AgentLoop dalam akun, serta mengizinkan operasi SLS, CMS, dan AI Registry yang tercantum pada semua sumber daya layanan tersebut.

Buat kebijakan kustom yang berisi pernyataan berikut:

{
    "Version": "1",
    "Statement": [
        {
            "Action": "agentloop:*",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "log:GetLogStoreLogs", "log:GetLogStoreHistogram", "log:GetIndex", "log:GetLogStore",
                "log:CreateIndex", "log:ListLogStores", "log:GetProject", "log:ListProject",
                "log:CreateLogStore", "log:UpdateIndex", "log:UpdateLogStore", "log:ListScheduledSQLs",
                "log:CreateScheduledSQL", "log:EnableScheduledSQL", "log:GetScheduledSQL",
                "log:UpdateScheduledSQL", "log:DisableScheduledSQL", "log:ListDashboard", "log:GetDashboard",
                "log:CreateDashboard", "log:UpdateDashboard", "log:DeleteDashboard", "log:ListTagResources",
                "log:TagResources", "log:UntagResources", "log:ListDashboardSharing",
                "log:CreateDashboardSharing", "log:AccessDashboardSharing", "log:UpdateDashboardSharing",
                "log:DeleteDashboardSharing"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "airegistry:ListNamespaces", "airegistry:GetNamespace", "airegistry:GetPrompt",
                "airegistry:CreatePrompt", "airegistry:ListPrompts", "airegistry:UpdatePrompt",
                "airegistry:DeletePrompt", "airegistry:ListPromptVersions", "airegistry:GetPromptVersion",
                "airegistry:GetPromptVersionDetail", "airegistry:CreatePromptVersion",
                "airegistry:UpdatePromptVersion", "airegistry:SubmitPromptVersion",
                "airegistry:DeletePromptVersion", "airegistry:GetPromptGovernance",
                "airegistry:CreateSkillDraft", "airegistry:UpdateSkillDraft", "airegistry:DeleteSkillDraft",
                "airegistry:SubmitSkillVersion", "airegistry:PublishSkillVersion",
                "airegistry:ForcePublishSkillVersion", "airegistry:UpdateSkillBizTags",
                "airegistry:UpdateSkillLabels", "airegistry:OnlineSkill", "airegistry:OfflineSkill",
                "airegistry:UpdateSkillScope", "airegistry:GetSkillDetail",
                "airegistry:GetSkillVersionDetail", "airegistry:DownloadSkillVersion",
                "airegistry:ListSkills", "airegistry:DeleteSkill", "airegistry:UploadSkill",
                "airegistry:UploadSkillViaOss", "airegistry:DownloadSkillVersionViaOss"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "cms:ListWorkspaces", "cms:GetWorkspace", "cms:GetEntityStoreData", "cms:GetEntityStore",
                "cms:GetServiceObservability", "cms:DescribeIntranetRegions",
                "cms:DescribeVpcForIntranetSynthetic", "cms:DescribeVswitchForIntranetSynthetic",
                "cms:DescribeSecurityGroupForIntranetSynthetic", "cms:ListServices", "cms:CreateService",
                "cms:GetUmodelCommonSchemaRef", "cms:GetUmodel", "cms:UpsertUmodelCommonSchemaRef",
                "cms:UpsertUmodelData", "cms:ListAddons", "cms:GetAddon", "cms:GetAddonSchema",
                "cms:GetAddonCodeTemplate", "cms:GetAddonMetrics", "cms:GetAddonAlertTemplates",
                "cms:GetPrometheusUserSetting", "cms:GetCmsService", "cms:ListIntegrationPolicies",
                "cms:CreateIntegrationPolicy", "cms:CreateAddonRelease", "cms:GetAddonRelease",
                "cms:ListAddonReleases", "cms:ListIntegrationPolicyResources",
                "cms:ListIntegrationPolicyCollectors", "cms:ListPrometheusInstances",
                "cms:GetCloudResource", "cms:CreateCloudResource", "cms:GetCloudResourceData",
                "cms:ProxyApiForMemberAccount", "cms:CreateServiceObservability"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": ["resourcecenter:GetResourceCenterServiceStatus"],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "ram:CreateServiceLinkedRole",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ram:ServiceName": ["agentloop.aliyuncs.com"]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ram:PassRole",
            "Resource": "acs:ram::*:role/aliyunlogetlrole"
        }
    ]
}

Batasi izin hanya pada satu AgentSpace dengan daftar operasi eksplisit yang diizinkan (Direkomendasikan)

Templat ini membatasi setiap pernyataan AgentLoop, SLS, CMS, dan AI Registry hanya pada AgentSpace target dan sumber daya terkaitnya, serta hanya mengizinkan operasi yang tercantum untuk setiap layanan. Gunakan templat ini ketika Anda membutuhkan kontrol detail halus atas kumpulan operasi yang diizinkan.

Dibandingkan dengan templat AgentLoopFullAccess, daftar operasi tidak berubah. Hanya bidang Resource yang berbeda: bidang tersebut berubah dari * menjadi ARN dari AgentSpace target beserta sumber daya terkaitnya. Pernyataan resourcecenter dan ram memberikan izin yang sama pada kedua templat.

Templat ini tidak mengizinkan agentloop:ListAgentSpaces pada semua AgentSpace. Agar Pengguna RAM dapat membuka halaman utama konsol AgentLoop, sambungkan juga kebijakan dalam Berikan akses ke halaman utama konsol AgentLoop.

Buat kebijakan kustom yang berisi pernyataan berikut:

{
    "Version": "1",
    "Statement": [
        {
            "Action": "agentloop:*",
            "Resource": [
                "acs:agentloop:*:*:agentspace/${AgentSpace}",
                "acs:agentloop:*:*:agentspace/${AgentSpace}/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "log:GetLogStoreLogs", "log:GetLogStoreHistogram", "log:GetIndex", "log:GetLogStore",
                "log:CreateIndex", "log:ListLogStores", "log:GetProject", "log:ListProject",
                "log:CreateLogStore", "log:UpdateIndex", "log:UpdateLogStore", "log:ListScheduledSQLs",
                "log:CreateScheduledSQL", "log:EnableScheduledSQL", "log:GetScheduledSQL",
                "log:UpdateScheduledSQL", "log:DisableScheduledSQL", "log:ListDashboard", "log:GetDashboard",
                "log:CreateDashboard", "log:UpdateDashboard", "log:DeleteDashboard", "log:ListTagResources",
                "log:TagResources", "log:UntagResources", "log:ListDashboardSharing",
                "log:CreateDashboardSharing", "log:AccessDashboardSharing", "log:UpdateDashboardSharing",
                "log:DeleteDashboardSharing"
            ],
            "Resource": [
                "acs:log:*:*:project/${SLSProject}",
                "acs:log:*:*:project/${SLSProject}/*",
                "acs:log:*:*:project/${SLSTraceProject}/logstore/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "airegistry:ListNamespaces", "airegistry:GetNamespace", "airegistry:GetPrompt",
                "airegistry:CreatePrompt", "airegistry:ListPrompts", "airegistry:UpdatePrompt",
                "airegistry:DeletePrompt", "airegistry:ListPromptVersions", "airegistry:GetPromptVersion",
                "airegistry:GetPromptVersionDetail", "airegistry:CreatePromptVersion",
                "airegistry:UpdatePromptVersion", "airegistry:SubmitPromptVersion",
                "airegistry:DeletePromptVersion", "airegistry:GetPromptGovernance",
                "airegistry:CreateSkillDraft", "airegistry:UpdateSkillDraft", "airegistry:DeleteSkillDraft",
                "airegistry:SubmitSkillVersion", "airegistry:PublishSkillVersion",
                "airegistry:ForcePublishSkillVersion", "airegistry:UpdateSkillBizTags",
                "airegistry:UpdateSkillLabels", "airegistry:OnlineSkill", "airegistry:OfflineSkill",
                "airegistry:UpdateSkillScope", "airegistry:GetSkillDetail",
                "airegistry:GetSkillVersionDetail", "airegistry:DownloadSkillVersion",
                "airegistry:ListSkills", "airegistry:DeleteSkill", "airegistry:UploadSkill",
                "airegistry:UploadSkillViaOss", "airegistry:DownloadSkillVersionViaOss"
            ],
            "Resource": [
                "acs:airegistry:*:*:instance/saas/${MSENamespaceId}",
                "acs:airegistry:*:*:instance/saas/${MSENamespaceId}/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "cms:ListWorkspaces", "cms:GetWorkspace", "cms:GetEntityStoreData", "cms:GetEntityStore",
                "cms:GetServiceObservability", "cms:DescribeIntranetRegions",
                "cms:DescribeVpcForIntranetSynthetic", "cms:DescribeVswitchForIntranetSynthetic",
                "cms:DescribeSecurityGroupForIntranetSynthetic", "cms:ListServices", "cms:CreateService",
                "cms:GetUmodelCommonSchemaRef", "cms:GetUmodel", "cms:UpsertUmodelCommonSchemaRef",
                "cms:UpsertUmodelData", "cms:ListAddons", "cms:GetAddon", "cms:GetAddonSchema",
                "cms:GetAddonCodeTemplate", "cms:GetAddonMetrics", "cms:GetAddonAlertTemplates",
                "cms:GetPrometheusUserSetting", "cms:GetCmsService", "cms:ListIntegrationPolicies",
                "cms:CreateIntegrationPolicy", "cms:CreateAddonRelease", "cms:GetAddonRelease",
                "cms:ListAddonReleases", "cms:ListIntegrationPolicyResources",
                "cms:ListIntegrationPolicyCollectors", "cms:ListPrometheusInstances",
                "cms:GetCloudResource", "cms:CreateCloudResource", "cms:GetCloudResourceData",
                "cms:ProxyApiForMemberAccount", "cms:CreateServiceObservability"
            ],
            "Resource": [
                "acs:cms:*:*:workspace/${CMSWorkspace}",
                "acs:cms:*:*:workspace/${CMSWorkspace}/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": "resourcecenter:GetResourceCenterServiceStatus",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "ram:CreateServiceLinkedRole",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ram:ServiceName": ["agentloop.aliyuncs.com"]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ram:PassRole",
            "Resource": "acs:ram::*:role/aliyunlogetlrole"
        }
    ]
}

Batasi izin hanya pada satu AgentSpace dengan operasi wildcard

Templat ini membatasi Resource persis seperti templat daftar izin eksplisit, tetapi mengganti daftar operasi SLS, CMS, dan AI Registry dengan wildcard log:*, cms:*, dan airegistry:*. Gunakan templat ini ketika Anda tidak perlu membagi operasi lebih lanjut dan lebih memilih pemeliharaan kebijakan yang lebih sederhana.

Wildcard tersebut mengizinkan semua operasi layanan tersebut dalam cakupan sumber daya yang sama, termasuk operasi yang tidak tercantum dalam daftar izin eksplisit. Jika model izin Anda menerapkan prinsip hak istimewa minimal, gunakan templat daftar izin eksplisit sebagai gantinya.

Seperti halnya templat daftar izin eksplisit, templat ini tidak mengizinkan agentloop:ListAgentSpaces pada semua AgentSpace. Agar Pengguna RAM dapat membuka halaman utama konsol AgentLoop, sambungkan juga kebijakan dalam Berikan akses ke halaman utama konsol AgentLoop.

Buat kebijakan kustom yang berisi pernyataan berikut:

{
    "Version": "1",
    "Statement": [
        {
            "Action": "agentloop:*",
            "Resource": [
                "acs:agentloop:*:*:agentspace/${AgentSpace}",
                "acs:agentloop:*:*:agentspace/${AgentSpace}/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": "log:*",
            "Resource": [
                "acs:log:*:*:project/${SLSProject}",
                "acs:log:*:*:project/${SLSProject}/*",
                "acs:log:*:*:project/${SLSTraceProject}/logstore/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": "airegistry:*",
            "Resource": [
                "acs:airegistry:*:*:instance/saas/${MSENamespaceId}",
                "acs:airegistry:*:*:instance/saas/${MSENamespaceId}/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": "cms:*",
            "Resource": [
                "acs:cms:*:*:workspace/${CMSWorkspace}",
                "acs:cms:*:*:workspace/${CMSWorkspace}/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": "resourcecenter:GetResourceCenterServiceStatus",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "ram:CreateServiceLinkedRole",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ram:ServiceName": ["agentloop.aliyuncs.com"]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ram:PassRole",
            "Resource": "acs:ram::*:role/aliyunlogetlrole"
        }
    ]
}

Berikan akses ke halaman utama konsol AgentLoop

Halaman utama konsol AgentLoop memanggil agentloop:ListAgentSpaces untuk menampilkan semua AgentSpace yang dimiliki akun saat ini. Kedua templat berskala tidak mengizinkan operasi ini pada semua AgentSpace, sehingga sambungkan kebijakan minimum berikut selain kebijakan berskala:

{
    "Version": "1",
    "Statement": [
        {
            "Action": "agentloop:ListAgentSpaces",
            "Resource": [
                "acs:agentloop:*:*:agentspace/*"
            ],
            "Effect": "Allow"
        }
    ]
}
Catatan

AgentSpace yang benar-benar terlihat oleh Pengguna RAM kemudian dibatasi lebih lanjut oleh kelompok sumber daya dan otorisasi tingkat sumber daya.

Pertimbangan

Sebelum menggunakan templat dalam topik ini untuk mengisolasi AgentSpace, pertimbangkan hal-hal berikut:

  • Pernyataan tingkat akun — Setiap templat mencakup pernyataan resourcecenter dan ram yang menggunakan "Resource": "*". Templat berskala tidak mempersempit kedua pernyataan ini hanya pada satu AgentSpace.

  • Cakupan Proyek Jejak SLS — Templat berskala memberikan izin Proyek SLS baik di tingkat proyek maupun di bawahnya, serta memberikan izin Proyek Jejak SLS hanya di tingkat penyimpanan log (Logstore).