如何使用 CloudFormation 範本管理 AWS Backup 設定?

2 分的閱讀內容
0

我想要使用 AWS Backup 從其他 AWS 資源備份我的資料。此外,我想要使用 AWS CloudFormation 範本來管理我的 AWS Backup 組態。

解決方法

若要建立 CloudFormation 範本,請使用支援的 AWS Backup 資源類型。例如,您可以使用 CloudFormation 範本建立備份計畫,並將資源指派給備份計畫。您也可以使用範本建立備份計畫、建立備份保存庫,並將資源指派給備份計畫。

**重要:**您的備份計畫必須指定將資源指派給備份計畫的標籤。在設定備份計畫之前,請先決定標籤。然後,驗證標籤已指派給正確的資源,且已正確寫入備份計畫。

用於建立備份計畫並將資源指派給備份計畫的範本

下方的 YAML 格式範例 CloudFormation 範本會執行下列動作:

  • 建立一個名為 BackupPlanWithThinBackups 的備份計畫。
  • 將備份設定為儲存在名為 Default 的保存庫中。
  • 建立名為 RuleForDailyBackups 的備份規則,排程在上午 11:25 執行每日備份。
  • 開啟 Windows VSS。
  • 將生命週期設定為在建立備份後七天將其刪除。
  • 設定 CopyAction 將備份複製到 us-west-2 AWS 區域以備災難復原。
  • 使用名為 AWSBackupDefaultServiceRole 的 AWS Identity and Access Management (IAM) 角色來執行備份任務。
  • 將備份計畫指派給使用索引鍵 backupplan 及值 dsi-sandbox-daily 標記的所有資源。
AWSTemplateFormatVersion: 2010-09-09
Description: >-
  Backup Plan template to back up all resources tagged with backupplan=dsi-sandbox-daily at 11:25am
  UTC.
Resources:
  BackupPlanWithThinBackups:
    Type: "AWS::Backup::BackupPlan"
    Properties:
      BackupPlan:
        BackupPlanName: "BackupPlanWithThinBackups"
        AdvancedBackupSettings:
          -
            ResourceType: EC2
            BackupOptions:
              WindowsVSS: enabled
        BackupPlanRule:
          -
            RuleName: "RuleForDailyBackups"
            TargetBackupVault: Default
            ScheduleExpression: "cron(25 11 ? * * *)"
            Lifecycle:
              DeleteAfterDays: 7
            CopyActions:
              -
                  DestinationBackupVaultArn: arn:aws:backup:us-west-2:111222333444:backup-vault:Default
                  Lifecycle:
                   DeleteAfterDays: 14
  TagBasedBackupSelection:
    Type: "AWS::Backup::BackupSelection"
    Properties:
      BackupSelection:
        SelectionName: "TagBasedBackupSelection"
        IamRoleArn: !Sub "arn:aws:iam::111222333444:role/service-role/AWSBackupDefaultServiceRole"
        ListOfTags:
         -
           ConditionType: "STRINGEQUALS"
           ConditionKey: "backupplan"
           ConditionValue: "dsi-sandbox-daily"
      BackupPlanId: !Ref BackupPlanWithThinBackups
    DependsOn: BackupPlanWithThinBackups

用於建立備份計畫、建立備份保存庫,以及將資源指派給備份計畫的範本

下方的 YAML 格式範例 CloudFormation 範本會執行下列動作:

  • 建立名為 Default 的備份保存庫。
  • 建立一個名為 BackupPlanWithThinBackups 的備份計畫。
  • 將備份設定為儲存在名為 BackupVaultWithThinBackups 的保存庫中。
  • 建立名為 RuleForDailyBackups 的備份規則,排程執行每日備份。這些備份在建立後七天會刪除。
  • 開啟 Windows VSS。
  • 設定 CopyAction 將備份複製到 us-west-2 AWS 區域以備災難復原。這些備份會在建立後 14 天刪除。
  • 建立名為 RuleForWeeklyBackups 的備份規則,排程在每週一上午 11:00 執行每週備份。這些備份會在建立後 28 天刪除。
  • 建立名為 RuleForMonthlyBackups 的備份規則,排程在每月第一天上午 11:00 執行備份。這些備份會在建立後 90 天刪除。
  • 使用名為 AWSBackupDefaultServiceRole 的 IAM 角色來執行備份任務。
  • 將備份計畫指派給使用索引鍵 backup 及值 thinbackup 標記的所有資源。
AWSTemplateFormatVersion: "2010-09-09"
Description: "Backup Plan template for thin backups"
Resources:
  BackupVaultWithThinBackups:
    Type: "AWS::Backup::BackupVault"
    Properties:
      BackupVaultName: "BackupVaultWithThinBackups"

  BackupPlanWithThinBackups:
    Type: "AWS::Backup::BackupPlan"
    Properties:
      BackupPlan:
        BackupPlanName: "BackupPlanWithThinBackups"
        AdvancedBackupSettings:
          -
            ResourceType: EC2
            BackupOptions:
              WindowsVSS: enabled
        BackupPlanRule:
          -
            RuleName: "RuleForDailyBackups"
            TargetBackupVault: !Ref BackupVaultWithThinBackups
            ScheduleExpression: "cron(25 11 ? * * *)"
            Lifecycle:
              DeleteAfterDays: 7
            CopyActions:
              -
                  DestinationBackupVaultArn: arn:aws:backup:us-west-2:111222333444:backup-vault:Default
                  Lifecycle:
                   DeleteAfterDays: 14
          -
            RuleName: "RuleForWeeklyBackups"
            TargetBackupVault: !Ref BackupVaultWithThinBackups
            ScheduleExpression: "cron(0 11 ? * 2 *)"
            Lifecycle:
              DeleteAfterDays: 28
            CopyActions:
              -
                  DestinationBackupVaultArn: arn:aws:backup:us-west-2:111222333444:backup-vault:Default
                  Lifecycle:
                   DeleteAfterDays: 14
          -
            RuleName: "RuleForMonthlyBackups"
            TargetBackupVault: !Ref BackupVaultWithThinBackups
            ScheduleExpression: "cron(0 11 1 * ? *)"
            Lifecycle:
              DeleteAfterDays: 90
            CopyActions:
              -
                  DestinationBackupVaultArn: arn:aws:backup:us-west-2:111222333444:backup-vault:Default
                  Lifecycle:
                   DeleteAfterDays: 14
    DependsOn: BackupVaultWithThinBackups

  TagBasedBackupSelection:
    Type: "AWS::Backup::BackupSelection"
    Properties:
      BackupSelection:
        SelectionName: "TagBasedBackupSelection"
        IamRoleArn: !Sub "arn:aws:iam::${AWS::AccountId}:role/service-role/AWSBackupDefaultServiceRole"
        ListOfTags:
         -
           ConditionType: "STRINGEQUALS"
           ConditionKey: "backup"
           ConditionValue: "thinbackup"
      BackupPlanId: !Ref BackupPlanWithThinBackups
    DependsOn: BackupPlanWithThinBackups

相關資訊

對 AWS Backup 進行疑難排解

AWS 官方
AWS 官方已更新 9 個月前