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

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

备份策略语法和示例

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

备份策略的语法

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

有关 Amazon Backup 计划的更多信息,请参阅Amazon Backup 开发人员指南CreateBackupPlan中的。

注意事项

策略语法

在 JSON 中重复的键名称将被拒绝。

策略必须指定要备份的 Amazon Web Services 区域 和资源。

策略必须指定 Amazon Backup 担任的 IAM 角色。

在同一级别使用@@assign运算符可能会覆盖现有设置。有关更多信息,请参阅子女政策会覆盖家长策略中的设置

继承运算符控制继承的策略和账户策略如何合并到账户的有效策略中。这些运算符包括值设置运算符和子控制运算符。

有关更多信息,请参阅继承运算符Backup 策略示例

IAM 角色

首次创建备份计划时,IAM 角色必须存在。

IAM 角色必须有权访问通过标签查询标识的资源。

IAM 角色必须有权执行备份。

Backup 保管库

在运行备份计划 Amazon Web Services 区域 之前,每个指定的文件库都必须存在。

每个收到有效策略的 Amazon 账户都必须存在文件库。有关更多信息,请参阅《Amazon Backup 开发人员指南》中的 Backup 保管库创建和删除

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

配额

有关配额列表,请参阅《Amazon Backup 开发人员指南》中的Amazon Backup 配额

Backup 语法:概览

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

{ "plans": { "PlanName": { "rules": { ... }, "regions": { ... }, "selections": { ... }, "advanced_backup_settings": { ... }, "backup_plan_tags": { ... } } } }
Backup 策略元素
元素 描述 必填
规则 备份规则列表。每条规则都定义了备份的启动时间以及regionsselections元素中指定的资源的执行窗口。
区域 备份策略可以保护资源 Amazon Web Services 区域 的地方列表。
选择 备份rules保护的指定regions资源类型中的一个或多个资源类型。
高级备份设置

特定备份方案的配置选项。

目前,唯一支持的高级备份设置为在 Amazon EC2 实例上运行的,为 Windows 或 SQL Server 启用的 Microsoft 卷影复制服务(VSS)备份。

backup_plan_tags

要与备份计划关联的标签。每个标签都是由用户定义的键和值组成的标签。

标签可帮助您管理、识别、组织、搜索和筛选备份计划。

Backup 语法:规则

rules策略密钥指定对选定资源 Amazon Backup 执行的定时备份任务。

Backup 规则元素
元素 描述 必填
schedule_expression

CRON 表达式(采用 UTC),指定何时 Amazon Backup 启动备份作业。

有关 cron 表达式的信息,请参阅 A mazon EventBridge 用户指南中的使用 cron 和 rate 表达式计划规则

target_backup_vault_name

存储备份的 Backup 保管库。

Backup 文件库由用于创建它们的账户和创建它们的所 Amazon Web Services 区域 特有的名称标识。

start_backup_window_minutes

如果备份作业未成功启动备份,则在取消之前等待的分钟数组被取消。

如果包含此值,则必须至少为 60 分钟才能避免错误。

complete_backup_window_minutes n 在备份作业必须完成或被 Amazon Backup取消之前成功启动备份作业后的分钟数。
enable_continuous_backup

指定是否 Amazon Backup 创建连续备份。

True创建支持 point-in-time还原功能的连续备份的原因 Amazon Backup (PITR)。 False(或未指定)创建快照备份的原因 Amazon Backup 。

有关连续备份的更多信息,请参阅《Amazon Backup 开发人员指南》中的 P oint-in-time 恢复

注意:启用 PITR 的备份的最大保留期为 35 天。

lifecycle

指定何 Amazon Backup 时将备份转移到冷存储以及何时到期。

可以转换为冷存储的资源类型在Amazon Backup 开发人员指南中的按资源划分的特征可用性表中列出。

每个生命周期都包含以下元素:

  • move_to_cold_storage_after_days:从备份发生之后将恢复点 Amazon Backup 移到冷存储之前的间隔天数。

  • delete_after_days:备份发生后在 Amazon Backup 删除恢复点之前的天数。

  • opt_in_to_archive_for_supported_resources:如果此值设置为true,则备份计划将根据您的生命周期设置将支持的资源转移到归档(冷)存储层。

注意:转换为冷存储的备份必须在冷存储中存储至少 90 天。

这意味着delete_after_days必须大于 90 天move_to_cold_storage_after_days

copy_actions

指定是 Amazon Backup 将备份复制到一个还是多个其他位置。

每个复制操作都包含以下元素:

  • target_backup_vault_arn:在其中 Amazon Backup 存储备份的附加副本的文件库。

    • $account用于同账号副本

    • 跨账户副本使用实际账户 ID

  • lifecycle:指定何时 Amazon Backup 将备份转移到冷存储以及何时到期。

    每个生命周期都包含以下元素:

    • move_to_cold_storage_after_days:从备份发生之后将恢复点 Amazon Backup 移到冷存储之前的间隔天数。

    • delete_after_days:备份发生后在 Amazon Backup 删除恢复点之前的天数。

注意:转换为冷存储的备份必须在冷存储中存储至少 90 天。

这意味着delete_after_days必须大于 90 天move_to_cold_storage_after_days

recovery_point_tags

要分配给从备份还原的资源的标签。

每个标签都包含以下元素:

  • tag_key: 标签名称(区分大小写)

  • tag_value: 标签值(区分大小写)

index_actions

指定是否 Amazon Backup 为您的 Amazon EBS 快照和/或 Amazon S3 备份创建备份索引。创建备份索引是为了搜索备份的元数据。有关创建备份索引和备份搜索的更多信息,请参阅备份搜索

注意:创建 Amazon EBS 快照备份索引需要其他 IAM 角色权限

每个索引操作都包含以下元素:resource_types其中支持索引的资源类型是 Amazon EBS 和 Amazon S3。此参数指定将选择哪种资源类型编入索引。

Backup 语法:区域

regions策略键指定在其中 Amazon Web Services 区域 查找与 ke selections y 中条件匹配的资源的。 Amazon Backup

Backup 区域元素
元素 描述 必填
regions

指定 Amazon Web Services 区域 代码。例如:["us-east-1", "eu-north-1"]

Backup 语法:选择

selections策略密钥指定由备份策略中的规则备份的资源。

有两个相互排斥的元素:tagsresources。有效的策略必须have是标签或选项resources中才有效。

如果您想要同时包含标签条件和资源条件的选择,请使用resources密钥。

Backup 选择元素:标签
元素 描述 必填
iam_role_arn Amazon Backup 负责查询、发现和备份指定区域内资源的 IAM 角色。

该角色必须具有足够的权限,才能根据标签条件查询资源并对匹配的资源执行备份操作。

tag_key 要搜索的标签密钥名称。
tag_value 必须与匹配的 tag_key 关联的值。

Amazon Backup 仅当 tag_key 和 tag_value 都匹配时才包含资源(区分大小写)。

conditions

标记要包含或排除的键和值

使用 string_equalsstring_not_equals 来包含或排除完全匹配的标签。

使用 string_lik e 和 string_not_like 来包含或排除包含或不包含特定字符的标签

注意:每个选择仅限 30 个条件。

Backup 选择元素:资源
元素 描述 必填
iam_role_arn Amazon Backup 负责查询、发现和备份指定区域内资源的 IAM 角色。

该角色必须具有足够的权限,才能根据标签条件查询资源并对匹配的资源执行备份操作。

注意:在中 Amazon GovCloud (US) Regions,您必须将分区的名称添加到 ARN。

例如,“arn:aws:ec2:*:*:volume/*” 必须是 “arn:aws-us-gov:ec2:*:*:volume/*”。

resource_types 备份计划中包含的资源类型。
not_resource_types 要从备份计划中排除的资源类型。
conditions

标记要包含或排除的键和值

使用 string_equalsstring_not_equals 来包含或排除完全匹配的标签。

使用 string_lik e 和 string_not_like 来包含或排除包含或不包含特定字符的标签

注意:每个选择仅限 30 个条件。

支持的资源类型

Organizations 支持resource_typesnot_resource_types元素的以下资源类型:

  • Amazon Backup gateway 虚拟机:"arn:aws:backup-gateway:*:*:vm/*"

  • Amazon CloudFormation 堆栈:"arn:aws:cloudformation:*:*:stack/*"

  • Amazon DynamoDB 表:"arn:aws:dynamodb:*:*:table/*"

  • 亚马逊 EC2 实例:"arn:aws:ec2:*:*:instance/*"

  • Amazon EBS 卷:"arn:aws:ec2:*:*:volume/*"

  • Amazon EFS 文件系统:"arn:aws:elasticfilesystem:*:*:file-system/*"

  • 亚马逊 Aurora/Amazon DocumentDB/Amazon Neptune 集群:"arn:aws:rds:*:*:cluster:*"

  • Amazon RDS 数据库:"arn:aws:rds:*:*:db:*"

  • Amazon Redshift 集群:"arn:aws:redshift:*:*:cluster:*"

  • Amazon S3:"arn:aws:s3:::*"

  • 适用于 SAP 的 Amazon Systems Manager HANA 数据库:"arn:aws:ssm-sap:*:*:HANA/*"

  • Amazon Storage Gateway 网关:"arn:aws:storagegateway:*:*:gateway/*"

  • 亚马逊 Timestream 数据库:"arn:aws:timestream:*:*:database/*"

  • Amazon FSx 文件系统:"arn:aws:fsx:*:*:file-system/*"

  • 亚马逊 FSx 交易量:"arn:aws:fsx:*:*:volume/*"

代码示例

有关更多信息,请参阅使用标签块指定资源使用资源块指定资源

备份语法:高级备份设置

advanced_backup_settings密钥指定了特定备份方案的配置选项。每个设置都包含以下元素:

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

目前,唯一支持的高级备份设置为在 Amazon EC2 实例上运行的,为 Windows 或 SQL Server 启用的 Microsoft 卷影复制服务(VSS)备份。

每个高级备份设置以下元素:

  • Object key name:字符串,它指定应用以下高级设置的资源类型。

    密钥名称必须是"ec2"资源类型

  • Object value:Dtring,包含特定于关联资源类型的一个或多个备份设置。

    该值指定对在 Amazon EC2 实例上执行disabled的备份的"windows_vss"支持是enabled或。

示例

"advanced_backup_settings": { "ec2": { "windows_vss": { "@@assign": "enabled" } } },

备份语法:备份计划标签

backup_plan_tags策略键指定附加到备份计划本身的标签。这不会影响为rules或指定的标签selections

Backup 计划标签元素
元素 描述 必填
backup_plan_tags 每个标签都是由用户定义的键和值组成的标签:
  • tag_key:要搜索的标签键名称。 值区分大小写。

  • tag_value:附加到备份计划并与关联的值tag_key。 值区分大小写。

备份策略示例

下面的示例备份策略仅供参考。在以下某些示例中,可能会压缩 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" }, "index_actions": { "resource_types": { "@@assign": [ "EBS", "S3" ] } }, "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" } } } } } }

如果没有其他策略继承或附加到账户,则在每个适用中呈现的有效策略 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", "index_actions": { "resource_types": { "@@assign": [ "EBS", "S3" ] } }, "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:backup-vault:secondary_vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-east-1:$account:backup-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:backup-vault:tertiary_vault": { "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-west-1:111111111111:backup-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:父策略与子策略合并

在以下示例中,继承的父策略和子策略继承或直接附加到 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" }, "index_actions": { "resource_types": { "@@assign": [ "EBS", "S3" ] } }, "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: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": "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:backup-vault:Default" : { "target_backup_vault_arn" : { "@@assign" : "arn:aws:backup:us-east-1:$account:backup-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", "index_actions": { "resource_types": { "@@assign": [ "EBS", "S3" ] } }, "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: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": "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:backup-vault:Default" : { "target_backup_vault_arn": { "@@assign" : "arn:aws:backup:us-east-1:$account:backup-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" }, "index_actions": { "@@operators_allowed_for_child_policies": ["@@none"], "resource_types": { "@@assign": [ "EBS", "S3" ] } }, "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:backup-vault:secondary_vault": { "@@operators_allowed_for_child_policies": ["@@none"], "target_backup_vault_arn": { "@@assign": "arn:aws:backup:us-east-1:$account:backup-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", "index_actions": { "resource_types": { "@@assign": [ "EBS", "S3" ] } }, "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:backup-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"}, "index_actions": { "resource_types": { "@@assign": [ "EBS", "S3" ] } }, "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:backup-vault:t2": { "target_backup_vault_arn": {"@@assign": "arn:aws:backup:us-east-1:$account:backup-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

  • 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", "index_actions": { "resource_types": { "@@assign": [ "EBS", "S3" ] } }, "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: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": "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" ] } } } } } }

示例 6:使用tags方块指定资源

以下示例包括所有带有 tag_key = “env” 和 = "prod"tag_value = 的资源"gamma"。此示例不包括带有 tag_key = "backup"tag_value = 的资源"false"

... "selections":{ "tags":{ "selection_name":{ "iam_role_arn": {"@@assign": "arn:aws:iam::$account:role/IAMRole"}, "tag_key":{"@@assign": "env"}, "tag_value":{"@@assign": ["prod", "gamma"]}, "conditions":{ "string_not_equals":{ "condition_name1":{ "condition_key": { "@@assign": "aws:ResourceTag/backup" }, "condition_value": { "@@assign": "false" } } } } } } }, ...

示例 7:使用resources方块指定资源

以下是使用resources区块指定资源的示例。

Example: Select all resources in my account

布尔逻辑与您可能在 IAM 策略中使用的逻辑类似。该"resource_types"区块使用布尔值AND来组合资源类型。

... "resources":{ "resource_selection_name":{ "iam_role_arn":{"@@assign": "arn:aws:iam::$account:role/IAMRole"}, "resource_types":{ "@@assign": [ "*" ] } } }, ...
Example: Select all resources in my account, but exclude Amazon EBS volumes

布尔逻辑与您可能在 IAM 策略中使用的逻辑类似。"resource_types""not_resource_types"块使用布尔值AND来组合资源类型。

... "resources":{ "resource_selection_name":{ "iam_role_arn":{"@@assign": "arn:aws:iam::$account:role/IAMRole"}, "resource_types":{ "@@assign": [ "*" ] }, "not_resource_types":{ "@@assign": [ "arn:aws:ec2:*:*:volume/*" ] } } }, ...
Example: Select all resources tagged with "backup" : "true", but exclude Amazon EBS volumes

布尔逻辑与您可能在 IAM 策略中使用的逻辑类似。"resource_types""not_resource_types"块使用布尔值AND来组合资源类型。该"conditions"方块使用布尔值AND

... "resources":{ "resource_selection_name":{ "iam_role_arn":{"@@assign": "arn:aws:iam::$account:role/IAMRole"}, "resource_types":{ "@@assign": [ "*" ] }, "not_resource_types":{ "@@assign": [ "arn:aws:ec2:*:*:volume/*" ] }, "conditions":{ "string_equals":{ "condition_name1":{ "condition_key": { "@@assign":"aws:ResourceTag/backup"}, "condition_value": { "@@assign":"true" } } } } } }, ...
Example: Select all Amazon EBS volumes and Amazon RDS DB instances tagged with both "backup" : "true" and "stage" : "prod"

布尔逻辑与您可能在 IAM 策略中使用的逻辑类似。该"resource_types"区块使用布尔值AND来组合资源类型。该"conditions"区块使用布尔值AND来组合资源类型和标签条件。

... "resources":{ "resource_selection_name":{ "iam_role_arn":{"@@assign": "arn:aws:iam::$account:role/IAMRole"}, "resource_types":{ "@@assign": [ "arn:aws:ec2:*:*:volume/*", "arn:aws:rds:*:*:db:*" ] }, "conditions":{ "string_equals":{ "condition_name1":{ "condition_key":{"@@assign":"aws:ResourceTag/backup"}, "condition_value":{"@@assign":"true"} }, "condition_name2":{ "condition_key":{"@@assign":"aws:ResourceTag/stage"}, "condition_value":{"@@assign":"prod"} } } } } }, ...
Example: Select all Amazon EBS volumes and Amazon RDS instances tagged with "backup" : "true" but not "stage" : "test"

布尔逻辑与您可能在 IAM 策略中使用的逻辑类似。该"resource_types"区块使用布尔值AND来组合资源类型。该"conditions"区块使用布尔值AND来组合资源类型和标签条件。

... "resources":{ "resource_selection_name":{ "iam_role_arn":{"@@assign": "arn:aws:iam::$account:role/IAMRole"}, "resource_types":{ "@@assign": [ "arn:aws:ec2:*:*:volume/*", "arn:aws:rds:*:*:db:*" ] }, "conditions":{ "string_equals":{ "condition_name1":{ "condition_key":{"@@assign":"aws:ResourceTag/backup"}, "condition_value":{"@@assign":"true"} } }, "string_not_equals":{ "condition_name2":{ "condition_key":{"@@assign":"aws:ResourceTag/stage"}, "condition_value":{"@@assign":"test"} } } } } }, ...
Example: Select all resources tagged with "key1" and a value which begins with "include" but not with "key2" and value that contains the word "exclude"

布尔逻辑与您可能在 IAM 策略中使用的逻辑类似。该"resource_types"区块使用布尔值AND来组合资源类型。该"conditions"区块使用布尔值AND来组合资源类型和标签条件。

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

... "resources":{ "resource_selection_name":{ "iam_role_arn":{"@@assign": "arn:aws:iam::$account:role/IAMRole"}, "resource_types":{ "@@assign": [ "*" ] }, "conditions":{ "string_like":{ "condition_name1":{ "condition_key":{"@@assign":"aws:ResourceTag/key1"}, "condition_value":{"@@assign":"include*"} } }, "string_not_like":{ "condition_name2":{ "condition_key":{"@@assign":"aws:ResourceTag/key2"}, "condition_value":{"@@assign":"*exclude*"} } } } } }, ...
Example: Select all resources tagged with "backup" : "true" except Amazon FSx file systems and Amazon RDS resources

布尔逻辑与您可能在 IAM 策略中使用的逻辑类似。"resource_types""not_resource_types"块使用布尔值AND来组合资源类型。该"conditions"区块使用布尔值AND来组合资源类型和标签条件。

... "resources":{ "resource_selection_name":{ "iam_role_arn":{"@@assign": "arn:aws:iam::$account:role/IAMRole"}, "resource_types":{ "@@assign": [ "*" ] }, "not_resource_types":{ "@@assign":[ "arn:aws:fsx:*:*:file-system/*", "arn:aws:rds:*:*:db:*" ] }, "conditions":{ "string_equals":{ "condition_name1":{ "condition_key":{"@@assign":"aws:ResourceTag/backup"}, "condition_value":{"@@assign":"true"} } } } } }, ...