鉴权规则

日志服务支持通过权限策略实现RAM用户授权、RAM角色授权、标签鉴权以及跨云服务授权。本文介绍了日志服务支持的权限策略的Action、Resource,适用于精细化控制权限。

权限策略(Policy)

权限策略是用语法结构描述的一组权限的集合,可以精确地描述被授权的资源集、操作集以及授权条件。RAM支持的权限策略基本元素和语言规范,请参见权限策略基本元素权限策略语法和结构

RAM支持以下两种权限策略:

  • 阿里云管理的系统权限策略:统一由阿里云创建,用户只能使用,不能修改,策略的版本更新由阿里云维护。

  • 用户管理的自定义权限策略:用户可以自主创建、更新和删除,策略的版本更新由用户自己维护。

通过为RAM身份绑定权限策略,可以获得权限策略中指定的访问权限。具体操作,请参见为RAM用户授权为RAM用户组授权为RAM角色授权

权限策略基本元素

权限策略的概念和语法的更多信息,请参见权限策略基本元素

元素名称

描述

效果(Effect)

授权效果包括两种:允许(Allow)和拒绝(Deny)。

操作(Action)

操作是指对具体资源的操作。

资源(Resource)

资源是指被授权的具体对象。

条件(Condition)

条件是指授权生效的条件。

授权主体(Principal)

授权主体是指允许或拒绝访问资源的主体,仅适用于基于资源的策略。例如:RAM角色的信任策略。

授权操作流程

  1. 创建账号管理员

    阿里云账号(主账号)对账号中的资源具有完全管理权限,且无法进行条件限制(例如:访问来源IP地址、访问时间等),多人共用时也无法在操作日志中区分出具体使用人,一旦泄露风险极大,强烈建议您不要使用阿里云账号(主账号)进行日常运维管理。

    您可以在RAM中创建一个RAM用户,授予AdministratorAccess权限,充当账号管理员,该管理员可以对账号下所有云资源进行管控操作。后续您可以通过该管理员创建多个RAM用户,进行分权管理。

  2. 创建自定义权限策略

    RAM提供了两种权限策略:系统权限策略和自定义权限策略。系统权限策略由阿里云统一提供,可以查看、不能修改。如果系统权限策略不能满足您的授权需求,您可以按需创建自定义权限策略,实现精细化权限管理。

  3. 创建RAM用户或RAM角色并进行授权:

    • 创建RAM用户并授权

      您可以创建RAM用户并为其授权,实现不同RAM用户拥有不同资源访问权限的目的。

      当您的企业存在多用户协同访问资源的场景时,使用RAM可以按需为用户分配最小权限,避免多用户共享阿里云账号(主账号)密码或访问密钥,从而降低企业的安全风险。

    • 创建RAM用户组并授权

      RAM用户组是RAM中的一种实体身份类型,RAM用户组可以对职责相同的RAM用户进行分类并授权,从而更高效地管理RAM用户及其权限。

    • 创建RAM角色并授权

      RAM角色是一种虚拟用户,可以被授予一组权限策略。与RAM用户不同,RAM角色没有永久身份凭证(登录密码或访问密钥),需要被一个可信实体扮演。扮演成功后,可信实体将获得RAM角色的临时身份凭证,即安全令牌(STS Token),使用该安全令牌就能以RAM角色身份访问被授权的资源。使用RAM角色的操作步骤,请参见扮演RAM角色

Action

Action的格式统一为log:${API名称},其中${API名称}为日志服务的API名称。日志服务公开提供的所有云端API,请参见API概览

在创建日志服务授权策略时,多个Action以英文逗号(,)分隔,支持使用星号(*)通配符。例如log:Create*Create*通配以Create开头的API名称,例如CreateProductCreateThingModelCreateProductTopic

重要

GetCursorGetCursorTime这两个API对应的Action相同,即log:GetCursorOrData

Resource

Log Service中的资源具有层级关系。Project是根资源,Logstore、config、machinegroup是Project的子资源且相互之间平级,shipper和consumergroup是Logstore的子资源。

资源类型

授权策略中的资源描述方式

Project

acs:log:${regionName}:${uid}:project/${projectName}

acs:log:${regionName}:${uid}:project/*

Project:Logstore

acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}

acs:log:${regionName}:${uid}:project/${projectName}/logstore/*

Project:Logstore:Shipper

acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}/shipper/${shipperName}

acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}/shipper/*

Project:Config

acs:log:${regionName}:${uid}:project/${projectName}/logtailconfig/${logtailConfigName}

acs:log:${regionName}:${uid}:project/${projectName}/logtailconfig/*

Project:MachineGroup

acs:log:${regionName}:${uid}:project/${projectName}/machinegroup/${machineGroupName}

acs:log:${regionName}:${uid}:project/${projectName}/machinegroup/*

Project:ConsumerGroup

acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}/consumergroup/${consumerGroupName}

acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}/consumergroup/*

Project:SavedSearch

acs:log:${regionName}:${uid}:project/${projectName}/savedsearch/${savedSearchName}

acs:log:${regionName}:${uid}:project/${projectName}/savedsearch/*

Project:Dashboard

acs:log:${regionName}:${uid}:project/${projectName}/dashboard/${dashboardName}

acs:log:${regionName}:${uid}:project/${projectName}/dashboard/*

Project:Alarm

acs:log:${regionName}:${uid}:project/${projectName}/alert/${alarmName}

acs:log:${regionName}:${uid}:project/${projectName}/alert/*

泛指模式

acs:log:${regionName}:${uid}:*

acs:log:*:${uid}:*

参数说明

参数名称

说明

${regionName}

某个region的名称。

${uid}

阿里云账号ID。

${projectName}

Project的名称。

${logstoreName}

Logstore的名称。

${logtailconfig}

Logtail配置的名称。

${machineGroupName}

机器组的名称。

${shipperName}

日志投递规则的名称。

${consumerGroupName}

协同消费组的名称。

${savedSearchName}

快速查询的名称。

${dashboardName}

仪表盘的名称。

${alarmName}

报警规则的名称。