Todos os produtos
Search
Central de documentação

AgentLoop:Restringir permissões do RAM para um AgentSpace específico

Última atualização: Aug 20, 2026

O AgentSpace é a menor unidade de isolamento de recursos e gerenciamento de permissões no AgentLoop. Use os modelos de política do RAM deste tópico para conceder permissões totais de gerenciamento do AgentLoop a um usuário ou grupo de usuários do RAM. Alternativamente, restrinja o acesso desse usuário ou grupo a um único AgentSpace, incluindo os recursos associados do Simple Log Service, Cloud Monitor e Microservices Engine. Os modelos com escopo mantêm o isolamento entre múltiplos AgentSpaces pertencentes à mesma conta Alibaba Cloud.

Como as permissões de um AgentSpace se relacionam aos recursos da cloud

Cada AgentSpace no AgentLoop está vinculado a um conjunto de recursos em outros services da Alibaba Cloud:

  • Simple Log Service (SLS) — O SLS Project e o SLS Trace Project associados ao AgentSpace.

  • Cloud Monitor (CMS) — O CMS Workspace associado ao AgentSpace.

  • Microservices Engine (MSE) e AI Registry — O MSE Namespace associado ao AgentSpace. No RAM, esse namespace é referenciado pelo prefixo de recurso airegistry, que abrange ativos como prompts e skills. O caminho do recurso airegistry usa o ID do MSE Namespace no formato saas/${MSENamespaceId}.

Portanto, restringir permissões a um AgentSpace específico significa limitar o escopo dos recursos agentloop, log, cms e airegistry em uma única política.

Escolha um modelo de política

A tabela a seguir associa cada cenário a um modelo e indica se também é necessário anexar a política da home do console.

Cenário

Modelo

Política da home do console

Conceder permissões totais de gerenciamento do AgentLoop e de todos os recursos associados a um usuário ou grupo de usuários do RAM

AgentLoopFullAccess

Não necessária. O modelo permite agentloop:* em todos os recursos, o que já cobre agentloop:ListAgentSpaces.

Restringir um usuário ou grupo de usuários do RAM a um único AgentSpace, permitindo apenas um conjunto definido de operações

Modelo com escopo e lista explícita de operações permitidas (Recomendado)

Necessária, além do modelo com escopo.

Restringir um usuário ou grupo de usuários do RAM a um único AgentSpace sem manter uma lista de operações

Modelo com escopo e operações com wildcard

Necessária, além do modelo com escopo.

Os dois modelos com escopo são alternativas entre si: anexe apenas um deles, nunca ambos.

Importante

Anexe o modelo AgentLoopFullAccess ou um dos modelos com escopo ao mesmo usuário ou grupo de usuários do RAM, mas nunca os dois simultaneamente. O AgentLoopFullAccess permite agentloop:* em todos os recursos; portanto, as permissões resultantes não ficam limitadas a um único AgentSpace.

Colete os valores de recursos necessários

Os modelos com escopo referenciam o AgentSpace alvo e seus recursos associados pelos valores reais. Colete os seguintes valores no Alibaba Cloud Management Console antes de criar a política.

Placeholder

Valor

Onde encontrar

${AgentSpace}

Nome do AgentSpace

No console do AgentLoop, abra a lista AgentSpace e, em seguida, a página de detalhes do AgentSpace desejado.

${CMSWorkspace}

Nome do CMS Workspace

No console do Cloud Monitor 2.0, abra a lista Workspace e selecione o workspace associado ao AgentSpace.

${MSENamespaceId}

ID do MSE Namespace

No console do MSE, abra a lista Namespace, selecione o namespace associado ao AgentSpace e copie seu Namespace ID.

${SLSProject}

SLS Project

No console do Simple Log Service, abra a lista Project e selecione o projeto associado ao AgentSpace.

${SLSTraceProject}

SLS Trace Project

No console do Simple Log Service, abra a lista Project e selecione o trace project associado ao AgentSpace.

Importante

Substitua todos os placeholders pelos valores coletados antes de anexar uma política com escopo. Uma política que ainda contenha placeholders não corresponderá a nenhum recurso e o acesso será negado.

Modelos de política

Todos os modelos neste tópico são políticas de permissão do RAM. Crie uma política personalizada no console do RAM com base no modelo escolhido e, em seguida, anexe-a a um usuário ou grupo de usuários do RAM.

Conceder permissões totais de gerenciamento (AgentLoopFullAccess)

O modelo AgentLoopFullAccess concede permissões totais de gerenciamento do AgentLoop e de todos os seus recursos associados. Anexe-o a um usuário ou grupo de usuários do RAM responsável por gerenciar todos os AgentSpaces da conta Alibaba Cloud.

Importante

Este modelo não limita as permissões a um único AgentSpace. Ele permite agentloop:* em todos os recursos do AgentLoop na conta, além de permitir as operações listadas do SLS, CMS e AI Registry em todos os recursos desses services.

Crie uma política personalizada contendo as seguintes instruções:

{
    "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"
        }
    ]
}

Limitar permissões a um único AgentSpace com lista explícita de operações permitidas (Recomendado)

Este modelo restringe o escopo de todas as instruções do AgentLoop, SLS, CMS e AI Registry ao AgentSpace alvo e aos seus recursos associados, permitindo apenas as operações listadas para cada service. Use esta opção quando precisar de controle refinado sobre o conjunto de operações permitidas.

Em comparação com o modelo AgentLoopFullAccess, as listas de operações permanecem inalteradas. Apenas o campo Resource difere: ele muda de * para os ARNs do AgentSpace alvo e de seus recursos associados. As instruções resourcecenter e ram concedem as mesmas permissões em ambos os modelos.

Este modelo não permite agentloop:ListAgentSpaces em todos os AgentSpaces. Para permitir que o usuário do RAM abra a home do console do AgentLoop, anexe também a política descrita em Grant access to the AgentLoop console home page.

Crie uma política personalizada contendo as seguintes instruções:

{
    "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"
        }
    ]
}

Limitar permissões a um único AgentSpace com operações usando wildcard

Este modelo define o escopo de Resource exatamente como o modelo de lista explícita, mas substitui as listas de operações do SLS, CMS e AI Registry pelos wildcards log:*, cms:* e airegistry:*. Use esta opção quando não for necessário subdividir operações e você preferir uma manutenção de política mais simples.

Os wildcards permitem todas as operações desses services dentro do mesmo escopo de recursos, incluindo aquelas omitidas na lista explícita. Caso seu modelo de permissões exija o princípio de menor privilégio, use o modelo de lista explícita.

Assim como no modelo de lista explícita, este modelo não permite agentloop:ListAgentSpaces em todos os AgentSpaces. Para permitir que o usuário do RAM abra a home do console do AgentLoop, anexe também a política descrita em Grant access to the AgentLoop console home page.

Crie uma política personalizada contendo as seguintes instruções:

{
    "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"
        }
    ]
}

Conceder acesso à home do console do AgentLoop

A home do console do AgentLoop chama agentloop:ListAgentSpaces para listar todos os AgentSpaces pertencentes à conta atual. Nenhum dos modelos com escopo permite essa operação em todos os AgentSpaces; portanto, anexe a seguinte política mínima além da política com escopo:

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

Os AgentSpaces que um usuário do RAM visualiza efetivamente são posteriormente filtrados por grupo de recursos e autorização no nível do recurso.

Considerações

Antes de usar os modelos deste tópico para isolar um AgentSpace, observe os pontos abaixo:

  • Instruções no nível da conta — Todos os modelos incluem instruções resourcecenter e ram que usam "Resource": "*". Os modelos com escopo não restringem essas duas instruções a um único AgentSpace.

  • Escopo do SLS Trace Project — Os modelos com escopo concedem permissão ao SLS Project tanto no nível do projeto quanto no nível inferior, enquanto concedem permissão ao SLS Trace Project apenas no nível do Logstore.