View a markdown version of this page

設定 Amazon EC2 Auto Scaling 資源的刪除保護 - Amazon EC2 Auto Scaling

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

設定 Amazon EC2 Auto Scaling 資源的刪除保護

透過設定多層保護,保護您的 Amazon EC2 Auto Scaling 基礎設施免於意外刪除。Auto Scaling 提供多種方法來防止您 Auto Scaling 群組及其管理的 Amazon EC2 執行個體遭到不必要的資源刪除。

設定 Auto Scaling 群組刪除保護

刪除保護是一種資源層級設定,可防止 Amazon EC2 Auto Scaling 群組意外刪除。啟用時,刪除保護會阻止 DeleteAutoScalingGroup API 操作成功,要求您先將刪除保護設定更新為較不嚴格的層級,才能刪除 Auto Scaling 群組。

Amazon EC2 Auto Scaling 提供三種層級的刪除保護:

(預設)

未啟用刪除保護,這表示您的 Auto Scaling 群組可以使用或不使用 ForceDelete選項來刪除。使用 ForceDelete 時,由 Auto Scaling 群組管理的所有 Amazon EC2 執行個體也會強制終止,而不會執行終止生命週期關聯。

防止強制刪除

使用 ForceDelete選項時,無法刪除 Auto Scaling 群組。此組態允許刪除空的 Auto Scaling 群組 (沒有執行個體的群組)。對於您想要防止大量執行個體終止,但允許清除空白群組的生產工作負載,建議使用此選項。

防止所有刪除

無論是否使用 ForceDelete選項,都無法刪除 Auto Scaling 群組。此選項提供最強大的保護,防止意外刪除。它需要明確停用刪除保護,才能刪除 Auto Scaling 群組。對於應該很少刪除或永遠不會刪除的任務關鍵 Auto Scaling 群組,建議使用此選項。

刪除保護的運作方式

當您嘗試啟用刪除保護的 DeleteAutoScalingGroup API 操作時:

  1. Amazon EC2 Auto Scaling 會在處理請求之前驗證刪除保護設定。

  2. 如果設定的刪除保護層級封鎖刪除嘗試,Amazon EC2 Auto Scaling 會傳回 ValidationError

  3. 您的 Auto Scaling 群組及其 Amazon EC2 執行個體保持不變。

  4. 您必須先將刪除保護設定更新為較不嚴格的層級,才能刪除 Auto Scaling 群組。

刪除保護不會阻止其他操作,例如:

  • 更新 Auto Scaling 群組組態。

  • 終止個別執行個體。

  • 擴展操作 (手動或自動)。

  • 暫停或繼續程序。

如需如何正常處理執行個體終止的詳細資訊,請參閱 設計您的應用程式以正常處理執行個體終止

設定刪除保護

您可以在建立 Auto Scaling 群組或更新現有 Auto Scaling 群組的設定時設定刪除保護。

Console
建立具有刪除保護的 Auto Scaling 群組
  1. 前往網址 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台,然後從導覽窗格中選擇 Auto Scaling 群組

  2. 選擇 Create Auto Scaling group (建立 Auto Scaling 群組)。

  3. 完成 Auto Scaling 群組的組態步驟。

  4. 設定群組大小和擴展頁面上,展開其他設定

  5. 對於 Auto Scaling 群組刪除保護,請選擇所需的保護層級:

    • - 無刪除保護 (預設)

    • 防止強制刪除 - 封鎖強制刪除操作

    • 防止所有刪除 - 封鎖所有刪除操作

  6. 完成剩餘的步驟以建立 Auto Scaling 群組。

更新現有 Auto Scaling 群組的刪除保護
  1. 前往網址 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台,然後從導覽窗格中選擇 Auto Scaling 群組

  2. 選取 Auto Scaling 群組旁的核取方塊。

  3. 選擇 Actions (動作)、Edit (編輯)。

  4. 在其他設定下,更新 Auto Scaling 群組刪除保護設定。

  5. 選擇更新

AWS CLI
建立具有刪除保護的 Auto Scaling 群組

使用 create-auto-scaling-group 命令搭配 --deletion-protection 參數:

aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-template,Version='$Latest' \ --min-size 1 \ --max-size 5 \ --desired-capacity 2 \ --vpc-zone-identifier "subnet-12345678,subnet-87654321" \ --deletion-protection prevent-force-deletion

的有效值--deletion-protection為: none | prevent-force-deletion | prevent-all-deletion

更新現有 Auto Scaling 群組的刪除保護

使用 update-auto-scaling-group 命令:

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --deletion-protection prevent-all-deletion
停用刪除保護

將刪除保護設定為 none

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --deletion-protection none
驗證刪除保護狀態

使用 describe-auto-scaling-groups 命令:

aws autoscaling describe-auto-scaling-groups \ --auto-scaling-group-names my-asg

使用 IAM 政策控制刪除許可

使用 AWS Identity and Access Management (IAM) 政策來控制哪些使用者和角色可以刪除 Auto Scaling 群組。IAM 型控制項透過限制身分層級的許可,提供額外的安全層。

當您想要執行下列動作時,IAM 政策特別有用:

  • 允許不同使用者存取不同層級的 Auto Scaling 操作。

  • 防止特定使用者使用 ForceDelete選項,即使他們可以執行其他 Auto Scaling 操作。

  • 限制特定 Auto Scaling 群組的刪除許可。

只有在群組有標籤 environment=development 時,下列政策才允許刪除 Auto Scaling 群組。

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } }] }

下列政策使用 autoscaling:ForceDelete條件金鑰來控制對 DeleteAutoScalingGroup API 動作的存取。這可防止某些使用者使用 ForceDelete操作,這會終止 Auto Scaling 群組中的所有 Amazon EC2 執行個體。

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Deny", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "*", "Condition": { "Bool": { "autoscaling:ForceDelete": "true" } } }] }

或者,如果您不使用條件金鑰來控制 Auto Scaling 群組的存取權,則可以指定 Resource 元素中資源的 ARN 來控制存取權。

下列政策提供使用者使用 DeleteAutoScalingGroup API 動作的許可,但僅適用於名稱開頭為 的 Auto Scaling 群組devteam-

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "arn:aws:autoscaling:us-east-1:111122223333:autoScalingGroup:*:autoScalingGroupName/devteam-*" } ] }

您也可以將多個 ARN 包含在清單中來加以指定。包含 UUID 以確保將存取權授予特定 Auto Scaling 群組。新群組的 UUID 與同名之已刪除群組的 UUID 不同。

"Resource": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-1", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-2", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-3" ]

如需 Amazon EC2 Auto Scaling IAM 政策的其他範例,包括控制刪除許可的政策,請參閱 身分型政策範例