將資源指派至備份計畫 - AWS Backup

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

將資源指派至備份計畫

資源指派 AWS Backup 會指定使用您的備份計畫來保護哪些資源。 AWS Backup 提供簡單的預設設定和精細的控制項,可將資源指派給備份計劃。每次執行備份計劃時,都會掃描符合資源指派準則的所有資源。 AWS 帳戶 此自動化層級可讓您只定義一次備份計劃和資源指派。 AWS Backup 摘要刪除尋找和備份符合您先前定義之資源工作分派的新資源的工作。

您可以指派任何已選擇管理的 AWS Backup支援資源類型。 AWS Backup 如需如何選擇加入更多 AWS Backup支援的資源類型的指示,請參閱入門 1:服務選擇加入。

主 AWS Backup 控台有兩種方式可將資源類型納入備份計畫中:在備份計畫中明確指派資源類型或包含所有資源。請參閱下列要點,以了解這些選項如何與選擇加入服務搭配運作。

  • 如果資源指派僅以標籤為基礎,則會套用選擇加入服務設定。

  • 如果資源類型明確指定給備份計劃,即使該特定服務未啟用選擇加入,該資源類型也會包含在備份中。這不適用於 Aurora,Neptune 和 Amazon DocumentDB。若要包含這些服務,必須啟用選擇加入。

  • 如果在資源工作分派中同時指定了資源類型和標籤,則會先篩選指定的資源類型,然後標籤進一步篩選這些資源。

    大多數資源類型都會忽略服務選擇加入設定。但是,Aurora,Neptune 和 Amazon DocumentDB 需要選擇加入服務。

  • 當帳戶在某個區域中使用 AWS Backup (創建備份保存庫或備份計劃)時,該帳戶會自動選擇使用該區域 AWS Backup 中支持的所有資源類型。日後新增至該區域的支援服務將不會自動包含在備份方案中。您可以選擇在支援這些資源類型後選擇加入這些資源類型。

  • 對於適用於 NetApp ONTAP 的 Amazon FSx,使用以標籤為基礎的資源選取時,請將標籤套用至個別磁碟區,而不是整個檔案系統。

您的資源指派可以包含 (或排除) 資源類型資源

  • 資源類型包含 AWS Backup支援 AWS 服務或協力廠商應用程式的每個執行個體或資源。例如,DynamoDB 資源類型會參考您所有的 DynamoDB 表。

  • 資源是資源類型的單一執行個體,例如其中一份 DynamoDB 表。您可以使用資源的唯一資源 ID 來指定資源。

您可以使用標籤和條件運算子進一步完善資源指派。

使用主控台指派資源

瀏覽至 指派資源 頁面:
  1. 請在以下位置開啟 AWS Backup 主控台。 https://console.aws.amazon.com/backup

  2. 選擇 備份計畫

  3. 選擇 建立備份計畫

  4. 選擇範本 下拉式清單中選取任一範本,然後選擇 建立計畫

  5. 輸入備份計畫名稱

  6. 選擇 建立計畫

  7. 選擇 指派資源

若要開始指派資源,請在 一般 區段中:
  1. 輸入資源指派名稱

  2. 選擇 預設角色選擇 IAM 角色

    注意

    如果您選擇 IAM 角色,請確認其有權備份您要指派的所有資源。如果您的角色遇到無權備份的資源,您的備份計畫會失敗。

若要指派資源,請在 指派資源 區段中,選擇 定義資源選取 下的兩個選項之一:

  • 包含所有資源類型。此選項可設定備份計劃,以保護指派給備份計劃的所有目前和 future AWS Backup支援的資源。使用此選項可快速輕鬆地保護您的資料資產。

    選擇此選項時,您也可以在下一步選擇 使用標籤縮小選取範圍

  • 包含特定的資源類型。選擇此選項時,您必須在後續步驟中 選取特定的資源類型

    1. 使用 選取資源類型 下拉式功能表,指派一或多個資源類型。

      重要

      RDS、Aurora、Neptune 和 DocumentDB 共用相同的 Amazon Resource Name (ARN)。選擇以 AWS Backup 管理這些資源類型之一,即在將此類型指派給備份計畫時選擇加入全部資源類型。若要縮小選取範圍,請使用標籤和條件運算子。

      完成後,會 AWS Backup 顯示您選取的資源類型清單及其預設設定,這是為了保護每個所選資源類型的所有資源。

    2. 或者,您也可以從選取的資源類型中排除特定的資源:

      1. 使用 選擇資源 下拉式功能表,取消選取預設選項。

      2. 選取要指派給備份計畫的特定資源。

    3. 或者,您也可以選擇 排除所選資源類型中的特定資源 ID。如果您想要在諸多資源中排除一或幾項資源,請使用此選項,因為這比上一個步驟的選取許多資源來得快。您必須先包含資源類型,才能從該資源類型中排除資源。使用下列步驟排除資源 ID:

      1. 排除所選資源類型中的特定資源 ID 下,選擇您使用 選取資源類型 包含的一或多個資源類型。

      2. 針對每種資源類型,使用 [選擇資源] 功能表選取要排除的一或多個資源。

除了先前的選擇之外,您還可以使用選用的 使用標籤縮小選取範圍 功能進行更精細的選擇。此功能可讓您縮小目前的選取範圍,使用標籤包含資源的子集。

標籤是可以指派給特定資源的鍵值對,以利識別、組織與篩選資源。標籤會區分大小寫。如需有關標籤的詳細資訊,請參閱標記資 AWS 源

當您使用兩個或以上的標籤縮小選取範圍時,效果如同 AND 條件。例如,如果您使用兩個標籤 env: prodrole: application 縮小選取範圍,僅會將同時具有兩個標籤的資源指派給備份計畫。

使用標籤縮小選取範圍:
  1. 在「使用標籤細化選取範圍」下,從清單中選擇「關鍵字」。

  2. 從清單中選擇值的「條件」。

    • 是指下一個輸入,即鍵值對的值。

    • 條件 可以是 EqualsContainsBegins withEnds with,或與其相反的 Does not equalDoes not containDoes not begin withDoes not end with

  3. 從清單中選擇「」。

  4. 選擇 新增標籤 可使用其他標籤進一步縮小範圍。

以程式設計方式指派資源

您可以在 JSON 文件中定義資源指派。此範例資源指派會將所有 Amazon EC2 執行個體指派給備份計畫 BACKUP-PLAN-ID

{ "BackupPlanId":"BACKUP-PLAN-ID", "BackupSelection":{ "SelectionName":"resources-list-selection", "IamRoleArn":"arn:aws:iam::ACCOUNT-ID:role/IAM-ROLE-ARN", "Resources":[ "arn:aws:ec2:*:*:instance/*" ] } }

假設此 JSON 儲存為 backup-selection.json,您可以使用下列 CLI 命令將這些資源指派給備份計畫:

aws backup create-backup-selection --cli-input-json file://PATH-TO-FILE/backup-selection.json

以下是資源工作分派範例,以及對應的 JSON 文件。為方便您閱讀此表格,範例省略了 "BackupPlanId""SelectionName""IamRoleArn" 欄位。萬用字元 * 代表零或多個非空白字元。

範例:選取我帳戶中的所有資源
{ "BackupSelection":{ "Resources":[ "*" ] } }
範例:選取帳戶中的所有資源,但排除 EBS 磁碟區
{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:ec2:*:*:volume/*" ] } }
範例:選取所有標記為但排除 EBS 磁碟區的資源 "backup":"true"
{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:ec2:*:*:volume/*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" } ] } } }
範例:選取標記為和的所有 EBS 磁碟區和 RDS 資料庫執行個體 "backup":"true""stage":"prod"

布林算術與 IAM 政策的運算類似,使用布林運算 OR 合併的 "Resources" 項目以及使用布林運算 AND 合併的 "Conditions" 項目。

"Resources" 運算式 "arn:aws:rds:*:*:db:*" 只選取 RDS 資料庫執行個體,因為沒有對應的 Aurora、Neptune 或 DocumentDB 資源。

{ "BackupSelection":{ "Resources":[ "arn:aws:ec2:*:*:volume/*", "arn:aws:rds:*:*:db:*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" }, { "ConditionKey":"aws:ResourceTag/stage", "ConditionValue":"prod" } ] } } }
範例:選取標記"backup":"true"但未標記的所有 EBS 磁碟區和 RDS 執行個體 "stage":"test"
{ "BackupSelection":{ "Resources":[ "arn:aws:ec2:*:*:volume/*", "arn:aws:rds:*:*:db:*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" } ], "StringNotEquals":[ { "ConditionKey":"aws:ResourceTag/stage", "ConditionValue":"test" } ] } } }
範例 示例:選擇所有標記為的資源以"key1"及一個以"include"但不是以 "key2" and 包含單詞的值 "exclude"

萬用字元可以用在字串的開頭、結尾和中間。請注意上例中,include**exclude* 如何使用萬用字元 (*)。您也可以在字串中間使用萬用字元,如前例 arn:aws:rds:*:*:db:* 所示。

{ "BackupSelection":{ "Resources":[ "*" ], "Conditions":{ "StringLike":[ { "ConditionKey":"aws:ResourceTag/key1", "ConditionValue":"include*" } ], "StringNotLike":[ { "ConditionKey":"aws:ResourceTag/key2", "ConditionValue":"*exclude*" } ] } } }
範例:選取"backup":"true"除 FSx 檔案系統和 RDS、Aurora、Neptune 和 DocumentDB 資源以外的所有標記資源

NotResources 中的項目使用布林值 OR 合併。

{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:fsx:*", "arn:aws:rds:*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" } ] } } }
範例:選取所有標記為標籤"backup"和任何值的資源
{ "BackupSelection":{ "Resources":[ "*" ], "Conditions":{ "StringLike":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"*" } ] } } }
範例:選取所有 FSx 檔案系統、Aurora 叢集"my-aurora-cluster"和所有標記為的資源"backup":"true",但標記為的資源除外 "stage":"test"
{ "BackupSelection":{ "Resources":[ "arn:aws:fsx:*", "arn:aws:rds:*:*:cluster:my-aurora-cluster" ], "ListOfTags":[ { "ConditionType":"StringEquals", "ConditionKey":"backup", "ConditionValue":"true" } ], "Conditions":{ "StringNotEquals":[ { "ConditionKey":"aws:ResourceTag/stage", "ConditionValue":"test" } ] } } }
範例:選取所有標記為標籤的資源,但標記為的 EBS 磁碟區"backup":"true"除外 "stage":"test"

使用兩個 CLI 命令建立兩個選取範圍,以選取此資源群組。第一個選項套用到除 EBS 磁碟區以外的所有資源。第二個選項套用到 EBS 磁碟區。

{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:ec2:*:*:volume/*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" } ] } } }
{ "BackupSelection":{ "Resources":[ "arn:aws:ec2:*:*:volume/*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" } ], "StringNotEquals":[ { "ConditionKey":"aws:ResourceTag/stage", "ConditionValue":"test" } ] } } }

使用指定資源 AWS CloudFormation

此 end-to-end AWS CloudFormation 範本會建立資源工作分派、備份計劃和目的地備份儲存庫:

  • 名為的備份儲存庫CloudFormationTestBackupVault

  • 名為的備份計劃CloudFormationTestBackupPlan。此計畫會執行兩條備份規則,這兩條規則每天都會在 UTC 時間中午 12 點執行備份,且備份保留期為 210 天。

  • 名為的資源選取項BackupSelectionName

    • 資源指派會備份下列資源:

      • 任何以鍵值對 backupplan:dsi-sandbox-daily 標記的資源。

      • 以值 prod 或開頭為 prod/ 的多個值標記的任何資源。

    • 資源指派不會備份下列資源:

      • 任何 RDS、Aurora、Neptune 或 DocumentDB 叢集。

      • 以值 test 或開頭為 test/ 的多個值標記的任何資源。

Description: "Template that creates Backup Selection and its dependencies" Parameters: BackupVaultName: Type: String Default: "CloudFormationTestBackupVault" BackupPlanName: Type: String Default: "CloudFormationTestBackupPlan" BackupSelectionName: Type: String Default: "CloudFormationTestBackupSelection" BackupPlanTagValue: Type: String Default: "test-value-1" RuleName1: Type: String Default: "TestRule1" RuleName2: Type: String Default: "TestRule2" ScheduleExpression: Type: String Default: "cron(0 12 * * ? *)" StartWindowMinutes: Type: Number Default: 60 CompletionWindowMinutes: Type: Number Default: 120 RecoveryPointTagValue: Type: String Default: "test-recovery-point-value" MoveToColdStorageAfterDays: Type: Number Default: 120 DeleteAfterDays: Type: Number Default: 210 Resources: CloudFormationTestBackupVault: Type: "AWS::Backup::BackupVault" Properties: BackupVaultName: !Ref BackupVaultName BasicBackupPlan: Type: "AWS::Backup::BackupPlan" Properties: BackupPlan: BackupPlanName: !Ref BackupPlanName BackupPlanRule: - RuleName: !Ref RuleName1 TargetBackupVault: !Ref BackupVaultName ScheduleExpression: !Ref ScheduleExpression StartWindowMinutes: !Ref StartWindowMinutes CompletionWindowMinutes: !Ref CompletionWindowMinutes RecoveryPointTags: test-recovery-point-key-1: !Ref RecoveryPointTagValue Lifecycle: MoveToColdStorageAfterDays: !Ref MoveToColdStorageAfterDays DeleteAfterDays: !Ref DeleteAfterDays - RuleName: !Ref RuleName2 TargetBackupVault: !Ref BackupVaultName ScheduleExpression: !Ref ScheduleExpression StartWindowMinutes: !Ref StartWindowMinutes CompletionWindowMinutes: !Ref CompletionWindowMinutes RecoveryPointTags: test-recovery-point-key-1: !Ref RecoveryPointTagValue Lifecycle: MoveToColdStorageAfterDays: !Ref MoveToColdStorageAfterDays DeleteAfterDays: !Ref DeleteAfterDays BackupPlanTags: test-key-1: !Ref BackupPlanTagValue DependsOn: CloudFormationTestBackupVault TestRole: Type: "AWS::IAM::Role" Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: - "backup.amazonaws.com" Action: - "sts:AssumeRole" ManagedPolicyArns: - !Sub "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForBackup" BasicBackupSelection: Type: 'AWS::Backup::BackupSelection' Properties: BackupPlanId: !Ref BasicBackupPlan BackupSelection: SelectionName: !Ref BackupSelectionName IamRoleArn: !GetAtt TestRole.Arn ListOfTags: - ConditionType: STRINGEQUALS ConditionKey: backupplan ConditionValue: dsi-sandbox-daily NotResources: - 'arn:aws:rds:*:*:cluster:*' Conditions: StringEquals: - ConditionKey: 'aws:ResourceTag/path' ConditionValue: prod StringNotEquals: - ConditionKey: 'aws:ResourceTag/path' ConditionValue: test StringLike: - ConditionKey: 'aws:ResourceTag/path' ConditionValue: prod/* StringNotLike: - ConditionKey: 'aws:ResourceTag/path' ConditionValue: test/*

資源指派的配額

下列配額適用於單一資源指派:

  • 500 個不含萬用字元的 Amazon Resource Name (ARN)

  • 30 個含萬用字元運算式的 ARN

  • 30 個條件

  • 每個資源指派有 30 個標籤 (每個標籤的資源不限數量)