Todos los productos
Search
Centro de documentos

AgentLoop:Restringir permisos de RAM para un AgentSpace específico

Última actualización: Sep 06, 2026

Un AgentSpace es la unidad más pequeña de aislamiento de recursos y gestión de permisos en AgentLoop. Use las plantillas de políticas de RAM de este tema para otorgar permisos de administración completos sobre AgentLoop a un usuario o grupo de usuarios de RAM. También puede restringir ese usuario o grupo a un solo AgentSpace, junto con los recursos de Simple Log Service, Cloud Monitor y Microservices Engine asociados a él. Las plantillas con alcance definido mantienen aislados entre sí varios AgentSpaces que pertenecen a la misma cuenta de Alibaba Cloud.

Cómo se asignan los permisos de un AgentSpace a los recursos en la nube

Cada AgentSpace en AgentLoop se asocia con un conjunto de recursos en otros servicios de Alibaba Cloud:

  • Simple Log Service (SLS) — El SLS Project y el SLS Trace Project asociados al AgentSpace.

  • Cloud Monitor (CMS) — El CMS Workspace asociado al AgentSpace.

  • Microservices Engine (MSE) y AI Registry — El MSE Namespace asociado al AgentSpace. En RAM, el namespace se identifica con el prefijo de recurso airegistry, el cual abarca elementos como prompts y skills. La ruta del recurso airegistry usa el ID del MSE Namespace con el formato saas/${MSENamespaceId}.

Por lo tanto, restringir los permisos de un AgentSpace específico significa limitar los recursos agentloop, log, cms y airegistry dentro de una sola política.

Elegir una plantilla de política

A continuación se muestra una tabla que relaciona cada escenario con una plantilla e indica si también debe adjuntarse la política de la página principal de la consola.

Escenario

Plantilla

Política de la página principal de la consola

Otorgar a un usuario o grupo de usuarios de RAM permisos de administración completos sobre AgentLoop y todos sus recursos asociados

AgentLoopFullAccess

No es obligatoria. La plantilla permite agentloop:* en todos los recursos, lo cual incluye agentloop:ListAgentSpaces.

Restringir a un usuario o grupo de usuarios de RAM a un solo AgentSpace y permitir únicamente un conjunto definido de operaciones

Plantilla con alcance definido y lista de permitidos explícita de operaciones (recomendada)

Obligatoria, además de la plantilla con alcance definido.

Restringir a un usuario o grupo de usuarios de RAM a un solo AgentSpace sin mantener una lista de operaciones

Plantilla con alcance definido y operaciones con comodines

Obligatoria, además de la plantilla con alcance definido.

Las dos plantillas con alcance definido son alternativas entre sí: adjunte solo una de ellas, no ambas.

Importante

Adjunte la plantilla AgentLoopFullAccess o bien una plantilla con alcance definido al mismo usuario o grupo de usuarios de RAM, nunca ambas. AgentLoopFullAccess permite agentloop:* en todos los recursos, por lo que los permisos resultantes no se limitan a un solo AgentSpace.

Recopilar los valores de recursos obligatorios

Las plantillas con alcance definido hacen referencia al AgentSpace de destino y a sus recursos asociados mediante sus valores reales. Recopile los siguientes valores desde la Alibaba Cloud Management Console antes de crear la política.

Marcador de posición

Valor

Dónde encontrarlo

${AgentSpace}

Nombre del AgentSpace

En la consola de AgentLoop, abra la lista AgentSpace y luego la página de detalles del AgentSpace de destino.

${CMSWorkspace}

Nombre del CMS Workspace

En la consola de Cloud Monitor 2.0, abra la lista Workspace y seleccione el workspace asociado al AgentSpace.

${MSENamespaceId}

ID del MSE Namespace

En la consola de MSE, abra la lista Namespace, seleccione el namespace asociado al AgentSpace y copie su Namespace ID.

${SLSProject}

SLS Project

En la consola de Simple Log Service, abra la lista Project y seleccione el project asociado al AgentSpace.

${SLSTraceProject}

SLS Trace Project

En la consola de Simple Log Service, abra la lista Project y seleccione el trace project asociado al AgentSpace.

Importante

Reemplace cada marcador de posición con el valor recopilado antes de adjuntar una política con alcance definido. Una política que aún contenga marcadores de posición no coincidirá con ningún recurso y el acceso se denegará.

Plantillas de políticas

Todas las plantillas de este tema son políticas de permisos de RAM. Cree una política personalizada en la consola de RAM a partir de la plantilla que elija y después adjúntela a un usuario o grupo de usuarios de RAM.

Otorgar permisos de administración completos (AgentLoopFullAccess)

La plantilla AgentLoopFullAccess otorga permisos de administración completos sobre AgentLoop y todos sus recursos asociados. Adjúntela a un usuario o grupo de usuarios de RAM que gestione todos los AgentSpaces de la cuenta de Alibaba Cloud.

Importante

Esta plantilla no limita los permisos a un solo AgentSpace. Permite agentloop:* en todos los recursos de AgentLoop de la cuenta y autoriza las operaciones listadas de SLS, CMS y AI Registry en todos los recursos de dichos servicios.

Cree una política personalizada que contenga las siguientes instrucciones:

{
    "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 permisos a un solo AgentSpace con una lista de permitidos explícita de operaciones (recomendado)

Esta plantilla limita cada instrucción de AgentLoop, SLS, CMS y AI Registry al AgentSpace de destino y a sus recursos asociados. Además, permite únicamente las operaciones listadas para cada servicio. Úsela cuando necesite un control detallado sobre el conjunto de operaciones permitidas.

En comparación con la plantilla AgentLoopFullAccess, las listas de operaciones no cambian. Solo difiere el campo Resource: pasa de * a los ARN del AgentSpace de destino y de sus recursos asociados. Las instrucciones resourcecenter y ram otorgan los mismos permisos en ambas plantillas.

Esta plantilla no permite agentloop:ListAgentSpaces en todos los AgentSpaces. Para que el usuario de RAM pueda abrir la página principal de la consola de AgentLoop, adjunte también la política descrita en Grant access to the AgentLoop console home page.

Cree una política personalizada que contenga las siguientes instrucciones:

{
    "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 permisos a un solo AgentSpace con operaciones con comodines

Esta plantilla define el campo Resource exactamente igual que la plantilla de lista de permitidos explícita, pero reemplaza las listas de operaciones de SLS, CMS y AI Registry con los comodines log:*, cms:* y airegistry:*. Úsela cuando no necesite subdividir las operaciones y prefiera un mantenimiento más sencillo de la política.

Los comodines permiten cualquier operación de esos servicios dentro del mismo alcance de recursos, incluidas las operaciones que la lista de permitidos explícita omite. Si su modelo de permisos exige el privilegio mínimo, utilice mejor la plantilla de lista de permitidos explícita.

Al igual que la plantilla de lista de permitidos explícita, esta plantilla no permite agentloop:ListAgentSpaces en todos los AgentSpaces. Para que el usuario de RAM pueda abrir la página principal de la consola de AgentLoop, adjunte también la política descrita en Grant access to the AgentLoop console home page.

Cree una política personalizada que contenga las siguientes instrucciones:

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

Otorgar acceso a la página principal de la consola de AgentLoop

La página principal de la consola de AgentLoop llama a agentloop:ListAgentSpaces para listar todos los AgentSpaces que pertenecen a la cuenta actual. Ninguna de las plantillas con alcance definido permite esta operación en todos los AgentSpaces, así que adjunte la siguiente política mínima además de la política con alcance definido:

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

Después, los AgentSpaces que realmente ve un usuario de RAM se filtran mediante el resource group y la autorización a nivel de recurso.

Consideraciones

Antes de usar las plantillas de este tema para aislar un AgentSpace, tenga en cuenta lo siguiente:

  • Instrucciones a nivel de cuenta — Cada plantilla incluye instrucciones resourcecenter y ram que usan "Resource": "*". Las plantillas con alcance definido no limitan estas dos instrucciones a un solo AgentSpace.

  • Alcance del SLS Trace Project — Las plantillas con alcance definido otorgan permisos sobre el SLS Project tanto a nivel de proyecto como en el nivel inferior, mientras que otorgan permisos sobre el SLS Trace Project únicamente a nivel de logstore.