批量开启资源删除保护

背景

删除保护是云产品针对云资源的一种保护措施,防止资源被意外删除。当您启用删除保护时,针对资源的删除操作将会失败,有效避免因操作疏忽、团队成员沟通不及时等原因造成不可挽回的后果。本文为您介绍如何通过系统运维管理 OOS(CloudOps Orchestration Service)批量开启资源删除(释放)保护。

前提条件

  1. 为ECS实例开启释放保护前提条件,参见开启和关闭实例释放保护

  2. 为用户主密钥(CMK)开启或关闭删除保护前提条件,参见开启删除保护

  3. 为RDS实例开启释放保护前提条件,参见开启和关闭实例释放保护

操作步骤

  1. 登录系统运维管理 OOS(CloudOps Orchestration Service)管理控制台。

  2. 单击公共模板

  3. 在搜索框输入“保护”,可以看到所有支持的资源释放修改保护等模板,根据您的需求进行选择,然后单击创建执行(这里以批量启用实例删除保护为例)。image.png

  4. 单击“下一步:设置参数”image.png

  5. 选择(支持手动选择、指定实例标签、资源组、上传CSV文件、选择全部、指定配置清单条件几种方式)要操作的资源后单击“下一步:确定”。image.png

  6. 单击创建image.png

  1. 查看执行结果image.png

附录1:公共模板和背后逻辑

批量启用ECS实例删除保护公共模板

FormatVersion: OOS-2019-06-01
Description:
  en: Bulky enable instances deletionprotection
  zh-cn: 批量启用实例删除保护
  name-en: ACS-ECS-BulkyEnableDeletionProtection
  name-zh-cn: 批量启用实例删除保护
  categories:
    - security
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      zh-cn: 地域ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  targets:
    Type: Json
    Label:
      en: TargetInstance
      zh-cn: 目标实例
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: ALIYUN::ECS::Instance
      RegionId: regionId
  rateControl:
    Label:
      en: RateControl
      zh-cn: 任务执行的并发比率
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: OOS扮演的RAM角色
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: getInstance
    Description:
      en: Views the ECS instances
      zh-cn: 获取ECS实例
    Action: ACS::SelectTargets
    Properties:
      ResourceType: ALIYUN::ECS::Instance
      RegionId: '{{ regionId }}'
      Filters:
        - '{{ targets }}'
    Outputs:
      instanceIds:
        Type: List
        ValueSelector: Instances.Instance[].InstanceId
  - Name: enableInstanceDeletionProtection
    Action: ACS::ECS::EnableInstanceDeletionProtection
    Description:
      en: Enable instances deletionprotection
      zh-cn: 实例启用实例保护
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ ACS::TaskLoopItem }}'
      deletionProtection: true
    Loop:
      RateControl: '{{ rateControl }}'
      Items: '{{ getInstance.instanceIds }}'
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - regionId
          - targets
        Label:
          default:
            zh-cn: 选择实例
            en: Select Ecs Instances
      - Parameters:
          - rateControl
          - OOSAssumeRole
        Label:
          default:
            zh-cn: 高级选项
            en: Control Options

该模板顺序执行以下任务:

  1. 获取目标实例。

  2. 批量为ECS实例开启释放保护。