共用方式為


防止跨 Microsoft Entra 租用戶進行物件複寫

物件複寫會以非同步方式將區塊 Blob 從一個儲存體帳戶中的容器複製到另一個儲存體帳戶中的容器。 當您設定物件複寫策略時,您可以指定來源帳戶和容器,以及目的地帳戶和容器。 設定原則之後,Azure 記憶體會自動將來源物件上建立、更新和刪除作業的結果複製到目的地物件。 如需 Azure 記憶體中對象複寫的詳細資訊,請參閱 區塊 Blob 的物件複寫

授權的使用者可以設定對象複寫策略,來源帳戶位於一個Microsoft Entra租戶中,如果跨租戶允許復寫,則目的地帳戶位於不同的Microsoft Entra租戶中。 如果您的安全策略要求將對象複寫限制為僅位於相同租戶的儲存體帳戶,您可以禁止建立來源和目的地帳戶位於不同租戶的策略。 根據預設,除非您明確允許,否則在 2023 年 12 月 15 日之後建立的所有新記憶體帳戶都會停用跨租用戶物件複寫。

本文說明如何修正儲存帳戶的跨租戶物件複寫問題。 它也會說明如何建立原則,以針對新的和現有的記憶體帳戶強制執行跨租用戶物件複寫的禁令。

如需有關如何設定物件複寫原則的詳細資訊,包括跨租用戶原則,請參閱設定區塊 Blob 的物件複寫

補救跨租用戶物件複寫

若要防止跨 Microsoft Entra 租使用者進行物件複寫,請將記憶體帳戶的 AllowCrossTenantReplication 屬性設定為 false。 如果記憶體帳戶目前未參與任何跨租使用者物件複寫策略,則將 AllowCrossTenantReplication 屬性設定為 false 會防止未來將此儲存體帳戶設定為來源或目的地的跨租用戶物件複寫策略。 不過,如果儲存帳戶目前參與一或多個跨租使用者物件複寫策略,則除非您刪除現有的跨租使用者原則,否則不允許將 AllowCrossTenantReplication 屬性設定為 false

針對在 2023 年 12 月 15 日後建立的儲存體帳戶,預設不允許跨租用戶原則。 不過, AllowCrossTenantReplication 屬性預設不會針對在 2023 年 12 月 15 日之前建立的現有記憶體帳戶設定,而且在您明確設定之前不會傳回值。 對於在 2023 年 12 月 15 日前建立的帳戶,當其屬性值為 nulltrue 時,儲存體帳戶可以參與跨組用戶的物件複寫原則。 針對在該時間之後建立的帳戶,這個屬性必須設定為 "true"。 設定 AllowCrossTenantReplication 屬性並不會在記憶體帳戶上產生任何停機時間。

補救新帳戶的跨租用戶複寫

若要不允許新記憶體帳戶的跨租用戶複寫,請使用 Azure 入口網站、PowerShell 或 Azure CLI。 屬性在 2023 年 12 月 15 日之後創建的新帳戶中將默認為 false,即使未明確設定也是如此。

若要不允許記憶體帳戶的跨租用戶物件複寫,請遵循下列步驟:

  1. 在 Azure 入口網站中,流覽至 [ 記憶體帳戶 ] 頁面,然後選取 [ 建立]。

  2. 填寫新儲存帳戶的基本標籤。

  3. 在 [進階] 索引標籤的 [Blob 儲存體] 區段中,找出 [允許跨租用戶複寫] 設定,然後取消核取此方塊。

    顯示如何不允許新記憶體帳戶跨租用戶物件複寫的螢幕快照

  4. 完成帳戶創建的過程。

補救現有帳戶的跨租用戶複寫

若要不允許現有記憶體帳戶的跨租用戶複寫,請使用 Azure 入口網站、PowerShell 或 Azure CLI。

若要不允許目前未參加任何跨租用戶政策的現有儲存體帳戶執行跨租用戶物件複寫,請遵循下列步驟:

  1. 在 Azure 入口網站中巡覽至您的儲存體帳戶。

  2. [數據管理] 底下,選取 [對象複寫]。

  3. 選擇 Advanced settings (高級設置)。

  4. 取消核取 [允許跨租用戶複寫]。 預設會核取此方塊,因為除非您明確禁止,否則會允許儲存體帳戶的跨租用戶物件複寫。

    顯示如何禁止現有儲存帳戶進行跨租用戶物件複製的螢幕截圖

  5. 選擇 [確定] 以儲存變更。

如果記憶體帳戶目前參與一或多個跨租用戶複寫策略,您必須先刪除這些原則,才能不允許跨租使用者物件複寫。 在此案例中,Azure 入口網站中的設定無法使用,如下圖所示。

螢幕快照

在您禁止跨租用戶複寫之後,嘗試以儲存體帳戶作為來源或目的地來設定跨租用戶原則失敗。 Azure 記憶體傳回錯誤,指出記憶體帳戶不允許跨租使用者物件複寫。

當記憶體帳戶不允許跨租使用者物件複寫時,您使用該帳戶建立的任何新對象複寫策略都必須包含來源和目的地帳戶的完整 Azure Resource Manager 標識符。 Azure 記憶體需要完整的資源標識符,才能確認來源和目的地帳戶是否位於相同的租用戶內。 如需詳細資訊,請參閱 指定來源和目的地帳戶的完整資源標識碼

僅使用 Azure Resource Manager 部署模型的記憶體帳戶支援 AllowCrossTenantReplication 屬性。 如需哪些儲存體帳戶使用 Azure Resource Manager 部署模型的詳細資訊,請參閱儲存體帳戶類型

允許或禁止跨租用戶複寫的權限

若要設定記憶體帳戶的 AllowCrossTenantReplication 屬性,用戶必須具有建立和管理記憶體帳戶的許可權。 提供這些權限的 Azure 角色型存取控制 (Azure RBAC) 角色包括 Microsoft.Storage/storageAccounts/writeMicrosoft.Storage/storageAccounts/* 動作。 具有此動作的內建角色包括:

這些角色無法使用 Microsoft Entra ID 存取儲存體帳戶中的資料。 不過,這些角色包含 Microsoft.Storage/storageAccounts/listkeys/action,可授與帳戶存取金鑰的存取權。 使用此權限時,使用者可以使用帳戶存取金鑰來存取儲存體帳戶中的所有資料。

角色指派的範圍必須設定為記憶體帳戶的層級或更高層級,才能允許使用者允許或不允許記憶體帳戶的跨租用戶對象複寫。 如需角色範圍的詳細資訊,請參閱了解 Azure RBAC 的範圍

請務必只將這些角色指派給需要建立儲存帳戶或更新其屬性的使用者。 使用最低權限原則,以確保使用者具有完成其工作所需的最低權限。 如需使用 Azure RBAC 管理存取權的詳細資訊,請參閱 Azure RBAC 的最佳做法

備註

傳統訂用帳戶管理員角色「服務管理員」和「共同管理員」含有 Azure Resource Manager 擁有者角色的相等權限。 擁有者角色包含所有動作,因此具有其中一個系統管理角色的使用者也可以建立和管理儲存體帳戶。 如需詳細資訊,請參閱 Azure 角色、Microsoft Entra 角色和傳統訂用帳戶管理員角色

使用 Azure 原則對合規性進行稽核

如果您有大量的記憶體帳戶,您可能會想要執行稽核,以確保這些帳戶已設定為防止跨租用戶物件複寫。 若要稽核一組儲存體帳戶的合規性,請使用 Azure 原則。 Azure 原則是一項服務,可讓您用來建立、指派和管理將規則套用至 Azure 資源的原則。 Azure 原則幫助您確保這些資源符合您的公司標準和服務等級協定規範。 如需詳細資訊,請參閱 Azure 原則概觀

建立具有稽核效果的原則

Azure 原則支援的效果可判斷對資源評估原則規則時所發生的情況。 當資源不符合規範時,此稽核效果會建立一則警告,但不會停止要求。 如需有關效果的詳細資訊,請參閱了解 Azure 原則效果

若要使用 Azure 入口網站為記憶體帳戶建立具有跨租使用者物件複寫設定稽核效果的原則,請遵循下列步驟:

  1. 在 Azure 入口網站中,瀏覽至 [Azure 原則] 服務。

  2. 在 [編寫] 區段底下,選取 [定義]

  3. 選取 [新增原則定義] 以建立新的原則定義。

  4. 在 [ 定義位置] 欄位中,選取 [更多] 按鈕以指定稽核原則資源所在的位置。

  5. 請指定政策的名稱。 您可以選擇性指定說明和類別。

  6. 在 [原則規則] 底下,將下列原則定義新增至 [policyRule] 區段。

    {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Storage/storageAccounts"
          },
          {
            "not": {
              "field":"Microsoft.Storage/storageAccounts/allowCrossTenantReplication",
              "equals": "false"
            }
          }
        ]
      },
      "then": {
        "effect": "audit"
      }
    }
    
  7. 儲存原則。

指派原則

接下來,將原則指派給資源。 政策的範圍會對應至該資源及其之下的所有資源。 如需原則指派的詳細資訊,請參閱 Azure 原則指派結構

若要透過 Azure 入口網站指派政策,請依照以下步驟進行:

  1. 在 Azure 入口網站中,瀏覽至 [Azure 原則] 服務。
  2. 在 [編寫] 區段底下,選取 [指派]
  3. 選取 [指派原則] 以建立新的原則指派。
  4. 在 [範圍] 欄位中,選取原則指派的範圍。
  5. 在 [原則定義] 欄位中,選取 [更多] 按鈕,然後從清單中選取您在上一節中定義的原則。
  6. 提供原則指派的名稱。 描述是選擇性的。
  7. 將 [原則強制執行] 的設定保留為 [已啟用]。 此設定不會影響稽核原則。
  8. 選取 [檢閱 + 建立] 以建立指派。

檢視合規性報告

指派原則之後,您可以檢視合規性報告。 審核策略的合規性報告提供哪些記憶體帳戶仍允許跨租用戶對象複寫策略的資訊。 如需詳細資訊,請參閱取得原則合規性資料

在建立原則指派之後,可能需要幾分鐘的時間,合規性報告才會變成可用狀態。

若要在 Azure 入口網站中檢視合規性報告,請遵循下列步驟:

  1. 在 Azure 入口網站中,瀏覽至 [Azure 原則] 服務。

  2. 選擇 合規性

  3. 篩選您在上一個步驟中建立的原則指派名稱結果。 此報告會顯示不符合原則的資源。

  4. 您可以向下切入報告以取得其他詳細資料,包括不符合規範的儲存體帳戶清單。

    顯示 Blob 跨租用戶物件複製審核政策合規性報告的螢幕截圖

使用 Azure 原則強制執行相同的跨租用戶複寫原則

Azure 原則可藉由確保 Azure 資源遵循需求和標準,以支援雲端治理。 若要確保組織中的記憶體帳戶不允許跨租用戶複寫,您可以建立原則來防止建立允許跨租用戶物件復寫原則的新記憶體帳戶。 強制執行原則會使用拒絕效果來防止建立或修改記憶體帳戶的要求,以允許跨租用戶物件複寫。 如果該帳戶的跨租用戶對象複寫設定不符合原則,則 [拒絕] 原則也會防止現有帳戶的所有組態變更。 如需拒絕效果的詳細資訊,請參閱 瞭解 Azure 原則效果

若要建立具有跨租用戶對象複寫拒絕效果的原則,請遵循 使用 Azure 原則稽核合規性中所述的相同步驟,但在原則定義的 policyRule 區段中提供下列 JSON:

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Storage/storageAccounts"
      },
      {
        "not": {
          "field":"Microsoft.Storage/storageAccounts/allowCrossTenantReplication",
          "equals": "false"
        }
      }
    ]
  },
  "then": {
    "effect": "deny"
  }
}

使用 Deny 效果建立原則並將其指派給範圍之後,使用者就無法建立允許跨租用戶物件複寫的記憶體帳戶。 使用者也無法對目前允許跨租用戶物件複寫的現有記憶體帳戶進行任何設定變更。 嘗試這樣做會導致錯誤。 儲存體帳戶的 AllowCrossTenantReplication 屬性必須設定為 false ,才能依照原則繼續進行帳戶建立或組態更新。

下圖顯示當您嘗試建立允許跨租使用者物件複寫的記憶體帳戶(新帳戶的預設值)時,如果具有拒絕效果的原則要求不允許跨租使用者對象複寫,就會發生此錯誤。

螢幕擷取畫面:顯示在違反原則情況下建立儲存體帳戶時所發生的錯誤

另請參閱