通過自訂RAM角色訪問資料(跨帳號情境)

更新時間:
Copy as MD

OSS-HDFS投遞任務運行時,將讀取LogStore中資料並投遞到OSS Bucket中。您可以授權OSS-HDFS投遞任務扮演自訂RAM角色完成上述操作。如果LogStoreOSS Bucket不屬於同一個阿里雲帳號,您可參考本文檔完成授權操作。

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

授予阿里雲帳號A下的RAM角色role-a讀取LogStore資料的許可權後,OSS-HDFS投遞任務可以扮演該角色讀取帳號ALogStore中的資料。

  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. 建立OSS-HDFS投遞任務需要扮演的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-HDFS投遞任務時使用的是自訂RAM角色,則需要在Logstore RAM角色中輸入該資訊。具體操作,請參見建立OSS-HDFS投遞任務。在Logstore RAM角色中選擇自訂角色,並在輸入框中填寫對應的 RAM 角色 ARN,格式樣本:acs:ram::帳號ID:role/角色名稱。該角色用於 Logstore 讀取的存取權限控制。

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

授予阿里雲帳號B下的RAM角色bOSS Bucket的許可權後,OSS投遞任務可以扮演該角色將阿里雲帳號A下的LogStore資料投遞到阿里雲帳號B下的OSS Bucket中。

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

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

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

    {
        "Statement": [
            {
                "Action": [
                    "oss:PutObject"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
              "Effect": "Allow",
              "Action": "oss:ListObjects",
              "Resource": [
                "acs:oss:*:*:*"
              ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "oss:GetBucketInfo",                
                    "oss:PostDataLakeStorageFileOperation",
                    "oss:PostDataLakeStorageAdminOperation"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": "oss:*",
                "Resource": [
                    "acs:oss:*:*:*/.dlsdata",
                    "acs:oss:*:*:*/.dlsdata*"
                ]
            }
        ],
        "Version": "1"
    }
  3. 建立OSS-HDFS投遞任務需要扮演的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配置項中添加阿里雲帳號AID@log.aliyuncs.com,並根據實際情況替換該值。您可以在帳號中心查看阿里雲帳號ID。

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

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

後續操作

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

如果您在建立OSS-HDFS投遞任務時使用的是自訂RAM角色,則需要在OSS-HDFS RAM角色中輸入該資訊。具體操作,請參見建立OSS-HDFS投遞任務。在OSS-HDFS RAM角色配置項中,選擇自訂角色,並在輸入框中填寫已擷取的 RAM 角色 ARN。