全部產品
Search
文件中心

Simple Log Service:授予RAM使用者警示操作許可權

更新時間:Sep 05, 2024

本文指導如何為阿里雲RAM使用者授予警示操作許可權,並介紹在配置跨Project、地區和阿里雲帳號監控日誌時,如何配置授權。

前提條件

已建立RAM使用者。具體操作,請參見建立RAM使用者

授予RAM使用者警示唯讀許可權

方式一:授予系統權限原則

使用阿里雲帳號(主帳號)登入RAM控制台,為RAM使用者授予警示唯讀系統管理權限(AliyunLogReadOnlyAccess)。具體操作,請參見為RAM使用者授權

方式二:建立自訂權限原則進行授權

  1. 使用阿里雲帳號(主帳號)或Resource Access Management員登入RAM控制台

  2. 建立權限原則。

    1. 在左側導覽列中,選擇許可權管理 > 權限原則

    2. 單擊建立權限原則

    3. 指令碼編輯頁簽,將配置框中的原有指令碼替換為如下內容,然後單擊繼續編輯基本資料

      說明
      • Project名稱表示用於唯讀警示資料的Project,請根據實際情況替換。

      • sls-alert-*表示當前阿里雲帳號下所有的全域警示中心Project。全域警示中心Project中包含該帳號下所有警示規則的評估資料、發送的日誌和警示相關的全域報表等。如果您不需要查看全域報表資訊,可以在資源清單中刪除acs:log:*:*:project/sls-alert-*/*

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "log:GetLogStore"
            ],
            "Resource": [
              "acs:log:*:*:project/Project名稱/logstore/internal-alert-history",
              "acs:log:*:*:project/sls-alert-*/logstore/internal-alert-center-log"
            ]
          },
          {
            "Effect": "Allow",
            "Action": [
              "log:GetJob",
              "log:ListJobs"
            ],
            "Resource": "acs:log:*:*:project/Project名稱/job/*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "log:GetProject"
            ],
            "Resource": [
              "acs:log:*:*:project/sls-alert-*"
            ]
          },
          {
            "Effect": "Allow",
            "Action": [
              "log:GetLogStoreLogs",
              "log:ListLogStores",
              "log:GetIndex",
              "log:GetDashboard",
              "log:ListDashboard"
            ],
            "Resource": [
              "acs:log:*:*:project/Project名稱/*",
              "acs:log:*:*:project/sls-alert-*/*"
            ]
          },
          {
            "Effect": "Allow",
            "Action": [
              "log:GetResource",
              "log:ListResources",
              "log:GetResourceRecord",
              "log:ListResourceRecords"
            ],
            "Resource": [
              "acs:log:*:*:resource/*"
            ]
          }
        ]
      }
    4. 建立權限原則頁,填寫名稱,然後單擊確定

  3. 為RAM使用者授權。

    1. 在左側導覽列中,選擇身份管理 > 使用者

    2. 找到目標RAM使用者,單擊添加許可權

    3. 新增授權面板的權限原則地區,在下拉式清單選擇自訂策略,然後選中您在步驟2中建立的權限原則,然後單擊確認新增授權

授予RAM使用者警示系統管理權限

方式一:授予系統權限原則

使用阿里雲帳號(主帳號)登入RAM控制台,為RAM使用者授予Log Service系統管理權限(AliyunLogFullAccess)。具體操作,請參見為RAM使用者授權

方式二:建立自訂權限原則進行授權

  1. 使用阿里雲帳號(主帳號)或Resource Access Management員登入RAM控制台

  2. 建立權限原則。

    1. 在左側導覽列中,選擇許可權管理 > 權限原則

    2. 單擊建立權限原則

    3. 指令碼編輯頁簽,將配置框中的原有指令碼替換為如下內容,然後單擊繼續編輯基本資料

      說明
      • Project名稱表示用於管理警示資料的Project,請根據實際情況替換。

      • sls-alert-*表示當前阿里雲帳號下所有的全域警示中心Project。全域警示中心Project中包含該帳號下所有警示規則的評估資料、發送的日誌和警示相關的全域報表等。如果您只想授權RAM使用者操作單個全域警示中心Project的許可權,您可以將sls-alert-*配置為單個Project的名稱,格式為sls-alert-${uid}-${region},例如sls-alert-148****6461-cn-hangzhou

      • 建立Logstore、建立索引及更新索引的權限原則,用於RAM使用者操作警示相關的系統日誌庫(警示歷史日誌庫、全域警示中心日誌庫),從而進行警示歷史等報表的查看。

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "log:GetLogStore",
              "log:UpdateLogStore",
              "log:CreateLogStore",
              "log:CreateIndex",
              "log:UpdateIndex"
            ],
            "Resource": [
              "acs:log:*:*:project/Project名稱/logstore/internal-alert-history",
              "acs:log:*:*:project/sls-alert-*/logstore/internal-alert-center-log"
            ]
          },
          {
            "Effect": "Allow",
            "Action": [
              "log:*"
            ],
            "Resource": "acs:log:*:*:project/Project名稱/job/*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "log:GetProject",
              "log:CreateProject"
            ],
            "Resource": [
              "acs:log:*:*:project/sls-alert-*"
            ]
          },
          {
            "Effect": "Allow",
            "Action": [
              "log:GetLogStoreLogs",
              "log:ListLogStores",
              "log:GetIndex",
              "log:GetDashboard",
              "log:CreateDashboard",
              "log:UpdateDashboard",
              "log:ListDashboard"
            ],
            "Resource": [
              "acs:log:*:*:project/Project名稱/*",
              "acs:log:*:*:project/sls-alert-*/*"
            ]
          },
          {
            "Effect": "Allow",
            "Action": [
              "log:*"
            ],
            "Resource": [
              "acs:log:*:*:resource/*"
            ]
          }
        ]
      }
    4. 建立權限原則頁,填寫名稱,然後單擊確定

  3. 為RAM使用者授權。

    1. 在左側導覽列中,選擇身份管理 > 使用者

    2. 找到目標RAM使用者,單擊添加許可權

    3. 新增授權面板的權限原則地區,在下拉式清單選擇自訂策略,然後選中您在步驟2中建立的權限原則,然後單擊確認新增授權

跨Project警示監控日誌

配置授權

重要

如果使用RAM使用者配置監控規則,必須使用阿里雲帳號(主帳號)授予RAM使用者警示系統管理權限

  1. 添加查詢統計。具體步驟,請參見建立警示監控規則

  2. 授權方式支援三種配置,說明如下:

    授權方式

    說明

    預設

    預設授權支援警示監控規則對所屬同一個Project下的日誌庫或指標庫進行查詢統計。

    內建角色

    內建角色授權支援警示監控規則對當前主帳號下其他任意Project下的日誌庫或指標庫進行查詢統計。

    自訂角色

    自訂角色授權支援警示監控規則對當前或其他主帳號下的特定Project下的日誌庫或指標庫進行查詢統計。

    具體配置如下:

    預設授權

    進階配置頁簽中,選擇授權方式預設

    image

    內建角色授權

    進階配置頁簽中,將授權方式配置為內建角色。如果是首次配置,需要使用阿里雲主帳號按照頁面提示完成授權。授權後,Log Service將建立名稱為AliyunSLSAlertMonitorRole的RAM角色,Log Service將扮演此角色以讀取源日誌庫中的資料。

    image

    自訂角色授權(同帳號)

    對同一個阿里雲帳號下的不同日誌庫或指標庫進行警示監控時,您可以通過自訂角色實現警示監控。

    1. 使用阿里雲主帳號

      1. 建立可信實體為Log Service的RAM角色

      2. 通過指令碼編輯模式建立自訂權限原則

        image

        輸入以下指令碼。其中,Project名稱需根據實際情況替換。如果您需要更細粒度的授權,例如只允許在指定Project下建立監控規則,則可以在下述策略的Resource中指定具體的Project,例如acs:log:*:*:project/my-project

        {
          "Statement": [
            {
              "Action": [
                "log:ListProject"
              ],
              "Effect": "Allow",
              "Resource": [
                "acs:log:*:*:*"
              ]
            },
            {
              "Action": [
                "log:ListLogStores",
                "log:GetLogStoreLogs",
                "log:GetIndex"
              ],
              "Effect": "Allow",
              "Resource": [
                "acs:log:*:*:project/Project名稱/*"
              ]
            }
          ],
          "Version": "1"
        }
      3. 為RAM角色授予建立的自訂權限原則。授權操作,請參見為RAM角色授權

      4. 查看擷取RAM角色標識(ARN)

    2. 在使用自訂角色授權時,使用該RAM角色標識。

      image

    自訂角色授權(跨帳號)

    對跨阿里雲帳號下的不同日誌庫或指標庫進行警示監控時,您可以通過自訂角色實現警示監控。例如在阿里雲帳號A中建立警示,監控阿里雲帳號B下的日誌庫或指標庫。

    1. 使用阿里雲主帳號。

      1. 建立可信實體為Log Service的RAM角色

      2. 修改RAM角色的信任策略。修改RAM角色的信任策略如下,其中請根據實際情況替換阿里雲帳號A的ID。您可以在帳號中心中查看阿里雲帳號ID。

        {
            "Statement": [
                {
                    "Action": "sts:AssumeRole",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": [
                            "阿里雲帳號A的ID@log.aliyuncs.com",
                            "log.aliyuncs.com"
                        ]
                    }
                }
            ],
            "Version": "1"
        }
      3. 通過指令碼編輯模式建立自訂權限原則

        image

        將配置框中的原有指令碼替換為如下內容。其中,Project名稱需根據實際情況替換。如果您想要更細粒度的授權,例如只允許在指定Project下建立監控規則,則可以在下述策略的Resource中指定具體的Project,例如acs:log:*:*:project/my-project

        {
          "Statement": [
            {
              "Action": [
                "log:ListProject"
              ],
              "Effect": "Allow",
              "Resource": [
                "acs:log:*:*:*"
              ]
            },
            {
              "Action": [
                "log:ListLogStores",
                "log:GetLogStoreLogs",
                "log:GetIndex"
              ],
              "Effect": "Allow",
              "Resource": [
                "acs:log:*:*:project/Project名稱/*"
              ]
            }
          ],
          "Version": "1"
        }
      4. 為RAM角色授予建立的自訂權限原則。授權操作,請參見為RAM角色授權

      5. 查看擷取RAM角色標識(ARN)

    2. 在使用自訂角色授權時,使用該RAM角色標識。

      image

RAM使用者授權

當警示監控規則跨Project、地區和阿里雲帳號監控目標時,如果需要使用RAM使用者查詢日誌庫或指標庫,必須使用阿里雲主帳號為RAM使用者添加如下權限原則,用於扮演相應的角色。為RAM使用者授權的操作步驟,請參見為RAM使用者授權

{
    "Version": "1",
    "Statement": [
        {
            "Action": "ram:PassRole",
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}