當我在 AWS Backup 中還原 S3 物件時,我發現 Amazon Simple Storage Service (Amazon S3) 儲存貯體出現空白或部分還原的情況。
簡短描述
您的 Amazon S3 還原作業會出現空白或部分物件還原的可能原因如下:
- 目的地儲存貯體中已存在最新版本的物件。
- 您沒有還原物件所需的非目前版本。
- 該物件還原為刪除標記。
- 該物件不在備份中。
- 您已為還原備份的儲存貯體啟用 Amazon S3 封鎖公開存取功能。
解決方法
目的地儲存貯體中已存在最新版本的物件
AWS Backup 會備份您所有的 S3 物件版本。然而,如果在啟動還原時未還原其他版本,則 AWS Backup 預設只會從版本堆疊還原最新版本。
如果您還原特定物件,AWS Backup 將還原該物件的目前版本。如果您還原到已經包含最新版本的目的地 S3 儲存貯體,AWS Backup 將不會還原該物件。在此情況下,您可以將備份還原到新的儲存貯體或其他現有儲存貯體,以確保目的地儲存貯體中沒有最新版本的物件。
您沒有還原物件所需的非目前版本
在還原過程中,您可以選擇還原物件的最多 10 個最新版本,或還原所有版本。如果您沒有選取還原物件的非目前版本,S3 還原作業預設只還原最新版本。
還原後,最佳實務是檢查缺少的版本是否為物件的非目前版本。接著,檢查是否已還原所有所需的非目前版本。您必須擁有所有所需的非目前版本才能完成還原組態。
該物件還原為刪除標記
當您備份 S3 儲存貯體時,物件的最新版本可能是刪除標記。AWS Backup 將還原物件的刪除標記。
當符合下列任一情況時,物件即為刪除標記:
- 您刪除了物件但未指定版本 ID。
- 您在啟用版本控制的儲存貯體中設定了生命週期。
若要管理刪除標記,請完成以下步驟:
- 列出啟用版本控制的儲存貯體中的物件,以確認 AWS Backup 是否將物件還原為刪除標記。
**注意:**有關 S3 資源備份的更多資訊,請參閱 Amazon S3 備份注意事項。
- 移除刪除標記。
該物件不在備份中
物件不在備份中的原因如下。
啟動備份時物件不在儲存貯體中
若要確認物件是否在來源儲存貯體中,請檢查物件最新版本的建立日期與備份作業的建立日期。若要檢查啟動備份作業時是否存在物件的先前版本,請列出啟用版本控制的儲存貯體中的物件。如果要還原的版本建立時間在備份作業建立時間之後,則物件不在備份中。
若要解決此問題,請使用日期較晚的 復原點或時間點復原 (PITR)。同時,確保備份中的物件版本為最新版本。
**注意:**AWS Backup 會將物件版本還原為建立備份時 S3 儲存貯體中的最新版本。
AWS Backup 無法存取或還原物件,可能是因為權限不足或設定不正確
當物件因權限問題無法複製時,AWS Backup for Amazon S3 不會使備份失敗。若要解決此問題,請使用具有完成還原所需權限的 AWSBackupServiceRolePolicyForS3Restore 政策。
同時,請確保下列政策中對備份物件所需的權限沒有明確或隱含的拒絕設定:
- S3 儲存貯體政策
- AWS Identity and Access Management (IAM) 政策
- AWS Organizations 政策
- AWS Key Management Service (AWS KMS) 金鑰政策
**注意:**若要允許 IAM 政策在您的金鑰政策中生效,請新增預設金鑰政策聲明。
- IAM 權限界限
物件位於 Amazon S3 的封存儲存類別
AWS Backup 不支援 Amazon S3 的封存儲存類別。
如果您的物件位於以下儲存類別,則無法備份物件:
- Amazon S3 Glacier
- Amazon S3 Glacier Flexible Retrieval
- Amazon S3 Glacier Deep Archive
- Amazon S3 Intelligent-Tiering 儲存類別的任何封存層
S3 備份僅允許備份以下儲存類別中的物件:
- Amazon S3 Standard
- Amazon S3 Standard-Infrequent Access (S3 Standard-IA)
- Amazon S3 Intelligent-Tiering
- Amazon S3 One Zone-IA
- Amazon S3 Glacier Instant Retrieval
物件由不同帳戶上傳
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
在上傳物件的 AWS 帳戶中採取以下其中一個操作:
- 變更上傳物件的存取控制清單 (ACL)。上傳帳戶必須將 ACL 的完整控制權提供給儲存貯體擁有者。如需更多資訊,請參閱 put-object-acl。
- 再次使用 cp 或 put-object 命令上傳物件,並指定儲存貯體擁有者完整控制的預設 ACL。上傳帳戶還必須將 --acl 旗標指定為 bucket-owner-full-control。
您啟用了 Amazon S3 封鎖公開存取功能
如果您從來源儲存貯體備份物件時附加了物件,則必須允許還原儲存貯體中的公開 ACL。
如果您為還原的儲存貯體啟用了 Amazon S3 封鎖公開存取功能,則還原時會出現「Access Denied」錯誤。AWS Backup 不會還原這些物件。還原的物件數量可能會有所不同,或出現空白還原。AWS Backup 會跳過無法還原的物件並繼續執行作業。AWS Backup 將作業標記為完成,不會使作業失敗。
若要解決此問題,請完成以下步驟:
- 在 Amazon S3 主控台上建立新儲存貯體。
- 修改封鎖公開存取設定,以允許使用公開 ACL。
- 還原物件。
**注意:**您可以使用事件通知來提醒您,AWS Backup 在還原作業期間未能還原的 S3 物件。例如,您可以使用 S3_RESTORE_OBJECT_FAILED 事件通知。