全部產品
Search
文件中心

Simple Log Service:通過自訂角色訪問資料(跨帳號情境)

更新時間:Dec 20, 2024

假設有這樣一個情境,您的Simple Log Service位於阿里雲帳號A,Object Storage Service (OSS)位於阿里雲帳號B。您需要將Simple Log ServiceLogstore中資料投遞到OSS Bucket中,那麼您可參考本文完成自訂角色授權。

步驟一:授予阿里雲帳號A下的RAM角色role-a讀取Logstore資料的許可權

授予帳號A下的RAM角色a讀取Logstore資料的許可權後,OSS投遞任務可以扮演該角色讀取帳號A下Logstore中的資料。

  1. 使用阿里雲帳號A登入RAM控制台

  2. 建立一個自訂權限原則,該策略具備讀取Logstore資料的許可權。

    您可選擇使用精確授權模糊比對授權

    精確授權

    建立權限原則頁面,單擊指令碼編輯頁簽,並使用以下指令碼替換配置框中的原有內容。具體操作,請參見通過指令碼編輯模式建立自訂權限原則

    重要

    指令碼中的Project名稱Logstore名稱請根據實際情況替換。

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "log:GetCursorOrData",
                    "log:ListShards"
                ],
                "Resource":[
                    "acs:log:*:*:project/Project名稱/logstore/Logstore名稱"
                ],
                "Effect":"Allow"
            }
        ]
    }

    模糊比對授權

    建立權限原則頁面,單擊指令碼編輯頁簽,並使用以下指令碼替換配置框中的原有內容。具體操作,請參見通過指令碼編輯模式建立自訂權限原則

    重要
    • 例如Project名稱為log-project-dev-a、log-project-dev-b、log-project-dev-c等,Logstore名稱為website_a_log、website_b_log、website_c_log等,則您可以使用模糊比對授權。

    • 指令碼中的log-project-dev-*website_*_log*請根據實際情況替換。

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "log:GetCursorOrData",
                    "log:ListShards"
                ],
                "Resource":[
                    "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*"
                ],
                "Effect":"Allow"
            }
        ]
    }
  3. 建立RAM角色role-a具體操作,請參見建立可信實體為阿里雲服務的RAM角色

    重要
    • 建立RAM角色時,必須選擇可信實體類型阿里雲服務,且必須選擇受信服務Log Service

    • 請檢查角色的信任策略如下,Service內容至少包含"log.aliyuncs.com"

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  4. 為RAM角色role-a添加建立的自訂許可權。具體操作,請參見為RAM角色授權

後續操作

擷取RAM角色標識(ARN),具體操作,請參見查看RAM角色

如果您在建立OSS投遞任務時讀Logstore RAM角色選擇自訂角色,則需要輸入該資訊。更多資訊,請參見建立OSS投遞任務(新版)ARN

步驟二:授予阿里雲帳號B下的RAM角色b寫OSS Bucket的許可權

授予帳號B下的RAM角色role-b寫OSS Bucket的許可權後,OSS投遞任務可以扮演該角色將帳號A下的Logstore資料投遞到帳號B下的OSS Bucket中。

  1. 使用阿里雲帳號B登入RAM控制台

  2. 建立一個自訂權限原則,該策略具備寫OSS Bucket許可權。

    建立權限原則頁面,單擊指令碼編輯頁簽,並使用以下指令碼替換配置框中的原有內容。具體操作,請參見通過指令碼編輯模式建立自訂權限原則

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "oss:PutObject"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
    說明

    如果您有更細粒度的OSS許可權控制需求,請參見RAM Policy

  3. 建立RAM角色role-b具體操作,請參見建立可信實體為阿里雲服務的RAM角色

    重要
    • 建立RAM角色時,必須選擇可信實體類型阿里雲服務,且必須選擇受信服務Log Service

    • 請檢查角色的信任策略如下,Service內容至少包含"log.aliyuncs.com"

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  4. 修改RAM角色role-b的信任策略。具體操作,請參見修改RAM角色的信任策略

    重要

    Service配置項中添加阿里雲帳號A的ID@log.aliyuncs.com,並根據實際情況替換該值。您可以在帳號中心查看阿里雲帳號ID。

    該策略表示阿里雲帳號A有許可權通過Log Service擷取臨時Token來操作阿里雲帳號B中的資源。

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "log.aliyuncs.com",
                        "阿里雲帳號A的ID@log.aliyuncs.com"
                    ]
                }
            }
        ],
        "Version": "1"
    }
  5. 為RAM角色role-b添加建立的自訂許可權。具體操作,請參見為RAM角色授權

後續操作

擷取RAM角色標識(ARN),具體操作,請參見查看RAM角色

如果您在建立OSS投遞任務時寫OSS RAM角色選擇自訂角色,則需要輸入該資訊。更多資訊,請參見建立OSS投遞任務(新版)

ARN