Todos os produtos
Search
Central de documentação

STAROps:Melhores práticas para políticas de permissão personalizadas do STAROps

Última atualização: Jul 02, 2026

Crie políticas de permissão personalizadas para o STAROps com base no princípio do menor privilégio. Os exemplos de política fornecidos aqui ajudam você a configurar rapidamente permissões de acesso precisas para funções como administradores de operações, engenheiros de operações gerais e desenvolvedores de Skills, reduzindo os riscos de segurança causados por excesso de permissões.

Visão geral da solução

Cenários aplicáveis

Esta solução se aplica aos seguintes cenários:

  • Colaboração multiusuário: Vários membros da equipe utilizam o STAROps em conjunto e necessitam de permissões de operação diferentes conforme suas responsabilidades.

  • Conformidade de segurança: É necessário seguir o princípio do menor privilégio para garantir que cada usuário RAM tenha apenas as permissões mínimas necessárias para concluir seu trabalho.

  • Isolamento de recursos: Vários Digital Employees atendem a diferentes linhas de negócios, e você precisa isolar as permissões de operação no nível do Digital Employee.

Pré-requisitos

  • Você já conhece o processo de criação de políticas de permissão personalizadas no console RAM. Para mais informações, consulte a documentação do RAM.

  • Você já sabe como conceder permissões a usuários RAM. Para mais detalhes, consulte a documentação do RAM.

Exemplos de políticas de permissão mínima para cenários típicos

Os exemplos de políticas de permissão mínima a seguir abrangem funções comuns em equipes. Copie-os diretamente ou ajuste-os conforme suas necessidades.

As políticas de permissão do STAROps exigem a concessão de Actions com os prefixos cms: e starops:. Para obter a lista completa de Actions e o formato de ARN de recurso, consulte a referência de API do STAROps e a documentação de ARN de recursos.

Administrador de operações (permissões totais para Digital Employees, sessões e Skills)

Cenário: O administrador de operações gerencia todo o ciclo de vida dos Digital Employees, incluindo criação, configuração e exclusão desses agentes, além de gerenciar Skills e sessões e interagir por chat com os Digital Employees.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cms:CreateDigitalEmployee",
        "cms:GetDigitalEmployee",
        "cms:ListDigitalEmployees",
        "cms:UpdateDigitalEmployee",
        "cms:DeleteDigitalEmployee",
        "cms:CreateDigitalEmployeeSkill",
        "cms:GetDigitalEmployeeSkill",
        "cms:ListDigitalEmployeeSkills",
        "cms:UpdateDigitalEmployeeSkill",
        "cms:DeleteDigitalEmployeeSkill",
        "cms:ListDigitalEmployeeSkillVersions",
        "cms:CreateThread",
        "cms:GetThread",
        "cms:GetThreadData",
        "cms:ListThreads",
        "cms:UpdateThread",
        "cms:DeleteThread",
        "cms:GetArtifact",
        "cms:ListArtifacts",
        "cms:CreateChat"
      ],
      "Resource": [
        "acs:cms:*:*:digitalemployee/*",
        "acs:cms:*:*:digitalemployee/*/skill/*",
        "acs:cms:*:*:digitalemployee/*/thread/*",
        "acs:cms:*:*:digitalemployee/*/artifact/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "ram:PassRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "acs:Service": "cloudmonitor.aliyuncs.com"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "cms:ListWorkspaces",
        "cms:GetWorkspace",
        "cms:GetEntityStore",
        "cms:GetEntityStoreData"
      ],
      "Resource": [
        "acs:cms:*:*:workspace/*",
        "acs:cms:*:*:workspace/*/entitystore"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "starops:CreateDigitalEmployee",
        "starops:GetDigitalEmployee",
        "starops:ListDigitalEmployees",
        "starops:UpdateDigitalEmployee",
        "starops:DeleteDigitalEmployee",
        "starops:CreateDigitalEmployeeSkill",
        "starops:GetDigitalEmployeeSkill",
        "starops:ListDigitalEmployeeSkills",
        "starops:UpdateDigitalEmployeeSkill",
        "starops:DeleteDigitalEmployeeSkill",
        "starops:ListDigitalEmployeeSkillVersions",
        "starops:CreateThread",
        "starops:GetThread",
        "starops:GetThreadData",
        "starops:ListThreads",
        "starops:UpdateThread",
        "starops:DeleteThread",
        "starops:GetArtifact",
        "starops:ListArtifacts",
        "starops:CreateChat"
      ],
      "Resource": [
        "acs:starops:*:*:digitalemployee/*",
        "acs:starops:*:*:digitalemployee/*/skill/*",
        "acs:starops:*:*:digitalemployee/*/thread/*",
        "acs:starops:*:*:digitalemployee/*/artifact/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "ram:PassRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "acs:Service": "operation-platform.aliyuncs.com"
        }
      }
    }
  ]
}

Engenheiro de operações gerais (apenas chat e visualização, sem gerenciamento)

Cenário: Engenheiros de operações gerais utilizam Digital Employees para conversas inteligentes no dia a dia (por exemplo, diagnóstico de falhas e análise de logs), mas não precisam criar ou modificar configurações de Digital Employees ou Skills.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cms:GetDigitalEmployee",
        "cms:ListDigitalEmployees",
        "cms:CreateChat",
        "cms:CreateThread",
        "cms:GetThread",
        "cms:GetThreadData",
        "cms:ListThreads",
        "cms:GetArtifact",
        "cms:ListArtifacts"
      ],
      "Resource": [
        "acs:cms:*:*:digitalemployee/*",
        "acs:cms:*:*:digitalemployee/*/thread/*",
        "acs:cms:*:*:digitalemployee/*/artifact/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "cms:ListWorkspaces",
        "cms:GetWorkspace",
        "cms:GetEntityStore",
        "cms:GetEntityStoreData"
      ],
      "Resource": [
        "acs:cms:*:*:workspace/*",
        "acs:cms:*:*:workspace/*/entitystore"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "starops:GetDigitalEmployee",
        "starops:ListDigitalEmployees",
        "starops:CreateThread",
        "starops:GetThread",
        "starops:GetThreadData",
        "starops:ListThreads",
        "starops:GetArtifact",
        "starops:ListArtifacts",
        "starops:CreateChat"
      ],
      "Resource": [
        "acs:starops:*:*:digitalemployee/*",
        "acs:starops:*:*:digitalemployee/*/thread/*",
        "acs:starops:*:*:digitalemployee/*/artifact/*"
      ]
    }
  ]
}
Nota

Esta política permite que os usuários visualizem a lista de Digital Employees, iniciem conversas e consultem registros de sessões, mas impede a criação, modificação ou exclusão de Digital Employees, Skills ou sessões. As permissões starops: garantem que os usuários consigam fazer login no console do STAROps.

Permissão restrita a um Digital Employee específico

Cenário: Diferentes linhas de negócio possuem um Digital Employee dedicado. Por exemplo, a Equipe A tem permissão para operar apenas o Digital Employee chamado ops-agent-a e não pode acessar os Digital Employees de outras equipes.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cms:GetDigitalEmployee",
        "cms:UpdateDigitalEmployee",
        "cms:CreateChat",
        "cms:CreateThread",
        "cms:GetThread",
        "cms:GetThreadData",
        "cms:ListThreads",
        "cms:UpdateThread",
        "cms:DeleteThread",
        "cms:GetDigitalEmployeeSkill",
        "cms:ListDigitalEmployeeSkills",
        "cms:ListDigitalEmployeeSkillVersions",
        "cms:GetArtifact",
        "cms:ListArtifacts"
      ],
      "Resource": [
        "acs:cms:*:*:digitalemployee/ops-agent-a",
        "acs:cms:*:*:digitalemployee/ops-agent-a/skill/*",
        "acs:cms:*:*:digitalemployee/ops-agent-a/thread/*",
        "acs:cms:*:*:digitalemployee/ops-agent-a/artifact/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "cms:ListDigitalEmployees",
        "cms:ListWorkspaces",
        "cms:GetWorkspace",
        "cms:GetEntityStore",
        "cms:GetEntityStoreData"
      ],
      "Resource": [
        "acs:cms:*:*:workspace/*",
        "acs:cms:*:*:workspace/*/entitystore"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "starops:GetDigitalEmployeeSkill",
        "starops:ListDigitalEmployeeSkills",
        "starops:ListDigitalEmployeeSkillVersions",
        "starops:CreateThread",
        "starops:GetThread",
        "starops:GetThreadData",
        "starops:ListThreads",
        "starops:UpdateThread",
        "starops:DeleteThread",
        "starops:GetArtifact",
        "starops:ListArtifacts",
        "starops:CreateChat"
      ],
      "Resource": [
        "acs:starops:*:*:digitalemployee/ops-agent-a",
        "acs:starops:*:*:digitalemployee/ops-agent-a/skill/*",
        "acs:starops:*:*:digitalemployee/ops-agent-a/thread/*",
        "acs:starops:*:*:digitalemployee/ops-agent-a/artifact/*"
      ]
    }
  ]
}

Substitua o caractere curinga * no campo Resource pelo nome de um Digital Employee específico (por exemplo, ops-agent-a) para alcançar o isolamento no nível de recurso. Tanto os campos Resource com prefixo cms: quanto starops: devem especificar o mesmo nome de Digital Employee. A action ListDigitalEmployees requer autorização sobre todos os recursos de Digital Employee; caso contrário, os usuários não conseguirão ver a lista de Digital Employees no console.

Operador de Missions de longa duração (gerenciamento de Missions)

Cenário: Operadores são responsáveis por criar e gerenciar Missions de longa duração.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "starops:CreateMission",
        "starops:GetMission",
        "starops:ListMissions",
        "starops:UpdateMission",
        "starops:DeleteMission",
        "starops:ListTasks",
        "starops:ListDigitalEmployees",
        "starops:ListThreads"
      ],
      "Resource": [
        "acs:starops:*:*:mission/*",
        "acs:starops:*:*:digitalemployee/*",
        "acs:starops:*:*:digitalemployee/*/thread/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "starops:GetArtifact",
        "starops:ListArtifacts"
      ],
      "Resource": "acs:starops:*:*:digitalemployee/*/artifact/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cms:CreateMission",
        "cms:GetMission",
        "cms:ListMissions",
        "cms:UpdateMission",
        "cms:DeleteMission",
        "cms:ListTasks",
        "cms:ListDigitalEmployees",
        "cms:ListThreads"
      ],
      "Resource": [
        "acs:cms:*:*:mission/*",
        "acs:cms:*:*:digitalemployee/*",
        "acs:cms:*:*:digitalemployee/*/thread/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "cms:GetArtifact",
        "cms:ListArtifacts"
      ],
      "Resource": "acs:cms:*:*:digitalemployee/*/artifact/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cms:ListWorkspaces",
        "cms:GetWorkspace"
      ],
      "Resource": "acs:cms:*:*:workspace/*"
    }
  ]
}

Leitura somente de Missions de longa duração (apenas visualização, sem criação ou modificação)

Cenário: Membros da equipe precisam visualizar o progresso de execução de Missions de longa duração, detalhes de tarefas e relatórios de artifacts, mas não têm permissão para criar, modificar ou excluir quaisquer Missions ou tarefas.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "starops:GetMission",
        "starops:ListMissions",
        "starops:ListTasks",
        "starops:ListDigitalEmployees",
        "starops:GetDigitalEmployee",
        "starops:ListThreads"
      ],
      "Resource": [
        "acs:starops:*:*:mission/*",
        "acs:starops:*:*:digitalemployee/*",
        "acs:starops:*:*:digitalemployee/*/thread/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "starops:GetArtifact",
        "starops:ListArtifacts"
      ],
      "Resource": [
        "acs:starops:*:*:digitalemployee/*/artifact/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "cms:GetMission",
        "cms:ListMissions",
        "cms:ListTasks",
        "cms:ListDigitalEmployees",
        "cms:GetDigitalEmployee",
        "cms:ListThreads"
      ],
      "Resource": [
        "acs:cms:*:*:mission/*",
        "acs:cms:*:*:digitalemployee/*",
        "acs:cms:*:*:digitalemployee/*/thread/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "cms:GetArtifact",
        "cms:ListArtifacts"
      ],
      "Resource": [
        "acs:cms:*:*:digitalemployee/*/artifact/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "cms:ListWorkspaces",
        "cms:GetWorkspace"
      ],
      "Resource": [
        "acs:cms:*:*:workspace/*"
      ]
    }
  ]
}

Recomendações de reforço de segurança

Siga estas recomendações de reforço de segurança para reduzir os riscos associados ao excesso de permissões.

Evite autorizações com caracteres curinga

O uso do caractere curinga * nos campos Action e Resource concede permissões excessivamente amplas. Sempre liste explicitamente as Actions necessárias e especifique ARNs de recursos concretos no campo Resource.

Prática

Exemplo

Nível de risco

Não recomendado

"Action": "cms:*"

Alto: Concede todas as operações do CMS, incluindo operações do Cloud Monitor não relacionadas ao STAROps.

Não recomendado

"Action": "cms:*DigitalEmployee*"

Médio: Caracteres curinga podem corresponder a Actions desconhecidas adicionadas no futuro.

Recomendado

Listar explicitamente cada Action

Baixo: Controle preciso com um escopo de permissão claro e auditável.

Utilize políticas Deny para restringir operações de alto risco

Para operações de exclusão irreversíveis, como DeleteDigitalEmployee e DeleteMission, utilize políticas Deny explícitas para restringi-las. Mesmo que um usuário tenha recebido outras políticas de permissão amplas, ele não conseguirá executar operações de exclusão.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "cms:DeleteDigitalEmployee",
        "cms:DeleteDigitalEmployeeSkill",
        "cms:DeleteThread",
        "cms:DeleteMission"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Deny",
      "Action": [
        "starops:DeleteDigitalEmployeeSkill",
        "starops:DeleteThread",
        "starops:DeleteDigitalEmployeeSkill",
        "starops:DeleteMission"
      ],
      "Resource": "*"
    }
  ]
}

Crie esta política Deny como uma política de permissão independente (por exemplo, chamada starops-deny-delete-policy) e anexe-a aos usuários RAM ou grupos de usuários que precisam ser restringidos. O efeito Deny sempre tem precedência sobre Allow e funciona como uma rede de proteção de segurança. Certifique-se de negar operações de exclusão tanto para os prefixos cms: quanto starops: para evitar exclusões por qualquer um dos caminhos.

Audite regularmente as políticas de permissão

Revise periodicamente suas políticas de permissão personalizadas para garantir que as atribuições de permissão correspondam às responsabilidades reais dos membros da equipe.

  • Frequência de auditoria: Realize auditorias pelo menos uma vez por trimestre ou imediatamente quando membros da equipe forem contratados, desligados ou mudarem de função.

  • Áreas de foco:

    • Verifique se ex-funcionários ou colaboradores transferidos ainda possuem permissões de escrita.

    • Identifique se alguma política utiliza o caractere curinga * sem uma rede de proteção via Deny.

    • Analise se algum usuário RAM possui múltiplas políticas de permissão que resultem em permissões combinadas excessivas.

  • Ferramenta de auditoria: Utilize o ActionTrail para visualizar os registros reais de operações em recursos do STAROps e avaliar se as permissões são adequadas.