全部產品
Search
文件中心

Object Storage Service:資料複製許可權介紹

更新時間:Jun 19, 2024

資料複製許可權有同帳號複製與跨帳號複製兩種使用情境。對於同帳號與跨帳號複製,您必須授予RAM角色相應的複製許可權,否則無法完成複製任務。

注意事項

  • 每一種複製操作對應著一種複製許可權。OSS需要通過扮演您建立的RAM角色來擷取複製許可權,從而執行資料複製所需的操作。

  • 由於RAM角色權限原則中指定的Resource僅作用於其當前帳號下所擁有的資源,因此同帳號複製與跨帳號複製所需的RAM角色權限原則存在差異,具體說明如下:

    • 在同帳號複製情境下,源Bucket和目標Bucket均為同一帳號下的資源。因此,您可以為該帳號下的RAM角色授予源和目標bucket的複製許可權。

    • 在跨帳號複製情境下,源Bucket和目標Bucket是兩個不同帳號下的資源。因此,您需要在源Bucket所屬帳號A下,通過RAM Policy的方式對RAM角色完成授權操作。此外,還需要在目標Bucket所屬帳號B下,通過Bucket Policy的方式對帳號A的RAM角色完成授權操作。

同帳號複製任務的RAM角色許可權說明

同帳號複製任務的RAM角色所需的信任策略和最小許可權說明如下:

  • RAM角色所需的信任策略

    以下信任策略用於添加阿里雲Object Storage Service服務OSS為可信實體,並授權OSS可以扮演RAM角色來複製資料。

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "oss.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }
  • RAM角色所需的最小權限原則

    通過RAM Policy為RAM角色授予源Bucket(src-bucket)和目標Bucket(dest-bucket)複製所需的最小許可權。

    {
       "Version":"1",
       "Statement":[
          {
             "Effect":"Allow",
             "Action":[
                "oss:ReplicateList",
                "oss:ReplicateGet"
             ],
             "Resource":[
                "acs:oss:*:*:src-bucket",
                "acs:oss:*:*:src-bucket/*"
             ]
          },
          {
             "Effect":"Allow",
             "Action":[
                "oss:ReplicateList",
                "oss:ReplicateGet",
                "oss:ReplicatePut",
                "oss:ReplicateDelete"
             ],
             "Resource":[
                "acs:oss:*:*:dest-bucket",
                "acs:oss:*:*:dest-bucket/*"
             ]
          }
       ]
    }

    以下權限原則中涉及的Action說明如下:

    Action

    說明

    oss:ReplicateList

    複製過程涉及的列舉許可權。即允許OSS先列舉源Bucket的歷史資料,再逐一對歷史資料進行複製。

    oss:ReplicateGet

    複製過程涉及的讀許可權。即允許OSS讀取源Bucket和目標Bucket中的資料與中繼資料,包括Object、Part、Multipart Upload等。

    oss:ReplicatePut

    複製過程涉及的寫入權限。即允許OSS對目標Bucket複製相關的寫入類操作,包括寫入Object、Multipart Upload、Part和Symlink,修改中繼資料資訊等。

    oss:ReplicateDelete

    複製過程涉及的刪除許可權。即允許OSS對目標Bucket複製相關的刪除操作,包括DeleteObject、AbortMultipartUpload、DeleteMarker等。

    重要

    僅當資料複製方式選擇增/刪/改 同步時,需要授予RAM角色該Action。

跨帳號複製任務的RAM角色許可權說明

跨帳號複製任務涉及兩個不同帳號的Bucket,您需要按照以下說明完成RAM角色所需的信任策略和最小權限原則。

源Bucket所屬帳號A需要完成的RAM角色授權操作

  • RAM角色所需的信任策略

    跨帳號複製任務的RAM角色所需的信任策略與同帳號情境相同。您需要通過源Bucket所屬帳號A授予角色所需的信任策略。更多資訊,請參見RAM角色所需的信任策略

  • RAM角色所需的最小權限原則

    不同帳號複製任務涉及Action對應的許可權說明,請參見Action說明

    在源Bucket所屬帳號A下,通過RAM Policy的方式對RAM角色授予源Bucket複製所需的最小許可權。

    {
       "Version":"1",
       "Statement":[
          {
             "Effect":"Allow",
             "Action":[
                "oss:ReplicateList",
                "oss:ReplicateGet"
             ],
             "Resource":[
                "acs:oss:*:*:src-bucket",
                "acs:oss:*:*:src-bucket/*"
             ]
          }
       ]
    }

目標Bucket所屬帳號B需要完成的RAM角色授權操作

在目標Bucket所屬帳號B下,通過Bucket Policy的方式對帳號A的RAM角色授予複製所需的最小許可權。

{
    "Version": "1",
    "Statement": [
       {
        "Effect": "Allow",
        "Action": [
            "oss:ReplicateList",
            "oss:ReplicateGet",
            "oss:ReplicatePut",
            "oss:ReplicateDelete"
        ],
        "Principal": [
            "arn:sts::src-uid:assumed-role/role-name/*"
        ],
        "Resource": [
            "acs:oss:*:dest-uid:dest-bucket",
            "acs:oss:*:dest-uid:dest-bucket/*"
         ]
      }
   ]
}

以上Policy中涉及的配置項說明如下:

配置項

說明

src-uid

源Bucket歸屬帳號的UID。

role-name

源Bucket歸屬帳號建立的RAM角色名稱。

dest-uid

目標Bucket歸屬帳號的UID。

dest-bucket

目標Bucket名稱。

相關文檔