ACS-RDS-BulkyModifyDBInstanceDeletionProtection

更新时间:
复制 MD 格式

Template name

ACS-RDS-BulkyModifyDBInstanceDeletionProtection: Enables deletion protection for RDS instances in batches

Execute now

Template description

Enables deletion protection for RDS instances in batches.

Template type

Automation

Owner

Alibaba Cloud

Input parameters

Parameter name

Description

Type

Required

Default value

Constraints

OOSAssumeRole

The RAM role for OOS to assume.

String

Yes

regionId

The region ID.

String

No

{{ ACS::RegionId }}

targets

The target instances.

Json

No

{"Type": "ResourceIds", "ResourceIds": [], "RegionId": "{{ regionId }}"}

instanceIds

The list of RDS instance IDs.

List

No

[]

rateControl

The concurrency rate for task execution.

Json

No

{"Mode": "Concurrency", "MaxErrors": 0, "Concurrency": 10}

Response parameters

None

Required access policy

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "rds:DescribeDBInstances",
                "rds:ModifyDBInstanceDeletionProtection"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "oos:GetApplicationGroup"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Details

ACS-RDS-BulkyModifyDBInstanceDeletionProtection details

Template content

FormatVersion: OOS-2019-06-01
Description:
  en: Bulky enable deletion protection for instances
  zh-cn: Enables deletion protection for RDS instances in batches.
  name-en: ACS-RDS-BulkyModifyDBInstanceDeletionProtection
  name-zh-cn: Enable Deletion Protection for RDS Instances in Batches
  categories:
    - security
    - rds
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      zh-cn: Region
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  targets:
    Type: Json
    Label:
      en: TargetInstance
      zh-cn: Target Instance
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: ALIYUN::RDS::Instance
      RegionId: regionId
    Default:
      Type: ResourceIds
      ResourceIds: []
      RegionId: '{{ regionId }}'
  instanceIds:
    Label:
      en: InstanceIds
      zh-cn: Instance IDs
    Type: List
    Default: []
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Equals:
            - ${targets}
            - {}
  rateControl:
    Label:
      en: RateControl
      zh-cn: Rate Control
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: OOS Assume Role
    Type: String
RamRole: '{{ OOSAssumeRole }}'
Conditions:
  instanceId:
    Fn::Equals:
      - '{{ instanceIds }}'
      - []
Tasks:
  - Name: getInstance
    When: instanceId
    Description:
      en: Get the RDS instances
      zh-cn: Gets the RDS instances.
    Action: ACS::SelectTargets
    Properties:
      ResourceType: ALIYUN::RDS::Instance
      RegionId: '{{regionId}}'
      Filters:
        - '{{ targets }}'
    Outputs:
      instanceIds:
        Type: List
        ValueSelector: Instances.Instance[].InstanceId
  - Name: enableDBInstanceDeletionProtection
    Action: ACS::ExecuteApi
    Description: '{"en":"Enables deletion protection for the RDS instance.","zh-cn":"Enables deletion protection for the instance."}'
    Properties:
      Service: RDS
      API: ModifyDBInstanceDeletionProtection
      Parameters:
        DBInstanceId: '{{ ACS::TaskLoopItem }}'
        DeletionProtection: true
        RegionId: '{{ regionId }}'
    Loop:
      Items:
        Fn::If:
          - Fn::Equals:
              - '{{instanceIds}}'
              - []
          - '{{ getInstance.instanceIds }}'
          - '{{ instanceIds}}'
      RateControl: '{{ rateControl }}'
    OnError: ACS::END
    OnSuccess: ACS::NEXT
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - regionId
          - instanceIds
          - targets
        Label:
          default:
            zh-cn: Select Instances
            en: Select RDS Instances
      - Parameters:
          - rateControl
          - OOSAssumeRole
        Label:
          default:
            zh-cn: Advanced Options
            en: Control Options