备份策略语法和示例
本页介绍备份策略语法并提供示例。
备份策略的语法
备份策略是一个纯文本文件,根据 JSON
备份策略的这一部分是备份计划及其规则。AWS Organizations 备份策略中的备份计划的语法在结构上与 AWS Backup 使用的语法相同,但键名称不同。在下面对策略键名称的说明中,每一项都包括等效的 AWS Backup 计划键名称。有关 AWS Backup 计划的更多信息,请参阅《AWS Backup 开发人员指南》中的创建备份计划。
注意
使用 JSON 时,重复的键名称将被拒绝。如果您想在单个策略中包含多个计划、规则或选项,请确保每个键名称都是唯一的。
有效备份策略要完整而实用,必须不仅仅包括备份计划及其时间安排和规则。该策略还必须标识AWS 区域和要备份的资源以及 AWS Backup 可用于执行备份的 AWS Identity and Access Management(IAM)角色。
以下功能完整的策略显示了基本备份策略语法。如果此示例直接附加到某个账户,则 AWS Backup 会备份该账户的所有资源,这些资源位于 us-east-1
和 eu-north-1
区域中且标签 dataType
的值为 PII
或 RED
。它每天上午 5:00 将这些资源备份到 My_Backup_Vault
中,同时将副本存储在 My_Secondary_Vault
中。这两个文件库与资源位于同一个账户中。它还会将备份的副本存储在另一个明确指定的账户中的 My_Tertiary_Vault
中。对于接收有效策略的每个AWS 账户,文件库必须已存在于每个指定的AWS 区域中。如果任何备份资源都是 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"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} }, "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"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} } }, "arn:aws:backup:us-east-1:111111111111: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"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} } } } } }, "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
变量来表示当前AWS 账户。当 AWS Backup 运行有效策略中的计划时,它会自动将此变量替换为运行有效策略及其计划所用的当前AWS 账户。重要
您只能在可以包含 Amazon Resource Name(ARN)的策略元素中使用
$account
变量,例如指定要存储备份的备份文件库的元素或具有执行备份的权限的 IAM 角色。例如,以下情况要求策略应用到的每个AWS 账户中都存在名为
My_Vault
的文件库。arn:aws:backup:us-west-2:$account:vault:My_Vault"
我们建议您使用 AWS CloudFormation 堆栈套及其与 Organizations 的集成,为组织中的每个成员账户自动创建和配置备份文件库和 IAM 角色。有关更多信息,请参阅《AWS CloudFormation 用户指南》中的创建具有自行管理权限的堆栈套。
-
plans
策略的顶级键是
plans
键。在策略文件顶部,备份策略必须始终以此固定键名称开头。在此键下,您可以有一个或多个备份计划。 -
plans
顶级键下的每个计划都有一个由用户分配的备份计划名称组成的键名称。在前面的示例中,备份计划名称为PII_Backup_Plan
。一个策略中可以有多个计划,每个计划都有自己的rules
、regions
、selections
和tags
。备份策略中的此备份计划键名称映射到 AWS Backup 计划中的
BackupPlanName
键的值。每个计划可以包含以下元素:
-
rules
– 此键包含规则集合。每个规则都转换为一个计划任务,其中包含有效备份策略中由selections
和regions
元素标识的资源的开始时间和时段。 -
regions
– 此键包含可通过此策略备份其资源的AWS 区域的数组列表。 -
selections
– 此键包含一个或多个按指定rules
备份的资源集合(在指定的regions
内)。 -
advanced_backup_settings
– 此键包含特定于在某些资源上运行的备份的设置。 -
backup_plan_tags
– 此键指定附加到备份计划本身的标签。
-
-
rules
rules
策略键映射到 AWS Backup 计划中的Rules
键。rules
键下可以有一个或多个规则。每个规则都会成为执行选定资源备份的计划任务。每个规则都包含一个其名称是规则名称的键。在前一个示例中,规则名称为“My_Hourly_Rule”。规则键的值是以下规则元素集合:
-
schedule_expression
– 此策略键映射到 AWS Backup 计划中的ScheduleExpression
键。指定备份的开始时间。此键包含 @@assign 继承值运算符和带有 CRON 表达式
的字符串值,它指定 AWS Backup 何时启动备份任务。CRON 字符串的一般格式为:“cron( )”。每一项都是一个数字或通配符。例如, cron(0 5 ? * 1,3,5 *)
表示在每个星期一、星期三和星期五的上午 5 点开始备份。cron(0 0/1 ? * * *)
表示在每周中的每天中的每小时开始一次备份。 -
target_backup_vault_name
– 此策略键映射到 AWS Backup 计划中的TargetBackupVaultName
键。指定要在其中存储备份的备份文件库的名称。您可以使用 AWS Backup 创建此值。此键包含 @@assign 继承值运算符和一个具有文件库名称的字符串值。
重要
首次启动备份计划时,该文件库必须已存在。我们建议您使用 AWS CloudFormation 堆栈套及其与 Organizations 的集成,为组织中的每个成员账户自动创建和配置备份文件库和 IAM 角色。有关更多信息,请参阅《AWS CloudFormation 用户指南》中的创建具有自行管理权限的堆栈套。
-
start_backup_window_minutes
– 此策略键映射到 AWS Backup 计划中的StartWindowMinutes
键。(可选)指定在取消未成功启动的作业之前等待的分钟数。此键包含 @@assign 继承值运算符和一个具有整数分钟数的值。
-
complete_backup_window_minutes
– 此策略键映射到 AWS Backup 计划中的CompletionWindowMinutes
键。(可选)指定备份作业成功启动之后到备份作业必须完成或由 AWS Backup 取消之前的分钟数。此键包含 @@assign 继承值运算符和一个具有整数分钟数的值。
-
enable_continuous_backup
– 此策略键映射到 AWS Backup 计划中的EnableContinuousBackup
键。(可选)指定 AWS Backup 是否创建持续备份。
True
会使 AWS Backup 创建能够进行时间点恢复(PITR)的持续备份。False
(或未指定)会使 AWS Backup 创建快照备份。注意
由于启用 PITR 的备份最多可以保留 35 天,因此如果设置了以下选项之一,您必须选择
False
或不指定值:-
将
delete_after_days
设置为大于 35。 -
将
move_to_cold_storage_after_days
设置为任何值。
有关持续备份的更多信息,请参阅《AWS Backup 开发人员指南》中的时间点恢复。
-
-
lifecycle
– 此策略键映射到 AWS Backup 计划中的Lifecycle
键。(可选)指定 AWS Backup 何时将此备份过渡到冷存储以及到期时间。
-
move_to_cold_storage_after_days
– 此策略键映射到 AWS Backup 计划中的MoveToColdStorageAfterDays
键。指定备份发生之后到 AWS Backup 将恢复点移到冷存储之前的天数。此键包含 @@assign 继承值运算符和一个具有整数天数的值。
-
delete_after_days
– 此策略键映射到 AWS Backup 计划中的DeleteAfterDays
键。指定备份发生之后到 AWS Backup 删除恢复点之前的天数。此键包含 @@assign 继承值运算符和一个具有整数天数的值。此值必须是
move_to_cold_storage_after_days
中指定的天数后至少 90 天。 -
opt_in_to_archive_for_supported_resources
– 此策略键映射到 AWS Backup 计划中的OptInToArchiveForSupportedResources
键。如果此值设置为
true
,则您的备份计划将根据您的生命周期设置将支持的资源转移到归档(冷)存储层。有关 Amazon EBS 快照归档更多信息,请参阅《Amazon EBS 用户指南》中的归档 Amazon EBS 快照。您只能在满足以下条件时启用此设置:
您的备份策略的频率为一个月或更长时间一次。
move_to_cold_storage_after_days
必须存在。delete_after_days
减去move_to_cold_storage_after_days
后大于或等于 90 天。
此键包含 @@assign 继承值运算符和一个
true
或false
值。
-
-
copy_actions
– 此策略键映射到 AWS Backup 计划中的CopyActions
键。(可选)指定 AWS Backup 应将备份复制到一个或多个附加位置。每个备份副本位置描述如下:
-
其名称唯一标识此复制操作的键。目前,键名称必须是备份文件库的 Amazon Resource Name(ARN)。此键包含两个条目。
-
target_backup_vault_arn
– 此策略键映射到 AWS Backup 计划中的DestinationBackupVaultArn
键。(可选)指定 AWS Backup 在其中存储备份的附加副本的文件库。此键的值包含 @@assign 继承值运算符和文件库的 ARN。
-
要在运行备份策略的AWS 账户中引用文件库,请使用 ARN 中的
$account
变量代替账户 ID 号。AWS Backup 运行备份计划时,会自动将该变量替换为运行策略所用的AWS 账户的实际账户 ID 号。这样,当备份策略应用于组织中的多个账户时,备份就可以正确运行。 -
要在同一组织内的不同AWS 账户中引用文件库,请使用 ARN 中的实际账户 ID 号。
重要
-
如果缺少此键,则使用父键名称中所有小写版本的 ARN。由于 ARN 区分大小写,因此此字符串可能与故障的实际 ARN 不匹配,因此计划失败。为此,我们建议您始终提供此键和值。
-
首次启动备份计划时,您希望复制的备份文件库必须已存在。我们建议您使用 AWS CloudFormation 堆栈套及其与 Organizations 的集成,为组织中的每个成员账户自动创建和配置备份文件库和 IAM 角色。有关更多信息,请参阅《AWS CloudFormation 用户指南》中的创建具有自行管理权限的堆栈套。
-
-
lifecycle
– 此策略键映射到 AWS Backup 计划中的CopyAction
键下的Lifecycle
键。(可选)指定 AWS Backup 何时将此备份副本过渡到冷存储以及到期时间。
-
move_to_cold_storage_after_days
– 此策略键映射到 AWS Backup 计划中的MoveToColdStorageAfterDays
键。指定从备份创建日期起到 AWS Backup 将恢复点移到冷存储之前的间隔天数。此键包含 @@assign 继承值运算符和一个具有整数天数的值。
-
delete_after_days
– 此策略键映射到 AWS Backup 计划中的DeleteAfterDays
键。指定备份发生之后到 AWS Backup 删除恢复点之前的天数。此键包含 @@assign 继承值运算符和一个具有整数天数的值。如果将备份过渡到冷存储,则备份必须至少保持冷存储 90 天,因此该值必须至少比
move_to_cold_storage_after_days
值多 90 天。
-
-
-
-
recovery_point_tags
– 此策略键映射到 AWS Backup 计划中的RecoveryPointTags
键。(可选)指定 AWS Backup 附加到其从此计划创建的每个备份的标签。此键的值包含以下一个或多个元素:
-
此键名称和值对的标识符。
recovery_point_tags
下的每个元素的此名称都是全部小写的标签键名称,即使tag_key
具有不同的大小写处理方式也是如此。此标识符不 区分大小写。在前一个示例中,此键对由名称Owner
标识。每个键对都包含以下元素:-
tag_key
– 指定要附加到备份计划的标签键名称。此键包含 @@assign 继承值运算符和一个字符串值。 值区分大小写。 -
tag_value
:指定附加到备份计划并与tag_key
关联的值。此键包含任何继承值运算符以及一个或多个要在有效策略中替换、追加或删除的值。这些值区分大小写。
-
-
-
-
regions
regions
策略键指定 AWS Backup 在其中查找与selections
键中条件匹配的资源的AWS 区域。此键包含任何继承值运算符和AWS 区域代码的一个或多个字符串值,例如:["us-east-1", "eu-north-1"]
。 -
selections
selections
策略键指定由此策略中的计划规则备份的资源。此键大致对应于 AWS Backup 中的 BackupSelection 对象。资源由匹配标签键名称和值的查询指定。selections
键下面包含一个键 –tags
。-
tags
– 指定标识资源以及具有查询和备份资源权限的 IAM 角色的标签。此键的值包含以下一个或多个元素:-
此标签元素的标识符。
tags
下的此标识符是全部小写的标签键名称,即使要查询的标签具有不同的大小写处理方式也是如此。此标识符不 区分大小写。在前一个示例中,一个元素是由名称My_Backup_Assignment
标识的。tags
下的每个标识符都包含以下元素:-
iam_role_arn
– 指定有权访问资源(由regions
键指定的AWS 区域中的标签查询标识)的 IAM 角色。此值包含 @@assign 继承值运算符和一个包含角色 ARN 的字符串值。AWS Backup 使用此角色查询和发现资源并执行备份。您可以使用 ARN 中的
$account
变量来代替账户 ID 号。AWS Backup 运行备份计划时,会自动将该变量替换为运行策略所用的AWS 账户的实际账户 ID 号。重要
首次启动备份计划时,该角色必须已存在。我们建议您使用 AWS CloudFormation 堆栈套及其与 Organizations 的集成,为组织中的每个成员账户自动创建和配置备份文件库和 IAM 角色。有关更多信息,请参阅《AWS CloudFormation 用户指南》中的创建具有自行管理权限的堆栈套。
-
tag_key
– 指定要搜索的标签键名称。此键包含 @@assign 继承值运算符和一个字符串值。 值区分大小写。 -
tag_value
– 指定必须与匹配tag_key
的键名称关联的值。仅当tag_key
和tag_value
匹配时,AWS Backup 才会在备份中包括资源。此键包含任何继承值运算符以及一个或多个要在有效策略中替换、追加或删除的值。这些值区分大小写。
-
-
-
-
advanced_backup_settings
– 指定特定备份方案的设置。此键包含一个或多个设置。每个设置都是一个 JSON 对象字符串,其中包含以下元素:-
对象键名称 – 一个字符串,它指定应用以下高级设置的资源类型。
-
对象值 – 一个 JSON 对象字符串,包含特定于关联资源类型的一个或多个备份设置。
目前,唯一支持的高级备份设置为在 Amazon EC2 实例上运行的,为 Windows 或 SQL Server 启用的 Microsoft 卷影复制服务(VSS)备份。键名称必须是
"ec2"
资源类型,而值指定在这些 Amazon EC2 实例上执行备份时"windows_vss"
支持为enabled
或disabled
。有关此功能的更多信息,请参阅《AWS 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" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } }, "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" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } }, "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" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } } } } }, "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" } } } } } }
如果没有其他策略继承或附加到账户,则在每个适用AWS 账户中呈现的有效策略如下所示。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": { "delete_after_days": "2", "move_to_cold_storage_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" }, "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": { "delete_after_days": "28", "move_to_cold_storage_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" } }, "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": { "delete_after_days": "28", "move_to_cold_storage_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" } } } } }, "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:父策略与子策略合并
在以下示例中,继承的父策略和子策略继承或直接附加到AWS 账户合并以形成有效策略。
父策略 – 此策略可以附加到组织根或任何父 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" }, "delete_after_days": { "@@assign": "180" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } }, "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" }, "delete_after_days": { "@@assign": "180" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } } } } }, "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" }, "delete_after_days": { "@@assign": "365" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } }, "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" }, "delete_after_days": { "@@assign": "365" }, "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } } } } }, "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": { "delete_after_days": "2", "move_to_cold_storage_after_days": "180", "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } }, "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", "delete_after_days": "180", "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } } } } }, "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": { "delete_after_days": "365", "move_to_cold_storage_after_days": "30", "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } }, "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", "delete_after_days": "365", "opt_in_to_archive_for_supported_resources": { "@@assign": "false" } } } } } }, "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" }, "delete_after_days": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "180" }, "opt_in_to_archive_for_supported_resources": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "false" } }, "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"], "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" }, "opt_in_to_archive_for_supported_resources": { "@@operators_allowed_for_child_policies": ["@@none"], "@@assign": "false" } } } } } }, "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": { "delete_after_days": "2", "move_to_cold_storage_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" }, "copy_actions": { "target_backup_vault_arn": "arn:aws:backup:us-east-1:123456789012:vault:secondary_vault", "lifecycle": { "move_to_cold_storage_after_days": "28", "delete_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" } } } }, "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": { "delete_after_days": {"@@assign": "2"}, "move_to_cold_storage_after_days": {"@@assign": "180"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} }, "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"}, "delete_after_days": {"@@assign": "180"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} } } } } }, "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"}, "delete_after_days": {"@@assign": "365"}, "opt_in_to_archive_for_supported_resources": {"@@assign": false} } } } } } }
生成的有效策略 – 有效策略包括来自这两个策略的设置,由子策略提供的设置将覆盖从父级继承的设置。在此示例中,将发生以下更改:
-
区域列表替换为完全不同的列表。如果要将区域添加到继承的列表中,请在子策略中使用
@@append
而不是@@assign
。 -
AWS Backup 每隔一小时执行一次,而不是每小时执行一次。
-
AWS Backup 允许 80 分钟后启动备份,而不是 60 分钟。
-
AWS 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": { "delete_after_days": "365", "move_to_cold_storage_after_days": "30", "opt_in_to_archive_for_supported_resources": "false" }, "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", "delete_after_days": "180", "opt_in_to_archive_for_supported_resources": "false" } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": "arn:aws:iam::$account:role/MyIamRole", "tag_key": "dataType", "tag_value": [ "PII", "RED" ] } } } } } }