将资源分配给备份计划 - AWS Backup

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将资源分配给备份计划

资源分配指定 AWS Backup 将使用您的备份计划保护哪些资源。 AWS Backup 为您提供了简单的默认设置和精细的控制来为备份计划分配资源。每次运行备份计划时,它都会扫描您的 AWS 账户 所有符合您的资源分配标准的资源。这种自动化级别允许您只定义一次备份计划和资源分配。 AWS Backup 简化了寻找和备份适合您先前定义的资源分配的新资源的工作。

您可以分配您选择管理的任何 AWS Backup支持的资源类型。 AWS Backup 有关如何选择更多 AWS Backup支持的资源类型的说明,请参阅入门 1:服务选择加入。

AWS Backup 控制台有两种方法可以在备份计划中包含资源类型:在备份计划中明确分配资源类型或包含所有资源。请参阅以下要点,了解如何将这些选择与“选择加入服务”设置一起使用。

  • 如果资源分配仅基于标签,将应用“选择加入服务”设置。

  • 如果为备份计划明确分配了资源类型,则即使该特定服务未启用选择加入功能,该资源类型也将包含在备份中。这不适用于 Aurora、Neptune 和亚马逊 DocumentDB。要包含这些服务,必须启用选择加入。

  • 如果在资源分配中同时指定了资源类型和标签,则首先筛选指定的资源类型,然后标签会进一步筛选这些资源。

    对于大多数资源类型,服务选择加入设置都会被忽略。但是 Aurora、Neptune 和亚马逊 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 资源名称 (ARN)。在将其中一种资源类型分配给备份计划时,选择使用 AWS Backup 来管理这种资源可以选择管理所有这些资源类型。要细化您的选择,请使用标签和条件运算符。

      完成后,将 AWS Backup 显示您选择的资源类型列表及其默认设置,即保护每种选定资源类型的所有资源。

    2. (可选)如果您想从所选资源类型中排除特定资源,请执行以下操作:

      1. 使用选择资源下拉菜单并取消选择默认选项。

      2. 选择要分配给备份计划的特定资源。

    3. 或者,您可以从所选资源类型中排除特定的资源 ID。如果您想从众多资源中排除一个或几个资源,请使用此选项,因为这样做可能比在上一步中选择许多资源要快。必须先包括资源类型,然后才能从该资源类型中排除资源。使用以下步骤排除资源 ID:

      1. 从所选资源类型中排除特定资源 ID下,使用选择资源类型选择一个或多个包含的资源类型。

      2. 对于每种资源类型,使用选择资源菜单选择一个或多个要排除的资源。

除了之前的选择外,您还可以使用可选的使用标签优化选择功能,进行更精细的选择。此功能允许您使用标签细化当前的选择,以包含资源子集。

标签是键值对,您可以将其分配给特定资源,以帮助您识别、组织和筛选资源。标签区分大小写。有关标记的更多信息,请参阅标记您的 AWS 资源

当您使用两个或更多标签细化您的选择时,效果是 AND 条件。例如,如果您使用 env: prodrole: application 这两个标签来细化选择,则只能将带有 BOTH 标签的资源分配给您的备份计划。

要使用标签细化选择,请执行以下操作:
  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/*" ] } }
例 示例:选择所有标有 "backup":"true" EBS 卷但不包括 EBS 卷的资源
{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:ec2:*:*:volume/*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" } ] } } }
例 示例:选择所有同时"backup":"true"标记了和的 EBS 卷和 RDS 数据库实例 "stage":"prod"

布尔算术与 IAM 策略中的算术类似,"Resources" 中的策略使用布尔 OR 组合,而 "Conditions" 中的策略使用布尔 AND 组合。

"Resources" 表达式 "arn:aws:rds:*:*:db:*" 仅选择 RDS DB 实例,因为没有相应的 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"以及包含该词的值 "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 资源名称 (ARN)

  • 30 个带有通配符表达式的 ARN

  • 30 个条件

  • 每个资源分配 30 个标签(且每个标签的资源数量不受限制)