日志服务RAM访问控制权限配置

在使用日志服务时,对不同的使用人员您可能需要配置不同的访问权限,此时主账号使用者可以通过对RAM设置不同的权限策略来实现对日志服务资源的访问控制。本文将介绍日志服务中使用各功能所需要的权限。

说明

若您使用RAM,请根据需要向主账号使用者申请权限策略。授权操作请参考RAM用户授权

系统权限策略

系统权限策略统一由阿里云创建,策略的版本更新由阿里云维护,用户只能使用不能修改。日志服务的系统权限策略如下:

  • AliyunLogFullAccess:授予管理日志服务的权限。

  • AliyunLogReadOnlyAccess:授予只读访问日志服务的权限。

自定义策略

自定义策略由用户管理,策略的版本更新由用户维护。用户可以自主创建、更新和删除自定义策略。当系统策略无法满足您的需求时,您可以通过创建自定义权限策略实现精细化权限管理。

关于自定义权限策略的内容,日志服务提供权限助手功能简化权限策略配置的获取。

权限助手获取策略配置的操作步骤

  1. 登录日志服务控制台,在Project列表中单击目标Project。

  2. 在左侧导航栏中,选择其他 > 权限助手

  3. 权限助手页面,完成如下配置,并单击下一步

    • 普通项目:普通项目模式包括日志服务的所有功能模块权限的配置。

      参数

      说明

      预设角色选择

      不同的角色已配置不同的功能模块,您可以根据需求选择已预设的角色,也可以自定义选择功能模块。

      功能模块的权限包括管理权限和只读权限,请根据需求选择。

      资源

      配置功能模块的权限后,您可以配置权限能使用的资源。项目名称和Logstore名称支持用*号表示,例如:

      • 拥有如下权限的用户或角色能操作日志服务的所有资源。

        "Action": "log:*",
        "Resource": "*",
      • 拥有如下权限的用户或角色只能操作project01项目下的资源。

        • acs:log:*:*:project/project01
        • acs:log:*:*:project/project01/*
      • 拥有如下权限的用户或角色只能操作project01项目下logstore01日志库下的资源。

        • acs:log:*:*:project/project01/logstore/logstore01
        • acs:log:*:*:project/project01/logstore/logstore01/*

      限制条件

      根据需求配置限制条件。更多信息,请参见权限策略基本元素

    • APP:APP模式包括成本管家、日志审计服务和K8s事件中心的权限配置。

      配置项

      说明

      APP列表

      请根据需求选择您要配置的APP及其权限,权限包括允许和禁止。

      预设角色选择

      APP的权限选择允许时,会自动选中相关的功能模块,您也可以自定义选择。

      功能模块的权限包括管理权限和只读权限,请根据需求选择。

      资源

      系统根据已选择的APP指定资源,无法修改。

      限制条件

      根据需求配置限制条件。更多信息,请参见权限策略基本元素

  4. 预览权限策略确认规则信息,复制授权策略,参考创建自定义权限策略进行配置。

您也可以参考日志服务操作列表进行配置,相关操作如下:

操作类型

操作

描述

读操作

log:GetAlert

获取告警规则

读操作

log:GetAppliedConfigs

获取已应用的Logtail配置列表

读操作

log:GetAppliedMachineGroups

通过Logtail配置获取已绑定的机器组

读操作

log:GetConfig

获取Logtail采集配置

读操作

log:GetCursorOrData

通过时间查询Cursor

读操作

log:GetDashboard

获取指定仪表盘

读操作

log:GetETL

获取数据加工任务

读操作

log:GetIndex

获取索引

读操作

log:GetLogging

获取服务日志信息

读操作

log:GetLogStore

查看Logstore信息

读操作

log:GetLogStoreLogs

查看Logstore监控日志

读操作

log:GetLogStoreMeteringMode

查询Logstore计量模式

读操作

log:GetLogtailPipelineConfig

获取Logtail流水线配置

读操作

log:GetMachineGroup

获取机器组配置

读操作

log:GetProject

获取指定Project

读操作

log:GetProjectPolicy

查询Project授权策略

读操作

log:GetSavedSearch

获取指定快速查询

读操作

log:GetScheduledSQL

获取定时SQL任务

读操作

log:GetStoreView

查询指定数据集

读操作

log:GetStoreViewIndex

查询指定数据集索引配置

读操作

log:ListConsumerGroup

查询消费组

读操作

log:ListDomains

查询自定义域名

读操作

log:ListLogStores

列出Logstore

读操作

log:ListMachineGroup

查询Project下的机器组

读操作

log:ListMachines

查询机器组中的机器列表

读操作

log:ListProject

列出Project信息

读操作

log:ListSavedSearch

查询快速查询

读操作

log:ListShards

查询Shard列表

读操作

log:ListTagResources

列出资源标签

读操作

log:ListProjectsInRecycleBin

查询Project回收站

写操作

log::PutProjectTransferAcceleration

设置传输加速功能

写操作

log:ChangeResourceGroup

修改资源组

写操作

log:ConsumerGroupHeartBeat

消费者发送心跳到服务端

写操作

log:ConsumerGroupUpdateCheckPoint

更新消费进度

写操作

log:CreateConfig

创建Logtail采集配置

写操作

log:CreateConsumerGroup

创建消费组

写操作

log:CreateDashboard

创建仪表盘

写操作

log:CreateDomain

创建自定义域名

写操作

log:CreateIndex

创建索引

写操作

log:CreateLogging

创建服务日志

写操作

log:CreateLogStore

创建Logstore

写操作

log:CreateLogtailPipelineConfig

创建Logtail流水线配置

写操作

log:CreateMachineGroup

创建机器组

写操作

log:CreateMetricStore

创建时序库

写操作

log:CreateProject

创建Project

写操作

log:CreateSavedSearch

创建快速查询

写操作

log:CreateScheduledSQL

创建定时SQL任务

写操作

log:CreateSqlInstance

创建SQL独享实例

写操作

log:CreateStoreView

创建数据集

写操作

log:DeleteAlert

删除告警规则

写操作

log:DeleteConfig

删除Logtail配置

写操作

log:DeleteConsumerGroup

删除消费组

写操作

log:DeleteDashboard

删除仪表盘

写操作

log:DeleteDomain

删除自定义域名

写操作

log:DeleteIndex

删除索引

写操作

log:DeleteLogStore

删除Logstore

写操作

log:DeleteMachineGroup

删除机器组

写操作

log:DeleteProject

删除指定Project

写操作

log:DeleteProjectPolicy

删除Project授权策略

写操作

log:DeleteSavedSearch

删除快速查询

写操作

log:DeleteScheduledSQL

删除定时SQL任务

写操作

log:DeleteStoreView

删除数据集

写操作

log:DisableAlert

关闭告警规则

写操作

log:DisableScheduledSQL

关闭定时SQL

写操作

log:EnableAlert

开启告警规则

写操作

log:EnableScheduledSQL

开启定时SQL

写操作

log:GetSqlInstance

查询SQL独享实例

写操作

log:ListScheduledSQLs

列出定时SQL任务

写操作

log:MergeShard

合并Shard

写操作

log:PostLogStoreLogs

写入日志

写操作

log:PutProjectPolicy

创建Project授权策略

写操作

log:SplitShard

分裂Shard

写操作

log:TagResources

绑定标签

写操作

log:UntagResources

解绑标签

写操作

log:UpdateConfig

更新Logtail采集配置

写操作

log:UpdateConsumerGroup

更新消费者组

写操作

log:UpdateDashboard

更新仪表盘

写操作

log:UpdateIndex

更新索引

写操作

log:UpdateLogging

更新服务日志配置

写操作

log:UpdateLogStore

更新Logstore

写操作

log:UpdateLogStoreMeteringMode

更新Logstore计量模式

写操作

log:UpdateLogtailPipelineConfig

更新Logtail流水线配置

写操作

log:UpdateMachineGroup

修改机器组

写操作

log:UpdateMachineGroupMachine

修改机器组机器列表

写操作

log:UpdateProject

更新Project

写操作

log:UpdateSavedSearch

更新快速查询

写操作

log:UpdateScheduledSQL

更新定时SQL任务

写操作

log:UpdateSqlInstance

更新SQL独享实例

写操作

log:UpdateStoreView

更新数据集配置

列表操作

log:ListConfig

查询Logtail配置列表

列表操作

log:ListDashboard

查询仪表盘

列表操作

log:ListDownloadJobs

列出日志下载任务

列表操作

log:ListETLs

列出数据加工任务

列表操作

log:ListOSSExports

列出OSS投递任务

列表操作

log:ListOSSHDFSExports

列出OSS-HDFS投递任务

列表操作

log:ListOSSIngestions

列出OSS导入任务

列表操作

log:ListStoreViews

查询数据集列表

常见自定义权限策略场景及示例

Project列表的查看权限

使用阿里云账号授予RAM用户以下权限:

  • RAM用户具备当前阿里云账号下的Project列表的查看权限。

满足上述权限的权限策略如下:

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:ListProject"
      ],
      "Resource": [
        "acs:log:*:*:project/*"
      ],
      "Effect": "Allow"
    }
  ]
}

Project只读权限

使用阿里云账号授予RAM用户以下权限:

  • RAM用户具备当前阿里云账号下的Project列表的查看权限。

  • RAM用户具备当前阿里云账号下指定的Project的只读权限。

说明

如果只授予Project只读权限,则该RAM用户仍无权限查看Project下的日志,还需授予Logstore只读权限。

同时满足上述权限的权限策略如下:

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["log:ListProject"],
       "Resource": ["acs:log:*:*:project/*"],
       "Effect": "Allow"
      },
     {
       "Action": [
         "log:Get*",
         "log:List*"
       ],
       "Resource": "acs:log:*:*:project/<指定的Project名称>/*",
       "Effect": "Allow"
     }
   ]
 }

指定Logstore的只读权限和快速查询的创建、使用权限

使用阿里云账号授予RAM用户以下权限:

  • RAM用户具备当前阿里云账号下的Project列表的查看权限。

  • RAM用户具备指定的Logstore的只读权限,同时具备创建并管理快速查询的权限。

同时满足上述权限的权限策略如下:

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:ListProject"
      ],
      "Resource": "acs:log:*:*:project/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:List*"
      ],
      "Resource": "acs:log:*:*:project/<指定的Project名称>/logstore/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:Get*",
        "log:List*"
      ],
      "Resource": [
        "acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:List*"
      ],
      "Resource": [
        "acs:log:*:*:project/<指定的Project名称>/dashboard",
        "acs:log:*:*:project/<指定的Project名称>/dashboard/*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:Get*",
        "log:List*",
        "log:Create*"
      ],
      "Resource": [
        "acs:log:*:*:project/<指定的Project名称>/savedsearch",
        "acs:log:*:*:project/<指定的Project名称>/savedsearch/*"
      ],
      "Effect": "Allow"
    }
  ]
}

指定Logstore的只读权限及指定Project中快速查询和仪表盘的只读权限

使用阿里云账号授予RAM用户以下权限:

  • RAM用户具备当前阿里云账号下的Project列表的查看权限。

  • RAM用户具备指定的Logstore的只读权限,同时具备查看该Logstore所属的Project中所有的快速查询和仪表盘列表的权限。

同时满足上述权限的权限策略如下:

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:ListProject"
      ],
      "Resource": "acs:log:*:*:project/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:List*"
      ],
      "Resource": "acs:log:*:*:project/<指定的Project名称>/logstore/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:Get*",
        "log:List*"
      ],
      "Resource": [
        "acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:Get*",
        "log:List*"
      ],
      "Resource": [
        "acs:log:*:*:project/<指定的Project名称>/dashboard",
        "acs:log:*:*:project/<指定的Project名称>/dashboard/*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:Get*",
        "log:List*"
      ],
      "Resource": [
        "acs:log:*:*:project/<指定的Project名称>/savedsearch",
        "acs:log:*:*:project/<指定的Project名称>/savedsearch/*"
      ],
      "Effect": "Allow"
    }
  ]
}

指定Project的写入权限

授予RAM用户向指定Project写入数据的权限,不包含查询等其他操作权限。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:Post*"
      ],
      "Resource": "acs:log:*:*:project/<指定的project名称>/*",
      "Effect": "Allow"
    }
  ]
}

指定Logstore的写入权限

授予RAM用户向指定Logstore写入数据的权限,不包含查询等其他操作权限。

{
  "Version":"1",
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "log:PostLogStoreLogs"
      ],
      "Resource":[
        "acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>"
      ]
    }
  ]
}

指定Project的消费权限

授予RAM用户消费指定Project数据的权限,不包含数据写入、查询等其他操作权限。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:ListShards",
        "log:GetCursorOrData",
        "log:GetConsumerGroupCheckPoint",
        "log:UpdateConsumerGroup",
        "log:ConsumerGroupHeartBeat",
        "log:ConsumerGroupUpdateCheckPoint",
        "log:ListConsumerGroup",
        "log:CreateConsumerGroup"
      ],
      "Resource": "acs:log:*:*:project/<指定的project名称>/*",
      "Effect": "Allow"
    }
  ]
}

指定Logstore的消费权限

授予RAM用户消费指定Logstore数据的权限,不包含数据写入、查询等其他操作权限。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:ListShards",
        "log:GetCursorOrData",
        "log:GetConsumerGroupCheckPoint",
        "log:UpdateConsumerGroup",
        "log:ConsumerGroupHeartBeat",
        "log:ConsumerGroupUpdateCheckPoint",
        "log:ListConsumerGroup",
        "log:CreateConsumerGroup"
      ],
      "Resource": [
        "acs:log:*:*:project/<指定的project名称>/logstore/<指定的Logstore名称>",
        "acs:log:*:*:project/<指定的project名称>/logstore/<指定的Logstore名称>/*"
      ],
      "Effect": "Allow"
    }
  ]
}

指定Logstore必须启用加密配置

授予RAM用户该权限策略后,RAM用户创建或者修改Logstore时必须指定加密配置。 未授予该权限策略的RAM用户,创建或修改Logstore时无需指定加密配置。

说明

您可以自行指定Project名称和Logstore名称,也可以用星号(*)进行模糊匹配。

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "log:CreateLogStore",
        "log:UpdateLogStore"
      ],
      "Resource": [
        "acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>",
        "acs:log:*:*:project/<指定的project名称>/logstore/*"
      ],
      "Condition": {
        "Bool": {
          "log:Encrypted": "true"
        }
      }
    }
  ]
}

使用日志应用所需的权限

如果使用了以下日志应用或功能,需要对子账号或者角色授予相应的权限。

  • 通用数据库审计

  • 移动运维监控

  • Flowlog日志中心

  • 日志分析 For AWS CloudTrail

  • SREWorks

  • 通用主机审计

  • 智能异常分析

  • 应用自定义仪表盘

  • 仪表盘演示列表

以下是使用日志应用所需的权限配置。

  • 只读权限

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "log:GetResource",
                    "log:ListResources",
                    "log:GetResourceRecord",
                    "log:ListResourceRecords"
                ],
                "Resource": [
                    "acs:log:*:*:resource/*"
                ]
            }
        ]
    }
  • 管理权限

    {
        "Version": "1",
        "Statement": [
              {
          "Effect": "Allow",
          "Action": [
            "log:*"
          ],
          "Resource": [
            "acs:log:*:*:resource/*"
          ]
        }
        ]
    }