

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

# AMS CloudFormation 擷取
<a name="ams-cfn-ingest"></a>

AMS AWS CloudFormation 擷取變更類型 (CT) 可讓您透過一些修改，使用現有的 CloudFormation 範本在 AMS 受管 VPC 中部署自訂堆疊。

**Topics**
+ [CloudFormation 擷取準則、最佳實務和限制](cfn-author-templates.md)
+ [CloudFormation 擷取：範例](cfn-ingest-examples.md)
+ [建立 CloudFormation 擷取堆疊](#ex-cfn-ingest-create-col)
+ [更新 CloudFormation 擷取堆疊](#ex-cfn-ingest-update-col)
+ [核准 CloudFormation 擷取堆疊變更集](#ex-cfn-ingest-approve-and-update-col)
+ [更新 CloudFormation 堆疊終止保護](#ex-cfn-term-pro-update-col)
+ [在 AMS 中使用 CFN 擷取或堆疊更新 CTs自動化 IAM 部署](cfn-ingest-iam-deploy.md)

AMS CloudFormation 擷取程序涉及下列各項：
+ 準備自訂 CloudFormation 範本並將其上傳至 S3 儲存貯體，或在建立 RFC 時內嵌範本。如果您使用具有預先簽章 URL 的 S3 儲存貯體；如需詳細資訊，請參閱[預先簽章](https://docs.aws.amazon.com/cli/latest/reference/s3/presign.html)。
+ 將 CloudFormation 擷取變更類型提交至 RFC 中的 AMS。如需 CFN 擷取變更類型演練，請參閱 [建立 CloudFormation 擷取堆疊](#ex-cfn-ingest-create-col)。如需 CFN 擷取範例，請參閱 [CloudFormation 擷取：範例](cfn-ingest-examples.md)。
+ 堆疊建立後，您可以更新它，並修復它上的偏離；此外，如果更新失敗，您可以明確核准和實作更新。本節說明所有這些程序。

  如需 CFN 偏離偵測的資訊，請參閱[新增 – CloudFormation 偏離偵測](https://aws.amazon.com/blogs/aws/new-cloudformation-drift-detection/)。

**注意**  
  
此變更類型現在具有 2.0 版。2.0 版為自動化，非手動執行。這可讓 CT 執行速度更快。此版本引進了兩個新參數：**CloudFormationTemplate**，可讓您將自訂 CloudFormation 範本貼入 RFC，而 **VpcId** 可讓您將 CloudFormation 擷取與 AMS 多帳戶登陸區域搭配使用。
1.0 版是手動變更類型。這表示 AMS 運算子必須先採取一些動作，變更類型才能成功結束。至少需要檢閱。此版本也需要 **CloudFormationTemplateS3Endpoint** 參數值為預先簽章的 URL。

# CloudFormation 擷取準則、最佳實務和限制
<a name="cfn-author-templates"></a>

若要讓 AMS 處理您的 CloudFormation 範本，有一些指導方針和限制。

## 指導方針
<a name="cfn-ingest-tips"></a>

若要在執行 CloudFormation 擷取時減少 CloudFormation 錯誤，請遵循下列準則：
+ **請勿在範本中嵌入登入資料或其他敏感資訊** – CloudFormation 範本會顯示在 CloudFormation 主控台中，因此您不想在範本中嵌入登入資料或敏感資料。範本不能包含敏感資訊。只有當您使用 AWS Secrets Manager 做為 值時，才允許下列資源：
  + `AWS::RDS::DBInstance` - 【MasterUserPassword，TdeCredentialPassword】
  + `AWS::RDS::DBCluster` - 【MasterUserPassword】
  + `AWS::ElastiCache::ReplicationGroup` - 【AuthToken】
**注意**  
如需有關在資源屬性中使用 AWS Secrets Manager 秘密的資訊，請參閱[如何使用 AWS CloudFormation 範本和使用動態參考指定範本值來建立和擷取 Secrets Manager 中管理的 AWS 秘密](https://aws.amazon.com/blogs/security/how-to-create-and-retrieve-secrets-managed-in-aws-secrets-manager-using-aws-cloudformation-template/)。 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html)
+ **使用 Amazon RDS 快照來建立 RDS 資料庫執行個體** – 透過這樣做，您不必提供 MasterUserPassword。
+ 如果您提交的範本包含 IAM 執行個體描述檔，其字首必須是 'customer'。例如，使用名稱為 'example-instance-profile' 的執行個體描述檔會導致失敗。反之，請使用名稱為 'customer-example-instance-profile' 的執行個體描述檔。
+ **請勿在 - 【UserData】 中包含任何敏感資料`AWS::EC2::Instance`**。 UserData UserData 不應包含密碼、API 金鑰或任何其他敏感資料。這種類型的資料可以加密並存放在 S3 儲存貯體中，並使用 UserData 下載到執行個體。
+ **使用 CloudFormation 範本建立 IAM 政策受到限制的支援** – IAM 政策必須由 AMS SecOps 審核和核准。目前我們僅支援使用包含預先核准許可的內嵌政策來部署 IAM 角色。在其他情況下，無法使用 CloudFormation 範本建立 IAM 政策，因為這會覆寫 AMS SecOps 程序。
+ **不支援 SSH KeyPairs ** – Amazon EC2 執行個體必須透過 AMS 存取管理系統存取。AMS RFC 程序會驗證您的身分。您無法在 CloudFormation 範本中包含 SSH 金鑰對，因為您沒有建立 SSH 金鑰對和覆寫 AMS 存取管理模型的許可。
+ **安全群組傳入規則受到限制** – 您無法擁有 0.0.0.0/0 的來源 CIDR 範圍，或具有 TCP 連接埠的可公開路由地址空間，而 TCP 連接埠不是 80 或 443。
+ **撰寫 CloudFormation 資源範本時，請遵循 CloudFormation 準則** – 請參閱該資源的 *AWS CloudFormation 使用者指南*，以確保您使用正確的資源資料類型/屬性名稱。例如，AWS::EC2::Instance 資源中 SecurityGroupIds 屬性的資料類型是「字串值清單」，因此 【「sg-aaaaaaaaaaa」】是正常的 （使用括號），但「sg-aaaaaaa 不是 （不使用括號）。

  如需詳細資訊，請參閱 [AWS 資源和屬性類型參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)。
+ **將自訂 CloudFormation 範本設定為使用 AMS CloudFormation 擷取 CT 中定義的參數** – 當您將 CloudFormation 範本設定為使用 AMS CloudFormation 擷取 CT 中定義的參數時，您可以使用 管理 \$1 自訂堆疊 \$1 CloudFormation 範本的堆疊 \$1 更新 CT (ct-361tlo1k7339x)，在 CT 輸入中提交具有變更參數值的 CloudFormation 範本，以 CloudFormation 建立類似的堆疊。如需範例，請參閱「[CloudFormation 擷取範例：定義資源](cfn-ingest-ex-define-resource.md)」。
+ **具有預先簽章 URL 的 Amazon S3 儲存貯體端點無法過期** – 如果您使用具有預先簽章 URL 的 Amazon S3 儲存貯體端點，請確認預先簽章的 Amazon S3 URL 尚未過期。使用過期的預先簽章 Amazon S3 儲存貯體 URL 提交的 CloudFormation 擷取 RFC 會遭到拒絕。
+ **Wait Condition 需要訊號邏輯** – Wait Condition 用於協調堆疊資源建立與堆疊建立外部的組態動作。如果您在範本中使用等待條件資源， 會 CloudFormation 等待成功訊號，如果未發出成功訊號數量，則會將堆疊建立標記為失敗。如果您使用等待條件資源，則需要有訊號的邏輯。如需詳細資訊，請參閱[在範本中建立等待條件](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-waitcondition.html)。

# 最佳實務
<a name="cfn-ingest-best-practices"></a>

以下是您可以使用 AMS CloudFormation 擷取程序來遷移資源的一些最佳實務：
+ **在一個 CT 中提交 IAM 和其他政策相關資源** – 如果您可以使用 CloudFormation Ingest 等自動化 CTs 來部署 IAM 角色，我們建議您這樣做。在其他情況下，AMS 建議您收集所有 IAM 或其他政策相關資源，並將其提交至單一管理 \$1 其他 \$1 其他 \$1 建立變更類型 (ct-1e1xtak34nx76)。例如，合併所需的所有 IAM 角色、IAM Amazon EC2 執行個體描述檔、現有 IAM 角色的 IAM 政策更新、Amazon S3 儲存貯體政策、Amazon SNS/Amazon SQS 政策等，並提交 ct-1e1xtak34nx76 RFC，以便在未來的 CloudFormation 擷取範本中直接參考這些預先存在的資源。
+ **EC2 執行個體已引導並成功加入網域** – 這是自動完成的最佳實務。為了確保透過 CloudFormation 擷取堆疊啟動的 Amazon EC2 執行個體已引導並成功加入網域，AMS 包含適用於 Auto Scaling 群組資源的 CreationPolicy 和 UpdatePolicy （亦即，如果這些政策尚未存在）。
+ **必須指定 Amazon RDS 資料庫執行個體參數** – 透過 CloudFormation 擷取建立 Amazon RDS 資料庫時，您必須指定 `DBSnapshotIdentifier` 參數，才能從先前的資料庫快照還原。這是必要的，因為 CloudFormation 擷取目前不會處理敏感資料。

如需如何將 CloudFormation 範本用於 AMS CloudFormation 範本擷取的範例，請參閱 [CloudFormation 擷取：範例](cfn-ingest-examples.md)。

# 範本驗證
<a name="cfn-ingest-validate"></a>

您可以在將 CloudFormation 範本提交至 AMS 之前進行自我驗證。

提交至 AMS CloudFormation 擷取的範本經過驗證，以確保可在 AMS 帳戶中安全地部署。驗證程序會檢查下列項目：
+ **支援的資源** – 僅使用 AMS CloudFormation 擷取支援的資源。如需詳細資訊，請參閱[支援的資源](cfn-ingest-supp-services.md)。
+ **支援的 AMIs **– 範本中的 AMI 是 AMS 支援的 AMI。如需 AMS AMIs的詳細資訊，請參閱 [AMS Amazon Machine Image AMIs)](ams-amis.md)。
+ **AMS 共用服務子網路** – 範本不會嘗試在 AMS 共用服務子網路中啟動資源。
+ **資源政策** – 沒有過度寬鬆的資源政策，例如可公開讀取或可寫入的 S3 儲存貯體政策。AMS 不允許公開讀取或寫入 S3 儲存貯體 AWS 帳戶。

## 使用 CloudFormation Linter 驗證
<a name="cfn-ingest-validate-linter"></a>

您可以使用 CloudFormation Linter 工具，在將 CloudFormation 範本提交至 AMS 之前進行自我驗證。

 CloudFormation Linter 工具是驗證 CloudFormation 範本的最佳方式，因為它可驗證資源/屬性名稱、資料類型和函數。如需詳細資訊，請參閱 [aws-cloudformation/cfn-python-lint](https://github.com/aws-cloudformation/cfn-python-lint)。

先前顯示的範本 CloudFormation Linter 輸出如下所示：

```
$ cfn-lint -t ./testtmpl.json
E3002 Invalid Property Resources/SNSTopic/Properties/Name
./testtmpl.json:6:9
```

為了協助離線驗證 CloudFormation 範本，AMS 已為 CloudFormation Linter 工具開發一組可插入的自訂驗證規則。它們位於 AMS 主控台的**開發人員資源**頁面上。

請依照下列步驟使用擷取 CloudFormation 前驗證指令碼：

1. 安裝 CloudFormation Linter 工具。如需安裝說明，請參閱 [aws-cloudformation / cfn-lint ](https://github.com/aws-cloudformation/cfn-python-lint)。

1. 下載具有驗證指令碼的 .zip 檔案：

    [CFN Lint 自訂規則](https://github.com/awslabs/aws-managed-services/tree/main/cfn-lint-custom-rules)。

1. 將連接的規則解壓縮到您選擇的目錄。

1. 執行下列命令來驗證您的 CloudFormation 範本：

   ```
   cfn-lint --template {TEMPLATE_FILE} --append-rules {DIRECTORY_WITH_CUSTOM_RULES}
   ```

# CloudFormation 擷取堆疊：CFN 驗證器範例
<a name="ex-cfn-ingest-validator"></a>

這些範例可協助您準備範本以成功擷取。

## 格式驗證
<a name="cfn-validator-templates"></a>

驗證範本是否包含「資源」區段，且其下定義的所有資源都有「類型」值。

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description" : "Create a SNS topic",
  "Resources": {
    "SnsTopic": {
      "Type": "AWS::SNS::Topic"
    }
  }
}
```

驗證是否允許範本的根金鑰。允許的根金鑰為：

```
[
  "AWSTemplateFormatVersion",  
  "Description",  
  "Mappings",  
  "Parameters",  
  "Conditions",  
  "Resources",  
  "Rules",  
  "Outputs",  
  "Metadata"
]
```

## 手動檢閱必要的驗證
<a name="cfn-validator-ex-man"></a>

如果範本包含下列資源，則自動驗證會失敗，而且您將需要手動檢閱。

從安全角度來看，顯示的政策是高風險區域。例如，除了特定使用者或群組之外，允許任何人建立物件或寫入許可的 S3 儲存貯體政策非常危險。因此，我們會驗證政策，並根據內容核准或拒絕，而且無法自動建立這些政策。我們正在調查解決此問題的可能方法。

我們目前沒有下列資源的自動驗證。

```
[
    "S3::BucketPolicy",
    "SNS::TopicPolicy",
    "SQS::QueuePolicy"
]
```

## 參數驗證
<a name="cfn-validator-examples-param"></a>

如果範本參數未提供值，請確認該參數必須具有預設值。

## 資源屬性驗證
<a name="cfn-validator-examples-resource-atts"></a>

必要屬性檢查：特定資源類型必須存在特定屬性。
+ 「VPCOptions」必須存在於 `AWS::OpenSearch::Domain`
+ "CludsterSubnetGroupName" 必須存在於 `AWS::Redshift::Cluster`

```
{
    "AWS::OpenSearch::Domain": [
      "VPCOptions"
    ],
    "AWS::Redshift::Cluster": [
      "ClusterSubnetGroupName"
    ]
}
```

不允許的屬性檢查：某些資源類型必須 \$1not\$1 存在。
+ 「SecretString」不得存在於「AWS::SecretsManager::Secret」中
+ 「MongoDbSettings」不得存在於「AWS::DMS::Endpoint」中

```
{
  "AWS::SecretsManager::Secret": [
    "SecretString"  
  ],  
  "AWS::DMS::Endpoint": [
    "MongoDbSettings"  
  ]
}
```

SSM 參數檢查：對於下列清單中的屬性，必須透過 Secrets Manager 或 Systems Manager 參數存放區 （安全字串參數） 指定值：

```
{
  "RDS::DBInstance": [
    "MasterUserPassword",   
    "TdeCredentialPassword"  
  ],  
  "RDS::DBCluster": [
    "MasterUserPassword"  
  ],  
  "ElastiCache::ReplicationGroup": [
    "AuthToken"  
  ],  
  "DMS::Certificate": [
    "CertificatePem",    
    "CertificateWallet" 
  ],  
  "DMS::Endpoint": [
    "Password"  
  ],
  "CodePipeline::Webhook": {
    "AuthenticationConfiguration": [
        "SecretToken"  
    ]
  },
  "DocDB::DBCluster": [
    "MasterUserPassword"
  ]
},
```

有些屬性必須符合特定模式；例如，IAM 執行個體設定檔名稱不得以 [AMS 預留字首](https://docs.aws.amazon.com/managedservices/latest/userguide/ams-reserved-prefixes)開頭，且屬性值必須符合特定 regex，如下所示：

```
{
    "AWS::EC2::Instance": {
      "IamInstanceProfile": [
        "^(?!arn:aws:iam|ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+",
        "arn:aws:iam::(\\$\\{AWS::AccountId\\}|[0-9]+):instance-profile/(?!ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+"
      ]
    },
    "AWS::AutoScaling::LaunchConfiguration": {
      "IamInstanceProfile": [
        "^(?!arn:aws:iam|ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+",
        "arn:aws:iam::(\\$\\{AWS::AccountId\\}|[0-9]+):instance-profile/(?!ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+"
      ]
    },
    "AWS::EC2::LaunchTemplate": {
      "LaunchTemplateData.IamInstanceProfile.Name": [
        "^(?!ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+"
      ],
      "LaunchTemplateData.IamInstanceProfile.Arn": [
        "arn:aws:iam::(\\$\\{AWS::AccountId\\}|[0-9]+):instance-profile\/(?!ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+"
      ]
    }
}
```

## 資源驗證
<a name="cfn-validator-examples-resources"></a>

範本中只能指定允許列出的資源；這些資源如中所述[支援的資源](cfn-ingest-supp-services.md)。

由於修補限制，同一堆疊中不允許 EC2 堆疊和 Auto Scaling 群組 (ASGs)。

## 安全群組輸入規則驗證
<a name="cfn-validator-examples-sg-ingress"></a>
+ 對於來自 CFN 擷取建立或堆疊更新 CT 變更類型的請求：
  + 如果 (`IpProtocol` 是 tcp 或 6) 和 （連接埠是 80 或 443) ，則`CidrIP`值沒有限制
  + 否則， `CidrIP`不能是 0.0.0.0/0
+ 對於來自 Service Catalog (Service Catalog 產品） 的請求：
  + 除了 CFN 擷取建立或堆疊更新 CT 變更類型驗證之外， 中`management_ports`具有 中通訊協定的連接埠`ip_protocols`只能透過 存取`allowed_cidrs`：

    ```
    {
          "ip_protocols": ["tcp", "6", "udp", "17"],
          "management_ports": [22, 23, 389, 636, 1494, 1604, 2222, 3389, 5900, 5901, 5985, 5986],
          "allowed_cidrs": ["10.0.0.0/8", "100.64.0.0/10", "172.16.0.0/12", "192.168.0.0/16"]
      }
    ```

# 限制
<a name="cfn-limitations"></a>

AMS CloudFormation 擷取程序目前不支援下列功能。


+ **YAML** – 不支援。僅支援 JSON 型 CloudFormation 範本。
+ **巢狀堆疊** – 反之，請架構您的應用程式基礎設施以使用單一範本。或者，您也可以利用跨堆疊參考，跨多個堆疊分隔資源，其中一個資源與另一個資源有相依性。如需詳細資訊，請參閱[逐步解說：請參閱另一個 AWS CloudFormation Stack 中的資源輸出](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-crossstackref.html)。
+ **CloudFormation 堆疊集** – 由於安全性影響，不支援。
+ **使用 CloudFormation 範本建立 IAM 資源** – 由於安全性影響，僅支援 IAM 角色。
+ **敏感資料** – 不支援。請勿在範本或參數值中包含敏感資料。如果您需要參考敏感資料，請使用 Secrets Manager 來存放和擷取這些值。如需有關在資源屬性中使用 AWS Secrets Manager 秘密的資訊，請參閱[如何使用 AWS CloudFormation 範本和使用動態參考指定範本值，建立和擷取在 AWS Secrets Manager 中管理的秘密 AWS CloudFormation](https://aws.amazon.com/blogs/security/how-to-create-and-retrieve-secrets-managed-in-aws-secrets-manager-using-aws-cloudformation-template/)。 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html)

# 支援的資源
<a name="cfn-ingest-supp-services"></a>

AMS CloudFormation 擷取程序支援下列 AWS 資源。

## CloudFormation 擷取堆疊：支援的資源
<a name="ex-cfn-ingest-supp-resources"></a>

AMS 工作負載擷取必須支援執行個體作業系統。僅支援此處列出的 AWS 資源。
+  [Amazon API Gateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApiGateway.html)
  + AWS::ApiGateway::Account
  + AWS::ApiGateway::ApiKey
  + AWS::ApiGateway::Authorizer
  + AWS::ApiGateway::BasePathMapping
  + AWS::ApiGateway::ClientCertificate
  + AWS::ApiGateway::Deployment
  + AWS::ApiGateway::DocumentationPart
  + AWS::ApiGateway::DocumentationVersion
  + AWS::ApiGateway::DomainName
  + AWS::ApiGateway::GatewayResponse
  + AWS::ApiGateway::Method
  + AWS::ApiGateway::Model
  + AWS::ApiGateway::RequestValidator
  + AWS::ApiGateway::Resource
  + AWS::ApiGateway::RestApi
  + AWS::ApiGateway::Stage
  + AWS::ApiGateway::UsagePlan
  + AWS::ApiGateway::UsagePlanKey
  + AWS::ApiGateway::VpcLink
+  [Amazon API Gateway V2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApiGatewayV2.html)
  + AWS::ApiGatewayV2::Api
  + AWS::ApiGatewayV2::ApiGatewayManagedOverrides
  + AWS::ApiGatewayV2::ApiMapping
  + AWS::ApiGatewayV2::Authorizer
  + AWS::ApiGatewayV2::Deployment
  + AWS::ApiGatewayV2::DomainName
  + AWS::ApiGatewayV2::Integration
  + AWS::ApiGatewayV2::IntegrationResponse
  + AWS::ApiGatewayV2::Model
  + AWS::ApiGatewayV2::Route
  + AWS::ApiGatewayV2::RouteResponse
  + AWS::ApiGatewayV2::Stage
  + AWS::ApiGatewayV2::VpcLink
+  [AWS AppSync](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AppSync.html)
  + AWS::AppSync::ApiCache
  + AWS::AppSync::ApiKey
  + AWS::AppSync::DataSource
  + AWS::AppSync::FunctionConfiguration
  + AWS::AppSync::GraphQLApi
  + AWS::AppSync::GraphQLSchema
  + AWS::AppSync::Resolver
+  [Amazon Athena](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Athena.html)
  + AWS::Athena::NamedQuery
  + AWS::Athena::WorkGroup
+  [AWS Backup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Backup.html)
  + AWS::Backup::BackupVault
+ [Amazon CloudFront](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-reference-cloudfront.html)
  + AWS::CloudFront::Distribution
  + AWS::CloudFront::CloudFrontOriginAccessIdentity
  + AWS::CloudFront::StreamingDistribution
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-reference-cloudwatch.html)
  + AWS::CloudWatch::Alarm
  + AWS::CloudWatch::AnomalyDetector
  + AWS::CloudWatch::CompositeAlarm
  + AWS::CloudWatch::Dashboard
  + AWS::CloudWatch::InsightRule
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Logs.html)
  + AWS::Logs::LogGroup
  + AWS::Logs::LogStream
  + AWS::Logs::MetricFilter
  + AWS::Logs::SubscriptionFilter
+  [Amazon Cognito](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Cognito.html)
  + AWS::Cognito::IdentityPool
  + AWS::Cognito::IdentityPoolRoleAttachment
  + AWS::Cognito::UserPool
  + AWS::Cognito::UserPoolClient
  + AWS::Cognito::UserPoolDomain
  + AWS::Cognito::UserPoolGroup
  + AWS::Cognito::UserPoolIdentityProvider
  + AWS::Cognito::UserPoolResourceServer
  + AWS::Cognito::UserPoolRiskConfigurationAttachment
  + AWS::Cognito::UserPoolUICustomizationAttachment
  + AWS::Cognito::UserPoolUser
  + AWS::Cognito::UserPoolUserToGroupAttachment
+  [Amazon DocumentDB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_DocDB.html)
  + AWS::DocDB::DBCluster
  + AWS::DocDB::DBClusterParameterGroup
  + AWS::DocDB::DBInstance
  + AWS::DocDB::DBSubnetGroup
+  [Amazon DynamoDB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_DynamoDB.html)
  + AWS::DynamoDB::Table
+ [Amazon EC2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_EC2.html)
  + AWS::EC2::Volume
  + AWS::EC2::VolumeAttachment
  + AWS::EC2::Instance
  + AWS::EC2::EIP
  + AWS::EC2::EIPAssociation
  + AWS::EC2::NetworkInterface
  + AWS::EC2::NetworkInterfaceAttachment
  + AWS::EC2::SecurityGroup
  + AWS::EC2::SecurityGroupIngress
  + AWS::EC2::SecurityGroupEgress
  + AWS::EC2::LaunchTemplate
+  [AWS Batch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Batch.html)
  + AWS::Batch::ComputeEnvironment
  + AWS::Batch::JobDefinition
  + AWS::Batch::JobQueue
+ [Amazon Elastic Container Registry (ECR)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ECR.html)
  + AWS::ECR::Repository
+ [Amazon Elastic Container Service (ECS) (Fargate)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_EFS.html)
  + AWS::ECS::CapacityProvider
  + AWS::ECS::Cluster
  + AWS::ECS::PrimaryTaskSet
  + AWS::ECS::Service
  + AWS::ECS::TaskDefinition
  + AWS::ECS::TaskSet
+ [Amazon Elastic File System (EFS)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_EFS.html)
  + AWS::EFS::FileSystem
  + AWS::EFS::MountTarget
+ [Amazon ElastiCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElastiCache.html)
  + AWS::ElastiCache::CacheCluster
  + AWS::ElastiCache::ParameterGroup
  + AWS::ElastiCache::ReplicationGroup
  + AWS::ElastiCache::SecurityGroup
  + AWS::ElastiCache::SecurityGroupIngress
  + AWS::ElastiCache::SubnetGroup
+ [Amazon EventBridge](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Events.html)
  + AWS::Events::EventBus
  + AWS::Events::EventBusPolicy
  + AWS::Events::Rule
+ [Amazon FSx](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_FSx.html)
  + AWS::FSx::FileSystem
+ [Amazon Inspector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Inspector.html)
  + AWS::Inspector::AssessmentTarget
  + AWS::Inspector::AssessmentTemplate
  + AWS::Inspector::ResourceGroup
+ [Amazon Kinesis Data Analytics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_KinesisAnalytics.html)
  + AWS::KinesisAnalytics::Application
  + AWS::KinesisAnalytics::ApplicationOutput
  + AWS::KinesisAnalytics::ApplicationReferenceDataSource
+  [Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_KinesisFirehose.html)
  + AWS::KinesisFirehose::DeliveryStream
+ [Amazon Kinesis Data Streams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Kinesis.html)
  + AWS::Kinesis::Stream
  + AWS::Kinesis::StreamConsumer
+ [Amazon MQ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AmazonMQ.html)
  + AWS::AmazonMQ::Broker
  + AWS::AmazonMQ::Configuration
  + AWS::AmazonMQ::ConfigurationAssociation
+ [Amazon OpenSearch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_OpenSearchService.html)
  + AWS::OpenSearchService::Domain
+ [Amazon Relational Database Service (RDS)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html)
  + AWS::RDS::DBCluster
  + AWS::RDS::DBClusterParameterGroup
  + AWS::RDS::DBInstance
  + AWS::RDS::DBParameterGroup
  + AWS::RDS::DBSubnetGroup
  + AWS::RDS::EventSubscription
  + AWS::RDS::OptionGroup
+ [Amazon Route 53](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Route53.html)
  + AWS::Route53::HealthCheck
  + AWS::Route53::HostedZone
  + AWS::Route53::RecordSet
  + AWS::Route53::RecordSetGroup
  + AWS::Route53Resolver::ResolverRule
  + AWS::Route53Resolver::ResolverRuleAssociation
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_S3.html)
  + AWS::S3::Bucket
+ [Amazon Sagemaker](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SageMaker.html)
  + AWS::SageMaker::CodeRepository
  + AWS::SageMaker::Endpoint
  + AWS::SageMaker::EndpointConfig
  + AWS::SageMaker::Model
  + AWS::SageMaker::NotebookInstance
  + AWS::SageMaker::NotebookInstanceLifecycleConfig
  + AWS::SageMaker::Workteam
+  [Amazon Simple Email Service (SES)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SES.html)
  + AWS::SES::ConfigurationSet
  + AWS::SES::ConfigurationSetEventDestination
  + AWS::SES::ReceiptFilter
  + AWS::SES::ReceiptRule
  + AWS::SES::ReceiptRuleSet
  + AWS::SES::Template
+  [Amazon SimpleDB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SDB.html)
  + AWS::SDB::Domain
+ [Amazon SNS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SNS.html)
  + AWS::SNS::Subscription
  + AWS::SNS::Topic
+ [Amazon SQS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SQS.html)
  + AWS::SQS::Queue
+  [Amazon WorkSpaces](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_WorkSpaces.html)
  + AWS::WorkSpaces::Workspace
+ [Application AutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApplicationAutoScaling.html)
  + AWS::ApplicationAutoScaling::ScalableTarget
  + AWS::ApplicationAutoScaling::ScalingPolicy
+ [Amazon EC2 AutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html)
  + AWS::AutoScaling::AutoScalingGroup
  + AWS::AutoScaling::LaunchConfiguration
  + AWS::AutoScaling::LifecycleHook
  + AWS::AutoScaling::ScalingPolicy
  + AWS::AutoScaling::ScheduledAction
+ [AWS Certificate Manager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html)
  + AWS::CertificateManager::Certificate
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_CloudFormation.html)
  + AWS::CloudFormation::CustomResource
  + AWS::CloudFormation::Designer
  + AWS::CloudFormation::WaitCondition
  + AWS::CloudFormation::WaitConditionHandle
+ [AWS CodeBuild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_CodeBuild.html)
  + AWS::CodeBuild::Project
  + AWS::CodeBuild::ReportGroup
  + AWS::CodeBuild::SourceCredential
+  [AWS CodeCommit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_CodeCommit.html)
  + AWS::CodeCommit::Repository
+ [AWS CodeDeploy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_CodeDeploy.html)
  + AWS::CodeDeploy::Application
  + AWS::CodeDeploy::DeploymentConfig
  + AWS::CodeDeploy::DeploymentGroup
+ [AWS CodePipeline](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_CodePipeline.html)
  + AWS::CodePipeline::CustomActionType
  + AWS::CodePipeline::Pipeline
  + AWS::CodePipeline::Webhook
+  [AWS Database Migration Service (DMS)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_DMS.html)
  + AWS::DMS::Certificate
  + AWS::DMS::Endpoint
  + AWS::DMS::EventSubscription
  + AWS::DMS::ReplicationInstance
  + AWS::DMS::ReplicationSubnetGroup
  + AWS::DMS::ReplicationTask

  不允許 AWS::DMS::Endpoint 資源中的 MongoDbSettings 屬性。

  下列屬性只有在 AWS Secrets Manager 解析時才允許：AWS::DMS::Certificate 資源中的 CertificatePem 和 CertificateWallet 屬性，以及 AWS::DMS::Endpoint 資源中的 Password 屬性。
+ [AWS Elastic Load Balancing - Application Load Balancer/Network Load Balancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElasticLoadBalancingV2.html)
  + AWS::ElasticLoadBalancingV2::Listener
  + AWS::ElasticLoadBalancingV2::ListenerCertificate
  + AWS::ElasticLoadBalancingV2::ListenerRule
  + AWS::ElasticLoadBalancingV2::LoadBalancer
  + AWS::ElasticLoadBalancingV2::TargetGroup
+ [AWS Elastic Load Balancing - Classic Load Balancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElasticLoadBalancing.html)
  + AWS::ElasticLoadBalancing::LoadBalancer
+  [AWS Elemental MediaConvert](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_MediaConvert.html)
  + AWS::MediaConvert::JobTemplate
  + AWS::MediaConvert::Preset
  + AWS::MediaConvert::Queue
+  [AWS Elemental MediaStore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_MediaStore.html)
  + AWS::MediaStore::Container
+  [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
  + AWS::IAM::Role
+  [AWS Managed Streaming for Apache Kafka (MSK)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_MSK.html)
  + AWS::MSK::Cluster
+  [AWS Glue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Glue.html)
  + AWS::Glue::Classifier
  + AWS::Glue::Connection
  + AWS::Glue::Crawler
  + AWS::Glue::Database
  + AWS::Glue::DataCatalogEncryptionSettings
  + AWS::Glue::DevEndpoint
  + AWS::Glue::Job
  + AWS::Glue::MLTransform
  + AWS::Glue::Partition
  + AWS::Glue::SecurityConfiguration
  + AWS::Glue::Table
  + AWS::Glue::Trigger
  + AWS::Glue::Workflow
+ [AWS Key Management Service (KMS)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_KMS.html)
  + AWS::KMS::Key
  + AWS::KMS::Alias
+  [AWS Lake Formation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_LakeFormation.html)
  + AWS::LakeFormation::DataLakeSettings
  + AWS::LakeFormation::Permissions
  + AWS::LakeFormation::Resource
+  [AWS Lambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Lambda.html)
  + AWS::Lambda::Alias
  + AWS::Lambda::EventInvokeConfig
  + AWS::Lambda::EventSourceMapping
  + AWS::Lambda::Function
  + AWS::Lambda::LayerVersion
  + AWS::Lambda::LayerVersionPermission
  + AWS::Lambda::Permission
  + AWS::Lambda::Version
+  [Amazon Redshift](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Redshift.html)
  + AWS::Redshift::Cluster
  + AWS::Redshift::ClusterParameterGroup
  + AWS::Redshift::ClusterSubnetGroup
+  [AWS Secrets Manager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SecretsManager.html)
  + AWS::SecretsManager::ResourcePolicy
  + AWS::SecretsManager::RotationSchedule
  + AWS::SecretsManager::Secret
  + AWS::SecretsManager::SecretTargetAttachment
+  [AWS 安全中樞](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SecurityHub.html)
  + AWS::SecurityHub::Hub
+  [AWS Step Functions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_StepFunctions.html)
  + AWS::StepFunctions::Activity
  + AWS::StepFunctions::StateMachine
+  [AWS Systems Manager (SSM)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SSM.html)
  + AWS::SSM::Parameter
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Synthetics.html)
  + AWS::Synthetics::Canary
+  [AWS Transfer 系列](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Transfer.html)
  + AWS::Transfer::Server
  + AWS::Transfer::User
+ [AWS WAF](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_WAF.html)
  + AWS::WAF::ByteMatchSet
  + AWS::WAF::IPSet
  + AWS::WAF::Rule
  + AWS::WAF::SizeConstraintSet
  + AWS::WAF::SqlInjectionMatchSet
  + AWS::WAF::WebACL
  + AWS::WAF::XssMatchSet
+ [AWS WAF Regional](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_WAFRegional.html)
  + AWS::WAFRegional::ByteMatchSet
  + AWS::WAFRegional::GeoMatchSet
  + AWS::WAFRegional::IPSet
  + AWS::WAFRegional::RateBasedRule
  + AWS::WAFRegional::RegexPatternSet
  + AWS::WAFRegional::Rule
  + AWS::WAFRegional::SizeConstraintSet
  + AWS::WAFRegional::SqlInjectionMatchSet
  + AWS::WAFRegional::WebACL
  + AWS::WAFRegional::WebACLAssociation
  + AWS::WAFRegional::XssMatchSet
+ [AWS WAFv2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_WAFv2.html)
  + AWS::WAFv2::IPSet
  + AWS::WAFv2::RegexPatternSet
  + AWS::WAFv2::RuleGroup
  + AWS::WAFv2::WebACL
  + AWS::WAFv2::WebACLAssociation

# CloudFormation 擷取：範例
<a name="cfn-ingest-examples"></a>

在此處尋找一些詳細範例，說明如何**搭配 CloudFormation 範本變更類型使用建立堆疊**。

若要下載一組範例 CloudFormation 範本 AWS 區域，請參閱[範例範本](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-sample-templates.html)。

如需 CloudFormation 資源的參考資訊，請參閱 [AWS 資源和屬性類型參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)。不過，AMS 支援一組較小的資源，如中所述[AMS CloudFormation 擷取](ams-cfn-ingest.md)。

**注意**  
AMS 建議您收集所有 IAM 或其他政策相關資源，並將其提交至單一管理 \$1 其他 \$1 其他 \$1 建立變更類型 (ct-1e1xtak34nx76)。例如，合併所有必要的 IAM 角色、IAM 執行個體描述檔、現有 IAM 角色的 IAM 政策更新、S3 儲存貯體政策、SNS/SQS 政策等，然後提交 ct-1e1xtak34nx76 RFC，以便在未來的 CFN 擷取範本中參考這些預先存在的資源。

**Topics**
+ [CloudFormation 擷取範例：定義資源](cfn-ingest-ex-define-resource.md)
+ [CloudFormation 擷取範例：3 層 Web 應用程式](cfn-ingest-ex-3-tier.md)

# CloudFormation 擷取範例：定義資源
<a name="cfn-ingest-ex-define-resource"></a>

使用 AMS CloudFormation 擷取時，您可以自訂 CloudFormation 範本，並使用 CloudFormation 擷取變更類型 (ct-36cn2avfrrj9v) 將其提交至 RFC 中的 AMS。若要建立可多次重複使用的 CloudFormation 範本，請將堆疊組態參數新增至 CloudFormation 擷取變更類型執行輸入，而不是在 CloudFormation 範本中硬式編碼。最大的好處是您可以重複使用範本。

AMS CloudFormation 擷取變更類型輸入結構描述可讓您在 CloudFormation 範本中選擇最多 60 個參數，並提供自訂值。

此範例說明如何定義資源屬性，可用於各種 CloudFormation 範本，做為 AMS CloudFormation 擷取 CT 中的參數。本節中的範例特別顯示 SNS 主題用量。

**Topics**
+ [範例 1：硬式程式碼 the CloudFormation SNSTopic 資源`TopicName`屬性](#cfn-ingest-example-1)
+ [範例 2：使用 SNSTopic 資源參考 AMS 變更類型中的參數](#cfn-ingest-example-2)
+ [範例 3：使用 AMS 擷取變更類型提交 JSON 執行參數檔案來建立 SNS 主題](#cfn-ingest-example-3)
+ [範例 4：提交參考相同 CloudFormation 範本的新變更類型](#cfn-ingest-example-4)
+ [範例 5：使用 CloudFormation 範本中的預設參數值](#cfn-ingest-example-5)

## 範例 1：硬式程式碼 the CloudFormation SNSTopic 資源`TopicName`屬性
<a name="cfn-ingest-example-1"></a>

在此範例中，您會硬式編碼 CloudFormation 範本中的 CloudFormation SNSTopic 資源`TopicName`屬性。請注意， `Parameters`區段為空白。

若要讓 CloudFormation 範本允許您變更新堆疊的 SNSTopic 名稱值，而不必建立新的 CloudFormation 範本，您可以使用 CloudFormation 擷取變更類型的 AMS `Parameters`區段來建立該組態。透過這樣做，您稍後會使用相同的 CloudFormation 範本來建立具有不同`SNSTopic`名稱的新堆疊。

```
{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Description" : "My SNS Topic",
  "Parameters" : {
  },
  "Resources" : {
    "SNSTopic" : {
      "Type" : "AWS::SNS::Topic",
      "Properties" : {
        "TopicName" : "MyTopicName"
      }
    }
  }
}
```



## 範例 2：使用 SNSTopic 資源參考 AMS 變更類型中的參數
<a name="cfn-ingest-example-2"></a>

在此範例中，您可以使用 CloudFormation 範本中定義的`SNSTopic`資源`TopicName`屬性來參考 AMS 變更類型`Parameter`中的 。

```
{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Description" : "My SNS Topic",
  "Parameters" : {
    "TopicName" : {
      "Type" : "String",
      "Description" : "Topic ID",
      "Default" : "MyTopicName"
    }
  },
  "Resources" : {
    "SNSTopic" : {
      "Type" : "AWS::SNS::Topic",
      "Properties" : {
        "TopicName" : { "Ref" : "TopicName"}
      }
    }
  }
}
```

## 範例 3：使用 AMS 擷取變更類型提交 JSON 執行參數檔案來建立 SNS 主題
<a name="cfn-ingest-example-3"></a>

在此範例中，您會使用建立 SNS 主題 的 AMS 擷取 CT 來提交 JSON 執行參數檔案`TopicName`。SNS 主題必須以此範例中所示的可修改方式在 CloudFormation 範本中定義。

```
{
  "Name": "cfn-ingest",
  "Description": "CFNIngest Web Application Stack",
  "CloudFormationTemplateS3Endpoint": "$S3_PRESIGNED_URL",
  "VpcId": "VPC_ID",
  "Tags": [
    {"Key": "Enviroment Type", "Value": "Dev"}
  ],
  "Parameters": [
    {"Name": "TopicName", "Value": "MyTopic1"}
  ],
  "TimeoutInMinutes": 60
}
```

## 範例 4：提交參考相同 CloudFormation 範本的新變更類型
<a name="cfn-ingest-example-4"></a>

此 JSON 範例會變更 SNS `TopicName`值，而不變更 CloudFormation 範本。反之，您會提交新的部署 \$1 擷取 \$1 CloudFormation 範本的堆疊 \$1 建立參考相同 CFN 範本的變更類型。

```
{
  "Name": "cfn-ingest",
  "Description": "CFNIngest Web Application Stack",
  "CloudFormationTemplateS3Endpoint": "$S3_PRESIGNED_URL",
  "VpcId": "VPC_ID",
  "Tags": [
    {"Key": "Enviroment Type", "Value": "Dev"}
  ],
  "Parameters": [
    {"Name": "TopicName", "Value": "MyTopic2"}
  ],
  "TimeoutInMinutes": 60
}
```

## 範例 5：使用 CloudFormation 範本中的預設參數值
<a name="cfn-ingest-example-5"></a>

在此範例中，建立 SNS `TopicName` = 'MyTopicName'，因為`Parameters`執行參數中未提供任何`TopicName`值。如果您不提供`Parameters`定義，則會使用 CloudFormation 範本中的預設參數值。

```
{
  "Name": "cfn-ingest",
  "Description": "CFNIngest Web Application Stack",
  "CloudFormationTemplateS3Endpoint": "$S3_PRESIGNED_URL",
  "VpcId": "VPC_ID",
  "Tags": [
    {"Key": "Enviroment Type", "Value": "Dev"}
  ],
  "TimeoutInMinutes": 60
}
```

# CloudFormation 擷取範例：3 層 Web 應用程式
<a name="cfn-ingest-ex-3-tier"></a>

擷取標準 3-Tier Web 應用程式的 CloudFormation 範本。

![\[AWS 雲端 architecture diagram showing VPC with two availability zones, load balancer, and multi-AZ RDS setup.\]](http://docs.aws.amazon.com/zh_tw/managedservices/latest/appguide/images/cfn-ingest-ex-3-tier.png)


這包括 Application Load Balancer、Application Load Balancer 目標群組、Auto Scaling 群組、Auto Scaling 群組啟動範本、具有 MySQL 資料庫的 Amazon Relational Database Service (RDS for SQL Server)、 AWS SSM 參數存放區和 AWS Secrets Manager。請預留 30-60 分鐘的時間來演練此範例。

## 先決條件
<a name="cfn-ingest-ex-3-tier-prerequisites"></a>
+ 使用 Secrets Manager 建立包含使用者名稱和密碼與對應值的 AWS 秘密。您可以參考此包含秘密名稱 [的範例 JSON 範本 (zip 檔案）](samples/3-tier-cfn-ingest-2025.zip)`ams-shared/myapp/dev/dbsecrets`，並將其取代為您的秘密名稱。如需搭配 AMS 使用 AWS Secrets Manager 的詳細資訊，請參閱 [搭配 AMS 資源使用 AWS Secrets Manager](secrets-manager.md)。
+ 在 AWS SSM 參數存放區 (PS) 中設定必要的參數。在此範例中，私有和公有子網路`Subnet-Id`的 `VPCId`和 會存放在 SSM PS 中的路徑，例如 `/app/DemoApp/PublicSubnet1a`、`PrivateSubnet1a`、 `PublicSubnet1c``PrivateSubnet1c`和 `VPCCidr`。根據您的需求更新路徑、參數名稱和值。
+ 建立具有 AWS Secrets Manager 和 SSM 參數存放區路徑讀取許可的 IAM Amazon EC2 執行個體角色 （這些範例中建立和使用的 IAM 角色為 `customer-ec2_secrets_manager_instance_profile`)。如果您建立執行個體描述檔角色等 IAM 標準政策，角色名稱必須以 開頭`customer-`。若要建立新的 IAM 角色， （您可以將其命名為 或其他`customer-ec2_secrets_manager_instance_profile`項目） 會使用 AMS 變更類型管理 \$1 應用程式 \$1 IAM 執行個體描述檔 \$1 建立 (ct-0ixp4ch2tiu04) CT，並連接所需的政策。您可以在 IAM 主控台中檢閱 AMS IAM 標準政策 `customer_secrets_manager_policy`和 AWS `customer_systemsmanager_parameterstore_policy`，以正常使用或做為參考。

## 擷取標準 3-Tier Web 應用程式的 CloudFormation 範本
<a name="cfn-ingest-ex-3-tier-procedure"></a>

1. 將連接的範例 CloudFormation JSON 範本以 zip 檔案 [3-tier-cfn-ingest.zip](samples/3-tier-cfn-ingest-2025.zip) 形式上傳至 S3 儲存貯體，並產生簽署的 S3 URL 以在 CFN 擷取 RFC 中使用。如需詳細資訊，請參閱[預先簽章](https://docs.aws.amazon.com/cli/latest/reference/s3/presign.html)。當您透過 AMS 主控台提交 RFC 時，CFN 範本也可以複製/貼上至 CFN 擷取 RFC。

1. 透過 AMS 主控台或 AMS CLI 建立 CloudFormation 擷取 RFC （部署 \$1 擷取 \$1 從 CloudFormation 範本堆疊 \$1 建立 (ct-36cn2avfrrj9v))。CloudFormation 擷取自動化程序會驗證 CloudFormation 範本，以確保範本具有有效的 AMS 支援資源，並遵守安全標準。
   + 使用主控台 - 針對變更類型，選取**部署** -> **擷取** -> **從 CloudFormation 範本堆疊** -> **建立**，然後新增下列參數做為範例 （請注意，**MultiAZDatabase** 的預設值為 false)：

     ```
     CloudFormationTemplateS3Endpoint: "https://s3-ap-southeast-2.amazonaws.com/amzn-s3-demo-bucket/3-tier-cfn-ingest.json?AWSAccessKeyId=#{S3_ACCESS_KEY_ID}&Expires=#{EXPIRE_DATE}&Signature=#{SIGNATURE}"
     VpcId: "VPC_ID"
     TimeoutInMinutes: 120
     IAMEC2InstanceProfile: "customer_ec2_secrets_manager_instance_profile"
     MultiAZDatabase: "true"
     WebServerCapacity: "2"
     ```
   + 使用 AWS CLI - 如需使用 RFCs 的詳細資訊 AWS CLI，請參閱[建立 RFCs](https://docs.aws.amazon.com/managedservices/latest/userguide/create-rfcs.html)。例如，執行下列命令：

     ```
     aws --profile=saml amscm create-rfc  --change-type-id ct-36cn2avfrrj9v --change-type-version "2.0" --title "TEST_CFN_INGEST" --execution-parameters "{\"CloudFormationTemplateS3Endpoint\":\"https://s3-ap-southeast-2.amazonaws.com/my-bucket/3-tier-cfn-ingest.json?AWSAccessKeyId=#{S3_ACCESS_KEY_ID}&Expires=#{EXPIRE_DATE}&Signature=#{SIGNATURE}\",\"TimeoutInMinutes\":120,\"Description\":\"TEST\",\”VpcId”\”:\”VPC_ID\”,\"Name\":\"MY_TEST\",\"Tags\":[{\"Key\":\"env\",\"Value\":\"test\"}],\"Parameters\":[{\"Name\":\"IAMEC2InstanceProfile\",\"Value\":\"customer_ec2_secrets_manager_instance_profile\"},{\"Name\":\"MultiAZDatabase\",\"Value\":\"true\"},{\"Name\":\"VpcId\",\"Value\":\"VPC_ID\"},{\"Name\":\"WebServerCapacity\",\"Value\":\"2\"}]}" --endpoint-url https://amscm.us-east-1.amazonaws.com/operational/ --no-verify-ssl
     ```

   在 CloudFormation RFC 執行輸出中尋找 Application Load Balancer URL 以存取網站。如需存取 資源的資訊，請參閱[存取執行個體](https://docs.aws.amazon.com/managedservices/latest/userguide/access-instance.html)。

## 建立 CloudFormation 擷取堆疊
<a name="ex-cfn-ingest-create-col"></a>

### 使用主控台建立 CloudFormation 擷取堆疊
<a name="cfn-ingest-create-con"></a>

![\[Create Stack From CloudFormation Template interface showing description, ID, and version.\]](http://docs.aws.amazon.com/zh_tw/managedservices/latest/appguide/images/guiCfnIngestCT.png)


**使用主控台建立 CloudFormation 擷取堆疊**

1. 導覽至**建立 RFC** 頁面：在 AMS 主控台的左側導覽窗格中，按一下 **RFCs**以開啟 RFCs清單頁面，然後按一下**建立 RFC**。

1. 在預設**瀏覽變更類型檢視中選擇熱門的變更類型** (CT)，或在**依類別選擇**檢視中選擇 CT。
   + **依變更類型瀏覽**：您可以在**快速建立**區域中按一下熱門的 CT，以立即開啟**執行 RFC** 頁面。請注意，您無法透過快速建立選擇較舊的 CT 版本。

     若要排序 CTs，請使用**卡片**或**資料表**檢視中的所有**變更類型**區域。在任一檢視中，選取 CT，然後按一下**建立 RFC** 以開啟**執行 RFC** 頁面。如果適用，**建立較舊版本**選項會顯示在**建立 RFC** 按鈕旁。
   + **依類別選擇**：選取類別、子類別、項目和操作，如果適用，CT 詳細資訊方塊會開啟，並顯示**使用較舊版本建立**的選項。按一下**建立 RFC** 以開啟**執行 RFC** 頁面。

1. 在**執行 RFC** 頁面上，開啟 CT 名稱區域以查看 CT 詳細資訊方塊。需要**主旨** （如果您在**瀏覽變更類型**檢視中選擇 CT，則會為您填入）。開啟**其他組態**區域以新增 RFC 的相關資訊。

   在**執行組態**區域中，使用可用的下拉式清單或輸入必要參數的值。若要設定選用的執行參數，請開啟**其他組態**區域。

1. 完成後，請按一下**執行**。如果沒有錯誤，**RFC 成功建立**的頁面會顯示已提交的 RFC 詳細資訊，以及初始的**執行輸出**。

1. 開啟**執行參數**區域以查看您提交的組態。重新整理頁面以更新 RFC 執行狀態。或者，取消 RFC 或使用頁面頂端的選項建立 RFC 的副本。

### 使用 CLI 建立 CloudFormation 擷取堆疊
<a name="cfn-ingest-create-cli"></a>

**使用 CLI 建立 CloudFormation 擷取堆疊**

1. 使用內嵌建立 （您發出包含所有 RFC 和執行參數的`create-rfc`命令） 或範本建立 （您建立兩個 JSON 檔案，一個用於 RFC 參數，另一個用於執行參數），並使用兩個檔案作為輸入發出`create-rfc`命令。此處說明這兩種方法。

1. 使用傳回的 RFC ID 提交 RFC： `aws amscm submit-rfc --rfc-id ID`命令。

   監控 RFC： `aws amscm get-rfc --rfc-id ID`命令。

若要檢查變更類型版本，請使用下列命令：

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
```
**注意**  
您可以將任何`CreateRfc`參數與任何 RFC 搭配使用，無論它們是否為變更類型結構描述的一部分。例如，若要在 RFC 狀態變更時取得通知，請將此行新增至請求的 `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` RFC 參數部分 （而非執行參數）。如需所有 CreateRfc 參數的清單，請參閱 [AMS 變更管理 API 參考](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html)。

1. 準備用於建立堆疊的 CloudFormation 範本，並將其上傳至 S3 儲存貯體。如需重要詳細資訊，請參閱 [AWS CloudFormation 擷取準則、最佳實務和限制](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html)。

1. 建立 RFC 並將其提交至 AMS：

   1. 建立並儲存執行參數 JSON 檔案，包括您想要的 CloudFormation 範本參數。下列範例將其命名為 CreateCfnParams.json.

     範例 Web 應用程式堆疊 CreateCfnParams.json 檔案：

     ```
     {
       "Name": "cfn-ingest",
       "Description": "CFNIngest Web Application Stack",
       "VpcId": "VPC_ID",
       "CloudFormationTemplateS3Endpoint": "$S3_URL",
       "TimeoutInMinutes": 120,
       "Tags": [
        {
         "Key":   "Enviroment Type"
         "Value": "Dev",
        },
        {
         "Key":   "Application"
         "Value": "PCS",
        }
       ],
       "Parameters": [
        {
         "Name": "Parameter-for-S3Bucket-Name",
         "Value":  "BUCKET-NAME"
        },
        {
         "Name": "Parameter-for-Image-Id",
         "Value":  "AMI-ID"
        }
       ],
     }
     ```

     範例 SNS 主題 CreateCfnParams.json 檔案：

     ```
     {
       "Name": "cfn-ingest",
       "Description": "CFNIngest Web Application Stack",
       "CloudFormationTemplateS3Endpoint": "$S3_URL",
       "Tags": [
         {"Key": "Enviroment Type", "Value": "Dev"}
       ],
       "Parameters": [
         {"Name": "TopicName", "Value": "MyTopic1"}
       ]
     }
     ```

1. 使用下列內容建立並儲存 RFC 參數 JSON 檔案。下列範例會將其命名為 CreateCfnRfc.json 檔案：

   ```
   {
      "ChangeTypeId": "ct-36cn2avfrrj9v",
      "ChangeTypeVersion": "2.0",
      "Title": "cfn-ingest"
   }
   ```

1. 建立 RFC，指定 CreateCfnRfc 檔案和 CreateCfnParams 檔案：

   ```
   aws amscm create-rfc --cli-input-json file://CreateCfnRfc.json  --execution-parameters file://CreateCfnParams.json
   ```

   您會在回應中收到新 RFC 的 ID，並且可以使用它來提交和監控 RFC。在您提交之前，RFC 會保持在編輯狀態，不會啟動。

### 提示
<a name="ex-cfn-ingest-create-tip"></a>

**注意**  
此變更類型位於 2.0 版，且為自動化 （非手動執行）。這可讓 CT 執行更快進行，而新的參數 **CloudFormationTemplate** 可讓您將自訂 CloudFormation 範本貼入 RFC。此外，在此版本中，如果您指定自己的安全群組，我們不會連接預設 AMS 安全群組。如果您未在請求中指定自己的安全群組，AMS 會連接 AMS 預設安全群組。在 CFN Ingest v1.0 中，無論您是否提供自己的安全群組，我們一律會附加 AMS 預設安全群組。  
AMS 已啟用 17 個 AMS 自我佈建服務，可用於此變更類型。如需支援資源的資訊，請參閱 [ CloudFormation 擷取堆疊：支援的資源](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-ingest-supp-services.html)。

**注意**  
2.0 版接受不是預先簽章 URL 的 S3 端點。  
如果您使用此舊版 CT，**CloudFormationTemplateS3Endpoint** 參數值必須是預先簽章的 URL。  
產生預先簽章 S3 儲存貯體 URL (Mac/Linux) 的範例命令：  

```
export S3_PRESIGNED_URL=$(aws s3 presign DASHDASHexpires-in 86400 s3://BUCKET_NAME/CFN_TEMPLATE.json)
```
產生預先簽章 S3 儲存貯體 URL (Windows) 的範例命令：  

```
for /f %i in ('aws s3 presign DASHDASHexpires-in 86400 s3://BUCKET_NAME/CFN_TEMPLATE.json') do set S3_PRESIGNED_URL=%i
```
另請參閱[為 Amazon S3 儲存貯體建立預先簽章的 URLs](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-presigned-urls.html)。

**注意**  
如果 S3 儲存貯體存在於 AMS 帳戶中，您必須使用此命令的 AMS 登入資料。例如，您可能需要在取得 AMS AWS Security Token Service (AWS STS) 登入資料`--profile saml`後附加 。

相關變更類型：[核准 CloudFormation 擷取堆疊變更集](#ex-cfn-ingest-approve-and-update-col)、 [更新 CloudFormation 擷取堆疊](#ex-cfn-ingest-update-col)

若要進一步了解 AWS CloudFormation，請參閱 [AWS Cloud Formation](https://aws.amazon.com/cloudformation/)。若要查看 CloudFormation 範本，請開啟 AWS CloudFormation [範本參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html)。

### 驗證 CloudFormation 擷取
<a name="cfn-ingest-validation"></a>

範本經過驗證，以確保可以在 AMS 帳戶中建立。如果通過驗證，則會更新為包含符合 AMS 所需的任何資源或組態。這包括新增 資源，例如 Amazon CloudWatch 警示，以允許 AMS Operations 監控堆疊。

如果以下任何一項成立，RFC 會遭到拒絕：
+ RFC JSON 語法不正確或不遵循指定的格式。
+ 提供的 S3 儲存貯體預先簽章 URL 無效。
+ 範本不是有效的 CloudFormation 語法。
+ 範本未針對所有參數值設定預設值。
+ 範本未通過 AMS 驗證。如需 AMS 驗證步驟，請參閱本主題稍後的資訊。

如果 CloudFormation 堆疊因為資源建立問題而無法建立，RFC 會失敗。

若要進一步了解 CFN 驗證和驗證程式，請參閱[範本驗證](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html)和 [CloudFormation 擷取堆疊：CFN 驗證程式範例](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-validator.html)。

## 更新 CloudFormation 擷取堆疊
<a name="ex-cfn-ingest-update-col"></a>

### 使用主控台更新 CloudFormation 擷取堆疊
<a name="cfn-ingest-update-con"></a>

![\[CloudFormation stack update interface showing description, ID, and version details.\]](http://docs.aws.amazon.com/zh_tw/managedservices/latest/appguide/images/guiCfnStackUpdateCT-v2.png)


**使用主控台更新 CloudFormation 擷取堆疊**

1. 導覽至**建立 RFC** 頁面：在 AMS 主控台的左側導覽窗格中，按一下 **RFCs**以開啟 RFCs清單頁面，然後按一下**建立 RFC**。

1. 在預設**瀏覽變更類型檢視中選擇熱門的變更類型** (CT)，或在**依類別選擇**檢視中選擇 CT。
   + **依變更類型瀏覽**：您可以在**快速建立**區域中按一下熱門的 CT，以立即開啟**執行 RFC** 頁面。請注意，您無法透過快速建立選擇較舊的 CT 版本。

     若要排序 CTs，請使用**卡片**或**資料表**檢視中的所有**變更類型**區域。在任一檢視中，選取 CT，然後按一下**建立 RFC** 以開啟**執行 RFC** 頁面。如果適用，**建立較舊版本**選項會顯示在**建立 RFC** 按鈕旁。
   + **依類別選擇**：選取類別、子類別、項目和操作，如果適用，CT 詳細資訊方塊會開啟，其中包含**使用較舊版本建立**的選項。按一下**建立 RFC** 以開啟**執行 RFC** 頁面。

1. 在**執行 RFC** 頁面上，開啟 CT 名稱區域以查看 CT 詳細資訊方塊。需要**主旨** （如果您在**瀏覽變更類型**檢視中選擇 CT，則會為您填入）。開啟**其他組態**區域以新增 RFC 的相關資訊。

   在**執行組態**區域中，使用可用的下拉式清單或輸入必要參數的值。若要設定選用的執行參數，請開啟**其他組態**區域。

1. 完成後，請按一下**執行**。如果沒有錯誤，**RFC 成功建立**的頁面會顯示已提交的 RFC 詳細資訊，以及初始的**執行輸出**。

1. 開啟**執行參數**區域以查看您提交的組態。重新整理頁面以更新 RFC 執行狀態。或者，取消 RFC 或使用頁面頂端的選項建立 RFC 的副本。

### 使用 CLI 更新 CloudFormation 擷取堆疊
<a name="cfn-ingest-update-cli"></a>

**使用 CLI 更新 CloudFormation 擷取堆疊**

1. 使用內嵌建立 （您發出包含所有 RFC 和執行參數的`create-rfc`命令） 或範本建立 （您建立兩個 JSON 檔案，一個用於 RFC 參數，另一個用於執行參數），並使用兩個檔案作為輸入發出`create-rfc`命令。此處說明這兩種方法。

1. 使用傳回的 RFC ID 提交 RFC： `aws amscm submit-rfc --rfc-id ID`命令。

   監控 RFC： `aws amscm get-rfc --rfc-id ID`命令。

若要檢查變更類型版本，請使用下列命令：

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
```
**注意**  
您可以將任何`CreateRfc`參數與任何 RFC 搭配使用，無論它們是否為變更類型結構描述的一部分。例如，若要在 RFC 狀態變更時取得通知，請將此行新增至請求的 `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` RFC 參數部分 （而非執行參數）。如需所有 CreateRfc 參數的清單，請參閱 [AMS 變更管理 API 參考](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html)。

1. 準備您要用來更新堆疊的 CloudFormation 範本，並將其上傳至 S3 儲存貯體。如需重要詳細資訊，請參閱 [AWS CloudFormation 擷取準則、最佳實務和限制](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html)。

1. 建立 RFC 並將其提交至 AMS：

   1. 建立並儲存執行參數 JSON 檔案，包括您想要的 CloudFormation 範本參數。此範例會將其命名為 UpdateCfnParams.json.

     具有內嵌參數更新的範例 UpdateCfnParams.json 檔案：

     ```
     {
       "StackId": "stack-yjjoo9aicjyqw4ro2",
       "VpcId": "VPC_ID",
       "CloudFormationTemplate": "{\"AWSTemplateFormatVersion\":\"2010-09-09\",\"Description\":\"Create a SNS topic\",\"Parameters\":{\"TopicName\":{\"Type\":\"String\"},\"DisplayName\":{\"Type\":\"String\"}},\"Resources\":{\"SnsTopic\":{\"Type\":\"AWS::SNS::Topic\",\"Properties\":{\"TopicName\":{\"Ref\":\"TopicName\"},\"DisplayName\":{\"Ref\":\"DisplayName\"}}}}}",
       "TemplateParameters": [
         {
           "Key": "TopicName",
           "Value": "TopicNameCLI"
         },
         {
           "Key": "DisplayName",
           "Value": "DisplayNameCLI"
         }
       ],
       "TimeoutInMinutes": 1440
     }
     ```

     包含更新 CloudFormation 範本之 S3 儲存貯體端點的 UpdateCfnParams.json 檔案範例：

     ```
     {
       "StackId": "stack-yjjoo9aicjyqw4ro2",
       "VpcId": "VPC_ID",
       "CloudFormationTemplateS3Endpoint": "s3_url",
       "TemplateParameters": [
         {
           "Key": "TopicName",
           "Value": "TopicNameCLI"
         },
         {
           "Key": "DisplayName",
           "Value": "DisplayNameCLI"
         }
       ],
       "TimeoutInMinutes": 1080
     }
     ```

1. 使用下列內容建立並儲存 RFC 參數 JSON 檔案。此範例會將其命名為 UpdateCfnRfc.json 檔案。

   ```
   {
      "ChangeTypeId": "ct-361tlo1k7339x",
      "ChangeTypeVersion": "1.0",
      "Title": "cfn-ingest-template-update"
   }
   ```

1. 建立 RFC，指定 UpdateCfnRfc 檔案和 UpdateCfnParams 檔案：

   ```
   aws amscm create-rfc --cli-input-json file://UpdateCfnRfc.json  --execution-parameters file://UpdateCfnParams.json
   ```

   您會在回應中收到新 RFC 的 ID，並且可以使用它來提交和監控 RFC。在您提交之前，RFC 會保持在編輯狀態，不會啟動。

### 提示
<a name="ex-cfn-ingest-update-tip"></a>
+ 此變更類型現在位於 2.0 版。變更包括移除此 CT 版本 1.0 中使用的 **AutoApproveUpdateForResources** 參數，以及新增兩個新參數：**AutoApproveRiskyUpdates** 和 **BypassDriftCheck**。
+ 如果 S3 儲存貯體存在於 AMS 帳戶中，您必須使用此命令的 AMS 登入資料。例如，您可能需要在取得 AMS AWS Security Token Service (AWS STS) 登入資料`--profile saml`後附加 。
+ CloudFormation 範本中資源的所有`Parameter`值都必須具有一個值，可透過預設值或透過 CT 的參數區段自訂值。您可以透過建構 CloudFormation 範本資源來參考參數金鑰來覆寫參數值。如需示範執行方式的範例，請參閱 [CloudFormation 擷取堆疊：CFN 驗證器範例](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-validator.html)。

  重要：缺少格式中未明確提供的參數，預設為現有堆疊或範本上目前設定的值。
+ 如需您可以使用 CloudFormation Ingest 新增哪些自行佈建服務的清單，請參閱 [CloudFormation Ingest Stack：支援的資源](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-ingest-supp-services.html)。

  若要進一步了解 CloudFormation，請參閱 [AWS Cloud Formation](https://aws.amazon.com/cloudformation/)。

### 驗證 CloudFormation 擷取
<a name="cfn-ingest-validation"></a>

範本經過驗證，以確保可以在 AMS 帳戶中建立。如果通過驗證，則會更新為包含符合 AMS 所需的任何資源或組態。這包括新增 資源，例如 Amazon CloudWatch 警示，以允許 AMS Operations 監控堆疊。

如果以下任何一項成立，RFC 會遭到拒絕：
+ RFC JSON 語法不正確或不遵循指定的格式。
+ 提供的 S3 儲存貯體預先簽章 URL 無效。
+ 範本不是有效的 CloudFormation 語法。
+ 範本未針對所有參數值設定預設值。
+ 範本未通過 AMS 驗證。如需 AMS 驗證步驟，請參閱本主題稍後的資訊。

如果 CloudFormation 堆疊因為資源建立問題而無法建立，RFC 會失敗。

若要進一步了解 CFN 驗證和驗證程式，請參閱[範本驗證](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html)和 [CloudFormation 擷取堆疊：CFN 驗證程式範例](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-validator.html)。

## 核准 CloudFormation 擷取堆疊變更集
<a name="ex-cfn-ingest-approve-and-update-col"></a>

### 使用主控台核准和更新 CloudFormation 擷取堆疊
<a name="cfn-ingest-approve-update-con"></a>

![\[Details of a CloudFormation ChangeSet for approving and updating a stack, including ID and execution mode.\]](http://docs.aws.amazon.com/zh_tw/managedservices/latest/appguide/images/guiCfnStackApproveAndUpdateCT.png)


**使用主控台核准和更新 CloudFormation 擷取堆疊**

1. 導覽至**建立 RFC** 頁面：在 AMS 主控台的左側導覽窗格中，按一下 **RFCs**以開啟 RFCs清單頁面，然後按一下**建立 RFC**。

1. 在預設**瀏覽變更類型檢視中選擇熱門的變更類型** (CT)，或在**依類別選擇**檢視中選擇 CT。
   + **依變更類型瀏覽**：您可以在**快速建立**區域中按一下熱門的 CT，以立即開啟**執行 RFC** 頁面。請注意，您無法透過快速建立選擇較舊的 CT 版本。

     若要排序 CTs，請使用**卡片**或**資料表**檢視中的所有**變更類型**區域。在任一檢視中，選取 CT，然後按一下**建立 RFC** 以開啟**執行 RFC** 頁面。如果適用，**建立舊版**選項會顯示在**建立 RFC** 按鈕旁。
   + **依類別選擇**：選取類別、子類別、項目和操作，如果適用，CT 詳細資訊方塊會開啟，並顯示**使用較舊版本建立**的選項。按一下**建立 RFC** 以開啟**執行 RFC** 頁面。

1. 在**執行 RFC** 頁面上，開啟 CT 名稱區域以查看 CT 詳細資訊方塊。需要**主旨** （如果您在**瀏覽變更類型**檢視中選擇 CT，則會為您填入）。開啟**其他組態**區域以新增 RFC 的相關資訊。

   在**執行組態**區域中，使用可用的下拉式清單或輸入必要參數的值。若要設定選用的執行參數，請開啟**其他組態**區域。

1. 完成後，請按一下**執行**。如果沒有錯誤，**RFC 成功建立**的頁面會顯示已提交的 RFC 詳細資訊，以及初始的**執行輸出**。

1. 開啟**執行參數**區域以查看您提交的組態。重新整理頁面以更新 RFC 執行狀態。或者，取消 RFC 或使用頁面頂端的選項建立 RFC 的副本。

### 使用 CLI 核准和更新 CloudFormation 擷取堆疊
<a name="cfn-ingest-approve-update-cli"></a>

**使用 CLI 核准和更新 CloudFormation 擷取堆疊**

1. 使用內嵌建立 （您發出包含所有 RFC 和執行參數的`create-rfc`命令） 或範本建立 （您建立兩個 JSON 檔案，一個用於 RFC 參數，另一個用於執行參數），並使用兩個檔案作為輸入發出`create-rfc`命令。此處說明這兩種方法。

1. 使用傳回的 RFC ID 提交 RFC： `aws amscm submit-rfc --rfc-id ID`命令。

   監控 RFC： `aws amscm get-rfc --rfc-id ID`命令。

若要檢查變更類型版本，請使用下列命令：

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
```
**注意**  
您可以將任何`CreateRfc`參數與任何 RFC 搭配使用，無論它們是否為變更類型結構描述的一部分。例如，若要在 RFC 狀態變更時取得通知，請將此行新增至請求的 `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` RFC 參數部分 （而非執行參數）。如需所有 CreateRfc 參數的清單，請參閱 [AMS 變更管理 API 參考](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html)。

1. 將此變更類型的執行參數 JSON 結構描述輸出到目前資料夾中的檔案。此範例會將其命名為 CreateAsgParams.json:

   ```
   aws amscm create-rfc --change-type-id "ct-1404e21baa2ox" --change-type-version "1.0" --title "Approve Update" --execution-parameters file://PATH_TO_EXECUTION_PARAMETERS --profile saml
   ```

1. 修改和儲存結構描述，如下所示：

   ```
   {
     "StackId": "STACK_ID",
     "VpcId": "VPC_ID",
     "ChangeSetName": "UPDATE-ef81e2bc-03f6-4b17-a3c7-feb700e78faa",
     "TimeoutInMinutes": 1080
   }
   ```

### 提示
<a name="ex-cfn-ingest-approve-and-update-tip"></a>

**注意**  
如果堆疊中有多個資源，而且您只想要刪除一部分的堆疊資源，請使用 CloudFormation Update CT；請參閱 [CloudFormation Ingest Stack：Update](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-update-col.html)。您也可以提交服務請求案例，如有需要，AMS 工程師可協助您製作變更集。

若要進一步了解 AWS CloudFormation，請參閱 [AWS CloudFormation](https://aws.amazon.com/cloudformation/)。

## 更新 CloudFormation 堆疊終止保護
<a name="ex-cfn-term-pro-update-col"></a>

### 使用 主控台更新 CloudFormation 終止保護堆疊
<a name="cfn-update-term-pro-con"></a>

以下顯示 AMS 主控台中的此變更類型。

![\[Update Termination Protection interface showing description, ID, and version fields.\]](http://docs.aws.amazon.com/zh_tw/managedservices/latest/appguide/images/guiCfnProTermUpdateCT.png)


運作方式：

1. 導覽至**建立 RFC** 頁面：在 AMS 主控台的左側導覽窗格中，按一下 **RFCs**以開啟 RFCs清單頁面，然後按一下**建立 RFC**。

1. 在預設**瀏覽變更類型檢視中選擇熱門的變更類型** (CT)，或在**依類別選擇**檢視中選擇 CT。
   + **依變更類型瀏覽**：您可以在**快速建立**區域中按一下熱門的 CT，以立即開啟**執行 RFC** 頁面。請注意，您無法透過快速建立選擇較舊的 CT 版本。

     若要排序 CTs，請使用**卡片**或**資料表**檢視中的所有**變更類型**區域。在任一檢視中，選取 CT，然後按一下**建立 RFC** 以開啟**執行 RFC** 頁面。如果適用，**建立舊版**選項會顯示在**建立 RFC** 按鈕旁。
   + **依類別選擇**：選取類別、子類別、項目和操作，如果適用，CT 詳細資訊方塊會開啟，其中包含**使用較舊版本建立**的選項。按一下**建立 RFC** 以開啟**執行 RFC** 頁面。

1. 在**執行 RFC** 頁面上，開啟 CT 名稱區域以查看 CT 詳細資訊方塊。需要**主旨** （如果您在**瀏覽變更類型**檢視中選擇 CT，則會為您填入）。開啟**其他組態**區域以新增 RFC 的相關資訊。

   在**執行組態**區域中，使用可用的下拉式清單或輸入必要參數的值。若要設定選用的執行參數，請開啟**其他組態**區域。

1. 完成後，請按一下**執行**。如果沒有錯誤，**RFC 成功建立**的頁面會顯示已提交的 RFC 詳細資訊，以及初始的**執行輸出**。

1. 開啟**執行參數**區域以查看您提交的組態。重新整理頁面以更新 RFC 執行狀態。或者，取消 RFC 或使用頁面頂端的選項建立 RFC 的副本。

### 使用 CLI 更新 CloudFormation 堆疊終止保護
<a name="cfn-update-term-pro-cli"></a>

運作方式：

1. 使用內嵌建立 （您發出包含所有 RFC 和執行參數的`create-rfc`命令） 或範本建立 （您建立兩個 JSON 檔案，一個用於 RFC 參數，另一個用於執行參數），並使用兩個檔案作為輸入發出`create-rfc`命令。此處說明這兩種方法。

1. 使用傳回的 RFC ID 提交 RFC： `aws amscm submit-rfc --rfc-id ID`命令。

   監控 RFC： `aws amscm get-rfc --rfc-id ID`命令。

若要檢查變更類型版本，請使用下列命令：

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
```
**注意**  
您可以將任何`CreateRfc`參數與任何 RFC 搭配使用，無論它們是否為變更類型結構描述的一部分。例如，若要在 RFC 狀態變更時取得通知，請將此行新增至請求的 `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` RFC 參數部分 （而非執行參數）。如需所有 CreateRfc 參數的清單，請參閱 [AMS 變更管理 API 參考](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html)。

僅指定您要變更的參數。缺少參數會保留現有的值。

*內嵌建立*：

使用內嵌提供的執行參數發出建立 RFC 命令 （在內嵌提供執行參數時逸出引號），然後提交傳回的 RFC ID。例如，您可以將內容取代為如下內容：

```
aws amscm create-rfc \
--change-type-id "ct-2uzbqr7x7mekd" \
--change-type-version "1.0" \
--title "Enable termination protection on CFN stack" \
--execution-parameters "{\"DocumentName\":\"AWSManagedServices-ManageResourceTerminationProtection\",\"Region\":\"us-east-1\",\"Parameters\":{\"ResourceId\":[\"stack-psvnq6cupymio3enl\"],\"TerminationProtectionDesiredState\":[\"enabled\"]}}"
```

*範本建立*：

1. 將此變更類型的執行參數輸出至 JSON 檔案；此範例會將其命名為 EnableTermProCFNParams.json:

   ```
   aws amscm get-change-type-version --change-type-id "ct-2uzbqr7x7mekd" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > EnableTermProCFNParams.json
   ```

1. 修改並儲存 EnableTermProCFNParams 檔案，只保留您要變更的參數。例如，您可以將內容取代為如下內容：

   ```
   {
     "DocumentName": "AWSManagedServices-ManageResourceTerminationProtection",
     "Region": "us-east-1",
     "Parameters": {
       "ResourceId": ["stack-psvnq6cupymio3enl"],
       "TerminationProtectionDesiredState": ["enabled"]
     }
   }
   ```

1. 將 RFC 範本輸出至目前資料夾中的檔案；此範例會將其命名為 EnableTermProCFNRfc.json:

   ```
   aws amscm create-rfc --generate-cli-skeleton > EnableTermProCFNRfc.json
   ```

1. 修改並儲存 EnableTermProCFNRfc.json 檔案。例如，您可以將內容取代為如下內容：

   ```
   {
       "ChangeTypeId": "ct-2uzbqr7x7mekd",
       "ChangeTypeVersion": "1.0",
       "Title": "Enable termination protection on CFN instance"
   }
   ```

1. 建立 RFC，指定 EnableTermProCFNRfc 檔案和 EnableTermProCFNParams 檔案：

   ```
   aws amscm create-rfc --cli-input-json file://EnableTermProCFNRfc.json  --execution-parameters file://EnableTermProCFNParams.json
   ```

   您會在回應中收到新 RFC 的 ID，並且可以使用它來提交和監控 RFC。在您提交之前，RFC 會保持在編輯狀態，不會啟動。

### 提示
<a name="ex-cfn-term-pro-update-tip"></a>

**注意**  
Amazon EC2、[EC2 堆疊有相關的 CT：更新終止保護](https://docs.aws.amazon.com/managedservices/latest/ctref/ex-ec2-term-pro-update-col.html)。

若要進一步了解終止保護，請參閱[防止堆疊遭到刪除](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)。

# 在 AMS 中使用 CFN 擷取或堆疊更新 CTs自動化 IAM 部署
<a name="cfn-ingest-iam-deploy"></a>

您可以使用這些 AMS 變更類型，在多帳戶登陸區域 (MALZ) 和單一帳戶登陸區域 (SALZ) 中部署 IAM 角色 (`AWS::IAM::Role`資源）：
+ 部署 \$1 擷取 \$1 CloudFormation 範本的堆疊 \$1 建立 (ct-36cn2avfrrj9v)
+ 管理 \$1 自訂堆疊 \$1 CloudFormation 範本的堆疊 \$1 更新 (ct-361tlo1k7339x)
+ 管理 \$1 自訂堆疊 \$1 從 CloudFormation 範本堆疊 \$1 核准和更新 (ct-1404e21baa2ox)

**在 CFN 範本中的 IAM 角色上執行的驗證：**
+ **ManagedPolicyArns**： 屬性 **ManagedPolicyArns** 不得存在於 中`AWS::IAM::Role`。驗證不允許將受管政策連接至要佈建的角色。相反地，可以透過 屬性政策使用內嵌政策來管理角色的許可。
+ **PermissionsBoundary**：用於設定角色許可界限的政策只能是 AMS 支援的受管政策：`AWSManagedServices_IAM_PermissionsBoundary`。此政策可做為護欄，保護 AMS 基礎設施資源免於使用佈建的角色進行修改。使用此預設許可界限，可保留 AMS 提供的安全性優勢。

  `AWSManagedServices_IAM_PermissionsBoundary` （預設） 是必要項目，如果沒有，請求會遭到拒絕。
+ **MaxSessionDuration**：IAM 角色可設定的工作階段持續時間上限為 1 到 4 小時。AMS 技術標準要求在超過 4 小時的工作階段期間接受客戶風險。
+ **RoleName**：以下命名空間由 AMS 保留，不能用作 IAM 角色名稱字首：

  ```
  AmazonSSMRole,
  AMS,
  Ams,
  ams,
  AWSManagedServices,
  customer_developer_role,
  customer-mc-,
  Managed_Services,
  MC,
  Mc,
  mc,
  SENTINEL,
  Sentinel,
  sentinel,
  StackSet-AMS,
  StackSet-Ams,
  StackSet-ams,
  StackSet-AWS,
  StackSet-MC,
  StackSet-Mc,
  StackSet-mc
  ```
+ **政策**：內嵌在 IAM 角色中的內嵌政策只能包含一組由 AMS 預先核准的 IAM 動作。這是允許使用 （控制政策） 建立 IAM 角色的所有 IAM 動作的上限。控制政策包含：
  +  AWS 受管政策 ReadOnlyAccess 中的所有動作，提供對所有 AWS 服務 和 資源的唯讀存取權
  + 下列動作具有跨帳戶 S3 動作的限制，亦即，允許的 S3 動作只能對與建立的角色位於相同帳戶中的資源執行：

    ```
    amscm:*,
    amsskms:*,
    lambda:InvokeFunction,
    logs:CreateLogStream,
    logs:PutLogEvents,
    s3:AbortMultipartUpload,
    s3:DeleteObject,
    s3:DeleteObjectVersion,
    s3:ObjectOwnerOverrideToBucketOwner,
    s3:PutObject,
    s3:ReplicateTags,
    secretsmanager:GetRandomPassword,
    sns:Publish
    ```

    透過 CFN 擷取建立或更新的任何 IAM 角色都可以允許此控制政策中列出的動作，或從控制政策中列出的動作範圍縮小 （低於） 的動作。目前，我們允許這些可分類為唯讀動作的安全 IAM 動作，以及上述無法透過 CTs 完成且根據 AMS 技術標準預先核准的非唯讀動作。
+ **AssumeRolePolicyDocument**：下列實體已預先核准，並可包含在信任政策中，以擔任要建立的角色：
  + 相同帳戶中的任何 IAM 實體 （角色、使用者、根使用者、STS 擔任角色工作階段） 都可以擔任該角色。
  + 下列 AWS 服務 可以擔任 角色：

    ```
    apigateway.amazonaws.com,
    autoscaling.amazonaws.com,
    cloudformation.amazonaws.com,
    codebuild.amazonaws.com,
    codedeploy.amazonaws.com,
    codepipeline.amazonaws.com,
    datapipeline.amazonaws.com,
    datasync.amazonaws.com,
    dax.amazonaws.com,
    dms.amazonaws.com,
    ec2.amazonaws.com,
    ecs-tasks.amazonaws.com,
    ecs.application-autoscaling.amazonaws.com,
    elasticmapreduce.amazonaws.com,
    es.amazonaws.com,
    events.amazonaws.com,
    firehose.amazonaws.com,
    glue.amazonaws.com,
    lambda.amazonaws.com,
    monitoring.rds.amazonaws.com,
    pinpoint.amazonaws.com,
    rds.amazonaws.com,
    redshift.amazonaws.com,
    s3.amazonaws.com,
    sagemaker.amazonaws.com,
    servicecatalog.amazonaws.com,
    sns.amazonaws.com,
    ssm.amazonaws.com,
    states.amazonaws.com,
    storagegateway.amazonaws.com,
    transfer.amazonaws.com,
    vmie.amazonaws.com
    ```
  + 相同帳戶中的 SAML 供應商可以擔任該角色。目前，唯一支援的 SAML 供應商名稱為 `customer-saml`。

如果一或多個驗證失敗，RFC 會遭到拒絕。RFC 拒絕原因範例如下所示：

```
{"errorMessage":"[ 'LambdaRole: The maximum session duration (in seconds) should be a numeric value in the range 3600 to 14400 (i.e. 1 to 4 hours).', 'lambda-policy: Policy document is too permissive.']","errorType":"ClientError"}
```

如果您需要有關 RFC 驗證或執行失敗的協助，請使用 RFC 通訊來聯絡 AMS。如需說明，請參閱 [RFC 通訊和連接 （主控台）](https://docs.aws.amazon.com/managedservices/latest/ctref/ex-rfc-correspondence.html)。如有任何其他問題，請提交服務請求。如需操作說明，請參閱[建立服務請求](https://docs.aws.amazon.com/managedservices/latest/userguide/gui-ex-create-service-request.html)。

**注意**  
作為 IAM 驗證的一部分，我們目前不會強制執行任何 IAM 最佳實務。如需 IAM 最佳實務，請參閱 [IAM 中的安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

**建立具有更寬鬆動作或強制執行 IAM 最佳實務的 IAM 角色**

使用下列手動變更類型建立 IAM 實體：
+ 部署 \$1 進階堆疊元件 \$1 Identity and Access Management (IAM) \$1 建立實體或政策 (ct-3dpd8mdd9jn1r)
+ 管理 \$1 進階堆疊元件 \$1 Identity and Access Management (IAM) \$1 更新實體或政策 (ct-27tuth19k52b4)

我們建議您在提交這些手動 RFCs之前，先閱讀並了解我們的技術標準。如需存取，請參閱[如何存取技術標準](https://docs.aws.amazon.com/managedservices/latest/ctref/rfc-security.html#rfc-sec-tech-standards-access)。

**注意**  
直接使用這些手動變更類型建立的每個 IAM 角色都屬於自己的個別堆疊，不會位於透過 CFN Ingest CT 建立其他基礎設施資源的相同堆疊中。

**當無法透過自動變更類型完成更新時，透過手動變更類型更新使用 CFN 擷取建立的 IAM 角色**

使用 管理 \$1 進階堆疊元件 \$1 Identity and Access Management (IAM) \$1 更新實體或政策 (ct-27tuth19k52b4) 變更類型。

**重要**  
透過手動 CT 的 IAM 角色更新不會反映在 CFN 堆疊範本中，並導致堆疊偏離。一旦透過手動請求將角色更新為未通過驗證的狀態，只要該角色持續不符合我們的驗證，就無法使用 Stack Update CT (ct-361tlo1k7339x) 再次更新該角色。只有在 CFN 堆疊範本符合我們的驗證時，才能使用更新 CT。不過，只要未更新不符合我們驗證的 IAM 資源，且 CFN 範本通過我們的驗證，堆疊仍可透過 Stack Update CT (ct-361tlo1k7339x) 進行更新。

**刪除透過擷取建立的 IAM AWS CloudFormation 角色**

如果您想要刪除整個堆疊，請使用下列自動刪除堆疊變更類型。如需說明，請參閱[刪除堆疊](https://docs.aws.amazon.com/managedservices/latest/ctref/ex-stack-delete-col.html)：
+ 變更類型 ID：ct-0q0bic0ywqk6c
+ 分類：管理 \$1 標準堆疊 \$1 堆疊 \$1 刪除和管理 \$1 進階堆疊元件 \$1 堆疊 \$1 刪除

如果您想要刪除 IAM 角色而不刪除整個堆疊，您可以從 CloudFormation 範本中移除 IAM 角色，並使用更新後的範本做為自動堆疊更新變更類型的輸入：
+ 變更類型 ID：ct-361tlo1k7339x
+ 分類：管理 \$1 自訂堆疊 \$1 CloudFormation 範本的堆疊 \$1 更新

如需說明，請參閱[更新 AWS CloudFormation 擷取堆疊](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-update-col.html)。