将资源分配给备份计划 - Amazon Backup
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将资源分配给备份计划

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

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

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

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

  • 如果为备份计划明确分配了资源类型,例如 Amazon S3、Amazon EC2 或 Amazon RDS,那么即使该特定服务未启用选择加入功能,该资源类型也将包含在备份中。

  • 如果在资源分配中同时指定了资源类型和标签,则备份计划中指定的资源类型优先于标签条件。在这种情况下,“选择加入服务”设置将被忽略。

您的资源分配可以包括(或排除)资源类型资源

  • 资源类型包括 Amazon Backup 支持的 Amazon 服务或第三方应用程序的每个实例或资源。例如,DynamoDB 资源类型指的是您的所有 DynamoDB 表。

  • 资源是某种资源类型的单个实例,例如您的一个 DynamoDB 表。您可以使用其唯一的资源 ID 来指定资源。

您可以使用标签和条件运算符进一步细化资源分配。

使用控制台分配资源

要导航到分配资源页面,请执行以下操作:
  1. 打开 Amazon Backup 控制台,网址为:https://console.aws.amazon.com/backup

  2. 选择备份计划

  3. 选择创建备份计划

  4. 选择模板下拉列表中选择任意模板,然后选择创建计划

  5. 键入备份计划名称

  6. 选择创建计划

  7. 选择分配资源

要开始分配资源,请在常规部分执行以下操作:
  1. 键入资源分配名称

  2. 选择默认角色选择一个 IAM 角色

    注意

    如果您选择 IAM 角色,请验证该角色是否具有备份您要分配的所有资源的权限。如果您的角色遇到它无权备份的资源,则备份计划将失败。

要分配资源,请在分配资源部分,选择定义资源选择下的两个选项之一:

  • 包括所有资源类型。此选项可配置您的备份计划,以保护分配给您的备份计划的所有当前和未来 Amazon Backup 支持的资源。使用此选项可以快速轻松地保护您的数据资产。

    选择此选项后,下一步可以选择使用标签来调整选择

  • 包括特定的资源类型。选择此选项时,必须按照以下步骤选择特定的资源类型

    1. 使用选择资源类型下拉菜单,分配一个或多个资源类型。

      重要

      RDS、Aurora、Neptune 和 DocumentDB 共享相同的 Amazon 资源名称 (ARN)。在将其中一种资源类型分配给备份计划时,选择使用 Amazon Backup 来管理这种资源可以选择管理所有这些资源类型。要细化您的选择,请使用标签和条件运算符。

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

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

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

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

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

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

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

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

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

当您使用两个或更多标签细化您的选择时,效果是 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

下表列出了许多资源分配示例,以及使用 Amazon Backup API、CLI 或 SDK 执行分配的相应 JSON 文档。为了便于您阅读此表,示例省略了字段 "BackupPlanId""SelectionName""IamRoleArn"。通配符 * 代表零个或多个非空格字符。

资源分配 JSON
选择我账户中的所有资源。
{ "BackupSelection":{ "Resources":[ "*" ] } }
选择我账户中的所有资源,但不包括 EBS 卷。
{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:ec2:*:*:volume/*" ] } }
选择我账户中带 "backup":"true" 标签的所有资源,但不包括 EBS 卷。
{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:ec2:*:*:volume/*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" } ] } } }
选择所有同时带 "backup":"true""stage":"prod" 标签的 EBS 卷和 RDS DB 实例。
{ "BackupSelection":{ "Resources":[ "arn:aws:ec2:*:*:volume/*", "arn:aws:rds:*:*:db:*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" }, { "ConditionKey":"aws:ResourceTag/stage", "ConditionValue":"prod" } ] } } }
注意

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

注意

"Resources" 表达式 "arn:aws:rds:*:*:db:*" 仅选择 RDS DB 实例,因为没有相应的 Aurora、Neptune 或 DocumentDB 资源。

选择所有带 "backup":"true" 标签但不带 "stage":"test" 标签的 EBS 卷和 RDS 实例。
{ "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" 一词的资源。
{ "BackupSelection":{ "Resources":[ "*" ], "Conditions":{ "StringLike":[ { "ConditionKey":"aws:ResourceTag/key1", "ConditionValue":"include*" } ], "StringNotLike":[ { "ConditionKey":"aws:ResourceTag/key2", "ConditionValue":"*exclude*" } ] } } }

您可以在字符串的开头、结尾和中间使用通配符字符。请注意,上述示例在 include**exclude* 中使用了通配符 (*)。您也可以在字符串中间使用通配符,如前面的示例所示,arn:aws:rds:*:*:db:*

选择所有带 "backup":"true" 标签的资源,但 FSx 文件系统以及 RDS、Aurora、Neptune 和 DocumentDB 资源除外。
{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:fsx:*", "arn:aws:rds:*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" } ] } } }

NotResources 中的项目使用布尔 OR 进行组合。

选择所有带 "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" } ] } } }
选择所有带 "backup":"true" 标签的资源,但带 "stage":"test" 标签的 EBS 卷除外。

使用两个 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" } ] } } }

使用 Amazon CloudFormation 分配资源

此 end-to-end Amazon 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 个标签(且每个标签的资源数量不受限制)