Web UI
このソリューションのウェブ UI を使用すると、ユーザーは AWS Security Hub の検出結果をワンクリックで修復したり、過去の修復を表示およびダウンロードしたり、ソリューションへのアクセスを委任したりできます。
このソリューションを使用するのにウェブ UI は必要ありません。代わりに、完全自動修復を設定して手動での実行を回避したり、AWS Security Hub CSPM コンソールを活用して Remediate with ASR カスタムアクションを使用して修復を開始したりすることもできます。
注記
ソリューションのウェブ UI を使用するには、管理者スタックをデプロイするときに ShouldDeployWebUI パラメータを [はい] に設定する必要があります。
仕組み
ソリューションのウェブユーザーインターフェイスは、Amazon S3 によってアカウントでホストされ、Amazon CloudFront によって配布されるシングルページウェブアプリケーションです。このソリューションでは、API Gateway を使用して REST API もデプロイし、ウェブ UI でのオペレーションをサポートします。
管理者スタックがデプロイされると、ソリューションの Lambda 関数は、ソリューションでサポートされている、管理者アカウントにあるすべての AWS Security Hub の検出結果を DynamoDB に読み込み始めます。これが完了すると、ソリューションによってデプロイされた EventBridge ルールにより、ウェブ UI に表示される検出結果が Security Hub とほぼリアルタイムで同期されます。
毎週、ソリューションの Lambda 関数がトリガーされ、ウェブ UI に表示される AWS Security Hub の検出結果を保存する DynamoDB テーブルが更新されます。これにより、古いデータがクリーンアップされ、DynamoDB テーブルが最新の状態に保たれます。このベースラインの実行頻度を増やすか減らすように設定する場合は、ソリューションをデプロイしたのと同じリージョンの管理者アカウントにある SO0111-ASR-SynchronizationFindingsLambdaWeeklyRule という名前の EventBridge ルールを変更します。
ウェブ UI で直接修復を実行する
[検出結果] ページで、管理者または委任管理者のユーザーは、修復のためにソリューションでサポートされているすべての AWS Security Hub の検出結果を表示できます。これには、Security Hub プライマリアカウントでオンボーディングされた Security Hub メンバーアカウントの検出結果が含まれます。ソリューションが集約リージョンにもデプロイされている場合、オンボーディングされたリージョンの検出結果も表示されます。ソリューションでサポートされている検出結果のリストを表示するには、「プレイブックセクション」を参照してください。
アカウントオペレーターユーザーは、招待内で定義されているアクセス権を持つ AWS アカウントに由来する検出結果のみを表示できます。さらに、関連付けられているアカウントのリソースに対してのみ修復を実行できます。
修復を実行するには、テーブル内の任意の数の項目を選択し、[アクション] > [修復] をクリックします。[アクション] > [抑制] をクリックして、検出結果を抑制することもできます。これにより、選択した検出結果はデフォルトビューから非表示になります。[抑制された検出結果を表示] トグルをクリックすると、抑制された検出結果をいつでも表示できます。
検出結果の修復を開始したら、修復が In Progress または Failed のときに [修復ステータス] 列をクリックすると、[実行履歴] ページのその修復に直接移動できます。
利用可能な検出結果と修復をフィルタリングする
[検出結果] ページと [実行履歴] ページの両方で、各テーブルに存在する任意の列でテーブルに表示されるデータをフィルタリングできます。
例えば、[検出結果] ページで、検索バーをクリックして [検出結果タイプ] を選択すると、検出結果タイプでフィルタリングして、特定の種類の AWS Security Hub 検出結果 (Lambda.1 や Athena.4 など) を検索できます。
注記
検索バーに自動入力される値は、使用可能なデータの包括的なリストを示すものではありません。各検索条件に対して表示される候補値は、現在 UI 上で取得および表示されているデータのみを表しています。
1 回の検索で複数の属性を組み合わせることもできます。例えば、検索で [検出結果タイプ] と [リソース ID] の両方を適用して、論理 AND クエリを実行できます。さらに、複数の同じフィルター条件を適用して、検出結果タイプ = Lambda.1 や検出結果タイプ = Athena.4 などの論理 OR 検索を実行できます。[実行履歴] ページにも同じ原則が適用されます。
ウェブ UI での認証と認可
ソリューションのウェブ UI は、Amazon Cognito が提供する認証によって保護されます。ソリューションがデプロイされると、Cognito ユーザープール、Cognito アプリクライアント、および Cognito ユーザープールドメインがウェブ UI とともにプロビジョニングおよび設定されます。管理者スタックにパラメータとして提供される E メールアドレスには一時的な認証情報が割り当てられ、管理者にはウェブ UI へのアクセス権が付与されます。
ウェブ UI へのユーザーのアクセスを定義するアクセス権限のタイプは 3 つあります。
| アクセス許可タイプ | アクセスレベル | ユースケース |
|---|---|---|
|
管理者 |
ウェブ UI でのフルコントロール。すべての検出結果と修復を表示し、修復を実行し、任意のユーザーを招待/表示できます。 |
CloudFormation のデプロイ中に E メールアドレスが提供されると、管理者スタックをデプロイしたユーザーにのみ割り当てられます。 |
|
委任管理者 |
ウェブ UI での昇格コントロール。すべての検出結果と修復を表示し、修復を実行し、アカウントオペレーターユーザーを招待/表示できます。ウェブ UI で管理者と委任管理者を招待または表示することはできません。 |
管理者ユーザーは、修復を実行および管理できる委任管理者ユーザーを招待することで、ソリューションへのアクセス権を委任できます。 |
|
アカウントオペレーター |
ウェブ UI での限定コントロール。招待時に関連付けられたアカウントでのみ検出結果を表示および修復するよう制限されます。追加のユーザーを招待または表示することはできません。 |
オンボーディングされたアカウントの一部に対してのみ、修復を実行できるように制限されたアクセス権を持つ、日常業務向けのユーザー。管理者または委任管理者は、これらのユーザーを招待し、その適用範囲を定義する責任があります。 |
すべてのユーザーは、ウェブ UI にサインインする前に、管理者または委任管理者によって招待される必要があります。追加のユーザーを招待するには、管理者または委任管理者がウェブ UI の [ユーザーの招待] ページで E メールアドレスとアクセス権限のレベルを入力します。
管理者と委任管理者は、既存のユーザーを表示、管理、削除することもできます。すべてのユーザーのリストを表示するには、[ユーザーの表示] ページに移動します。
既存のユーザーを管理するには、テーブルからユーザーを選択し、[ユーザーを管理] をクリックします。その後、[ユーザーを削除] をクリックするとユーザーを削除できます。ユーザーがアカウントオペレーターの場合は、ソリューションのコンテキストでアクセスできる AWS アカウント ID のリストを変更できます。既存ユーザーのアクセス権限のタイプを変更することは、現在サポートされていません。
委任管理者はアカウントオペレーターユーザーの表示と管理のみを実行できることに注意してください。
外部 IdP との統合
ソリューションによって提供される認証メカニズムをカスタマイズして、ユーザーが Okta や Microsoft Entra ID などの独自の OIDC または SAML ID プロバイダーを使用してサインインできるようにすることができます。外部 IdP と統合するための次のステップでは、管理スタックがデプロイされている AWS アカウントへのアクセスが必要です。
重要
ユーザーは、ソリューションで動作するように設定されている外部 IdP を使用してサインインする前に、招待されている必要があります。さらに、IdP プロファイルにリンクされているメールアドレスは、招待に記載されている E メールアドレスと一致している必要があります。
ステップ 1 - ソリューションのユーザープールを見つける
Amazon Cognito コンソールで、SO0111-ASR-UserPool という名前のソリューションのユーザープールを見つけます。
[概要] ページに移動するには、ユーザープール名 SO0111-ASR-UserPool をクリックします。そこから、ナビゲーションバーで [ソーシャルプロバイダーと外部プロバイダー] を選択します。
ステップ 2 - ID プロバイダーを追加する
[ソーシャルプロバイダーと外部プロバイダー] ページで、右上にある [ID プロバイダーを追加] ボタンをクリックします。
ID プロバイダーに応じて、[OIDC] または [SAML] を選択します。
プロバイダーのタイプを選択すると、ID プロバイダーに関する情報を入力するように求められます。
SAML プロバイダーの次のフィールドに入力します。
-
プロバイダー名: プロバイダーのわかりやすい名前
-
IdP が開始した SAML サインイン:
Require SP-initiated SAML assertions - Recommendedを選択します -
メタデータドキュメントのソース:
Upload metadata documentを選択します -
メタデータドキュメント: IdP から提供された SAML メタデータドキュメントをアップロードします。
-
[SAML プロバイダーとユーザープール間の属性のマッピング] で、[別の属性の追加] をクリックします。[ユーザープール属性] では、ドロップダウンから
emailを選択します。[SAML 属性] では、ユーザーの E メールアドレスが SAML ID プロバイダーに保存されている属性のフルネームを入力します。例えば、http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress。 -
[ID プロバイダーを追加] をクリックして変更を保存します。
OIDC プロバイダーの次のフィールドに入力します。
-
プロバイダー名: プロバイダーのわかりやすい名前
-
クライアント ID: OpenID Connect ID プロバイダーによって提供されたクライアント ID を入力します。
-
クライアントシークレット: OpenID Connect ID プロバイダーによって提供されたクライアントシークレットを入力します。
-
許可されたスコープ:
openid profile emailを入力します。 -
属性のリクエストメソッド: ID プロバイダーの設定に基づいて、
GETまたはPOSTを選択します。 -
セットアップ方法:
Auto fill through issuer URLを選択して、OIDC プロバイダーからの発行者 URL を入力します。または、値を手動で入力します。 -
[OpenID Connect プロバイダーとユーザープール間の属性のマッピング] で、[別の属性の追加] をクリックします。[ユーザープール属性] では、ドロップダウンから
emailを選択します。[OpenID Connect 属性] では、ユーザーの E メールアドレスが OIDC ID プロバイダーに保存されている属性のフルネームを入力します。例えば、email。 -
[ID プロバイダーを追加] をクリックして変更を保存します。
重要
ID プロバイダーの属性名が email であっても、email ユーザープール属性の属性マッピングを追加する必要があります。
ステップ 3 - プロバイダーをソリューションのアプリクライアントに追加する
[アプリクライアント] ページに移動し、SO0111-ASR-WebUI-UserPoolClient という名前のクライアントを選択します。
[ログインページ] タブをクリックし、[マネージドログインページを編集] の下にある [編集] をクリックします。
[ID プロバイダー] フィールドに、前のステップで作成した ID プロバイダーを追加します。[Save Changes] (変更の保存) をクリックします。
ステップ 4 - ID プロバイダーを設定する
ログイン後に ID プロバイダーがソリューションのウェブ UI にリダイレクトできるようにするには、IdP 設定で次の URL を許可リストに登録する必要があります。
プロバイダーのタイプに応じて、次のいずれかのコールバック URL を許可リストに登録します。
-
SAML コールバック URL: https://so0111-asr-
<your-aws-account-id>.auth.<aws-region>.amazoncognito.com/saml2/idpresponse -
OIDC コールバック URL: https://so0111-asr-
<your-aws-account-id>.auth.<aws-region>.amazoncognito.com/oauth2/idpresponse
<your-aws-account-id> を管理者スタックをデプロイした AWSアカウント ID に、<aws-region> を管理者スタックをデプロイしたリージョンに置き換える必要があります。
ステップ 4 - 統合を検証する
[ウェブ UI ログイン] ページに移動します。ログインページにカスタム ID プロバイダーが表示されていることを確認します。
統合をテストするには、[ユーザーの招待] ページを使用して新しいユーザーを招待します。次に、[ウェブ UI ログイン] ページでユーザーがカスタム ID プロバイダーをクリックして認証できることを確認します。
カスタム IdP 内のユーザープロファイルは、招待に記載されているものと同じ E メールアドレスにリンクされている必要があることに注意してください。つまり、プロバイダーのクレーム内の E メールアドレスは招待と一致している必要があります。