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

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

创建、更新和删除备份策略

本主题内容:

创建备份策略

最小权限

要创建备份策略,您需要运行以下操作的权限:

  • organizations:CreatePolicy

Amazon Web Services Management Console

您可以通过以下两种 Amazon Web Services Management Console 方式之一来创建备份策略:

  • 可视化编辑器,允许您选择选项并为您生成 JSON 策略文本。

  • 文本编辑器,允许您自己直接创建 JSON 策略文本。

可视化编辑器使过程变得简单,但会限制您的灵活性。这是创建您的第一批策略并使其习惯使用的好方法。了解策略的工作原理并开始受到可视化编辑器所提供功能的限制之后,您可以通过自己编辑 JSON 策略文本将高级功能添加到策略中。可视化编辑器仅使用 @@assign 值设置运算符,不提供对子控制运算符的任何访问权限。只有在手动编辑 JSON 策略文本时,才能添加子控制运算符。

创建备份策略
  1. 登录 Amazon Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. Backup policies (备份策略) 页面上,选择 Create policy (创建策略)

  3. Create policy (创建策略) 页面上,输入策略的 Policy name (策略名称) 和可选 Policy description (策略说明)

  4. (可选)您可以向策略添加一个或多个标签,方法是选择 Add tag (添加标签),然后输入一个键和可选的值。将值留空,设置为空字符串;它并非 null。您最多可以向策略附加 50 个标签。有关标记的更多信息,请参阅为 Amazon Organizations 资源添加标签

  5. 您可以使用可视化编辑器构建策略,如此过程中所述。您也可以在 JSON 选项卡中输入或粘贴策略文本。有关备份策略语法的信息,请参阅备份策略语法和示例

    如果选择使用可视化编辑器,请选择适合您的场景的备份选项。备份计划由三部分组成。有关这些备份计划元素的更多信息,请参阅《Amazon Backup 开发人员指南》中的创建备份计划分配资源

    1. Backup 计划一般详细信息

      • 备份文计划名称只能由字母数字、连字符和下划线字符组成。

      • 您必须从列表中至少选择一个备份计划区域。该计划只能备份选定资源中的资源 Amazon Web Services 区域。

    2. 一个或多个指定 Amazon Backup 的操作方式和时间的备份规则。每个备份规则定义以下项目:

      • 包含备份频率和可以进行备份的时间窗口的计划。

      • 要使用的备份文件库的名称。备份文件库名称只能由字母数字、连字符和下划线字符组成。备份文件库必须存在,才能成功运行计划。使用 Amazon Backup 控制台或 Amazon CLI 命令创建文件库。

      • (可选)一个或多个复制到区域规则,以同时将备份复制到其他 Amazon Web Services 区域中的文件库。

      • 一个或多个标签键值对,要附加到每次运行此备份计划时创建的备份恢复点。

      • 生命周期选项,它们指定备份过渡到冷存储的时间以及备份到期时间。

      选择 Add rule (添加规则) 将您需要的每个规则添加到计划中。

      有关备份规则的更多信息,请参阅《Amazon Backup 开发人员指南》中的备份规则

    3. 一种资源分配,它指定 Amazon Backup 应使用此计划备份的资源。通过指定用于查找和匹配资源的标签对 Amazon Backup 来进行分配

      • 资源分配名称只能由字母数字、连字符和下划线字符组成。

      • 为 Amazon Backup 指定 IAM 角色,用于按其名称执行备份。

        在控制台中,您不能指定整个 Amazon Resource Name(ARN)。必须同时包含角色名称及其指定角色类型的前缀。前缀通常是 role 或者 service-role,且它们用正斜杠(“/”)与角色名称分隔。例如,您可以输入 role/MyRoleName 或者 service-role/MyManagedRoleName。当存储在底层 JSON 中时,这将转换为完整 ARN。

        重要

        指定的 IAM 角色必须已存在于应用策略的账户中。如果不存在,则备份计划可能会成功启动备份作业,但这些备份作业将失败。

      • 指定一个或多个资源标签键标签值对来确定要备份的资源。如果有多个标签值,请用逗号分隔它们。

      选择 Add assignment (添加分配),将每个已配置的资源分配添加到备份计划。

      有关更多信息,请参阅《Amazon Backup 开发人员指南》中的将资源分配给备份计划

  6. 创建完策略后,选择 Create policy (创建策略)。该策略将显示在可用备份策略的列表中。

Amazon CLI & Amazon SDKs
创建备份策略

您可以使用以下方法之一创建备份策略:

  • Amazon CLI:create-policy

    将备份计划创建为类似于以下内容的 JSON 文本,并将其存储在文本文件中。有关语法的完整规则,请参阅备份策略语法和示例

    { "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": { "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "10" }, "delete_after_days": { "@@assign": "100" } } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": { "@@assign": "arn:aws:iam::$account:role/MyIamRole" }, "tag_key": { "@@assign": "dataType" }, "tag_value": { "@@assign": [ "PII" ] } } } } } } }

    此备份计划规定, Amazon Backup 应备份受影响 Amazon Web Services 账户 区域中指定 Amazon Web Services 区域 dataType且标签值为的所有资源PII

    接下来,导入 JSON 策略文件备份计划以在组织中创建新的备份策略。记下输出中策略 ARN 末尾的策略 ID。

    $ aws organizations create-policy \ --name "MyBackupPolicy" \ --type BACKUP_POLICY \ --description "My backup policy" \ --content file://policy.json{ "Policy": { "PolicySummary": { "Arn": "arn:aws:organizations::o-aa111bb222:policy/backup_policy/p-i9j8k7l6m5", "Description": "My backup policy", "Name": "MyBackupPolicy", "Type": "BACKUP_POLICY" } "Content": "...a condensed version of the JSON policy document you provided in the file...", } }
  • Amazon 软件开发工具包:CreatePolicy

后续操作

创建备份策略后,您可以使策略生效。为此,您可以将策略附加到组织根目录、组织单位 (OU)、组织 Amazon Web Services 账户 内部或所有这些的组合。

更新备份策略

登录到组织的管理账户后,您可以编辑需要在组织中进行更改的策略。

最小权限

要更新备份策略,您必须具有运行以下操作的权限:

  • organizations:UpdatePolicy,且同一条策略语句中有一个 Resource 元素包含要更新的策略的 ARN(或“*”)

  • organizations:DescribePolicy,且同一条策略语句中有一个 Resource 元素包含要更新的策略的 ARN(或“*”)

Amazon Web Services Management Console
更新备份策略
  1. 登录 Amazon Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. Backup policies (备份策略) 页面上,选择要更新的策略的名称。

  3. 选择编辑策略

  4. 您可以输入一个新的 Policy name (策略名称)Policy description (策略说明)。您可以通过使用可视化编辑器或通过直接编辑 JSON 来更改策略内容。

  5. 完成更新策略后,选择保存更改

Amazon CLI & Amazon SDKs
更新备份策略

您可以使用以下命令之一来更新备份策略:

  • Amazon CLI:update-policy

    以下示例重命名备份策略。

    $ aws organizations update-policy \ --policy-id p-i9j8k7l6m5 \ --name "Renamed policy" { "Policy": { "PolicySummary": { "Id": "p-i9j8k7l6m5", "Arn": "arn:aws:organizations::123456789012:policy/o-aa111bb222/backup_policy/p-i9j8k7l6m5", "Name": "Renamed policy", "Type": "BACKUP_POLICY", "AwsManaged": false }, "Content": "{\"plans\":{\"TestBackupPlan\":{\"regions\":{\"@@assign\": ....TRUNCATED FOR BREVITY.... "@@assign\":[\"Yes\"]}}}}}}}" } }

    以下示例添加或更改备份策略的说明。

    $ aws organizations update-policy \ --policy-id p-i9j8k7l6m5 \ --description "My new description" { "Policy": { "PolicySummary": { "Id": "p-i9j8k7l6m5", "Arn": "arn:aws:organizations::123456789012:policy/o-aa111bb222/backup_policy/p-i9j8k7l6m5", "Name": "Renamed policy", "Description": "My new description", "Type": "BACKUP_POLICY", "AwsManaged": false }, "Content": "{\"plans\":{\"TestBackupPlan\":{\"regions\":{\"@@assign\": ....TRUNCATED FOR BREVITY.... "@@assign\":[\"Yes\"]}}}}}}}" } }

    以下示例更改附加到备份策略的 JSON 策略文档。在此示例中,内容取自一个名为 policy.json 的文件,使用以下文本:

    { "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": { "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "10" }, "delete_after_days": { "@@assign": "100" } } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": { "@@assign": "arn:aws:iam::$account:role/MyIamRole" }, "tag_key": { "@@assign": "dataType" }, "tag_value": { "@@assign": [ "PII" ] } } } } } } }
    $ aws organizations update-policy \ --policy-id p-i9j8k7l6m5 \ --content file://policy.json { "Policy": { "PolicySummary": { "Id": "p-i9j8k7l6m5", "Arn": "arn:aws:organizations::123456789012:policy/o-aa111bb222/backup_policy/p-i9j8k7l6m5", "Name": "Renamed policy", "Description": "My new description", "Type": "BACKUP_POLICY", "AwsManaged": false }, "Content": "{\"plans\":{\"TestBackupPlan\":{\"regions\":{\"@@assign\": ....TRUNCATED FOR BREVITY.... "@@assign\":[\"Yes\"]}}}}}}}" }
  • Amazon 软件开发工具包:UpdatePolicy

编辑附加到备份策略的标签

当您登录到组织的管理账户时,您可以添加或删除附加到备份策略的标签。有关标记的更多信息,请参阅为 Amazon Organizations 资源添加标签

最小权限

要编辑 Amazon 组织中备份策略所附的标签,您必须具有以下权限:

  • organizations:DescribeOrganization(仅限控制台 – 导航到策略)

  • organizations:DescribePolicy(仅限控制台 – 导航到策略)

  • organizations:TagResource

  • organizations:UntagResource

Amazon Web Services Management Console
编辑附加到备份策略的标签
  1. 登录 Amazon Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. Backup policies (备份策略)

  3. 选择具有要修改的标签的策略名称。

    此时将显示策略详细信息页面。

  4. 标签选项卡上,选择管理标签

  5. 您可以在此页面上执行以下操作:

    • 编辑任何标签的值,方法是在旧标签上输入新值。您不能修改键。要更改键,您必须删除带有旧键的标签,然后添加使用新键的标签。

    • 删除任何现有的标签,方法是选择 Remove (删除)

    • 添加新的标签键和值对。选择 Add tag (添加标签),然后在提供的框中输入新的键名称和可选值。如果您将 Value (值) 框留空,则值是空字符串;它并非 null

  6. 在完成所有要进行的添加、删除和编辑操作之后,选择 Save changes (保存更改)

Amazon CLI & Amazon SDKs
编辑附加到备份策略的标签

您可以使用以下命令之一编辑附加到备份策略的标签:

删除备份策略

当登录到您组织的管理账户时,您可以删除您的组织中不再需要的策略。

必须先将某个策略从所有附加实体中分离,然后才能删除该策略。

最小权限

要删除策略,您必须具有运行以下操作的权限:

  • organizations:DeletePolicy,且同一条策略语句中有一个 Resource 元素包含要删除的策略的 ARN(或“*”)

删除备份策略
  1. 登录 Amazon Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. Backup policies (备份策略) 页面上,选择要删除的备份策略。

  3. 要删除的备份策略必须先从所有根、OU 和账户分离。选择 Targets (目标) 选项卡,选择显示在 Targets (目标) 列表中的每个根、OU 或账户旁边的单选按钮,然后选择 Detach (分离)。在确认对话框中,选择 Detach (分离)。重复操作,直到删除所有目标。

  4. 在页面的顶部,选择 Delete (删除)

  5. 在确认对话框上,输入策略的名称,然后选择 Delete (删除)

删除备份策略

以下代码示例演示如何使用 DeletePolicy

.NET
Amazon SDK for .NET
注意

还有更多相关信息 GitHub。在 Amazon 代码示例存储库中查找完整示例,了解如何进行设置和运行。

using System; using System.Threading.Tasks; using Amazon.Organizations; using Amazon.Organizations.Model; /// <summary> /// Deletes an existing AWS Organizations policy. /// </summary> public class DeletePolicy { /// <summary> /// Initializes the Organizations client object and then uses it to /// delete the policy with the specified policyId. /// </summary> public static async Task Main() { // Create the client object using the default account. IAmazonOrganizations client = new AmazonOrganizationsClient(); var policyId = "p-00000000"; var request = new DeletePolicyRequest { PolicyId = policyId, }; var response = await client.DeletePolicyAsync(request); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { Console.WriteLine($"Successfully deleted Policy: {policyId}."); } else { Console.WriteLine($"Could not delete Policy: {policyId}."); } } }
  • 有关 API 的详细信息,请参阅 Amazon SDK for .NET API 参考DeletePolicy中的。

CLI
Amazon CLI

删除策略

以下示例演示如何删除组织的策略。该示例假设您之前已将策略与所有实体分离:

aws organizations delete-policy --policy-id p-examplepolicyid111
  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考DeletePolicy中的。

Python
SDK for Python (Boto3)
注意

还有更多相关信息 GitHub。在 Amazon 代码示例存储库中查找完整示例,了解如何进行设置和运行。

def delete_policy(policy_id, orgs_client): """ Deletes a policy. :param policy_id: The ID of the policy to delete. :param orgs_client: The Boto3 Organizations client. """ try: orgs_client.delete_policy(PolicyId=policy_id) logger.info("Deleted policy %s.", policy_id) except ClientError: logger.exception("Couldn't delete policy %s.", policy_id) raise
  • 有关 API 的详细信息,请参阅适用DeletePolicyPython 的Amazon SDK (Boto3) API 参考