

# ソリューションをデプロイする
<a name="deploy-the-solution"></a>

**重要**  
Security Hub で[統合されたコントロールの検出結果](deciding-where-to-deploy-each-stack.md#consolidated-controls-findings)機能が有効になっている場合は、このソリューションをデプロイする場合に、セキュリティコントロール (SC) プレイブックのみを有効にします。この機能が有効になっていない場合は、Security Hub で有効になっているセキュリティ標準のプレイブック**のみ**を有効にしてください。Security Hub CSPM を有効にした場合、[統合されたコントロールの検出結果] はデフォルトで [有効] になっています。また、2023 年 2 月 23 日以降も同様に有効になっています。

このソリューションは、[AWS CloudFormation テンプレートとスタック](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html)を使用してデプロイを自動化します。CloudFormation テンプレートは、このソリューションに含まれる AWS リソースとそのプロパティを指定します。CloudFormation スタックは、テンプレートに記述されているリソースをプロビジョニングします。

ソリューションが機能するには、3 つのテンプレートをデプロイする必要があります。まず、テンプレートをデプロイする場所を決定し、次にテンプレートをデプロイする方法を決定します。

この概要では、テンプレートと、テンプレートをデプロイする場所と方法を決定する方法について説明します。次のセクションでは、各スタックを Stack または StackSet としてデプロイする方法について詳しく説明します。

# 各スタックをデプロイする場所を決定する
<a name="deciding-where-to-deploy-each-stack"></a>

3 つのテンプレートは次の名前で参照され、次のリソースが含まれます。
+ 管理者スタック: オーケストレーターステップ関数、イベントルール、Security Hub カスタムアクション。
+ メンバースタック: 修復 SSM オートメーションドキュメント
+ メンバーロールスタック: 修復用の IAM ロール。

管理者スタックは、1 つのアカウントと 1 つのリージョンに 1 回デプロイする必要があります。ご自分の組織の Security Hub 検出結果の集約先として設定したアカウントとリージョンにデプロイする必要があります。アクションログ機能を使用して管理イベントをモニタリングする場合は、組織の管理アカウントまたは委任された管理者アカウントに管理者スタックをデプロイする必要があります。

このソリューションは Security Hub の検出結果に基づいて動作するため、そのアカウントまたはリージョンが Security Hub の管理者アカウントとリージョンの検出結果を集約するように設定されていない場合、特定のアカウントとリージョンの検出結果を操作することはできません。

**重要**  
[AWS Security Hub (非 CSPM)](https://aws.amazon.com/security-hub/) を使用している場合は、[AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) にオンボードされているメンバーアカウントが AWS Security Hub (非 CSPM) にもオンボードされていることを確認する責任があります。AWS Security Hub CSPM に集約されたリージョンは、AWS Security Hub (非 CSPM) に集約されたリージョンとも一致している必要があります。

例えば、ある組織に `us-east-1` と `us-west-2` のリージョンで運用されているアカウントがあり、アカウント `111111111111` が `us-east-1` リージョンの Security Hub 委任管理者になっているとします。`222222222222` と `333333333333` のアカウントは、委任管理者アカウント `111111111111` の Security Hub メンバーアカウントである必要があります。`us-west-2` から `us-east-1` までの検出結果を集約するには、3 つのアカウントすべてを設定する必要があります。管理者スタックは `us-east-1` のアカウント `111111111111` にデプロイする必要があります。

検出結果の集約の詳細については、Security Hub の「[委任管理者アカウント](https://docs.aws.amazon.com/securityhub/latest/userguide/designate-orgs-admin-account.html)」と「[クロスリージョン集約](https://docs.aws.amazon.com/securityhub/latest/userguide/finding-aggregation.html)」のドキュメントを参照してください。

管理者スタックは、メンバーアカウントからハブアカウントに信頼関係を作成できるように、メンバースタックをデプロイする前にデプロイを完了する必要があります。

メンバースタックは、検出結果を修復するすべてのアカウントとリージョンにデプロイする必要があります。これには、以前に ASR 管理者スタックをデプロイした Security Hub 委任管理者アカウントを含めることができます。SSM Automation の無料利用枠を使用するには、オートメーションドキュメントがメンバーアカウントで実行されている必要があります。

前の例を使用して、すべてのアカウントとリージョンの検出結果を修復する場合は、メンバースタックを 3 つのアカウントすべて (`111111111111`、`222222222222`、`333333333333`) と両方のリージョン (`us-east-1` および `us-west-2`) にデプロイする必要があります。

メンバーロールスタックはすべてのアカウントにデプロイする必要がありますが、アカウントごとに 1 回のみデプロイできるグローバルリソース (IAM ロール) が含まれています。メンバーロールスタックをデプロイするリージョンは関係ないため、わかりやすくするために、管理者スタックがデプロイされているのと同じリージョンにデプロイすることをお勧めします。

前の例を使用して、メンバーロールスタックを `us-east-1` の 3 つのアカウントすべて (`111111111111`、`222222222222`、および `333333333333`) にデプロイすることをお勧めします。

## 各スタックのデプロイ方法を決定する
<a name="deciding-how-to-deploy-each-stack"></a>

スタックをデプロイするためのオプションは次のとおりです。
+ CloudFormation StackSet (セルフマネージドのアクセス許可)
+ CloudFormation StackSet (サービスマネージドのアクセス許可)
+ CloudFormation スタック

サービスマネージドのアクセス許可を持つ StackSet は、独自のロールをデプロイする必要がなく、組織内の新しいアカウントに自動的にデプロイできるため、最も便利です。残念ながら、このメソッドは、管理者スタックとメンバースタックの両方で使用するネストされたスタックをサポートしていません。この方法でデプロイできるスタックは、メンバーロールスタックのみです。

組織全体にデプロイする場合、組織管理アカウントは含まれていないため、組織管理アカウントの検出結果を修復する場合は、このアカウントに個別にデプロイする必要があります。

メンバースタックはすべてのアカウントとリージョンにデプロイする必要がありますが、ネストされたスタックが含まれているため、サービスマネージドのアクセス許可を持つ StackSets を使用してデプロイすることはできません。そのため、このスタックはセルフマネージドのアクセス許可を持つ StackSets でデプロイすることをお勧めします。

管理者スタックは一度だけデプロイされるため、プレーンな CloudFormation スタックとして、または単一のアカウントとリージョンでセルフマネージドのアクセス許可を持つ StackSet としてデプロイできます。

## 統合されたコントロールの検出結果
<a name="consolidated-controls-findings"></a>

ご自分の組織のアカウントで、Security Hub の統合されたコントロールの検出結果機能をオンまたはオフに設定できます。「*AWS Security Hub ユーザーガイド*」の「[統合されたコントロールの検出結果](https://docs.aws.amazon.com/securityhub/latest/userguide/controls-findings-create-update.html#consolidated-control-findings)」を参照してください。

**重要**  
この機能を有効にする場合は、ソリューションバージョン 2.0.0 以降を使用し、管理者スタックとメンバースタックの両方で「SC」 (セキュリティコントロール) プレイブックを有効にする必要があります。これらのスタックは、統合されたコントロール ID を操作するために必要なオートメーションドキュメントをデプロイします。統合されたコントロールの検出結果を使用する場合、個々の標準 (AWS FSBP など) のスタックをデプロイする必要はありません。

## 中国でのデプロイ
<a name="china-deployment"></a>

このソリューションは中国リージョンでのデプロイをサポートしていますが、**中国リージョンでのワンクリックデプロイには、このガイドの他のセクションで提供されている起動ボタンではなく、次の起動ボタンを使用する必要があります。**このガイドの今後のセクションで提供されている [ソリューションを起動] ボタンを使用しても、中国リージョンにデプロイしている場合は機能しません。テンプレートを任意の S3 バケットリンクからダウンロードし、テンプレートファイルをアップロードしてスタックをデプロイすることもできます。
+  **automated-security-response-admin.template**

 [https://cn-north-1.console.amazonaws.cn/cloudformation/home?region=cn-north-1#/stacks/new?stackName=automated-security-response-on-aws-admin&templateURL=https:%2F%2Fs3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn%2Fsolutions-reference-cn%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-admin.template&redirectId=ImplementationGuide](https://cn-north-1.console.amazonaws.cn/cloudformation/home?region=cn-north-1#/stacks/new?stackName=automated-security-response-on-aws-admin&templateURL=https:%2F%2Fs3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn%2Fsolutions-reference-cn%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-admin.template&redirectId=ImplementationGuide) 
+  **automated-security-response-member-roles.template**:

 [https://cn-north-1.console.amazonaws.cn/cloudformation/home?region=cn-north-1#/stacks/new?stackName=automated-security-response-on-aws-member-roles&templateURL=https:%2F%2Fs3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn%2Fsolutions-reference-cn%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member-roles.template&redirectId=ImplementationGuide](https://cn-north-1.console.amazonaws.cn/cloudformation/home?region=cn-north-1#/stacks/new?stackName=automated-security-response-on-aws-member-roles&templateURL=https:%2F%2Fs3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn%2Fsolutions-reference-cn%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member-roles.template&redirectId=ImplementationGuide) 
+  **automated-security-response-member.template**

 [https://cn-north-1.console.amazonaws.cn/cloudformation/home?region=cn-north-1#/stacks/new?stackName=automated-security-response-on-aws-member&templateURL=https:%2F%2Fs3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn%2Fsolutions-reference-cn%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member.template&redirectId=ImplementationGuide](https://cn-north-1.console.amazonaws.cn/cloudformation/home?region=cn-north-1#/stacks/new?stackName=automated-security-response-on-aws-member&templateURL=https:%2F%2Fs3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn%2Fsolutions-reference-cn%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member.template&redirectId=ImplementationGuide) 

## GovCloud (米国) でのデプロイ
<a name="govcloud-deployment"></a>

このソリューションは GovCloud (米国) リージョンでのデプロイをサポートしていますが、**GovCloud (米国) リージョンでのワンクリックデプロイには、このガイドの他のセクションで提供されている起動ボタンではなく、次の起動ボタンを使用する必要があります。**このガイドの今後のセクションで提供されている [ソリューションを起動] ボタンを使用しても、GovCloud (米国) リージョンにデプロイしている場合は機能しません。テンプレートを任意の S3 バケットリンクからダウンロードし、テンプレートファイルをアップロードしてスタックをデプロイすることもできます。
+  **automated-security-response-admin.template**

 [https://console.amazonaws-us-gov.com/cloudformation/home?region=us-gov-west-1#/stacks/new?stackName=automated-security-response-on-aws-admin&templateURL=https:%2F%2Fs3.us-gov-west-1.amazonaws.com%2Fsolutions-reference-us-gov%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-admin.template&redirectId=ImplementationGuide](https://console.amazonaws-us-gov.com/cloudformation/home?region=us-gov-west-1#/stacks/new?stackName=automated-security-response-on-aws-admin&templateURL=https:%2F%2Fs3.us-gov-west-1.amazonaws.com%2Fsolutions-reference-us-gov%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-admin.template&redirectId=ImplementationGuide) 
+  **automated-security-response-member-roles.template**:

 [https://console.amazonaws-us-gov.com/cloudformation/home?region=us-gov-west-1#/stacks/new?stackName=automated-security-response-on-aws-member-roles&templateURL=https:%2F%2Fs3.us-gov-west-1.amazonaws.com%2Fsolutions-reference-us-gov%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member-roles.template&redirectId=ImplementationGuide](https://console.amazonaws-us-gov.com/cloudformation/home?region=us-gov-west-1#/stacks/new?stackName=automated-security-response-on-aws-member-roles&templateURL=https:%2F%2Fs3.us-gov-west-1.amazonaws.com%2Fsolutions-reference-us-gov%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member-roles.template&redirectId=ImplementationGuide) 
+  **automated-security-response-member.template**

 [https://console.amazonaws-us-gov.com/cloudformation/home?region=us-gov-west-1#/stacks/new?stackName=automated-security-response-on-aws-member&templateURL=https:%2F%2Fs3.us-gov-west-1.amazonaws.com%2Fsolutions-reference-us-gov%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member.template&redirectId=ImplementationGuide](https://console.amazonaws-us-gov.com/cloudformation/home?region=us-gov-west-1#/stacks/new?stackName=automated-security-response-on-aws-member&templateURL=https:%2F%2Fs3.us-gov-west-1.amazonaws.com%2Fsolutions-reference-us-gov%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member.template&redirectId=ImplementationGuide) 

# AWS CloudFormation テンプレート
<a name="aws-cloudformation-template"></a>

 [https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-admin.template](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-admin.template) **automated-security-response-admin.template** - このテンプレートを使用して、AWS の自動セキュリティ対応ソリューションを起動します。テンプレートは、ソリューションのコアコンポーネント、AWS Step Functions のログ用のネストされたスタック、アクティブ化することを選択したセキュリティ標準ごとに 1 つのネストされたスタックをインストールします。

使用されるサービスは、Amazon Simple Notification Service、AWS Key Management Service、AWS Identity and Access Management、AWS Lambda、AWS Step Functions、Amazon CloudWatch Logs、Amazon S3、AWS Systems Manager などです。

## 管理者アカウントのサポート
<a name="admin-account-support"></a>

以下のテンプレートが AWS Security Hub の管理者アカウントにインストールされ、サポートするセキュリティ標準が有効になります。`automated-security-response-admin.template` をインストールするときに、インストールするテンプレートを次の中から選択できます。

 **automated-security-response-orchestrator-log.template** - オーケストレーターステップ関数用の CloudWatch ロググループを作成します。

 **automated-security-response-webui-nested-stack.template** - ソリューションのウェブ UI をサポートするリソースを作成します。

 **AFSBPStack.template** - AWS の基本的なセキュリティのベストプラクティス v1.0.0 のルール。

 **CIS120Stack.template** - CIS Amazon Web Services Foundations Benchmark、v1.2.0 ルール。

 **CIS140Stack.template** - CIS Amazon Web Services Foundations Benchmark、v1.4.0 のルール。

 **CIS300Stack.template** - CIS Amazon Web Services Foundations Benchmark、v3.0.0 のルール。

 **PCI321Stack.template** - PCI-DSS v3.2.1 のルール。

 **NISTStack.template** - 米国国立標準技術研究所 (NIST)、v5.0.0 のルール。

 **SCStack.template** - セキュリティコントロール v2.0.0 のルール。

## メンバーロール
<a name="member-roles"></a>

 [https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-member-roles.template](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-member-roles.template) **automated-security-response-member-roles.template** - AWS Security Hub のメンバーアカウントごとに必要な修復ロールを定義します。

## メンバーアカウント
<a name="member-accounts"></a>

 [https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-member.template](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-member.template) **automated-security-response-member.template** - このテンプレートは、AWS Systems Manager Automation のランブックとアクセス許可を AWS Security Hub の各メンバーアカウント (管理者アカウントを含む) にインストールするためのコアソリューションをセットアップした後に使用します。このテンプレートを使用すると、インストールするセキュリティ標準プレイブックを選択できます。

`automated-security-response-member.template` では、選択内容に基づいて次のテンプレートがインストールされます。

 **automated-security-response-remediation-runbooks.template** - 1 つ以上のセキュリティ標準で使用する共通の修復コード。

 **AFSBPMemberStack.template** - AWS の基本的なセキュリティのベストプラクティス v1.0.0 の設定、アクセス許可、修復ランブック。

 **CIS120MemberStack.template** - CIS Amazon Web Services Foundations benchmarks, v1.2.0 の設定、アクセス許可、修復ランブック。

 **CIS140MemberStack.template** - CIS Amazon Web Services Foundations benchmarks, v1.4.0 の設定、アクセス許可、修復ランブック。

 **CIS300MemberStack.template** - CIS Amazon Web Services Foundations Benchmark、version 3.0.0 の設定、アクセス許可、修復ランブック。

 **PCI321MemberStack.template** - PCI-DSS v3.2.1 の設定、アクセス許可、修復ランブック。

 **NISTMemberStack.template** - 米国国立標準技術研究所 (NIST)、v5.0.0 の設定、アクセス許可、修復ランブック。

 **SCMemberStack.template** - セキュリティコントロールの設定、アクセス許可、修復ランブック。

 **automated-security-response-member-cloudtrail.template** - アクションログ機能で使用し、サービスアクティビティを追跡および監査します。

## チケットシステム統合
<a name="ticket-system-integration"></a>

次のいずれかのテンプレートを使用して、チケット発行システムと統合します。

 [https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/blueprints/JiraBlueprintStack.template](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/blueprints/JiraBlueprintStack.template) **JiraBlueprintStack.template** - Jira をチケット発行システムとして使用している場合はデプロイします。

 [https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/blueprints/ServiceNowBlueprintStack.template](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/blueprints/ServiceNowBlueprintStack.template) **ServiceNowBlueprintStack.template** - ServiceNow をチケット発行システムとして使用している場合はデプロイします。

別の外部チケットシステムを統合する場合は、これらのスタックのいずれかをブループリントとして使用して、独自のカスタム統合を実装する方法を理解できます。

# 自動デプロイ - StackSets
<a name="deployment-stackset"></a>

**注記**  
StackSets を使用してデプロイすることをお勧めします。ただし、単一アカウントのデプロイ、テストまたは評価の目的の場合は、[スタックのデプロイ](deployment.md)オプションを検討してください。

ソリューションを開始する前に、このガイドに記載されているアーキテクチャ、ソリューションコンポーネント、セキュリティ、設計に関する考慮事項を確認してください。このセクションのステップバイステップの手順に従ってソリューションを設定し、AWS Organizations 内にデプロイします。

 **デプロイ時間:** StackSets パラメータによって、1 つのアカウントごとに約 30 分。

## 前提条件
<a name="prerequisites-stackset"></a>

 [AWS Organizations](https://aws.amazon.com/organizations/) は、マルチアカウントの AWS 環境とリソースを一元的に管理するのに役立ちます。StackSets は AWS Organizations で最適に機能します。

以前に、このソリューションの v1.3.x 以前をデプロイしたことがある場合は、既存のソリューションをアンインストールする必要があります。詳細については、「[ソリューションを更新する](update-the-solution.md)」を参照してください。

このソリューションをデプロイする前に、AWS Security Hub のデプロイを確認してください。
+ AWS Organizations には、委任された Security Hub の管理者アカウントが必要です。
+ Security Hub は、リージョン全体の検出結果を集約するように設定する必要があります。詳細については、AWS Security Hub ユーザーガイドの「[リージョン間の検出結果を集約する](https://docs.aws.amazon.com/securityhub/latest/userguide/finding-aggregation.html)」を参照してください。
+ AWS を使用するリージョンごとに、組織の [Security Hub をアクティブ化](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-prereq-config.html)する必要があります。

この手順では、AWS Organizations を使用する複数のアカウントがあり、AWS Organizations の管理者アカウントと AWS Security Hub の管理者アカウントを委任していることを前提としています。

 **このソリューションは、[AWS Security Hub および AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-are-securityhub-services.html) の両方と連動することに注意してください。**

## デプロイの概要
<a name="deployment-overview-stackset"></a>

**注記**  
このソリューションの StackSets のデプロイでは、サービスマネージドとセルフマネージドの StackSets を組み合わせて使用しています。セルフマネージド StackSets では、サービスマネージド StackSets ではまだサポートされていないネストされた StackSets を使用しているため、今のところは使用する必要があります。

AWS Organizations の[委任された管理者アカウント](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-cloudformation.html)から StackSets をデプロイします。

**プランニング**  
次のフォームを使用して、StackSets のデプロイを支援することができます。データを準備し、デプロイ中に値をコピーして貼り付けます。

```
AWS Organizations admin account ID: _______________
Security Hub admin account ID: _______________
CloudTrail Logs Group: ______________________________
Member account IDs (comma-separated list):
___________________,
___________________,
___________________,
___________________,
___________________
AWS Organizations OUs (comma-separated list):
___________________,
___________________,
___________________,
___________________,
___________________
```

 [(オプション) ステップ 0: チケット作成統合スタックをデプロイする](#step-0-stackset) 
+ チケット作成機能を使用する場合は、まずチケット作成統合スタックを Security Hub 管理者アカウントにデプロイします。
+ このスタックから Lambda 関数名をコピーし、管理者スタックへの入力として指定します (ステップ 1 を参照)。

 [ステップ 1: 委任された Security Hub の管理者アカウントで管理者スタックを起動する](#step-1-stackset) 
+ セルフマネージド StackSets を使用して、AWS Security Hub の管理者と同じリージョンの AWS Security Hub の管理者アカウントで `automated-security-response-admin.template` AWS CloudFormation テンプレートを起動します。このテンプレートはネストされたスタックを使用します。
+ インストールするセキュリティ標準を選択します。デフォルトでは、SC のみが選択されます (推奨)。
+ 使用する既存のオーケストレーターロググループを選択します。前回のインストールで `SO0111-ASR- Orchestrator` がすでに存在する場合は、`Yes` を選択します。
+ ソリューションのウェブ UI を有効にするかどうかを選択します。この機能を有効にする場合は、管理者ロールを割り当てる E メールアドレスも入力する必要があります。
+ ソリューションの操作の正常性に関連する CloudWatch メトリクスを収集するための設定を選択します。

セルフマネージド StackSets の詳細については、「*AWS CloudFormation ユーザーガイド*」の「[セルフマネージドのアクセス許可を付与する](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)」を参照してください。

 [ステップ 2: AWS Security Hub のメンバーアカウントごとに修復ロールをインストールする](#step-2-stackset) 

ステップ 2 のテンプレートはステップ 1 で作成された IAM ロールを参照するため、ステップ 1 でデプロイが完了するまで待ちます。
+ サービスマネージド StackSet を使用して、AWS Organizations のアカウントごとに 1 つのリージョンで `automated-security-response-member-roles.template` AWS CloudFormation テンプレートを起動します。
+ 新しいアカウントが組織に加わったときに、このテンプレートを自動的にインストールすることを選択します。
+ AWS Security Hub の管理者アカウントのアカウント ID を入力します。
+ 同じアカウントで以前のデプロイまたは同時デプロイとリソース名が競合しないようにするために使用する `namespace` の値を入力します。最大 9 文字の小文字の英数字の文字列を入力します。

 [ステップ 3: 各 AWS Security Hub メンバーアカウントとリージョンでメンバースタックを起動する](#step-3-stackset) 
+ セルフマネージド StackSets を使用して、同じ AWS Security Hub の管理者が管理する AWS Organizations のすべてのアカウントに AWS リソースがあるすべての AWS リージョンで、`automated-security-response-member.template` テンプレートを起動します。
**注記**  
サービスマネージド StackSets がネストされたスタックがサポートされるまでは、組織に加わる新しいアカウントに対してこの手順を実行する必要があります。
+ インストールするセキュリティ標準プレイブックを選択します。
+ CloudTrail ロググループの名前を指定します (一部の修復で使用されます)。
+ AWS Security Hub の管理者アカウントのアカウント ID を入力します。
+ 同じアカウントで以前のデプロイまたは同時デプロイとリソース名が競合しないようにするために使用する `namespace` の値を入力します。最大 9 文字の小文字の英数字の文字列を入力します。これは、メンバーロールスタックに選択した `namespace` の値と一致する必要があります。また、名前空間の値はメンバーアカウントごとに一意である必要はありません。

## (オプション) ステップ 0: チケットシステム統合スタックを起動する
<a name="step-0-stackset"></a>

1. チケット機能を使用する場合は、まずそれぞれの統合スタックを起動します。

1. Jira または ServiceNow 用に提供されている統合スタックを選択するか、独自のカスタム統合を実装するためのブループリントとして使用します。

    **Jira スタックをデプロイするには**:

   1. スタック名を入力します。

   1. Jira インスタンスに URI を指定します。

   1. チケットを送信する Jira プロジェクトのプロジェクトキーを指定します。

   1. Jira `Username` と `Password` を保持する新しいキーと値のシークレットを Secrets Manager に作成します。
**注記**  
ユーザー名を `Username` として、API キーを `Password` として指定することで、パスワードの代わりに Jira API キーを使用することを選択できます。

   1. このシークレットの ARN をスタックへの入力として追加します。

       **スタック名、Jira プロジェクト情報、Jira API 認証情報を指定します。**  
![\[チケットシステム統合スタック jira\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/images/ticket-system-integration-stack-jira.png)

       **Jira フィールド設定**:

      Jira スタックをデプロイした後、Lambda 関数で `JIRA_FIELDS_MAPPING` 環境変数を設定することで、Jira チケットフィールドをカスタマイズできます。この JSON 文字列は、デフォルトの Jira チケットフィールドを上書きし、Jira API フィールド構造に従う必要があります。

      `JIRA_FIELDS_MAPPING` が空の場合、またはフィールドが指定されていない場合のデフォルト値:
      +  **priority**: `{"id": "3"}` (中優先度)
      +  **issuetype**: `{"id": "10006"}` (タスク)
      +  **accountId**: `GET /rest/api/2/myself` API エンドポイントを使用して自動的に取得

        カスタムフィールドを使用した設定例:

        ```
        {
          "reporter": {"accountId": "123456:494dcbff-1b80-482c-a89d-56ae81c145a4"},
          "priority": {"id": "1"},
          "issuetype": {"id": "10006"},
          "assignee": {"accountId": "123456:another-user-id"},
          "customfield_10001": "custom value"
        }
        ```

        一般的な Jira フィールド ID:
      +  **優先 ID**: 1 (最高)、2 (高)、3 (中)、4 (低)、5 (最低)
      +  **問題タイプ ID**: Jira プロジェクトによって異なります (タスクの場合は 10006 など)
      +  **アカウント ID**: 形式 `123456:494dcbff-1b80-482c-a89d-56ae81c145a4` 

        Jira フィールド ID とアカウント ID は、Jira REST API を使用して確認できます。
      +  アカウント ID の `GET /rest/api/2/myself`
      +  優先 ID の `GET /rest/api/2/priority`
      +  問題タイプ ID の `GET /rest/api/2/project/{projectKey}`

        詳細については、「[Jira REST API v2 問題の POST 形式](https://developer.atlassian.com/server/jira/platform/rest/v10000/api-group-issue/#api-api-2-issue-post)」を参照してください。

         **ServiceNow スタックをデプロイするには**:

   1. スタック名を入力します。

   1. ServiceNow インスタンスの URI を指定します。

   1. ServiceNow テーブル名を指定します。

   1. 書き込み先のテーブルを変更するアクセス許可を持つ API キーを ServiceNow に作成します。

   1. キー `API_Key` を使用して Secrets Manager でシークレットを作成し、そのシークレットの ARN をスタックへの入力として提供します。

       **スタック名、ServiceNow プロジェクト情報、ServiceNow API 認証情報を指定します。**  
![\[チケットシステム統合スタック servicenow\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/images/ticket-system-integration-stack-servicenow.png)

       **カスタム統合スタックを作成するには**: ソリューションオーケストレーター Step Functions が修復ごとに呼び出すことができる Lambda 関数を含めます。Lambda 関数は、Step Functions から提供された入力を受け取り、チケット発行システムの要件に従ってペイロードを構築し、システムにチケットの作成をリクエストする必要があります。

## ステップ 1: 委任された Security Hub 管理者アカウントで管理者スタックを起動する
<a name="step-1-stackset"></a>

1. Security Hub の管理者アカウントで、[管理者スタック](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-admin.template) (`automated-security-response-admin.template`) をデプロイします。通常、1 つのリージョンの組織ごとに 1 つです。このスタックはネストされたスタックを使用するため、このテンプレートをセルフマネージド StackSet としてデプロイする必要があります。

### パラメータ
<a name="parameters"></a>


| パラメータ  | デフォルト | 説明  | 
| --- | --- | --- | 
|   **Load SC Admin Stack**   |   `yes`   |  SC コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。  | 
|   **Load AFSBP Admin Stack**   |   `no`   |  FSBP コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。  | 
|   **Load CIS120 Admin Stack**   |   `no`   |  CIS120 コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。  | 
|   **Load CIS140 Admin Stack**   |   `no`   |  CIS140 コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。  | 
|   **Load CIS300 Admin Stack**   |   `no`   |  CIS300 コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。  | 
|   **Load PC1321 Admin Stack**   |   `no`   |  PC1321 コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。  | 
|   **Load NIST Admin Stack**   |   `no`   |  NIST コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。  | 
|   **Reuse Orchestrator Log Group**   |   `no`   |  既存の `SO0111-ASR-Orchestrator` CloudWatch Logs グループを再利用するかどうかを選択します。これにより、以前のバージョンのログデータを失うことなく、再インストールとアップグレードを簡素化できます。このアカウントに以前のデプロイからの `Orchestrator Log Group` がまだ存在する場合は、既存の `Orchestrator Log Group` を再利用し、`yes` を選択します。それ以外の場合は、`no` を選択します。v2.3.0 より前のバージョンからスタックの更新を実行する場合は、`no` を選択します。  | 
|   **ShouldDeployWebUI**   |   `yes`   |  API Gateway、Lambda 関数、CloudFront ディストリビューションなどのウェブ UI コンポーネントをデプロイします。検出結果と修復ステータスを表示するためのウェブベースのユーザーインターフェイスを有効にするには、[はい] を選択します。この機能を無効にした場合でも、自動修復を設定し、Security Hub CSPM カスタムアクションを使用してオンデマンドで修復を実行できます。  | 
|   **AdminUserEmail**   |   *(オプション入力)*   |  管理者ユーザーの E メールアドレス。このユーザーは、ASR ウェブ UI への完全な管理者アクセスを持ちます。ウェブ UI が有効になっている場合に**のみ**必要です。  | 
|   **Use CloudWatch Metrics**   |   `yes`   |  ソリューションをモニタリングするために CloudWatch メトリクスを有効にするかどうかを指定します。これにより、メトリクスを表示するための CloudWatch ダッシュボードが作成されます。  | 
|   **Use CloudWatch Metrics Alarms**   |   `yes`   |  ソリューションの CloudWatch メトリクスアラームを有効にするかどうかを指定します。これにより、ソリューションによって収集された特定のメトリクスのアラームが作成されます。  | 
|   **RemediationFailureAlarmThreshold**   |   `5`   |  コントロール ID あたりの修復失敗の割合のしきい値を指定します。例えば、`5` と入力すると、コントロール ID が特定の日に 5% を超える修復に失敗すると、アラームが表示されます。 このパラメータは、アラームが作成された場合にのみ機能します (「**CloudWatch メトリクスアラームを使用する**」パラメータを参照)。  | 
|   **EnableEnhancedCloudWatchMetrics**   |   `no`   |  `yes` の場合、追加の CloudWatch メトリクスを作成し、CloudWatch ダッシュボードで、CloudWatch アラームとして、すべてのコントロール ID を個別に追跡します。 これに伴う追加コストについては、「[コスト](cost.md#additional-cost-enhanced-metrics)」セクションを参照してください。  | 
|   **TicketGenFunctionName**   |   *(オプション入力)*   |  オプション。チケット発行システムを統合しない場合は、空白のままにします。それ以外の場合は、[ステップ 0](deployment.md#step-0) のスタック出力から Lambda 関数名を指定します。例: `SO0111-ASR-ServiceNow-TicketGenerator`。  | 

 **StackSet オプションを設定する** 

![\[stackset オプションを設定する\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/images/configre-stackset-options.png)


1. **[Account numbers]** パラメータに、AWS Security Hub の管理者アカウントのアカウント ID を入力します。

1. **[Specify regions]** パラメータで、Security Hub の管理者がオンになっているリージョンのみを選択します。このステップが完了するまで待ってから、ステップ 2 に進みます。

## ステップ 2: AWS Security Hub のメンバーアカウントごとに修復ロールをインストールする
<a name="step-2-stackset"></a>

サービスマネージド StackSets を使用して、[メンバーロールテンプレート](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-member-roles.template)、`automated-security-response-member-roles.template` をデプロイします。この StackSet は、メンバーアカウントごとに 1 つのリージョンにデプロイする必要があります。ASR オーケストレーターステップ関数からのクロスアカウント API コールを許可するグローバルロールを定義します。

### パラメータ
<a name="parameters-2"></a>


| パラメータ  | デフォルト | 説明  | 
| --- | --- | --- | 
|   **名前空間**   |   *<入力必須>*   |  最大 9 文字の小文字の英数字の文字列を入力します。修復 IAM ロール名のサフィックスとして追加する一意の名前空間。メンバーロールとメンバースタックに、同じ名前空間を使用する必要があります。この文字列はソリューションのデプロイごとに一意である必要がありますが、スタックの更新時に変更する必要はありません。名前空間の値は、メンバーアカウントごとに一意である必要は**ありません**。  | 
|   **Sec Hub アカウント管理者**   |   *<入力必須>*   |  AWS Security Hub 管理者アカウントの 12 桁のアカウント ID を入力します。この値は、管理者アカウントのソリューションロールにアクセス許可を付与します。  | 

1. 組織のポリシーに従って、組織全体 (通常) または組織単位にデプロイします。

1. AWS Organizations の新しいアカウントにこれらのアクセス許可が付与されるように、自動デプロイをオンにします。

1. **[Specify regions]** パラメータで、1 つのリージョンを選択します。IAM ロールはグローバルです。この StackSets がデプロイされている間に、ステップ 3 に進むことができます。

    **StackSet の詳細を指定する**   
![\[stackset の詳細を指定する\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/images/specify-stackset-details.png)

## ステップ 3: 各 AWS Security Hub メンバーアカウントとリージョンでメンバースタックを起動する
<a name="step-3-stackset"></a>

[メンバースタック](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-member.template)はネストされたスタックを使用するため、セルフマネージド StackSet としてデプロイする必要があります。AWS Organizations の新しいアカウントへの自動デプロイはサポートされていません。

### パラメータ
<a name="parameters"></a>


| パラメータ  | デフォルト | 説明  | 
| --- | --- | --- | 
|   **Provide the name of the LogGroup to be used to create Metric Filters and Alarms**   |   *<入力必須>*   |  CloudTrail が API コールをログに記録する CloudWatch Logs グループの名前を指定します。これは CIS 3.1～3.14 修復に使用されます。  | 
|   **Load SC Member Stack**   |   `yes`   |  SC コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。  | 
|   **Load AFSBP Member Stack**   |   `no`   |  FSBP コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。  | 
|   **Load CIS120 Member Stack**   |   `no`   |  CIS120 コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。  | 
|   **Load CIS140 Member Stack**   |   `no`   |  CIS140 コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。  | 
|   **Load CIS300 Member Stack**   |   `no`   |  CIS300 コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。  | 
|   **Load PC1321 Member Stack**   |   `no`   |  PC1321 コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。  | 
|   **NIST メンバースタックのロード**   |   `no`   |  NIST コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。  | 
|   **Create S3 Bucket For Redshift Audit Logging**   |   `no`   |  FSBP RedShift.4 修復のために S3 バケットを作成する場合は、`yes` を選択します。S3 バケットと修復の詳細については、「*AWS Security Hub ユーザーガイド*」の「[Redshift.4 修復](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-redshift-4)」を参照してください。  | 
|   **Sec Hub Admin Account**   |   *<入力必須>*   |  AWS Security Hub 管理者アカウントの 12 桁のアカウント ID を入力します。  | 
|   **名前空間**   |   *<入力必須>*   |  最大 9 文字の小文字の英数字の文字列を入力します。この文字列は、IAM ロール名とアクションログ S3 バケットの一部になります。メンバースタックデプロイとメンバーロールスタックデプロイには同じ値を使用します。文字列はソリューションのデプロイごとに一意である必要がありますが、スタックの更新時に変更する必要はありません。  | 
|   **EnableCloudTrailForASRActionLog**   |   `no`   |  CloudWatch ダッシュボードのソリューションによって実施される管理イベントをモニタリングする場合は、`yes` を選択します。このソリューションは、`yes` を選択した各メンバーアカウントに CloudTrail 証跡を作成します。この機能を有効にするには、ソリューションを AWS Organization にデプロイする必要があります。**さらに、この機能は同じアカウント内の 1 つのリージョンでのみ有効にできます。**これに伴う追加コストについては、「[コスト](cost.md#additional-cost-action-log)」セクションを参照してください。  | 

 **Accounts**: 

![\[アカウント\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/images/accounts.png)


 **Deployment locations**: アカウント番号または組織単位のリストを指定できます。

 **Specify regions**: 検出結果を修復するすべてのリージョンを選択します。デプロイオプションは、アカウントとリージョンの数に応じて調整できます。リージョンの同時実行は並列にすることができます。

# 自動デプロイ - スタック
<a name="deployment"></a>

**注記**  
マルチアカウントのユーザーには、[StackSets を使用したデプロイ](deployment-stackset.md)を強くお勧めします。

ソリューションを開始する前に、このガイドに記載されているアーキテクチャ、ソリューションコンポーネント、セキュリティ、設計に関する考慮事項を確認してください。このセクションのステップバイステップの手順に従って、ソリューションを設定してアカウントにデプロイします。

 **デプロイ時間**: 約 30 分

## 前提条件
<a name="prerequisites"></a>

このソリューションをデプロイする前に、AWS Security Hub がプライマリアカウントおよびセカンダリアカウントと同じ AWS リージョンにあることを確認してください。以前にこのソリューションをデプロイしたことがある場合は、既存のソリューションをアンインストールする必要があります。詳細については、「[ソリューションを更新する](update-the-solution.md)」を参照してください。

## デプロイの概要
<a name="deployment-overview"></a>

次の手順を使用して、このソリューションを AWS にデプロイします。

 [(オプション) ステップ 0: チケットシステム統合スタックを起動する](#step-0) 
+ チケット作成機能を使用する場合は、まずチケット作成統合スタックを Security Hub 管理者アカウントにデプロイします。
+ このスタックから Lambda 関数名をコピーし、管理者スタックへの入力として指定します (ステップ 1 を参照)。

 [ステップ 1: 管理者スタックを起動する](#step-1) 
+ AWS Security Hub の管理者アカウントで `automated-security-response-admin.template` AWS CloudFormation テンプレートを起動します。
+ インストールするセキュリティ標準を選択します。
+ 使用する既存のオーケストレーターロググループを選択します (以前のインストールで `SO0111-ASR-Orchestrator` が既に存在する場合は `Yes` を選択してください)。

 [ステップ 2: AWS Security Hub のメンバーアカウントごとに修復ロールをインストールする](#step-2) 
+ メンバーアカウントごとに 1 つのリージョンで `automated-security-response-member-roles.template` AWS CloudFormation テンプレートを起動します。
+ AWS Security Hub の管理者アカウントの 12 桁のアカウント ID を入力します。

 [ステップ 3: メンバースタックを起動する](#step-3) 
+ CIS 3.1～3.14 修復で使用する CloudWatch Logs グループの名前を指定します。これは、CloudTrail ログを受信する CloudWatch Logs ロググループの名前である必要があります。
+ 修復ロールをインストールするかどうかを選択します。これらのロールは、アカウントごとに 1 回のみインストールします。
+ インストールするプレイブックを選択します。
+ AWS Security Hub の管理者アカウントのアカウント ID を入力します。

 [ステップ 4: (オプション) 使用可能な修復を調整する](#step-4) 
+ メンバーアカウントごとに修復を削除します。この手順はオプションです。

## (オプション) ステップ 0: チケットシステム統合スタックを起動する
<a name="step-0"></a>

1. チケット機能を使用する場合は、まずそれぞれの統合スタックを起動します。

1. Jira または ServiceNow 用に提供されている統合スタックを選択するか、独自のカスタム統合を実装するためのブループリントとして使用します。

    **Jira スタックをデプロイするには**:

   1. スタック名を入力します。

   1. Jira インスタンスに URI を指定します。

   1. チケットを送信する Jira プロジェクトのプロジェクトキーを指定します。

   1. Jira `Username` と `Password` を保持する新しいキーと値のシークレットを Secrets Manager に作成します。
**注記**  
ユーザー名を `Username` として、API キーを `Password` として指定することで、パスワードの代わりに Jira API キーを使用することを選択できます。

   1. このシークレットの ARN をスタックへの入力として追加します。

       **スタック名、Jira プロジェクト情報、Jira API 認証情報を指定します。**  
![\[チケットシステム統合スタック jira\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/images/ticket-system-integration-stack-jira.png)

       **Jira フィールド設定**:

      Jira チケットフィールドのカスタマイズについては、「[StackSet デプロイのステップ 0](deployment-stackset.md#step-0-stackset)」の「Jira フィールド設定セクション」を参照してください。

       **ServiceNow スタックをデプロイするには**:

   1. スタック名を入力します。

   1. ServiceNow インスタンスの URI を指定します。

   1. ServiceNow テーブル名を指定します。

   1. 書き込み先のテーブルを変更するアクセス許可を持つ API キーを ServiceNow に作成します。

   1. キー `API_Key` を使用して Secrets Manager でシークレットを作成し、そのシークレットの ARN をスタックへの入力として提供します。

       **スタック名、ServiceNow プロジェクト情報、ServiceNow API 認証情報を指定します。**  
![\[チケットシステム統合スタック servicenow\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/images/ticket-system-integration-stack-servicenow.png)

       **カスタム統合スタックを作成するには**: ソリューションオーケストレーター Step Functions が修復ごとに呼び出すことができる Lambda 関数を含めます。Lambda 関数は、Step Functions から提供された入力を受け取り、チケット発行システムの要件に従ってペイロードを構築し、システムにチケットの作成をリクエストする必要があります。

## ステップ 1: 管理者スタックを起動する
<a name="step-1"></a>

**重要**  
このソリューションにはデータ収集が含まれています。AWS ではこのデータを使用して、ユーザーがこのソリューション、関連サービスおよび製品をどのように使用しているかをよりよく理解し、提供するサービスや製品の改善に役立てます。AWS は、このアンケートを通じて収集されたデータを所有します。データ収集には、[AWS プライバシー通知](https://aws.amazon.com/privacy/)が適用されます。

この自動化された AWS CloudFormation テンプレートは、AWS での自動化されたセキュリティ対応ソリューションを AWS クラウドにデプロイします。スタックを起動する前に Security Hub を有効にして、[前提条件](#prerequisites)を確認する必要があります。

**注記**  
このソリューションの実行中に使用した AWS サービスのコストは、お客様の負担となります。詳細については、このガイドの「[コスト](cost.md)」セクションで、このソリューションで使用されている各 AWS サービスの料金表ウェブページを参照してください。

1. AWS Security Hub が現在設定されているアカウントから AWS マネジメントコンソールにサインインし、下のボタンを使用して `automated-security-response-admin.template` AWS CloudFormation テンプレートを起動します。

    [https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=automated-security-response-on-aws-admin&templateURL=https:%2F%2Fs3.amazonaws.com%2Fsolutions-reference%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-admin.template&redirectId=ImplementationGuide](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=automated-security-response-on-aws-admin&templateURL=https:%2F%2Fs3.amazonaws.com%2Fsolutions-reference%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-admin.template&redirectId=ImplementationGuide) 

   実装の開始点として[テンプレートをダウンロード](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-admin.template)することもできます。

1. テンプレートはデフォルトで米国東部 (バージニア北部) リージョンで起動します。別の AWS リージョンでソリューションを起動するには、AWS マネジメントコンソールナビゲーションバーのリージョンセレクターを使用します。
**注記**  
このソリューションで使用している AWS Systems Manager は、現在、特定の AWS リージョンでのみ利用可能です。このソリューションは、このサービスをサポートするすべてのリージョンで機能します。リージョンごとの最新の利用状況については、「[AWS サービス (リージョン別)](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。

1. **[スタックの作成]** ページで、正しいテンプレート URL が **[Amazon S3 URL]** テキストボックスに表示されていることを確認し、**[次へ]** を選択します。

1. **[スタックの詳細を指定]** ページで、このソリューションのスタックに名前を割り当てます。名前に使用する文字の制限については、「*AWS Identity and Access Management ユーザーガイド*」の「[IAM と AWS STS クォータ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html)」を参照してください。

1. **[パラメータ]** ページで **[次へ]** を選択します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/deployment.html)

**注記**  
ソリューションの CloudFormation スタックをデプロイまたは更新した後で、管理者アカウントで自動修復を手動で有効にする必要があります。

1. **[スタックオプションの設定]** ページで、**[次へ]** を選択します。

1. **[レビュー]** ページで、設定を確認して確定します。テンプレートが AWS Identity and Access Management (IAM) リソースを作成することを承認するボックスを必ずオンにします。

1. **[スタックの作成]** を選択してスタックをデプロイします。

AWS CloudFormation コンソールの **[ステータス]** 列でスタックのステータスを確認できます。約 15 分で CREATE\$1COMPLETE ステータスが表示されます。

## ステップ 2: AWS Security Hub のメンバーアカウントごとに修復ロールをインストールする
<a name="step-2"></a>

`automated-security-response-member-roles.template` StackSet は、メンバーアカウントごとに 1 つのリージョンにのみデプロイする必要があります。ASR オーケストレーターステップ関数からのクロスアカウント API コールを許可するグローバルロールを定義します。

1. AWS Security Hub のメンバーアカウント (管理者アカウントもメンバーとして含む) ごとに AWS マネジメントコンソールにサインインします。ボタンを選択して、`automated-security-response-member-roles.template` AWS CloudFormation テンプレートを起動します。実装の開始点として[テンプレートをダウンロード](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-member-roles.template)することもできます。

    [https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=automated-security-response-on-aws-member-roles&templateURL=https:%2F%2Fs3.amazonaws.com%2Fsolutions-reference%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member-roles.template&redirectId=ImplementationGuide](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=automated-security-response-on-aws-member-roles&templateURL=https:%2F%2Fs3.amazonaws.com%2Fsolutions-reference%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member-roles.template&redirectId=ImplementationGuide) 

1. テンプレートはデフォルトで米国東部 (バージニア北部) リージョンで起動します。別の AWS リージョンでソリューションを起動するには、AWS マネジメントコンソールナビゲーションバーのリージョンセレクターを使用します。

1. **[スタックの作成]** ページで、正しいテンプレート URL が Amazon S3 URL テキストボックスに表示されていることを確認し、**[次へ]** を選択します。

1. **[スタックの詳細を指定]** ページで、このソリューションのスタックに名前を割り当てます。名前に使用する文字の制限に関する詳細については、「AWS Identity and Access Management ユーザーガイド」の「IAM および AWS STS クォータ」を参照してください。

1. **[パラメータ]** ページで、以下を入力し、[次へ] を選択します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/deployment.html)

1. **[スタックオプションの設定]** ページで、**[次へ]** を選択します。

1. **[レビュー]** ページで、設定を確認して確定します。テンプレートが AWS Identity and Access Management (IAM) リソースを作成することを承認するボックスを必ずオンにします。

1. **[スタックの作成]** を選択してスタックをデプロイします。

   AWS CloudFormation コンソールの **[ステータス]** 列でスタックのステータスを確認できます。約 5 分で CREATE\$1COMPLETE のステータスが表示されます。このスタックのロード中に、次のステップに進むことができます。

## ステップ 3: メンバースタックを起動する
<a name="step-3"></a>

**重要**  
このソリューションにはデータ収集が含まれています。AWS ではこのデータを使用して、ユーザーがこのソリューション、関連サービスおよび製品をどのように使用しているかをよりよく理解し、提供するサービスや製品の改善に役立てます。このアンケートで収集されたデータは AWS が所有します。データ収集には、AWS プライバシーポリシーが適用されます。

`automated-security-response-member` スタックは、各 Security Hub のメンバーアカウントにインストールする必要があります。このスタックは、自動修復用のランブックを定義します。各メンバーアカウントの管理者は、このスタックを介して利用可能な修復を制御できます。

1. AWS Security Hub のメンバーアカウント (管理者アカウントもメンバーとして含む) ごとに AWS マネジメントコンソールにサインインします。ボタンを選択して `automated-security-response-member.template` AWS CloudFormation テンプレートを起動します。

    [https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=automated-security-response-on-aws-member&templateURL=https:%2F%2Fs3.amazonaws.com%2Fsolutions-reference%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member.template&redirectId=ImplementationGuide](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=automated-security-response-on-aws-member&templateURL=https:%2F%2Fs3.amazonaws.com%2Fsolutions-reference%2Fautomated-security-response-on-aws%2Flatest%2Fautomated-security-response-member.template&redirectId=ImplementationGuide) 

独自の実装の開始点として[テンプレートをダウンロード](https://solutions-reference.s3.amazonaws.com/automated-security-response-on-aws/latest/automated-security-response-member.template)することもできます。テンプレートはデフォルトで米国東部 (バージニア北部) リージョンで起動します。別の AWS リージョンでソリューションを起動するには、AWS マネジメントコンソールナビゲーションバーのリージョンセレクターを使用します。

\$1

**注記**  
このソリューションで使用している AWS Systems Manager は、現在、ほとんどの AWS リージョンで利用可能です。このソリューションは、これらのサービスをサポートするすべてのリージョンで機能します。リージョンごとの最新の利用状況については、「[AWS サービス (リージョン別)](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。

1. **[スタックの作成]** ページで、正しいテンプレート URL が **[Amazon S3 URL]** テキストボックスに表示されていることを確認し、**[次へ]** を選択します。

1. **[スタックの詳細を指定]** ページで、このソリューションのスタックに名前を割り当てます。名前に使用する文字の制限については、「*AWS Identity and Access Management ユーザーガイド*」の「[IAM と AWS STS クォータ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html)」を参照してください。

1. **[パラメータ]** ページで、以下を入力し、**[次へ]** を選択します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/deployment.html)

1. **[スタックオプションの設定]** ページで、**[次へ]** を選択します。

1. **[レビュー]** ページで、設定を確認して確定します。テンプレートが AWS Identity and Access Management (IAM) リソースを作成することを承認するボックスを必ずオンにします。

1. **[スタックの作成]** を選択してスタックをデプロイします。

AWS CloudFormation コンソールの **[ステータス]** 列でスタックのステータスを確認できます。約 15 分で CREATE\$1COMPLETE ステータスが表示されます。

## ステップ 4: (オプション) 使用可能な修復を調整する
<a name="step-4"></a>

メンバーアカウントから特定の修復を削除する場合は、セキュリティ標準のネストされたスタックを更新することで削除できます。わかりやすくするために、ネストされたスタックオプションはルートスタックに伝達されません。

1. [AWS CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/home)にサインインし、ネストされたスタックを選択します。

1. **[更新]** を選択します。

1. **[ネストされたスタックを更新する]** を選択し、**[スタックの更新]** を選択します。

    **ネストされたスタックを更新する**   
![\[ネストされたスタック\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/automated-security-response-on-aws/images/nested-stack.png)

1. **[現在のテンプレートの使用]** を選択し、**[次へ]** を選択します。

1. 利用可能な修復を調整します。目的のコントロールの値を `Available` に変更し、不要なコントロールを `Not available` に変更します。
**注記**  
修復を無効にすると、セキュリティ標準とコントロールのソリューション修復ランブックが削除されます。

1. **[スタックオプションの設定]** ページで、**[次へ]** を選択します。

1. **[レビュー]** ページで、設定を確認して確定します。テンプレートが AWS Identity and Access Management (IAM) リソースを作成することを承認するボックスを必ずオンにします。

1. **[スタックを更新]**を選択します。

AWS CloudFormation コンソールの **[ステータス]** 列でスタックのステータスを確認できます。約 15 分で CREATE\$1COMPLETE ステータスが表示されます。

# Control Tower (CT) のデプロイ
<a name="cfctdeployment"></a>

AWS Control Tower のカスタマイズ (CfCT) ガイドは、AWS Control Tower 環境を会社または顧客向けにカスタマイズおよび拡張することを希望する管理者、DevOps プロフェッショナル、独立系ソフトウェアベンダー、IT インフラストラクチャアーキテクト、システムインテグレーターを対象としています。このガイドでは、CfCT カスタマイズパッケージを使用して AWS Control Tower 環境をカスタマイズおよび拡張する際に役立つ情報を提供します。

 **デプロイ時間**: 約 30 分

## 前提条件
<a name="cfctprerequisites"></a>

このソリューションをデプロイする前に、**AWS Control Tower 管理者**を対象としていることを確認してください。

AWS Control Tower コンソールまたは API を使用してランディングゾーンをセットアップする準備ができたら、次の手順に従います。

AWS Control Tower の使用を開始するには、「[Getting Started with AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html)」を参照してください。

ランディングゾーンをカスタマイズする方法については、「[Customizing Your Landing Zone](https://docs.aws.amazon.com/controltower/latest/userguide/customize-landing-zone.html)」を参照してください。

ランディングゾーンを起動してデプロイするには、「[Landing Zone Deployment Guide](https://docs.aws.amazon.com/controltower/latest/userguide/deployment.html)」を参照してください。

## デプロイの概要
<a name="cfctdeployment-overview"></a>

次の手順を使用して、このソリューションを AWS にデプロイします。

 [ステップ 1: S3 バケットをビルドしてデプロイする](#step-1-cfn) 

**注記**  
S3 バケットの設定 – ADMIN のみ。これは 1 回限りの設定ステップであり、エンドユーザーが繰り返すべきではありません。S3 バケットは、ASR の実行に必要な AWS CloudFormation テンプレートと Lambda コードを含むデプロイパッケージを保存します。これらのリソースは、CfCt または StackSet を使用してデプロイします。

**1. S3 バケットを設定する**  
デプロイパッケージの保存と提供に使用する S3 バケットを設定します。

**2. 環境のセットアップ**  
ビルドとデプロイのプロセスに必要な環境変数、認証情報、ツールを準備します。

**3. S3 バケットポリシーを設定する**  
アクセスとアクセス許可を制御するための適切なバケットポリシーを定義して適用します。

**4. ビルドを準備する**  
デプロイするアプリケーションやアセットをコンパイル、パッケージ化、または準備します。

**5. パッケージを S3 にデプロイする**  
準備したビルドアーティファクトを、指定先の S3 バケットにアップロードします。

 [ステップ 2: AWS Control Tower へのスタックのデプロイ](#step-2-cfn) 

**1. ASR コンポーネントのビルドマニフェストを作成する**  
すべての ASR コンポーネント、そのバージョン、依存関係、ビルド手順を一覧表示するビルドマニフェストを定義します。

**2. CodePipeline を更新する**  
AWS CodePipeline 設定を変更して、ASR コンポーネントのデプロイに必要な新しいビルド手順、アーティファクト、またはステージを含めます。

## ステップ 1: S3 バケットをビルドして、デプロイする
<a name="step-1-cfn"></a>

AWS ソリューションでは、2 つのバケットを使用します。HTTPS 経由でアクセスするテンプレートへのグローバルアクセス用のバケットと、リージョン内のアセット (Lambda コードなど) へのアクセス用のリージョンバケットです。

**1. S3 バケットを設定する**  
一意のバケット名 (asr-staging など) を指定します。ターミナルに 2 つの環境変数を設定します。1 つは -reference をサフィックスとし、もう 1 つはデプロイ先のリージョンをサフィックスとするベースバケット名にする必要があります。

```
export BASE_BUCKET_NAME=asr-staging-$(date +%s)
export TEMPLATE_BUCKET_NAME=$BASE_BUCKET_NAME-reference
export REGION=us-east-1
export ASSET_BUCKET_NAME=$BASE_BUCKET_NAME-$REGION
```

**2. 環境設定**  
AWS アカウントで、これらの名前 (asr-staging-reference や asr-staging-us-east-1 など) を使用して 2 つのバケットを作成します (reference バケットは CloudFormation テンプレートを保持し、リージョン名バケットは Lambda コードバンドルなどの他のすべてのアセットを保持します)。バケットは暗号化し、パブリックアクセスを禁止する必要があります。

```
aws s3 mb s3://$TEMPLATE_BUCKET_NAME/
aws s3 mb s3://$ASSET_BUCKET_NAME/
```

**注記**  
バケットを作成する際は、パブリックにアクセスできないことを確認してください。ランダムなバケット名を使用し、パブリックアクセスを無効にします。KMS 暗号化を使用します。また、アップロードする前にバケットの所有権を確認してください。

**3. S3 バケットポリシーの設定**  
\$1TEMPLATE\$1BUCKET\$1NAME S3 バケットポリシーを更新して、実行アカウント ID の PutObject アクセス許可を含めます。このアクセス許可を、バケットへの書き込みが許可されている実行アカウント内の IAM ロールに割り当てます。この設定により、管理アカウントでバケットを作成する必要がなくなります。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::template-bucket-name/*",
                "arn:aws:s3:::template-bucket-name"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "org-id"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::template-bucket-name/*",
                "arn:aws:s3:::template-bucket-name"
            ],
            "Condition": {
                "ArnLike": {
                    "aws:PrincipalArn": "arn:aws:iam::account-id:role/iam-role-name"
                }
            }
        }
    ]
}
```

S3 バケットポリシーを変更してアクセス許可を含めます。このアクセス許可を、バケットへの書き込みが許可されている実行アカウント内の IAM ロールに割り当てます。この設定を、リージョンのアセットバケット (asr-staging-us-east-1、asr-staging-eu-west-1 など) ごとに繰り返します。これにより、管理アカウントでバケットを作成することなく、複数のリージョンにデプロイできます。

**4. ビルドの準備**
+ 前提条件:
  + AWS CLI v2
  + Python 3.11 以降 (pip 付き)
  + AWS CDK 2.171.1 以降
  + Node.js 20 以降 (npm 付き)
  + エクスポートするプラグインを含む Poetry v2
+ Git クローン [https://github.com/aws-solutions/automated-security-response-on-aws.git](https://github.com/aws-solutions/automated-security-response-on-aws.git) 

まず、ソースフォルダで npm install を実行していることを確認します。

次に、クローンしたリポジトリのデプロイフォルダから、build-s3-dist.sh を実行し、バケットのルート名 (mybucket など) およびビルドするバージョン (v1.0.0 など) を渡します。GitHub からダウンロードしたバージョンに基づく semver バージョン (例: GitHub: v1.0.0、ビルド: v1.0.0.mybuild) を使用することをお勧めします。

```
chmod +x build-s3-dist.sh
export SOLUTION_NAME=automated-security-response-on-aws
export SOLUTION_VERSION=v1.0.0.mybuild
./build-s3-dist.sh -b $BASE_BUCKET_NAME -v $SOLUTION_VERSION
```

 **5. パッケージを S3 にデプロイする** 

```
cd deployment
aws s3 cp global-s3-assets/  s3://$TEMPLATE_BUCKET_NAME/$SOLUTION_NAME/$SOLUTION_VERSION/ --recursive --acl bucket-owner-full-control
aws s3 cp regional-s3-assets/  s3://$ASSET_BUCKET_NAME/$SOLUTION_NAME/$SOLUTION_VERSION/ --recursive --acl bucket-owner-full-control
```

## ステップ 2: AWS Control Tower へのスタックのデプロイ
<a name="step-2-cfn"></a>

**1. ASR コンポーネントのビルドマニフェスト**  
ASR アーティファクトを S3 バケットにデプロイした後、Control Tower の[パイプラインマニフェスト](https://docs.aws.amazon.com/controltower/latest/userguide/cfcn-byo-customizations.html)を更新して新しいバージョンを参照し、パイプライン実行をトリガーします。[Control Tower のデプロイ](https://docs.aws.amazon.com/controltower/latest/userguide/deployment.html)に関する記事を参照してください。

**重要**  
ASR ソリューションを正しくデプロイするには、CloudFormation テンプレートの概要とパラメータの説明に関する AWS の公式ドキュメント (リンク先: [CloudFormation テンプレート](https://docs.aws.amazon.com/en_us/solutions/latest/automated-security-response-on-aws/aws-cloudformation-template.html)と[パラメータの概要ガイド](https://docs.aws.amazon.com/solutions/latest/automated-security-response-on-aws/deployment.html)) を参照してください。

ASR コンポーネントのマニフェストは次のようになります。

```
region: us-east-1 #<HOME_REGION_NAME>
version: 2021-03-15

# Control Tower Custom CloudFormation Resources
resources:
  - name: <ADMIN STACK NAME>
    resource_file: s3://<ADMIN TEMPLATE BUCKET path>
    parameters:
      - parameter_key: UseCloudWatchMetricsAlarms
        parameter_value: "yes"
      - parameter_key: TicketGenFunctionName
        parameter_value: ""
      - parameter_key: ShouldDeployWebUI
        parameter_value: "yes"
      - parameter_key: AdminUserEmail
        parameter_value: "<YOUR EMAIL ADDRESS>"
      - parameter_key: LoadSCAdminStack
        parameter_value: "yes"
      - parameter_key: LoadCIS120AdminStack
        parameter_value: "no"
      - parameter_key: LoadCIS300AdminStack
        parameter_value: "no"
      - parameter_key: UseCloudWatchMetrics
        parameter_value: "yes"
      - parameter_key: LoadNIST80053AdminStack
        parameter_value: "no"
      - parameter_key: LoadCIS140AdminStack
        parameter_value: "no"
      - parameter_key: ReuseOrchestratorLogGroup
        parameter_value: "yes"
      - parameter_key: LoadPCI321AdminStack
        parameter_value: "no"
      - parameter_key: RemediationFailureAlarmThreshold
        parameter_value: "5"
      - parameter_key: LoadAFSBPAdminStack
        parameter_value: "no"
      - parameter_key: EnableEnhancedCloudWatchMetrics
        parameter_value: "no"
    deploy_method: stack_set
    deployment_targets:
     accounts: # :type: list
        - <ACCOUNT_NAME> # and/or
        - <ACCOUNT_NUMBER>
    regions:
      - <REGION_NAME>

  - name:  <ROLE MEMBER STACK NAME>
    resource_file: s3://<ROLE MEMBER TEMPLATE BUCKET path>
    parameters:
      - parameter_key: SecHubAdminAccount
        parameter_value: <ADMIN_ACCOUNT_NAME>
      - parameter_key: Namespace
        parameter_value: <NAMESPACE>
    deploy_method: stack_set
    deployment_targets:
      organizational_units:
        - <ORG UNIT>

  - name:  <MEMBER STACK NAME>
    resource_file: s3://<MEMBER TEMPLATE BUCKET path>
    parameters:
      - parameter_key: SecHubAdminAccount
        parameter_value: <ADMIN_ACCOUNT_NAME>
      - parameter_key: LoadCIS120MemberStack
        parameter_value: "no"
      - parameter_key: LoadNIST80053MemberStack
        parameter_value: "no"
      - parameter_key: Namespace
        parameter_value: <NAMESPACE>
      - parameter_key: CreateS3BucketForRedshiftAuditLogging
        parameter_value: "no"
      - parameter_key: LoadAFSBPMemberStack
        parameter_value: "no"
      - parameter_key: LoadSCMemberStack
        parameter_value: "yes"
      - parameter_key: LoadPCI321MemberStack
        parameter_value: "no"
      - parameter_key: LoadCIS140MemberStack
        parameter_value: "no"
      - parameter_key: EnableCloudTrailForASRActionLog
        parameter_value: "no"
      - parameter_key: LogGroupName
        parameter_value: <LOG_GROUP_NAME>
      - parameter_key: LoadCIS300MemberStack
        parameter_value: "no"
    deploy_method: stack_set
    deployment_targets:
     accounts: # :type: list
        - <ACCOUNT_NAME> # and/or
        - <ACCOUNT_NUMBER>
    organizational_units:
      - <ORG UNIT>
    regions: # :type: list
      - <REGION_NAME>
```

**2. コードパイプラインの更新**  
custom-control-tower-configuration.zip にマニフェストファイルを追加し、CodePipeline を実行します。「[code pipeline overview](https://docs.aws.amazon.com/controltower/latest/userguide/cfct-codepipeline-overview.html)」を参照してください。