启用跨账户和地区的默认政策 - Amazon EBS

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

启用跨账户和地区的默认政策

使用 AWS CloudFormation StackSets,您只需一次操作即可在多个账户和 AWS 地区启用亚马逊数据生命周期管理器默认策略。

您可以通过以下方式之一使用堆栈集来启用默认策略:

  • 在整个 AWS 组织中-确保在整个 AWS 组织或组织中的特定组织单位中统一启用和配置默认策略。这是使用服务管理权限完成的。 AWS CloudFormation StackSets 代表您创建所需的 IAM 角色。

  • 跨特定 AWS 账户-确保在特定目标账户中一致启用和配置默认策略。这需要自我管理的权限。您可以创建在堆栈集管理员账户和目标账户之间建立信任关系所需的 IAM 角色。

有关更多信息,请参阅《AWS CloudFormation 用户指南》中的堆栈集权限模型

使用以下过程在整个 AWS 组织、特定 OU 或特定目标账户中启用 Amazon Data Lifecycle Manager 的默认策略。

先决条件

根据您启用默认策略的方式,执行以下任一操作:

Console
跨 AWS 组织或跨特定目标账户启用默认策略
  1. 打开 AWS CloudFormation 控制台,网址为 https://console.aws.amazon.com/cloudformation

  2. 在导航窗格中,选择 StackSets,然后选择创建 StackSet

  3. 对于权限,根据启用默认策略的方式,执行以下任一操作:

    • (在整个 AWS 组织中)选择服务管理权限

    • (跨特定目标账户)选择自助服务权限。然后,对于 IAM 管理员角色 ARN,选择您为管理员账户创建的 IAM 服务角色,对于 IAM 执行角色名称,输入您在目标账户中创建的 IAM 服务角色的名称。

  4. 在 “准备模板” 中,选择 “使用示例模板”。

  5. 对于示例模板,请执行以下任一操作:

    • (EBS 快照的默认策略)选择 “为 EBS 快照创建 Amazon Data Lifecycle Manager 默认策略”。

    • (EBS 支持的 AMI 的默认策略)选择 “为 EBS 支持的 AMI 创建 Amazon Data Lifecycle Manager 默认策略”。

  6. 选择下一步

  7. StackSet 名称StackSet 描述中,输入描述性名称和简短描述。

  8. 在 “参数” 部分,根据需要配置默认策略设置。

    注意

    对于关键工作负载,我们建议 CreateInterval = 1 天RetainInterval = 7 天

  9. 选择下一步

  10. (可选)在 “标签” 中,指定标签以帮助您识别 StackSet 和堆栈资源。

  11. 对于托管执行,请选择活动

  12. 选择下一步

  13. 对于 Add stacks to stack set(将堆栈添加到堆栈集),选择 Deploy new stacks(部署新堆栈)。

  14. 根据您启用默认策略的方式,执行以下任一操作:

    • (跨 AWS 组织)对于部署目标,请选择以下选项之一:

      • 要在整个 AWS 组织中部署,请选择部署到组织

      • 要部署到特定的组织单位 (OU),请选择 “部署到组织单位”,然后在 OU ID 中输入 OU ID。要添加其他 OU,请选择添加另一个 OU

    • (跨特定目标账户)对于帐户,请执行以下任一操作:

      • 要部署到特定的目标账户,请选择在账户中部署堆栈,然后在账户号中输入目标账户的 ID。

      • 要部署到特定 OU 中的所有帐户,请选择将堆栈部署到组织单位中的所有帐户,然后在组织编号中输入目标 OU 的 ID。

  15. 对于自动部署,请选择已激活

  16. 对于账户删除行为,请选择保留堆栈

  17. 在 “指定区域” 中,选择要在其中启用默认策略的特定区域,或者选择添加所有区域以在所有区域中启用默认策略。

  18. 选择下一步

  19. 查看堆栈集设置,选择我确认 AWS CloudFormation 可能会创建 IAM 资源,然后选择提交

AWS CLI
在整个 AWS 组织中启用默认策略
  1. 创建堆栈集。使用 create-stack-se t 命令。

    对于 --permission-model,请指定 SERVICE_MANAGED

    对于--template-url,请指定以下模板 URL 之一:

    • (EBS 支持的 AMI 的默认策略)https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/DataLifecycleManagerAMIDefaultPolicy.yaml

    • (EBS 快照的默认策略)https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/DataLifecycleManagerEBSSnapshotDefaultPolicy.yaml

    对于--parameters,请指定默认策略的设置。有关支持的参数、参数描述和有效值,请使用 URL 下载模板,然后使用文本编辑器查看模板。

    对于 --auto-deployment,请指定 Enabled=true, RetainStacksOnAccountRemoval=true

    $ aws cloudformation create-stack-set \ --stack-set-name stackset_name \ --permission-model SERVICE_MANAGED \ --template-url template_url \ --parameters "ParameterKey=param_name_1,ParameterValue=param_value_1" "ParameterKey=param_name_2,ParameterValue=param_value_2" \ --auto-deployment "Enabled=true, RetainStacksOnAccountRemoval=true"
  2. 部署堆栈集。使用 create-stack-instances 命令

    对于--stack-set-name,请指定您在上一步中创建的堆栈集的名称。

    对于--deployment-targets OrganizationalUnitIds,指定要部署到整个组织的根 OU 的 ID,或者指定要部署到组织中特定 OU 的 OU ID。

    对于--regions,请指定要在其中启用默认策略的 AWS 区域。

    $ aws cloudformation create-stack-instances \ --stack-set-name stackset_name \ --deployment-targets OrganizationalUnitIds='["root_ou_id"]' | '["ou_id_1", "ou_id_2]' \ --regions '["region_1", "region_2"]'
为特定目标账户启用默认策略
  1. 创建堆栈集。使用 create-stack-se t 命令。

    对于--template-url,请指定以下模板 URL 之一:

    • (EBS 支持的 AMI 的默认策略)https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/DataLifecycleManagerAMIDefaultPolicy.yaml

    • (EBS 快照的默认策略)https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/DataLifecycleManagerEBSSnapshotDefaultPolicy.yaml

    对于--administration-role-arn,请指定您之前为堆栈集管理员创建的 IAM 服务角色的 ARN。

    对于--execution-role-name,请指定您在目标账户中创建的 IAM 服务角色的名称。

    对于--parameters,请指定默认策略的设置。有关支持的参数、参数描述和有效值,请使用 URL 下载模板,然后使用文本编辑器查看模板。

    对于 --auto-deployment,请指定 Enabled=true, RetainStacksOnAccountRemoval=true

    $ aws cloudformation create-stack-set \ --stack-set-name stackset_name \ --template-url template_url \ --parameters "ParameterKey=param_name_1,ParameterValue=param_value_1" "ParameterKey=param_name_2,ParameterValue=param_value_2" \ --administration-role-arn administrator_role_arn \ --execution-role-name target_account_role \ --auto-deployment "Enabled=true, RetainStacksOnAccountRemoval=true"
  2. 部署堆栈集。使用 create-stack-instances 命令

    对于--stack-set-name,请指定您在上一步中创建的堆栈集的名称。

    对于--accounts,请指定目标 AWS 帐户的 ID。

    对于--regions,请指定要在其中启用默认策略的 AWS 区域。

    $ aws cloudformation create-stack-instances \ --stack-set-name stackset_name \ --accounts '["account_ID_1","account_ID_2"]' \ --regions '["region_1", "region_2"]'