使用資源鎖定保護資源

已完成

在最近的交談中,主管提到公司曾數次不小心刪除重要的 Azure 資源。 因為公司的 Azure 環境混亂,所以當有人好意清除不必要的資源時,就會導致意外刪除其他系統的重要資源。 您聽說過 Azure 的資源鎖定功能。 您向主管表示可以協助防止此類意外再度發生。 讓我們看看您如何使用資源鎖定來解決此問題。

什麼是資源鎖定?

資源鎖定是可套用至任何資源以封鎖修改或刪除的設定。 您可以將資源鎖定設定為 [刪除] 或 [唯讀]。 [刪除] 將允許針對資源進行所有作業,但會封鎖刪除該資源的能力。 [唯讀] 將會僅允許針對該資源進行讀取活動,並封鎖所有修改或刪除該資源的動作。 您可以將資源鎖定套用到訂用帳戶、資源群組或個別資源。 在較高層級套用時,會繼承資源鎖定。

注意

套用 [唯讀] 可能導致未預期的結果,因為有些看似讀取作業的作業實際上需要額外的動作。 例如,將 [唯讀] 鎖定放置於儲存體帳戶上,可防止所有使用者列出金鑰。 清單金鑰作業是透過 POST 要求進行處理,因為傳回的金鑰可用於寫入作業。

如果套用了資源鎖定,您必須先移除鎖定才能執行該活動。 透過在允許對資源採取動作之前先採取額外的步驟,有助於保護資源不受意外動作的影響,且有助於保護系統管理員不會做出自己意圖以外的事情。 無論 RBAC 權限為何,都會套用資源鎖定。 就算您是資源的擁有者,仍然必須先移除鎖定,才能真正執行封鎖的活動。

讓我們看看資源鎖定實際運作的方式。

建立資源鎖定

您應該記得我們先前建立的 msftlearn-core-infrastructure-rg 資源群組。 此資源群組現在有兩個虛擬網路和一個儲存體帳戶。 您認為這些資源是 Azure 環境的重要部分,希望確保其不會遭到誤刪。 若要防止資源群組及其內含資源遭到刪除,請將資源鎖定套用至此資源群組。

  1. 如果尚未這麼做,請在網頁瀏覽器中巡覽至 Azure 入口網站。 在頂端導覽列的搜尋方塊中,搜尋 msftlearn-core-infrastructure-rg,然後選取該資源群組。

  2. 在左側功能表的 [設定] 區段中,選取 [鎖定]。 您應該會看見資源目前沒有鎖定。 您將新增鎖定。

  3. 選取 [+ 新增]。 將鎖定命名為 BlockDeletion,並選取 [刪除] 作為 [鎖定類型]。 選取 [確定]。

    Azure 入口網站的螢幕擷取畫面,其中顯示正在設定的新刪除資源鎖定。

    您現在已將鎖定套用至資源群組,以防止群組刪除。 該資源群組中的所有資源都會繼承此鎖定。 您將嘗試刪除其中一個虛擬網路,看看會發生什麼事。

  4. 返回 [概觀],然後選取 msftlearn-vnet1

  5. msftlearn-vnet1 的 [概觀] 窗格頂端,選取 [刪除]。 您將收到錯誤,指出資源上有防止其刪除的鎖定。

  6. 在左側功能表的 [設定] 區段中,選取 [鎖定]msftlearn-vnet1 具有繼承自該資源群組的鎖定。

  7. 返回 msftlearn-core-infrastructure-rg 資源群組,然後移至 [鎖定]。 您將移除鎖定,以進行清除。 在 BlockDeletion 鎖定上,選取 [刪除]

在實務上使用資源鎖定

您已了解資源鎖定如何防止意外刪除。 您必須先移除鎖定,才能刪除虛擬網路。 這個協調一致的動作有利於確保您真的想要刪除或修改目標資源。

使用資源鎖定來保護那些若遭到移除或修改,可能會產生重大影響的重要 Azure 片段。 一些範例包括 ExpressRoute 線路、虛擬網路、重要資料庫和網域控制站。 評估您的資源,並將鎖定套用到您想要實施額外防護層以避免發生意外動作的項目上。

清除資源

讓我們清理已建立的資源。 您必須刪除已建立的資源群組,以及原則指派和原則定義。

  1. 在網頁瀏覽器中,移至 Azure 入口網站

  2. 在頂端功能表列的搜尋方塊中,搜尋 msftlearn-core-infrastructure-rg,然後選取該資源群組。

  3. 在 [概觀] 窗格中,選取 [刪除資源群組]。 輸入 msftlearn-core-infrastructure-rg 資源群組名稱以進行確認,然後選取 [刪除]。 再次選取 [刪除] 以確認刪除。

    注意

    因為您刪除了具有內含資源群組的已指派資源,所以,此原則中將不會留下任何指派。 通常,如果您將原則指派給資源,則不需在這裡刪除底層資源,就能刪除該指派。 若要這麼做,請選取 [指派]、針對指派選取省略符號 (...),然後選取 [刪除指派]

  4. 在搜尋方塊中,搜尋原則,然後選取 [原則] 服務。

  5. 選取 [指派],然後刪除您建立的指派。

  6. 選取 [定義],然後搜尋您建立的原則:在資源上強制執行標記

  7. 針對您的定義選取 ...,然後選取 [刪除定義]。 輸入 [] 以確認刪除。