

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 跨帳戶和區域啟用 Data Lifecycle Manager 預設政策
<a name="dlm-stacksets"></a>

使用 CloudFormation StackSets，您可以透過單一操作跨多個帳戶和 AWS 區域啟用 Amazon Data Lifecycle Manager 預設政策。

您可以使用堆疊集，以下列其中一種方式啟用預設政策：
+ **整個 AWS 組織** — 確保在整個 AWS 組織或組織中的特定組織單位中一致地啟用和設定預設政策。這是使用*服務受管許可*來完成的。 CloudFormation StackSets 會代表您建立所需的 IAM 角色。
+ **跨特定 AWS 帳戶** — 確保在特定目標帳戶間一致地啟用和設定預設政策。這需要*自我管理的許可*。您可以建立在堆疊集管理員帳戶與目標帳戶之間建立信任關係所需的 IAM 角色。

如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[堆疊集的許可模型](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html#stacksets-concepts-stackset-permission-models)。

使用下列程序，在整個 AWS 組織、特定 OUs 或特定目標帳戶中啟用 Amazon Data Lifecycle Manager 預設政策。

**先決條件**

根據您啟用預設政策的方式，執行下列其中一項操作：
+ （跨 AWS 組織） 您必須[啟用組織中的所有功能](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)，並使用 [啟用受信任的存取 AWS Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html)。您還必須使用組織的管理帳戶或[委派管理員帳戶](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)。
+ （跨特定目標帳戶） 您必須建立在堆疊集管理員帳戶與目標帳戶之間建立信任關係所需的角色，以[授予自我管理許可](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)。

------
#### [ Console ]

**跨 AWS 組織或特定目標帳戶啟用預設政策**

1. 在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 在導覽窗格中，選擇 **StackSets**，然後選擇**建立 StackSet**。

1. 對於**許可**，根據您啟用預設政策的方式，執行下列其中一項操作：
   + （整個 AWS 組織） 選擇**服務受管許可**。
   + （跨特定目標帳戶） 選擇**自助式許可**。然後，針對 **IAM 管理員角色 ARN**，選取您為管理員帳戶建立的 IAM 服務角色，針對 **IAM 執行角色名稱**，輸入您在目標帳戶中建立的 IAM 服務角色名稱。

1. 針對**準備範本**，選擇**使用範例範本**。

1. 對於**範例範本**，請執行下列其中一項操作：
   + (EBS 快照的預設政策） 選取**建立 EBS 快照的 Amazon Data Lifecycle Manager 預設政策。**
   + (EBS 後端 AMIs 的預設政策） 選取**建立 EBS 後端 AMIs 的 Amazon Data Lifecycle Manager 預設政策**。

1. 選擇**下一步**。

1. 針對 **StackSet 名稱**和 **StackSet 描述**，輸入描述性名稱和簡短描述。

1. 在**參數**區段中，視需要設定預設政策設定。
**注意**  
對於關鍵工作負載，我們建議 **CreateInterval = 1 天**，而 **RetainInterval = 7 天**。

1. 選擇**下一步**。

1. （選用） 針對**標籤**，指定標籤以協助您識別 StackSet 和堆疊資源。

1. 針對**受管執行**，選擇**作用中**。

1. 選擇**下一步**。

1. 在 **Add stacks to stack set** (將堆疊新增至堆疊集) 中，選擇 **Deploy new stacks** (部署新堆疊)。

1. 根據您啟用預設政策的方式，執行下列其中一項操作：
   + （跨 AWS 組織） 針對**部署目標**，選擇下列其中一個選項：
     + 若要在整個 AWS 組織中部署，請選擇**部署到組織**。
     + 若要部署至特定組織單位 (OU)，請選擇**部署至組織單位**，然後針對 **OU ID** 輸入 OU ID。若要新增其他 OUs，請選擇**新增另一個 OU**。
   + （跨特定目標帳戶） 對於**帳戶**，執行下列其中一項操作：
     + 若要部署到特定目標帳戶，請選擇**在帳戶中部署堆疊**，然後在**帳戶號碼**中輸入目標帳戶的 IDs。
     + 若要部署到特定 OU 中的所有帳戶，請選擇將**堆疊部署到組織單位中的所有帳戶**，然後在**組織號碼**中輸入目標 OU 的 ID。

1. 針對**自動部署**，選擇**已啟用**。

1. 針對**帳戶移除行為**，選擇**保留堆疊**。

1. 針對**指定區域**，選取要啟用預設政策的特定區域，或選擇**新增所有區域**以啟用所有區域中的預設政策。

1. 選擇**下一步**。

1. 檢閱堆疊集設定，選取**我確認 CloudFormation 可能會建立 IAM 資源**，然後選擇**提交**。

------
#### [ AWS CLI ]

**在整個 AWS 組織中啟用預設政策**

1. 建立堆疊集。使用 [ create-stack-set](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-set.html) 命令。

   對於 `--permission-model`，請指定 `SERVICE_MANAGED`。

   針對 `--template-url`，指定下列其中一個範本 URLs：
   + (EBS 後端 AMIs 的預設政策） `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"
   ```

1. 部署堆疊集。使用 [ create-stack-instances](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-instances.html) 命令。

   針對 `--stack-set-name`，指定您在上一個步驟中建立的堆疊集名稱。

   對於 `--deployment-targets OrganizationalUnitIds`，指定要部署到整個組織的根 OU ID，或要部署到組織中特定 OUs OU IDs。

   針對 `--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-set](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-set.html) 命令。

   針對 `--template-url`，指定下列其中一個範本 URLs：
   + (EBS 後端 AMIs 的預設政策） `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"
   ```

1. 部署堆疊集。使用 [ create-stack-instances](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-instances.html) 命令。

   針對 `--stack-set-name`，指定您在上一個步驟中建立的堆疊集名稱。

   針對 `--accounts`，指定目標 AWS 帳戶的 IDs。

   針對 `--regions`，指定要在其中啟用預設政策 AWS 的區域。

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

------