

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

# AWS Shield
<a name="automation-ref-shd"></a>

 AWS Systems Manager 自動化為 提供預先定義的 Runbook AWS Shield。如需有關執行手冊的詳細資訊，請參閱 [Working with runbooks](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。如需如何檢視 Runbook 內容的詳細資訊，請參閱 [檢視 Runbook 內容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSPremiumSupport-DDoSResiliencyAssessment`](automation-aws-ddosresiliencyassessment.md)

# `AWSPremiumSupport-DDoSResiliencyAssessment`
<a name="automation-aws-ddosresiliencyassessment"></a>

 **Description** 

 `AWSPremiumSupport-DDoSResiliencyAssessment`、 AWS Systems Manager automation Runbook 可協助您根據 的 AWS Shield Advanced 保護，檢查資源的 DDoS 漏洞和組態 AWS 帳戶。它為容易遭受分散式阻斷服務 (DDoS) 攻擊的資源提供組態設定報告。它用於收集、分析和評估下列資源：Amazon Route 53、Amazon Load Balancer、Amazon CloudFront 分佈 AWS Global Accelerator 和 AWS 彈性 IPs以根據建議的 AWS Shield Advanced 保護最佳實務進行組態設定。最終組態報告可在您選擇的 Amazon S3 儲存貯體中作為 HTML 檔案提供。

 **如何運作？** 

此 Runbook 包含一系列針對已啟用公開存取的各種資源類型的檢查，以及它們是否已根據 [AWS DDoS 最佳實務白皮書](https://docs.aws.amazon.com//pdfs/whitepapers/latest/aws-best-practices-ddos-resiliency/aws-best-practices-ddos-resiliency.pdf)中的建議設定保護。Runbook 會執行下列動作：
+ 檢查 AWS Shield Advanced 的訂閱是否已啟用。
+ 如果啟用，它會尋找是否有任何 Shield Advanced 受保護的資源。
+ 它會尋找 中的所有全域和區域資源， AWS 帳戶 並檢查這些資源是否受到 Shield 保護。
+ 它需要評估的資源類型參數、Amazon S3 儲存貯體名稱和 Amazon S3 儲存貯體 AWS 帳戶 ID (S3BucketOwner)。
+ 它會將調查結果傳回為存放在提供的 Amazon S3 儲存貯體中的 HTML 報告。

輸入參數會`AssessmentType`決定是否對所有資源執行檢查。根據預設， Runbook 會檢查所有類型的資源。如果只選取 `GlobalResources`或 `RegionalResources` 參數，則 Runbook 只會對選取的資源類型執行檢查。

**重要**  
存取 `AWSPremiumSupport-*` Runbook 需要 Business \$1 Support、Enterprise Support 或 Unified Operations Subscription。如需詳細資訊，請參閱[比較 AWS 支援 計劃](https://aws.amazon.com/premiumsupport/plans/)。
此 Runbook 需要 `ACTIVE`[AWS Shield Advanced 訂閱。 ](https://docs.aws.amazon.com/waf/latest/developerguide/enable-ddos-prem.html)

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-DDoSResiliencyAssessment) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ AssessmentType

  類型：字串

  描述：（選用） 決定要評估 DDoS 彈性評估的資源類型。根據預設， Runbook 將評估全域和區域資源。對於區域資源， Runbook 會描述所有應用程式 (ALB) 和網路 (NLB) 負載平衡器，以及您 AWS 帳戶/區域中的所有 Auto Scaling 群組。

  有效值：`['Global Resources', 'Regional Resources', 'Global and Regional Resources']`

  預設：全域和區域資源
+ S3BucketName

  類型：`AWS::S3::Bucket::Name`

  描述：（必要） 將上傳報告的 Amazon S3 儲存貯體名稱。

  允許模式： `^[0-9a-z][a-z0-9\-\.]{3,63}$`
+ S3BucketOwnerAccount

  類型：字串

  描述：（選用） AWS 帳戶 擁有 Amazon S3 儲存貯體的 。如果 Amazon S3 儲存貯體屬於不同的 ，請指定此參數 AWS 帳戶，否則您可以將此參數保留空白。

  允許模式： `^$|^[0-9]{12,13}$`
+ S3BucketOwnerRoleArn

  類型：`AWS::IAM::Role::Arn`

  描述：（選用） IAM 角色的 ARN，具有描述 Amazon S3 儲存貯體的許可，並在儲存貯體位於不同的 中時 AWS 帳戶 封鎖公有存取組態 AWS 帳戶。如果未指定此參數，則 Runbook 會使用啟動此 Runbook 的 `AutomationAssumeRole`或 IAM 使用者 （如果`AutomationAssumeRole`未指定）。請參閱 Runbook 描述中的必要許可區段。

  允許模式： `^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12,13}:role/.*$`
+ S3BucketPrefix

  類型：字串

  描述：（選用） Amazon S3 內儲存結果之路徑的字首。

  允許模式： `^[a-zA-Z0-9][-./a-zA-Z0-9]{0,255}$|^$`

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `autoscaling:DescribeAutoScalingGroups`
+ `cloudfront:ListDistributions`
+ `ec2:DescribeAddresses`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeInstances`
+ `elasticloadbalancing:DescribeLoadBalancers`
+ `elasticloadbalancing:DescribeTargetGroups`
+ `globalaccelerator:ListAccelerators`
+ `iam:GetRole`
+ `iam:ListAttachedRolePolicies`
+ `route53:ListHostedZones`
+ `route53:GetHealthCheck`
+ `shield:ListProtections`
+ `shield:GetSubscriptionState`
+ `shield:DescribeSubscription`
+ `shield:DescribeEmergencyContactSettings`
+ `shield:DescribeDRTAccess`
+ `waf:GetWebACL`
+ `waf:GetRateBasedRule`
+ `wafv2:GetWebACL`
+ `wafv2:GetWebACLForResource`
+ `waf-regional:GetWebACLForResource`
+ `waf-regional:GetWebACL`
+ `s3:ListBucket`
+ `s3:GetBucketAcl`
+ `s3:GetBucketLocation`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:GetBucketPolicyStatus`
+ `s3:GetBucketEncryption`
+ `s3:GetAccountPublicAccessBlock`
+ `s3:PutObject`

 **自動化擔任角色的 IAM 政策範例** 

------
#### [ JSON ]

****  

```
                {
                        "Version":"2012-10-17",		 	 	 
                        "Statement": [
                            {
                                "Action": [
                                    "s3:ListBucket",
                                    "s3:GetBucketAcl",
                                    "s3:GetAccountPublicAccessBlock"
                                ],
                                "Resource": "*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "s3:ListBucket",
                                    "s3:GetBucketAcl",
                                    "s3:GetBucketLocation",
                                    "s3:GetBucketPublicAccessBlock",
                                    "s3:GetBucketPolicyStatus",
                                    "s3:GetEncryptionConfiguration"
                                ],
                                "Resource": "arn:aws:s3:::<bucket-name>",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "s3:PutObject"
                                ],
                                "Resource": "arn:aws:s3:::<bucket-name>/*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "autoscaling:DescribeAutoScalingGroups",
                                    "cloudfront:ListDistributions",
                                    "ec2:DescribeInstances",
                                    "ec2:DescribeAddresses",
                                    "ec2:DescribeNetworkAcls",
                                    "elasticloadbalancing:DescribeLoadBalancers",
                                    "elasticloadbalancing:DescribeTargetGroups",
                                    "globalaccelerator:ListAccelerators",
                                    "iam:GetRole",
                                    "iam:ListAttachedRolePolicies",
                                    "route53:ListHostedZones",
                                    "route53:GetHealthCheck",
                                    "shield:ListProtections",
                                    "shield:GetSubscriptionState",
                                    "shield:DescribeSubscription",
                                    "shield:DescribeEmergencyContactSettings",
                                    "shield:DescribeDRTAccess",
                                    "waf:GetWebACL",
                                    "waf:GetRateBasedRule",
                                    "wafv2:GetWebACL",
                                    "wafv2:GetWebACLForResource",
                                    "waf-regional:GetWebACLForResource",
                                    "waf-regional:GetWebACL"
                                ],
                                "Resource": "*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": "iam:PassRole",
                                "Resource": "arn:aws:iam::111122223333:role/automation-assume-role-name",
                                "Effect": "Allow"
                            }
                        ]
                    }
```

------

 **指示** 

1. 導覽至 AWS Systems Manager 主控台中的 [AWSPremiumSupport-DDoSResiliencyAssessment](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-DDoSResiliencyAssessment)。

1. 選取**執行自動化**

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**

     (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)，允許 Systems Manager Automation 代表您執行動作。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
   + **AssessmentType （選用）：**

     決定要評估 DDoS 彈性評估的資源類型。根據預設， Runbook 會評估全域和區域資源。
   + **S3BucketName （必要）：**

     以 HTML 格式儲存評估報告的 Amazon S3 儲存貯體名稱。
   + **S3BucketOwner （選用）：**

     用於所有權驗證的 Amazon S3 儲存貯體 AWS 帳戶 ID。如果報告需要發佈到跨帳戶 Amazon S3 儲存貯體，則 ID 為必要 AWS 帳戶 ，如果 Amazon S3 儲存貯體與自動化啟動 AWS 帳戶 相同，則為選用。
   + **S3BucketPrefix （選用）：**

     Amazon S3 內儲存結果之路徑的任何字首。  
![\[Input parameters form for AWS Systems Manager Automation with fields for role, resources, and S3 bucket settings.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/premsupport-ddos-resiliency-assessment_input_parameters.png)

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **CheckShieldAdvancedState：**

     驗證 是否已 AWS 帳戶 訂閱 AWS Shield Advanced ，以及 Runbook 是否可存取 Amazon S3 儲存貯體。
   + **S3BucketSecurityChecks：**

     檢查「S3BucketName」中指定的 Amazon S3 儲存貯體是否允許匿名或公有讀取或寫入存取許可、儲存貯體是否已啟用靜態加密，以及「S3BucketOwner」中提供的 ID AWS 帳戶 是否為 Amazon S3 儲存貯體的擁有者。
   + **BranchOnShieldAdvancedStatus：**

     根據 AWS Shield Advanced 訂閱狀態和/或 Amazon S3 儲存貯體擁有權狀態分支文件步驟。
   + **ShieldAdvancedConfigurationReview：**

     檢閱 Shield Advanced 組態，以確保有最少的必要詳細資訊。例如： AWS Shield 回應團隊 (SRT) 的 IAM 存取、聯絡人清單詳細資訊和 SRT 主動參與狀態。
   + **ListShieldAdvancedProtections：**

     列出 Shield Protected Resources，並為每個服務建立一組受保護的資源。
   + **BranchOnResourceTypeAndCount：**

     根據資源類型參數的值和 Shield 保護的全域資源數量，分支文件步驟。
   + **ReviewGlobalResources：**

     檢閱 Shield Advanced 保護的全域資源，例如 Route 53 Hosted Zones、CloudFront Distributions 和 Global Accelerators。
   + **BranchOnResourceType：**

     如果為全域、區域或兩者，根據資源類型選擇分支文件步驟。
   + **ReviewRegionalResources：**

     檢閱 Shield Advanced 受保護的區域資源，例如 Application Load Balancer、Network Load Balancer、Classic Load Balancer、Amazon Elastic Compute Cloud (Amazon EC2) 執行個體 （彈性 IPs)。
   + **SendReportToS3：**

     將 DDoS 評估報告詳細資訊上傳至 Amazon S3 儲存貯體。

1. 完成後，評估報告 HTML 檔案的 URI 會在 Amazon S3 儲存貯體中提供：

   **成功執行 Runbook 的報告的 S3 主控台連結和 Amazon S3 URI**  
![\[Execution status showing successful completion with 9 steps executed and no failures.\]](http://docs.aws.amazon.com/zh_tw/systems-manager-automation-runbooks/latest/userguide/images/premsupport-ddos-resiliency-assessment_outputs.png)

 **參考** 

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSPremiumSupport-DDoSResiliencyAssessment)
+ [執行自動化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [設定自動化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支援自動化工作流程登陸頁面](https://aws.amazon.com/premiumsupport/technology/saw/)

AWS 服務文件
+ [AWS Shield Advanced](https://docs.aws.amazon.com//waf/latest/developerguide/ddos-advanced-summary.html)