备份策略语法和示例 - Amazon Organizations
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

备份策略语法和示例

本页介绍备份策略语法并提供示例。

备份策略的语法

备份策略是一个纯文本文件,根据 JSON 的规则设置结构。备份策略的语法遵循所有管理策略类型的语法。有关该语法的完整讨论,请参阅管理策略类型的策略语法和继承。本主题重点介绍如何将该常规语法应用于备份策略类型的特定要求。

备份策略的这一部分是备份计划及其规则。Amazon Organizations 备份策略中的备份计划的语法在结构上与 Amazon Backup 使用的语法相同,但键名称不同。在下面对策略键名称的说明中,每一项都包括等效的 Amazon Backup 计划键名称。有关 Amazon Backup 计划的更多信息,请参阅《Amazon Backup 开发人员指南》中的创建备份计划

有效备份策略要完整而实用,必须不仅仅包括备份计划及其时间安排和规则。该策略还必须标识Amazon Web Services 区域和要备份的资源以及 Amazon Backup 可用于执行备份的 Amazon Identity and Access Management(IAM)角色。

以下功能完整的策略显示了基本备份策略语法。如果此示例直接附加到某个账户,则 Amazon Backup 会备份该账户的所有资源,这些资源位于 us-east-1eu-north-1 区域中且标签 dataType 的值为 PIIRED。它每天上午 5:00 将这些资源备份到 My_Backup_Vault 中,同时将副本存储在 My_Secondary_Vault 中。这两个文件库与资源位于同一个账户中。它还会将备份的副本存储在另一个明确指定的账户中的 My_Tertiary_Vault 中。对于接收有效策略的每个Amazon Web Services 账户,文件库必须已存在于每个指定的Amazon Web Services 区域中。如果任何备份资源都是 EC2 实例,则会对这些实例上的备份启用对 Microsoft 卷影复制服务(VSS)的支持。该备份将标签 Owner:Backup 应用到每个恢复点。

{ "plans": { "PII_Backup_Plan": { "rules": { "My_Hourly_Rule": { "schedule_expression": {"@@assign": "cron(0 5 ? * * *)"}, "start_backup_window_minutes": {"@@assign": "60"}, "complete_backup_window_minutes": {"@@assign": "604800"}, "enable_continuous_backup": {"@@assign": false}, "target_backup_vault_name": {"@@assign": "My_Backup_Vault"}, "recovery_point_tags": { "Owner": { "tag_key": {"@@assign": "Owner"}, "tag_value": {"@@assign": "Backup"} } }, "lifecycle": { "move_to_cold_storage_after_days": {"@@assign": "180"}, "delete_after_days": {"@@assign": "270"} }, "copy_actions": { "arn:aws:backup:us-west-2:$account:backup-vault:My_Secondary_Vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-west-2:$account:backup-vault:My_Secondary_Vault" }, "lifecycle": { "move_to_cold_storage_after_days": {"@@assign": "180"}, "delete_after_days": {"@@assign": "270"} } }, "arn:aws:backup:us-east-1:$account:backup-vault:My_Tertiary_Vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-east-1:111111111111:backup-vault:My_Tertiary_Vault" }, "lifecycle": { "move_to_cold_storage_after_days": {"@@assign": "180"}, "delete_after_days": {"@@assign": "270"} } } } } }, "regions": { "@@append": [ "us-east-1", "eu-north-1" ] }, "selections": { "tags": { "My_Backup_Assignment": { "iam_role_arn": {"@@assign": "arn:aws:iam::$account:role/MyIamRole"}, "tag_key": {"@@assign": "dataType"}, "tag_value": { "@@assign": [ "PII", "RED" ] } } } }, "advanced_backup_settings": { "ec2": { "windows_vss": {"@@assign": "enabled"} } }, "backup_plan_tags": { "stage": { "tag_key": {"@@assign": "Stage"}, "tag_value": {"@@assign": "Beta"} } } } } }

备份策略语法包括以下组件:

  • $account 变量 – 在策略的某些文本字符串中,可以使用 $account 变量来表示当前Amazon Web Services 账户。当 Amazon Backup 运行有效策略中的计划时,它会自动将此变量替换为运行有效策略及其计划所用的当前Amazon Web Services 账户。

    重要

    您只能在可以包含 Amazon Resource Name(ARN)的策略元素中使用 $account 变量,例如指定要存储备份的备份文件库的元素或具有执行备份的权限的 IAM 角色。

    例如,以下情况要求策略应用到的每个Amazon Web Services 账户中都存在名为 My_Vault 的文件库。

    arn:aws:backup:us-west-2:$account:vault:My_Vault"

    我们建议您使用 Amazon CloudFormation 堆栈套及其与 Organizations 的集成,为组织中的每个成员账户自动创建和配置备份文件库和 IAM 角色。有关更多信息,请参阅《Amazon CloudFormation 用户指南》中的创建具有自行管理权限的堆栈套

  • 继承运算符 – 备份策略可以同时使用继承值设置运算符子控制运算符

  • plans

    策略的顶级键是 plans 键。在策略文件顶部,备份策略必须始终以此固定键名称开头。在此键下,您可以有一个或多个备份计划。

  • plans 顶级键下的每个计划都有一个由用户分配的备份计划名称组成的键名称。在前面的示例中,备份计划名称为 PII_Backup_Plan。一个策略中可以有多个计划,每个计划都有自己的 rulesregionsselectionstags

    备份策略中的此备份计划键名称映射到 Amazon Backup 计划中的 BackupPlanName 键的值。

    每个计划可以包含以下元素:

    • rules – 此键包含规则集合。每个规则都转换为一个计划任务,其中包含有效备份策略中由 selectionsregions 元素标识的资源的开始时间和时段。

    • regions – 此键包含可通过此策略备份其资源的Amazon Web Services 区域的数组列表。

    • selections – 此键包含一个或多个按指定 rules 备份的资源集合(在指定的 regions 内)。

    • advanced_backup_settings – 此键包含特定于在某些资源上运行的备份的设置。

    • backup_plan_tags – 此键指定附加到备份计划本身的标签。

  • rules

    rules 策略键映射到 Amazon Backup 计划中的 Rules 键。rules 键下可以有一个或多个规则。每个规则都会成为执行选定资源备份的计划任务。

    每个规则都包含一个其名称是规则名称的键。在前一个示例中,规则名称为“My_Hourly_Rule”。规则键的值是以下规则元素集合:

    • schedule_expression – 此策略键映射到 Amazon Backup 计划中的 ScheduleExpression 键。

      指定备份的开始时间。此键包含 @@assign 继承值运算符和带有 CRON 表达式的字符串值,它指定 Amazon Backup 何时启动备份任务。CRON 字符串的一般格式为:“cron( )”。每一项都是一个数字或通配符。例如,cron(0 5 ? * 1,3,5 *) 表示在每个星期一、星期三和星期五的上午 5 点开始备份。cron(0 0/1 ? * * *) 表示在每周中的每天中的每小时开始一次备份。

    • target_backup_vault_name – 此策略键映射到 Amazon Backup 计划中的 TargetBackupVaultName 键。

      指定要在其中存储备份的备份文件库的名称。您可以使用 Amazon Backup 创建此值。此键包含 @@assign 继承值运算符和一个具有文件库名称的字符串值。

      重要

      首次启动备份计划时,该文件库必须已存在。我们建议您使用 Amazon CloudFormation 堆栈套及其与 Organizations 的集成,为组织中的每个成员账户自动创建和配置备份文件库和 IAM 角色。有关更多信息,请参阅《Amazon CloudFormation 用户指南》中的创建具有自行管理权限的堆栈套

    • start_backup_window_minutes – 此策略键映射到 Amazon Backup 计划中的 StartWindowMinutes 键。

      (可选)指定在取消未成功启动的作业之前等待的分钟数。此键包含 @@assign 继承值运算符和一个具有整数分钟数的值。

    • complete_backup_window_minutes – 此策略键映射到 Amazon Backup 计划中的 CompletionWindowMinutes 键。

      (可选)指定备份作业成功启动之后到备份作业必须完成或由 Amazon Backup 取消之前的分钟数。此键包含 @@assign 继承值运算符和一个具有整数分钟数的值。

    • enable_continuous_backup – 此策略键映射到 Amazon Backup 计划中的 EnableContinuousBackup 键。

      (可选)指定 Amazon Backup 是否创建持续备份。True 会使 Amazon Backup 创建能够进行时间点恢复(PITR)的持续备份。False(或未指定)会使 Amazon Backup 创建快照备份。

      注意

      由于启用 PITR 的备份最多可以保留 35 天,因此如果设置了以下选项之一,您必须选择 False 或不指定值:

      • delete_after_days 设置为大于 35。

      • move_to_cold_storage_after_days 设置为任何值。

      有关持续备份的更多信息,请参阅《Amazon Backup 开发人员指南》中的时间点恢复

    • lifecycle – 此策略键映射到 Amazon Backup 计划中的 Lifecycle 键。

      (可选)指定 Amazon Backup 何时将此备份过渡到冷存储以及到期时间。

      • move_to_cold_storage_after_days – 此策略键映射到 Amazon Backup 计划中的 MoveToColdStorageAfterDays 键。

        指定备份发生之后到 Amazon Backup 将恢复点移到冷存储之前的天数。此键包含 @@assign 继承值运算符和一个具有整数天数的值。

      • delete_after_days – 此策略键映射到 Amazon Backup 计划中的 DeleteAfterDays 键。

        指定备份发生之后到 Amazon Backup 删除恢复点之前的天数。此键包含 @@assign 继承值运算符和一个具有整数天数的值。如果将备份过渡到冷存储,则备份必须至少保持冷存储 90 天,因此该值必须至少比 move_to_cold_storage_after_days 值多 90 天。

    • copy_actions – 此策略键映射到 Amazon Backup 计划中的 CopyActions 键。

      (可选)指定 Amazon Backup 应将备份复制到一个或多个附加位置。每个备份副本位置描述如下:

      • 其名称唯一标识此复制操作的键。目前,键名称必须是备份文件库的 Amazon Resource Name(ARN)。此键包含两个条目。

        • target_backup_vault_arn – 此策略键映射到 Amazon Backup 计划中的 DestinationBackupVaultArn 键。

          (可选)指定 Amazon Backup 在其中存储备份的附加副本的文件库。此键的值包含 @@assign 继承值运算符和文件库的 ARN。

          • 要在运行备份策略的Amazon Web Services 账户中引用文件库,请使用 ARN 中的 $account 变量代替账户 ID 号。Amazon Backup 运行备份计划时,会自动将该变量替换为运行策略所用的Amazon Web Services 账户的实际账户 ID 号。这样,当备份策略应用于组织中的多个账户时,备份就可以正确运行。

          • 要在同一组织内的不同Amazon Web Services 账户中引用文件库,请使用 ARN 中的实际账户 ID 号。

          重要
          • 如果缺少此键,则使用父键名称中所有小写版本的 ARN。由于 ARN 区分大小写,因此此字符串可能与故障的实际 ARN 不匹配,因此计划失败。为此,我们建议您始终提供此键和值。

          • 首次启动备份计划时,您希望复制的备份文件库必须已存在。我们建议您使用 Amazon CloudFormation 堆栈套及其与 Organizations 的集成,为组织中的每个成员账户自动创建和配置备份文件库和 IAM 角色。有关更多信息,请参阅《Amazon CloudFormation 用户指南》中的创建具有自行管理权限的堆栈套

        • lifecycle – 此策略键映射到 Amazon Backup 计划中的 CopyAction 键下的 Lifecycle 键。

          (可选)指定 Amazon Backup 何时将此备份副本过渡到冷存储以及到期时间。

          • move_to_cold_storage_after_days – 此策略键映射到 Amazon Backup 计划中的 MoveToColdStorageAfterDays 键。

            指定备份发生之后到 Amazon Backup 将恢复点移到冷存储之前的天数。此键包含 @@assign 继承值运算符和一个具有整数天数的值。

          • delete_after_days – 此策略键映射到 Amazon Backup 计划中的 DeleteAfterDays 键。

            指定备份发生之后到 Amazon Backup 删除恢复点之前的天数。此键包含 @@assign 继承值运算符和一个具有整数天数的值。如果将备份过渡到冷存储,则备份必须至少保持冷存储 90 天,因此该值必须至少比 move_to_cold_storage_after_days 值多 90 天。

    • recovery_point_tags – 此策略键映射到 Amazon Backup 计划中的 RecoveryPointTags 键。

      (可选)指定 Amazon Backup 附加到其从此计划创建的每个备份的标签。此键的值包含以下一个或多个元素:

      • 此键名称和值对的标识符。recovery_point_tags 下的每个元素的此名称都是全部小写的标签键名称,即使 tag_key 具有不同的大小写处理方式也是如此。此标识符 区分大小写。在前一个示例中,此键对由名称 Owner 标识。每个键对都包含以下元素:

        • tag_key – 指定要附加到备份计划的标签键名称。此键包含 @@assign 继承值运算符和一个字符串值。 值区分大小写。

        • tag_value:指定附加到备份计划并与 tag_key 关联的值。此键包含任何继承值运算符以及一个或多个要在有效策略中替换、追加或删除的值。这些值区分大小写。

  • regions

    regions 策略键指定 Amazon Backup 在其中查找与 selections 键中条件匹配的资源的Amazon Web Services 区域。此键包含任何继承值运算符和Amazon Web Services 区域代码的一个或多个字符串值,例如:["us-east-1", "eu-north-1"]

  • selections

    selections 策略键指定由此策略中的计划规则备份的资源。此键大致对应于 Amazon Backup 中的 BackupSelection 对象。资源由匹配标签键名称和值的查询指定。selections 键下面包含一个键 – tags

    • tags – 指定标识资源以及具有查询和备份资源权限的 IAM 角色的标签。此键的值包含以下一个或多个元素:

      • 此标签元素的标识符。tags 下的此标识符是全部小写的标签键名称,即使要查询的标签具有不同的大小写处理方式也是如此。此标识符 区分大小写。在前一个示例中,一个元素是由名称 My_Backup_Assignment 标识的。tags 下的每个标识符都包含以下元素:

        • iam_role_arn – 指定有权访问资源(由 regions 键指定的Amazon Web Services 区域中的标签查询标识)的 IAM 角色。此值包含 @@assign 继承值运算符和一个包含角色 ARN 的字符串值。Amazon Backup 使用此角色查询和发现资源并执行备份。

          您可以使用 ARN 中的 $account 变量来代替账户 ID 号。Amazon Backup 运行备份计划时,会自动将该变量替换为运行策略所用的Amazon Web Services 账户的实际账户 ID 号。

          重要

          首次启动备份计划时,该角色必须已存在。我们建议您使用 Amazon CloudFormation 堆栈套及其与 Organizations 的集成,为组织中的每个成员账户自动创建和配置备份文件库和 IAM 角色。有关更多信息,请参阅《Amazon CloudFormation 用户指南》中的创建具有自行管理权限的堆栈套

        • tag_key – 指定要搜索的标签键名称。此键包含 @@assign 继承值运算符和一个字符串值。 值区分大小写。

        • tag_value – 指定必须与匹配 tag_key 的键名称关联的值。仅当 tag_keytag_value 匹配时,Amazon Backup 才会在备份中包括资源。此键包含任何继承值运算符以及一个或多个要在有效策略中替换、追加或删除的值。这些值区分大小写。

  • advanced_backup_settings – 指定特定备份方案的设置。此键包含一个或多个设置。每个设置都是一个 JSON 对象字符串,其中包含以下元素:

    • 对象键名称 – 一个字符串,它指定应用以下高级设置的资源类型。

    • 对象值 – 一个 JSON 对象字符串,包含特定于关联资源类型的一个或多个备份设置。

    目前,唯一支持的高级备份设置为在 Amazon EC2 实例上运行的,为 Windows 或 SQL Server 启用的 Microsoft 卷影复制服务(VSS)备份。键名称必须是 "ec2" 资源类型,而值指定在这些 Amazon EC2 实例上执行备份时 "windows_vss" 支持为 enableddisabled。有关此功能的更多信息,请参阅《Amazon Backup 开发人员指南》中的创建启用 VSS 的 Windows Backup

    "advanced_backup_settings": { "ec2": { "windows_vss": { "@@assign": "enabled" } } }
  • backup_plan_tags – 指定附加到备份计划本身的标签。这不会影响任何规则或选择中指定的标签。

    (可选)您可以将标签附加到备份计划。此键的值是元素的集合。

    backup_plan_tags 下的每个元素的键名称都是全部小写的标签键名称,即使要查询的标签具有不同的大小写处理方式也是如此。此标识符 区分大小写。这些条目中的每一个条目的值都由以下键组成:

    • tag_key – 指定要附加到备份计划的标签键名称。此键包含 @@assign 继承值运算符和一个字符串值。此值区分大小写。

    • tag_value:指定附加到备份计划并与 tag_key 关联的值。此键包含 @@assign 继承值运算符和一个字符串值。此值区分大小写。

备份策略示例

下面的示例备份策略仅供参考。在以下某些示例中,可能会压缩 JSON 空白格式以节省空间。

示例 1:分配给父节点的策略

以下示例显示了分配给账户的父节点之一的备份策略。

父策略 – 此策略可以附加到组织根,或附加到作为所有预期账户父级的任何 OU。

{ "plans": { "PII_Backup_Plan": { "regions": { "@@assign": [ "ap-northeast-2", "us-east-1", "eu-north-1" ] }, "rules": { "Hourly": { "schedule_expression": { "@@assign": "cron(0 5/1 ? * * *)" }, "start_backup_window_minutes": { "@@assign": "480" }, "complete_backup_window_minutes": { "@@assign": "10080" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "180" }, "delete_after_days": { "@@assign": "270" } }, "target_backup_vault_name": { "@@assign": "FortKnox" }, "copy_actions": { "arn:aws:backup:us-east-1:$account:backup-vault:secondary_vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-east-1:$account:backup-vault:secondary_vault" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "30" }, "delete_after_days": { "@@assign": "120" } } }, "arn:aws:backup:us-west-1:111111111111:backup-vault:tertiary_vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-west-1:111111111111:backup-vault:tertiary_vault" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "30" }, "delete_after_days": { "@@assign": "120" } } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": { "@@assign": "arn:aws:iam::$account:role/MyIamRole" }, "tag_key": { "@@assign": "dataType" }, "tag_value": { "@@assign": [ "PII", "RED" ] } } } }, "advanced_backup_settings": { "ec2": { "windows_vss": { "@@assign": "enabled" } } } } } }

如果没有其他策略继承或附加到账户,则在每个适用Amazon Web Services 账户中呈现的有效策略如下所示。CRON 表达式会使备份每小时运行一次。账户 ID 123456789012 将是每个账户的实际账户 ID。

{ "plans": { "PII_Backup_Plan": { "regions": [ "us-east-1", "ap-northeast-3", "eu-north-1" ], "rules": { "hourly": { "schedule_expression": "cron(0 0/1 ? * * *)", "start_backup_window_minutes": "60", "target_backup_vault_name": "FortKnox", "lifecycle": { "to_delete_after_days": "2", "move_to_cold_storage_after_days": "180" }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:secondary_vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-east-1:$account:vault:secondary_vault" }, "lifecycle": { "to_delete_after_days": "28", "move_to_cold_storage_after_days": "180" } }, "arn:aws:backup:us-west-1:111111111111:vault:tertiary_vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-west-1:111111111111:vault:tertiary_vault" }, "lifecycle": { "to_delete_after_days": "28", "move_to_cold_storage_after_days": "180" } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": "arn:aws:iam::123456789012:role/MyIamRole", "tag_key": "dataType", "tag_value": [ "PII", "RED" ] } } }, "advanced_backup_settings": { "ec2": { "windows_vss": "enabled" } } } } }

示例 2:父策略与子策略合并

在以下示例中,继承的父策略和子策略继承或直接附加到Amazon Web Services 账户合并以形成有效策略。

父策略 – 此策略可以附加到组织根或任何父 OU。

{ "plans": { "PII_Backup_Plan": { "regions": { "@@append":[ "us-east-1", "ap-northeast-3", "eu-north-1" ] }, "rules": { "Hourly": { "schedule_expression": { "@@assign": "cron(0 0/1 ? * * *)" }, "start_backup_window_minutes": { "@@assign": "60" }, "target_backup_vault_name": { "@@assign": "FortKnox" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "28" }, "to_delete_after_days": { "@@assign": "180" } }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:secondary_vault" : { "target_backup_vault_arn" : { "@@assign" : "arn:aws:backup:us-east-1:$account:vault:secondary_vault" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "28" }, "to_delete_after_days": { "@@assign": "180" } } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": { "@@assign": "arn:aws:iam::$account:role/MyIamRole" }, "tag_key": { "@@assign": "dataType" }, "tag_value": { "@@assign": [ "PII", "RED" ] } } } } } } }

子策略 – 此策略可以直接附加到账户,或附加到父策略所附加到的级别以下的任何级别的 OU。

{ "plans": { "Monthly_Backup_Plan": { "regions": { "@@append":[ "us-east-1", "eu-central-1" ] }, "rules": { "Monthly": { "schedule_expression": { "@@assign": "cron(0 5 1 * ? *)" }, "start_backup_window_minutes": { "@@assign": "480" }, "target_backup_vault_name": { "@@assign": "Default" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "30" }, "to_delete_after_days": { "@@assign": "365" } }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:Default" : { "target_backup_vault_arn" : { "@@assign" : "arn:aws:backup:us-east-1:$account:vault:Default" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "30" }, "to_delete_after_days": { "@@assign": "365" } } } } } }, "selections": { "tags": { "MonthlyDatatype": { "iam_role_arn": { "@@assign": "arn:aws:iam::$account:role/MyMonthlyBackupIamRole" }, "tag_key": { "@@assign": "BackupType" }, "tag_value": { "@@assign": [ "MONTHLY", "RED" ] } } } } } } }

生成的有效策略 – 应用于账户的有效策略包含两个计划,每个计划都有自己的规则集以及要应用这些规则的资源集。

{ "plans": { "PII_Backup_Plan": { "regions": [ "us-east-1", "ap-northeast-3", "eu-north-1" ], "rules": { "hourly": { "schedule_expression": "cron(0 0/1 ? * * *)", "start_backup_window_minutes": "60", "target_backup_vault_name": "FortKnox", "lifecycle": { "to_delete_after_days": "2", "move_to_cold_storage_after_days": "180" }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:secondary_vault" : { "target_backup_vault_arn" : { "@@assign" : "arn:aws:backup:us-east-1:$account:vault:secondary_vault" }, "lifecycle": { "move_to_cold_storage_after_days": "28", "to_delete_after_days": "180" } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": "arn:aws:iam::$account:role/MyIamRole", "tag_key": "dataType", "tag_value": [ "PII", "RED" ] } } } }, "Monthly_Backup_Plan": { "regions": [ "us-east-1", "eu-central-1" ], "rules": { "monthly": { "schedule_expression": "cron(0 5 1 * ? *)", "start_backup_window_minutes": "480", "target_backup_vault_name": "Default", "lifecycle": { "to_delete_after_days": "365", "move_to_cold_storage_after_days": "30" }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:Default" : { "target_backup_vault_arn": { "@@assign" : "arn:aws:backup:us-east-1:$account:vault:Default" }, "lifecycle": { "move_to_cold_storage_after_days": "30", "to_delete_after_days": "365" } } } } }, "selections": { "tags": { "monthlydatatype": { "iam_role_arn": "arn:aws:iam::&ExampleAWSAccountNo3;:role/MyMonthlyBackupIamRole", "tag_key": "BackupType", "tag_value": [ "MONTHLY", "RED" ] } } } } } }

示例 3:父策略阻止子策略进行任何更改

在以下示例中,继承的父策略使用子控制运算符强制执行所有设置,并防止它们被子策略更改或覆盖。

父策略 – 此策略可以附加到组织根或任何父 OU。策略的每个节点都存在 "@@operators_allowed_for_child_policies": ["@@none"] 意味着,子策略不能对计划进行任何类型的更改。子策略也不能将其他计划添加到有效策略。此策略将成为其附加到的每个 OU 以及 OU 下的账户的有效策略。

{ "plans": { "@@operators_allowed_for_child_policies": ["@@none"], "PII_Backup_Plan": { "@@operators_allowed_for_child_policies": ["@@none"], "regions": { "@@operators_allowed_for_child_policies": ["@@none"], "@@append": [ "us-east-1", "ap-northeast-3", "eu-north-1" ] }, "rules": { "@@operators_allowed_for_child_policies": ["@@none"], "Hourly": { "@@operators_allowed_for_child_policies": ["@@none"], "schedule_expression": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "cron(0 0/1 ? * * *)" }, "start_backup_window_minutes": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "60" }, "target_backup_vault_name": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "FortKnox" }, "lifecycle": { "@@operators_allowed_for_child_policies": ["@@none"], "move_to_cold_storage_after_days": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "28" }, "to_delete_after_days": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "180" } }, "copy_actions": { "@@operators_allowed_for_child_policies": ["@@none"], "arn:aws:backup:us-east-1:$account:vault:secondary_vault": { "@@operators_allowed_for_child_policies": ["@@none"], "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-east-1:$account:vault:secondary_vault", "@@operators_allowed_for_child_policies": ["@@none"] }, "lifecycle": { "@@operators_allowed_for_child_policies": ["@@none"], "to_delete_after_days": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "28" }, "move_to_cold_storage_after_days": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "180" } } } } } }, "selections": { "@@operators_allowed_for_child_policies": ["@@none"], "tags": { "@@operators_allowed_for_child_policies": ["@@none"], "datatype": { "@@operators_allowed_for_child_policies": ["@@none"], "iam_role_arn": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "arn:aws:iam::$account:role/MyIamRole" }, "tag_key": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "dataType" }, "tag_value": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": [ "PII", "RED" ] } } } }, "advanced_backup_settings": { "@@operators_allowed_for_child_policies": ["@@none"], "ec2": { "@@operators_allowed_for_child_policies": ["@@none"], "windows_vss": { "@@assign": "enabled", "@@operators_allowed_for_child_policies": ["@@none"] } } } } } }

生成的有效策略 – 如果存在任何子备份策略,则会忽略这些策略,而父策略将成为有效策略。

{ "plans": { "PII_Backup_Plan": { "regions": [ "us-east-1", "ap-northeast-3", "eu-north-1" ], "rules": { "hourly": { "schedule_expression": "cron(0 0/1 ? * * *)", "start_backup_window_minutes": "60", "target_backup_vault_name": "FortKnox", "lifecycle": { "to_delete_after_days": "2", "move_to_cold_storage_after_days": "180" }, "copy_actions": { "target_backup_vault_arn": "arn:aws:backup:us-east-1:123456789012:vault:secondary_vault", "lifecycle": { "move_to_cold_storage_after_days": "28", "to_delete_after_days": "180" } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": "arn:aws:iam::123456789012:role/MyIamRole", "tag_key": "dataType", "tag_value": [ "PII", "RED" ] } } }, "advanced_backup_settings": { "ec2": {"windows_vss": "enabled"} } } } }

示例 4:父策略阻止子策略对一个备份计划进行更改

在以下示例中,继承的父策略使用子控制运算符强制执行单个计划的设置,并防止它们被子策略更改或覆盖。子策略仍然可以添加其他计划。

父策略 – 此策略可以附加到组织根或任何父 OU。此示例与前一个示例类似,所有子继承运算符都被阻止,但 plans 顶级处除外。该级别的 @@append 设置使子策略能够将其他计划添加到有效策略中的集合。对继承计划的任何更改仍被阻止。

为清楚起见,截断了计划中的相应部分。

{ "plans": { "@@operators_allowed_for_child_policies": ["@@append"], "PII_Backup_Plan": { "@@operators_allowed_for_child_policies": ["@@none"], "regions": { ... }, "rules": { ... }, "selections": { ... } } } }

子策略 – 此策略可以直接附加到账户,或附加到父策略所附加到的级别以下的任何级别的 OU。此子策略定义一个新计划。

为清楚起见,截断了计划中的相应部分。

{ "plans": { "MonthlyBackupPlan": { "regions": { ... }, "rules": { ... }, "selections": { … } } } }

生成的有效策略 – 有效策略包括这两个计划。

{ "plans": { "PII_Backup_Plan": { "regions": { ... }, "rules": { ... }, "selections": { ... } }, "MonthlyBackupPlan": { "regions": { ... }, "rules": { ... }, "selections": { … } } } }

示例 5:子策略覆盖父策略中的设置

在以下示例中,子策略使用值设置运算符来覆盖从父策略继承的某些设置。

父策略 – 此策略可以附加到组织根或任何父 OU。子策略可以覆盖任何设置,因为在没有阻止子策略的子控制运算符的情况下,默认行为是允许子策略执行 @@assign@@append@@remove。父策略包含有效备份计划所需的所有元素,因此,如果它按原样继承,则会成功备份您的资源。

{ "plans": { "PII_Backup_Plan": { "regions": { "@@append": [ "us-east-1", "ap-northeast-3", "eu-north-1" ] }, "rules": { "Hourly": { "schedule_expression": {"@@assign": "cron(0 0/1 ? * * *)"}, "start_backup_window_minutes": {"@@assign": "60"}, "target_backup_vault_name": {"@@assign": "FortKnox"}, "lifecycle": { "to_delete_after_days": {"@@assign": "2"}, "move_to_cold_storage_after_days": {"@@assign": "180"} }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:t2": { "target_backup_vault_arn": {"@@assign": "arn:aws:backup:us-east-1:$account:vault:t2"}, "lifecycle": { "move_to_cold_storage_after_days": {"@@assign": "28"}, "to_delete_after_days": {"@@assign": "180"} } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": {"@@assign": "arn:aws:iam::$account:role/MyIamRole"}, "tag_key": {"@@assign": "dataType"}, "tag_value": { "@@assign": [ "PII", "RED" ] } } } } } } }

子策略 – 子策略仅包含需要与继承的父策略不同的设置。必须有一个继承的父策略,该策略在合并到有效策略时提供其他所需设置。否则,有效备份策略会包含无效的备份计划,无法按预期备份您的资源。

{ "plans": { "PII_Backup_Plan": { "regions": { "@@assign": [ "us-west-2", "eu-central-1" ] }, "rules": { "Hourly": { "schedule_expression": {"@@assign": "cron(0 0/2 ? * * *)"}, "start_backup_window_minutes": {"@@assign": "80"}, "target_backup_vault_name": {"@@assign": "Default"}, "lifecycle": { "move_to_cold_storage_after_days": {"@@assign": "30"}, "to_delete_after_days": {"@@assign": "365"} } } } } } }

生成的有效策略 – 有效策略包括来自这两个策略的设置,由子策略提供的设置将覆盖从父级继承的设置。在此示例中,将发生以下更改:

  • 区域列表替换为完全不同的列表。如果要将区域添加到继承的列表中,请在子策略中使用 @@append 而不是 @@assign

  • Amazon Backup 每隔一小时执行一次,而不是每小时执行一次。

  • Amazon Backup 允许 80 分钟后启动备份,而不是 60 分钟。

  • Amazon Backup 使用 Default 文件库而不是 FortKnox

  • 向冷存储转移和最终删除备份的生命周期都会延长。

{ "plans": { "PII_Backup_Plan": { "regions": [ "us-west-2", "eu-central-1" ], "rules": { "hourly": { "schedule_expression": "cron(0 0/2 ? * * *)", "start_backup_window_minutes": "80", "target_backup_vault_name": "Default", "lifecycle": { "to_delete_after_days": "365", "move_to_cold_storage_after_days": "30" }, "copy_actions": { "arn:aws:backup:us-east-1:$account:vault:secondary_vault": { "target_backup_vault_arn": {"@@assign": "arn:aws:backup:us-east-1:$account:vault:secondary_vault"}, "lifecycle": { "move_to_cold_storage_after_days": "28", "to_delete_after_days": "180" } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": "arn:aws:iam::$account:role/MyIamRole", "tag_key": "dataType", "tag_value": [ "PII", "RED" ] } } } } } }