防止 CloudFormation 堆疊遭到刪除 - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

防止 CloudFormation 堆疊遭到刪除

您可以在堆疊上啟用終止保護來防止堆疊遭意外刪除。如果使用者嘗試刪除啟用終止保護的堆疊,則刪除會失敗,且堆疊及其狀態保持不變。您可以在建立新的堆疊時啟用終止保護。堆疊上的終止保護預設為停用。您可以在具有除 DELETE_IN_PROGRESS或 之外任何狀態的堆疊上設定終止保護DELETE_COMPLETE

在堆疊上啟用或停用終止保護也會將相同的選擇傳遞到屬於該堆疊的任何巢狀堆疊。您無法直接在巢狀堆疊上啟用或停用終止保護。如果使用者嘗試直接刪除屬於已啟用終止保護之堆疊的巢狀堆疊,則操作會失敗,且巢狀堆疊會保持不變。

不過,如果使用者執行會刪除巢狀堆疊的堆疊更新,則 AWS CloudFormation 會相應刪除巢狀堆疊。

終止保護與停用復原不同。終止保護僅適用於嘗試刪除堆疊,而停用復原適用於堆疊建立失敗時的自動復原。

在建立堆疊時啟用終止保護

Create stack (建立堆疊) 精靈的 Specify stack options (指定堆疊選項) 頁面上,展開 Advanced options (進階選項) 下的 Termination Protection (終止保護) 區段,然後選取 Enable (啟用)。如需詳細資訊,請參閱設定堆疊選項

在現有堆疊上啟用或停用終止保護
  1. 登入 AWS Management Console 並在 https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

  2. 在畫面頂端的導覽列上,選擇您的 AWS 區域。

  3. 選取您想要設定的堆疊。

    注意

    如果 NESTED 顯示在堆疊名稱旁邊,則堆疊是巢狀堆疊。您只能在該巢狀堆疊所屬的根堆疊上啟用終止保護。

  4. 在 stack details (堆疊詳細資訊) 窗格中,選取 Stack actions (堆疊動作),然後選取 Edit termination protection (編輯終止保護)

    CloudFormation 會顯示編輯終止保護對話方塊。

  5. 選擇 Enable (啟用)Disable (停用),然後選取 Save (儲存)

在巢狀堆疊上啟用或停用終止保護

如果 NESTED 顯示在堆疊名稱旁邊,則堆疊是巢狀堆疊。您只能在該巢狀堆疊所屬的根堆疊上啟用終止保護。在根堆疊上變更終止保護:

  1. 登入 AWS Management Console 並在 https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

  2. 在畫面頂端的導覽列上,選擇您的 AWS 區域。

  3. 選取您想要設定的巢狀堆疊。

  4. Stack info (堆疊資訊) 窗格的 Overview (概觀) 區段中,選取列為 Root stack (根堆疊) 的堆疊名稱。

    CloudFormation 會顯示根堆疊的堆疊詳細資訊。

  5. 選擇 Stack actions (堆疊動作),然後選擇 Edit Termination Protection (編輯終止保護)

    CloudFormation 會顯示編輯終止保護對話方塊。

  6. 選擇 Enable (啟用)Disable (停用),然後選取 Save (儲存)

欲使用命令列啟用或停用終止保護

使用 update-termination-protection 命令。

控制誰可以在堆疊上變更終止保護

若要在堆疊上啟用或停用終止保護,使用者需要具有進行 cloudformation:UpdateTerminationProtection 動作的許可。例如,下列政策可讓使用者在堆疊上啟用或停用終止保護。

如需在 中指定許可的詳細資訊 AWS CloudFormation,請參閱 使用 控制 CloudFormation 存取 AWS Identity and Access Management

範例 授予變更堆疊終止保護許可的範例政策
{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":[ "cloudformation:UpdateTerminationProtection" ], "Resource":"*" }] }