自動デプロイ - StackSets
注記
StackSets を使用してデプロイすることをお勧めします。ただし、単一アカウントのデプロイ、テストまたは評価の目的の場合は、スタックのデプロイオプションを検討してください。
ソリューションを開始する前に、このガイドに記載されているアーキテクチャ、ソリューションコンポーネント、セキュリティ、設計に関する考慮事項を確認してください。このセクションのステップバイステップの手順に従ってソリューションを設定し、AWS Organizations 内にデプロイします。
デプロイ時間: StackSets パラメータによって、1 つのアカウントごとに約 30 分。
前提条件
AWS Organizations
以前に、このソリューションの v1.3.x 以前をデプロイしたことがある場合は、既存のソリューションをアンインストールする必要があります。詳細については、「ソリューションを更新する」を参照してください。
このソリューションをデプロイする前に、AWS Security Hub のデプロイを確認してください。
-
AWS Organizations には、委任された Security Hub の管理者アカウントが必要です。
-
Security Hub は、リージョン全体の検出結果を集約するように設定する必要があります。詳細については、AWS Security Hub ユーザーガイドの「リージョン間の検出結果を集約する」を参照してください。
-
AWS を使用するリージョンごとに、組織の Security Hub をアクティブ化する必要があります。
この手順では、AWS Organizations を使用する複数のアカウントがあり、AWS Organizations の管理者アカウントと AWS Security Hub の管理者アカウントを委任していることを前提としています。
このソリューションは、AWS Security Hub および AWS Security Hub CSPM の両方と連動することに注意してください。
デプロイの概要
注記
このソリューションの StackSets のデプロイでは、サービスマネージドとセルフマネージドの StackSets を組み合わせて使用しています。セルフマネージド StackSets では、サービスマネージド StackSets ではまだサポートされていないネストされた StackSets を使用しているため、今のところは使用する必要があります。
AWS Organizations の委任された管理者アカウントから 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: チケット作成統合スタックをデプロイする
-
チケット作成機能を使用する場合は、まずチケット作成統合スタックを Security Hub 管理者アカウントにデプロイします。
-
このスタックから Lambda 関数名をコピーし、管理者スタックへの入力として指定します (ステップ 1 を参照)。
ステップ 1: 委任された Security Hub の管理者アカウントで管理者スタックを起動する
-
セルフマネージド StackSets を使用して、AWS Security Hub の管理者と同じリージョンの AWS Security Hub の管理者アカウントで
automated-security-response-admin.templateAWS CloudFormation テンプレートを起動します。このテンプレートはネストされたスタックを使用します。 -
インストールするセキュリティ標準を選択します。デフォルトでは、SC のみが選択されます (推奨)。
-
使用する既存のオーケストレーターロググループを選択します。前回のインストールで
SO0111-ASR- Orchestratorがすでに存在する場合は、Yesを選択します。 -
ソリューションのウェブ UI を有効にするかどうかを選択します。この機能を有効にする場合は、管理者ロールを割り当てる E メールアドレスも入力する必要があります。
-
ソリューションの操作の状態に関連する CloudWatch メトリクスを収集するための設定を選択します。
セルフマネージド StackSets の詳細については、「AWS CloudFormation ユーザーガイド」の「セルフマネージドのアクセス許可を付与する」を参照してください。
ステップ 2: AWS Security Hub のメンバーアカウントごとに修復ロールをインストールする
ステップ 2 のテンプレートはステップ 1 で作成された IAM ロールを参照するため、ステップ 1 でデプロイが完了するまで待ちます。
-
サービスマネージド StackSet を使用して、AWS Organizations のアカウントごとに 1 つのリージョンで
automated-security-response-member-roles.templateAWS CloudFormation テンプレートを起動します。 -
新しいアカウントが組織に加わったときに、このテンプレートを自動的にインストールすることを選択します。
-
AWS Security Hub の管理者アカウントのアカウント ID を入力します。
-
同じアカウントで以前のデプロイまたは同時デプロイとリソース名が競合しないようにするために使用する
namespaceの値を入力します。最大 9 文字の小文字の英数字の文字列を入力します。
ステップ 3: 各 AWS Security Hub メンバーアカウントとリージョンでメンバースタックを起動する
-
セルフマネージド StackSets を使用して、同じ AWS Security Hub の管理者が管理する AWS Organizations のすべてのアカウントに AWS リソースがあるすべての AWS リージョンで、
automated-security-response-member.templateテンプレートを起動します。注記
サービスマネージド StackSets がネストされたスタックがサポートされるまでは、組織に加わる新しいアカウントに対してこの手順を実行する必要があります。
-
インストールするセキュリティ標準プレイブックを選択します。
-
CloudTrail ロググループの名前を指定します (一部の修復で使用されます)。
-
AWS Security Hub の管理者アカウントのアカウント ID を入力します。
-
同じアカウントで以前のデプロイまたは同時デプロイとリソース名が競合しないようにするために使用する
namespaceの値を入力します。最大 9 文字の小文字の英数字の文字列を入力します。これは、メンバーロールスタックに選択したnamespaceの値と一致する必要があります。また、名前空間の値はメンバーアカウントごとに一意である必要はありません。
(オプション) ステップ 0: チケットシステム統合スタックを起動する
-
チケット機能を使用する場合は、まずそれぞれの統合スタックを起動します。
-
Jira または ServiceNow 用に提供されている統合スタックを選択するか、独自のカスタム統合を実装するためのブループリントとして使用します。
Jira スタックをデプロイするには:
-
スタック名を入力します。
-
Jira インスタンスに URI を指定します。
-
チケットを送信する Jira プロジェクトのプロジェクトキーを指定します。
-
Jira
UsernameとPasswordを保持する新しいキーと値のシークレットを Secrets Manager に作成します。注記
ユーザー名を
Usernameとして、API キーをPasswordとして指定することで、パスワードの代わりに Jira API キーを使用することを選択できます。 -
このシークレットの ARN をスタックへの入力として追加します。
スタック名、Jira プロジェクト情報、Jira API 認証情報を指定します。
ServiceNow スタックをデプロイするには:
-
スタック名を入力します。
-
ServiceNow インスタンスの URI を指定します。
-
ServiceNow テーブル名を指定します。
-
書き込み先のテーブルを変更するアクセス許可を持つ API キーを ServiceNow に作成します。
-
キー
API_Keyを使用して Secrets Manager でシークレットを作成し、そのシークレットの ARN をスタックへの入力として提供します。スタック名、ServiceNow プロジェクト情報、ServiceNow API 認証情報を指定します。
カスタム統合スタックを作成するには: ソリューションオーケストレーター Step Functions が修復ごとに呼び出すことができる Lambda 関数を含めます。Lambda 関数は、Step Functions から提供された入力を受け取り、チケット発行システムの要件に従ってペイロードを構築し、システムにチケットの作成をリクエストする必要があります。
-
ステップ 1: 委任された Security Hub 管理者アカウントで管理者スタックを起動する
-
Security Hub の管理者アカウントで、管理者スタック
( automated-security-response-admin.template) をデプロイします。通常、1 つのリージョンの組織ごとに 1 つです。このスタックはネストされたスタックを使用するため、このテンプレートをセルフマネージド StackSet としてデプロイする必要があります。
Parameters
| パラメータ | デフォルト | 説明 |
|---|---|---|
|
Load SC Admin Stack |
|
SC コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。 |
|
Load AFSBP Admin Stack |
|
FSBP コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。 |
|
Load CIS120 Admin Stack |
|
CIS120 コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。 |
|
Load CIS140 Admin Stack |
|
CIS140 コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。 |
|
Load CIS300 Admin Stack |
|
CIS300 コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。 |
|
Load PC1321 Admin Stack |
|
PC1321 コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。 |
|
Load NIST Admin Stack |
|
NIST コントロールの自動修復のために管理コンポーネントをインストールするかどうかを指定します。 |
|
Reuse Orchestrator Log Group |
|
既存の |
|
ShouldDeployWebUI |
|
API Gateway、Lambda 関数、CloudFront ディストリビューションなどのウェブ UI コンポーネントをデプロイします。検出結果と修復ステータスを表示するためのウェブベースのユーザーインターフェイスを有効にするには、[はい] を選択します。この機能を無効にした場合でも、自動修復を設定し、Security Hub CSPM カスタムアクションを使用してオンデマンドで修復を実行できます。 |
|
AdminUserEmail |
(オプション入力) |
管理者ユーザーの E メールアドレス。このユーザーは、ASR ウェブ UI への完全な管理者アクセスを持ちます。ウェブ UI が有効になっている場合にのみ必要です。 |
|
Use CloudWatch Metrics |
|
ソリューションをモニタリングするために CloudWatch メトリクスを有効にするかどうかを指定します。これにより、メトリクスを表示するための CloudWatch ダッシュボードが作成されます。 |
|
Use CloudWatch Metrics Alarms |
|
ソリューションの CloudWatch メトリクスアラームを有効にするかどうかを指定します。これにより、ソリューションによって収集された特定のメトリクスのアラームが作成されます。 |
|
RemediationFailureAlarmThreshold |
|
コントロール ID あたりの修復失敗の割合のしきい値を指定します。例えば、 このパラメータは、アラームが作成された場合にのみ機能します (「CloudWatch メトリクスアラームを使用する」パラメータを参照)。 |
|
EnableEnhancedCloudWatchMetrics |
|
これに伴う追加コストについては、「コスト」セクションを参照してください。 |
|
TicketGenFunctionName |
(オプション入力) |
オプション。チケット発行システムを統合しない場合は、空白のままにします。それ以外の場合は、ステップ 0 のスタック出力から Lambda 関数名を指定します。例: |
StackSet オプションを設定する
-
[Account numbers] パラメータに、AWS Security Hub の管理者アカウントのアカウント ID を入力します。
-
[Specify regions] パラメータで、Security Hub の管理者がオンになっているリージョンのみを選択します。このステップが完了するまで待ってから、ステップ 2 に進みます。
ステップ 2: AWS Security Hub のメンバーアカウントごとに修復ロールをインストールする
サービスマネージド StackSets を使用して、メンバーロールテンプレートautomated-security-response-member-roles.template をデプロイします。この StackSet は、メンバーアカウントごとに 1 つのリージョンにデプロイする必要があります。ASR オーケストレーターステップ関数からのクロスアカウント API コールを許可するグローバルロールを定義します。
Parameters
| パラメータ | デフォルト | 説明 |
|---|---|---|
|
Namespace |
|
最大 9 文字の小文字の英数字の文字列を入力します。修復 IAM ロール名のサフィックスとして追加する一意の名前空間。メンバーロールとメンバースタックに、同じ名前空間を使用する必要があります。この文字列はソリューションのデプロイごとに一意である必要がありますが、スタックの更新時に変更する必要はありません。名前空間の値は、メンバーアカウントごとに一意である必要はありません。 |
|
Sec Hub アカウント管理者 |
|
AWS Security Hub 管理者アカウントの 12 桁のアカウント ID を入力します。この値は、管理者アカウントのソリューションロールにアクセス許可を付与します。 |
-
組織のポリシーに従って、組織全体 (通常) または組織単位にデプロイします。
-
AWS Organizations の新しいアカウントにこれらのアクセス許可が付与されるように、自動デプロイをオンにします。
-
[Specify regions] パラメータで、1 つのリージョンを選択します。IAM ロールはグローバルです。この StackSets がデプロイされている間に、ステップ 3 に進むことができます。
StackSet の詳細を指定する
ステップ 3: 各 AWS Security Hub メンバーアカウントとリージョンでメンバースタックを起動する
メンバースタック
Parameters
| パラメータ | デフォルト | 説明 |
|---|---|---|
|
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 |
|
SC コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。 |
|
Load AFSBP Member Stack |
|
FSBP コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。 |
|
Load CIS120 Member Stack |
|
CIS120 コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。 |
|
Load CIS140 Member Stack |
|
CIS140 コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。 |
|
Load CIS300 Member Stack |
|
CIS300 コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。 |
|
Load PC1321 Member Stack |
|
PC1321 コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。 |
|
NIST メンバースタックのロード |
|
NIST コントロールの自動修復のためにメンバーコンポーネントをインストールするかどうかを指定します。 |
|
Create S3 Bucket For Redshift Audit Logging |
|
FSBP RedShift.4 修復のために S3 バケットを作成する場合は、 |
|
Sec Hub Admin Account |
|
AWS Security Hub 管理者アカウントの 12 桁のアカウント ID を入力します。 |
|
Namespace |
|
最大 9 文字の小文字の英数字の文字列を入力します。この文字列は、IAM ロール名とアクションログ S3 バケットの一部になります。メンバースタックデプロイとメンバーロールスタックデプロイには同じ値を使用します。文字列はソリューションのデプロイごとに一意である必要がありますが、スタックの更新時に変更する必要はありません。 |
|
EnableCloudTrailForASRActionLog |
|
CloudWatch ダッシュボードのソリューションによって実施される管理イベントをモニタリングする場合は、 |
Accounts:
Deployment locations: アカウント番号または組織単位のリストを指定できます。
Specify regions: 検出結果を修復するすべてのリージョンを選択します。デプロイオプションは、アカウントとリージョンの数に応じて調整できます。リージョンの同時実行は並列にすることができます。