

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

# `AWSSupport-EmptyS3Bucket`
<a name="automation-aws-empty-s3-bucket"></a>

 **Description** 

 `AWSSupport-EmptyS3Bucket` 自動化 Runbook 會使用生命週期過期組態規則來清空現有的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。

**重要**  
不支援啟用多重要素驗證 (MFA) 的 Amazon S3 儲存貯體。
 此 Runbook 修改的生命週期規則會永久刪除指定 Amazon S3 儲存貯體中的所有物件及其版本。您無法復原永久刪除的物件。如需詳細資訊，請參閱[即將過期的物件](https://docs.aws.amazon.com//AmazonS3/latest/userguide/lifecycle-expire-general-considerations.html)。

 **如何運作？** 

 Runbook 會`AWSSupport-EmptyS3Bucket`執行下列高階步驟：
+ 如果啟用，暫停儲存貯體版本控制。
+ 更新儲存貯體政策以拒絕任何 `s3:PutObject` API 呼叫 （以防止在清空時新上傳）。
+ 更新生命週期規則，根據輸入參數中指定的過期日期刪除所有物件。

**注意**  
生命週期組態不會刪除或覆寫受 Amazon S3 物件鎖定保護的物件版本。
刪除程序是非同步的，在執行手冊執行完成後可能需要一些時間才能完成。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-EmptyS3Bucket) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

 AutomationAssumeRole 參數需要下列動作，才能成功使用 Runbook：
+ ssm:DescribeAutomationExecutions
+ ssm:GetAutomationExecution
+ s3:GetBucketVersioning
+ s3:PutBucketVersioning
+ s3:GetBucketPolicy
+ s3:GetBucketLifecycleConfiguration
+ s3:GetLifecycleConfiguration
+ s3:PutBucketPolicy
+ s3：PutBucketLifecycleConfiguration
+ s3:PutLifecycleConfiguration
+ s3:DeleteBucketPolicy
+ s3：DeleteBucketLifecycle

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-EmptyS3Bucket/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-EmptyS3Bucket/description)中導覽至 。

1. 選擇 Execute automation (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 Amazon Resource Name AWS AWS Identity and Access Management (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **S3BucketName：**

     您要清空的 Amazon S3 儲存貯體名稱。
   + **SNSTopicArn：**

     提供 Amazon SNS 主題的 ARN 以進行核准通知。此 Amazon SNS 主題用於在自動化執行期間所需的期間傳送核准通知。
   + **ApproverIAM：**

     提供能夠核准或拒絕動作的已 AWS 驗證主體清單。核准者數目上限為 `10`。您可以使用任何這些格式、 AWS Identity and Access Management (IAM) 使用者名稱、IAM 使用者 ARN、IAM 角色 ARN 或 IAM 擔任角色使用者 ARN 來指定主體。
   + **MinimumRequiredApprovals （選用）：**

     繼續自動化所需的核准數量下限。如果您未指定值，系統會預設為 `1`。此參數的值必須為正數。此參數的值不能超過 ApproverIAM 參數定義的核准者數目。
   + **NoncurrentVersionExpirationDays （選用）：**

     指定非目前物件版本過期的天數。過期時，Amazon S3 會永久刪除非目前的物件版本。
     + 預設：`1`
     + 最大值： `365`
   + **ExpirationDays （選用）：**

     以天數形式指定物件生命週期的過期時間。
     + 預設：`1`
     + 最大值： `365`
   + **AbortIncompleteMultipartUpload （選用）：**

     指定自啟動未完成分段上傳以來，Amazon S3 將等待的天數，然後再永久移除上傳的所有部分。
     + 預設：`1`
     + 最大值： `365`
   + **確認：**

     請閱讀此自動化 Runbook 所執行動作的完整詳細資訊，並在您確認步驟`Yes, I understand and acknowledge`時提供同意。  
![\[包含 AWSSupport-EmptyS3Bucket 文件範例輸入參數的影像。\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-empty-s3-bucket_input_parameters.png)

1. 選取執行。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **`checkConcurrency`**:

     確保只有一個針對指定 Amazon S3 儲存貯體的 Runbook 執行。如果 Runbook 找到另一個以相同儲存貯體名稱為目標的進行中執行，則會傳回錯誤並結束。
   + **`getBucketVersioningConfiguration`**:

     擷取指定 Amazon S3 儲存貯體的版本控制狀態。
   + **`branchOnStoppingIfMFADeleteEnabled`** （條件式）：

     如果在指定的 Amazon S3 儲存貯體上啟用多重要素驗證 (MFA)，則停止自動化。
   + **`approvalToMakeChangesToTheProvidedS3Bucket`**:

     等待指定的委託人核准，以停用儲存貯體版本控制，並更新指定 Amazon S3 儲存貯體的儲存貯體政策和生命週期規則組態。
   + **`branchOnBucketVersioningStatus`** （條件式）：

     如果在指定的 Amazon S3 儲存貯體上啟用版本控制，請將其停用，否則請繼續更新儲存貯體政策和生命週期組態。
   + **`suspendBucketVersioning`**:

     暫停指定 Amazon S3 儲存貯體的版本控制狀態。
   + **`updateBucketPolicyAndLifeCycleConfiguration`**:

     新增或更新儲存貯體政策以拒絕所有`s3:PutObject`請求，並更新生命週期組態以根據使用者提供的輸入參數使物件過期。
   + **`branchOnFailingIfBucketPropertiesNotUpdated`** （條件式）：

     檢查`updateBucketPolicyAndLifeCycleConfiguration`步驟的狀態，並嘗試在自動化變更時還原原始儲存貯體版本控制狀態。
   + **`branchOnFailureOriginalVersioningStatus`** （有條件）：

     失敗時， 分支會判斷原始版本控制狀態。如果 已由此自動化啟用和暫停， 會嘗試再次啟用它。
   + **`onFailureRestoreBucketVersioning`**

     還原指定 Amazon S3 儲存貯體的已啟用版本控制狀態。

1. 完成後，請檢閱輸出區段以取得執行的詳細結果：  
![\[包含 AWSSupport-EmptyS3Bucket 文件執行輸出的影像，顯示成功的執行和設定的生命週期政策。\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-empty-s3-bucket_outputs.png)
   + **成功執行**

     此工作流程會更新儲存貯體的生命週期規則。物件將根據`Delete-All-AWSSupport-EmptyS3-Bucket`生命週期政策刪除。  
![\[包含已設定 Delete-All-AWSSupport-EmptyS3-Bucket 生命週期政策的影像。\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/awssupport-empty-s3-bucket_outputs_lifecycle_policy.png)
   + **失敗執行**

     不會執行部分刪除。如果執行失敗，生命週期和其他儲存貯體設定會復原。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-EmptyS3Bucket/description)
+ [執行自動化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [設定 自動化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支援自動化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)

如需管理 Amazon S3 儲存貯體和物件的詳細資訊，請參閱[清空儲存貯體](https://docs.aws.amazon.com//AmazonS3/latest/userguide/empty-bucket.html)。