CIS AWS Foundations Benchmark のコントロール - AWS Security Hub
1.1 -「ルート」アカウントの使用を避ける1.2 - コンソールパスワードを持つすべての IAM ユーザーに対して多要素認証 (MFA) が有効であることを確認する 1.3 - 90 日以上使用されていない認証情報が無効にされていることを確認する1.4 - アクセスキーが 90 日以内にローテーションされることを確認する 1.5 - IAM パスワードポリシーで少なくとも 1 文字の大文字が要求されていることを確認する1.6 - IAM パスワードポリシーで少なくとも 1 文字の小文字が要求されていることを確認する1.7 - IAM パスワードポリシーで少なくとも 1 文字の記号が要求されていることを確認する1.8 - IAM パスワードポリシーで少なくとも 1 文字の数字が要求されていることを確認する1.9 - IAM パスワードポリシーで 14 文字以上の長さが要求されていることを確認する1.10 - IAM パスワードポリシーでパスワードの再使用が禁止されていることを確認する1.11 - IAM パスワードポリシーでパスワードが 90 日以内に有効期限切れとなることを確認する1.12 - ルートアカウントのアクセスキーが存在しないことを確認する1.13 - MFA が「ルート」アカウントに対して有効であることを確認する 1.14 - ハードウェア MFA が「ルート」アカウントに対して有効であることを確認する 1.16 - IAM ポリシーがグループまたはロールだけに添付されていることを確認する1.20 - AWS サポートでインシデントを管理するためのサポートロールが作成されていることを確認します。1.22 - 完全な「*:*」管理者権限を許可する IAM ポリシーが作成されていないことを確認する 2.1 - CloudTrail がすべてのリージョンで有効であることを確認する2.2. - CloudTrail ログファイル検証が有効であることを確認する 2.3 - S3 バケット CloudTrail ログが一般に公開されていないことを確認する2.4 - CloudTrail 追跡が Amazon CloudWatch Logs と統合されていることを確認する2.5 - AWS Config が有効になっていることを確認する2.6 - CloudTrail S3 バケットで、S3 バケットアクセスログ記録が有効であることを確認する 2.7 - CloudTrail ログが保管中に AWS KMS keys を使用して暗号化されていることを確認する2.8 - カスタマー作成の KMS キーのローテーションが有効になっていることを確認する2.9 - すべての VPC で VPC フローログ記録が有効であることを確認する 3.1 - 不正な API コールに対するログメトリクスフィルターとアラームが存在することを確認する 3.2 - MFA なしの AWS Management Console サインインに対するログメトリクスフィルターとアラームが存在することを確認する 3.3 -「ルート」アカウントの使用に対するログメトリクスフィルターとアラームが存在することを確認する 3.4 - IAM ポリシーの変更に対するログメトリクスフィルターとアラームが存在することを確認する 3.5 - CloudTrail 設定の変更に対するログメトリクスフィルターとアラームが存在することを確認する 3.6 - AWS Management Console 認証の失敗に対するログメトリクスフィルターとアラームが存在することを確認する 3.7 - カスタマーマネージドキーの無効化またはスケジュールされた削除に対するログメトリクスフィルターとアラームが存在することを確認する 3.8 - S3 バケットポリシーの変更に対するログメトリクスフィルターとアラームが存在することを確認する3.9 - AWS Config 設定の変更に対するログメトリクスフィルターとアラームが存在することを確認する 3.10 - セキュリティグループの変更に対するログメトリクスフィルターとアラームが存在することを確認する 3.11 - ネットワークアクセスコントロールリスト (NACL) の変更に対するログメトリクスフィルターとアラームが存在することを確認する3.12 - ネットワークゲートウェイへの変更に対するログメトリクスフィルターとアラームが存在することを確認する 3.13 - ルートテーブルの変更に対するログメトリクスフィルターとアラームが存在することを確認する 3.14 - VPC の変更に対するログメトリクスフィルターとアラームが存在することを確認する 4.1 - どのセキュリティグループも 0.0.0.0/0 からポート 22 への入力を許可していないことを確認する 4.2 - どのセキュリティグループも 0.0.0.0/0 からポート 3389 への入力を許可していないことを確認する 4.3 - すべての VPC のデフォルトセキュリティグループがすべてのトラフィックを制限していることを確認する

CIS AWS Foundations Benchmark のコントロール

CIS AWS Foundations 標準では、Security Hub は次のコントロールをサポートしています。各コントロールについて、必要な AWS Config ルールと修正ステップの情報が含まれます。

1.1 -「ルート」アカウントの使用を避ける

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

ルートアカウントは、AWS アカウントのすべてのリソースに無制限にアクセスできます。このアカウントを使用しないことを強くお勧めします。ルートアカウントは、最も権限があるアカウントです。このアカウントの使用を最低限にし、アクセス管理の最小特権の原則を採用することにより、高い権限を持つ認証情報の意図しない変更や偶発的な開示のリスクが軽減されます。

ベストプラクティスとしては、アカウントおよびサービス管理タスクの実行に必要な場合にのみ、ルート認証情報を使用します。IAM ポリシーは直接ユーザーに適用するのではなく、グループとロールに適用します。日常的に使用する管理者を設定する方法のチュートリアルについては、「IAM ユーザーガイド」の「最初の IAM 管理者のユーザーおよびグループの作成」を参照してください。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.3 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"}
    2. [Next] (次へ) を選択します。

  6. [Assign Metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric Name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. ナビゲーションペインで、[Alarms] (アラーム) を選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Select metric] (メトリクスの選択) を選択します。

    2. [Select metric] (メトリクスの選択) パネルの [All metrics] (すべてのメトリクス) タブで、LogMetrics 名前空間を選択します。検索バーを使用して検索できます。

    3. [Metrics with no dimensions] (ディメンションの定められていないメトリクス) を選択します。

    4. 作成したメトリクスのチェックボックスを選択します。次に [Select metric] (メトリクスの選択) を選択します。

    5. [Metric] (メトリクス) では、デフォルトの値のままにしておきます。

    6. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    7. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    8. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    9. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明を追加) に、アラームの [Name] (名前)と [Description] (説明)を CIS-1.1-RootAccountUsage のように入力します。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

1.2 - コンソールパスワードを持つすべての IAM ユーザーに対して多要素認証 (MFA) が有効であることを確認する

重要度:

AWS Config ルール: mfa-enabled-for-iam-console-access

スケジュールタイプ: 定期的

多要素認証 (MFA) は、ユーザー名とパスワードに更なる保護手段を追加します。MFA が有効な場合、AWS ウェブサイトにサインインするときに、ユーザー名とパスワードに加えて AWS MFA デバイスからの認証コードを求められます。

CIS では、コンソールパスワードを持つすべてのアカウントの MFA を有効にすることが推奨されています。MFA は、コンソールへのアクセスに対するセキュリティを強化します。認証プリンシパルは、一時的なキーを発行するデバイスを所有し、認証情報に関する知識を持っている必要があります。

重要

このチェックに使用される AWS Config ルールは、MFA の結果を正確にレポートするために最大 4 時間かかる場合があります。CIS セキュリティチェックを有効にした後の最初の 4 時間以内に生成された結果は、正確ではない可能性があります。また、この問題を修正してからチェックに成功するまでにも、最大 4 時間かかる場合があります。

修正

ユーザーの MFA を設定するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Users] (ユーザー) を選択します。

  3. MFA を設定するユーザーの [User name] (ユーザー名) を選択します。

  4. [Security credentials] (セキュリティ認証情報) を選択し、[Assigned MFA device] (割り当てられた MFA デバイス) の横の [Manage] (管理) を選択します。

  5. [Manage MFA Device] (MFA デバイスの管理) ウィザードに従って、ご利用の環境に応じたデバイスのタイプを割り当てます。

ユーザーに MFA 設定を委任する方法については、AWS セキュリティブログ記事「AWS IAM ユーザーに多要素認証の管理を委任する方法」を参照してください。

1.3 - 90 日以上使用されていない認証情報が無効にされていることを確認する

重要度:

AWS Config ルール: iam-user-unused-credentials-check

スケジュールタイプ: 定期的

IAM ユーザーは、パスワードやアクセスキーなどのさまざまなタイプの認証情報を使用して AWS リソースにアクセスできます。

CIS では、90 日以上使用されていないすべての認証情報を削除または非アクティブ化することが推奨されています。不要な認証情報を無効化または削除することにより、侵害または放棄されたアカウントに関連付けられている認証情報が使用される可能性が少なくなります。

このコントロールの AWS Config ルールでは、GetCredentialReport および GenerateCredentialReport API オペレーションを使用します。API オペレーションは 4 時間ごとにしか更新されません。IAM ユーザーへの変更がこのコントロールから確認できるようになるまでに、最大 4 時間かかる場合があります。

修正

認証情報が期限切れのアカウントをモニタリングするために必要な一部の情報を取得するには、IAM コンソールを使用します。例えば、お使いのアカウントのユーザーを表示すると、[Access key age] (アクセスキーの古さ)、[Password age] (パスワードの古さ)、および [Last activity] (最終アクティビティ) の列が表示されます。これらの列の値のいずれかが 90 日より大きい場合は、それらのユーザーの認証情報を非アクティブにします。

認証情報レポートを使用してユーザーアカウントをモニタリングし、90 日以上アクティビティのないアカウントを特定することもできます。IAM コンソールから認証情報レポートを .csv 形式でダウンロードできます。認証情報レポートの詳細については、「AWS アカウントの認証情報レポートの取得」を参照してください。

非アクティブなアカウントや使用されていない認証情報を特定したら、次のステップを使用してそれらを無効にします。

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Users] (ユーザー) を選択します。

  3. 90 日より以前の認証情報を持つユーザーの名前を選択します。

  4. [Security credentials] (セキュリティ認証情報) を選択し、次に 90 日以上使用されていないすべてのサインイン認証情報とアクセスキーに対して [Make inactive] (非アクティブにする) を選択します。

1.4 - アクセスキーが 90 日以内にローテーションされることを確認する

重要度:

AWS Config ルール: access-keys-rotated

スケジュールタイプ: 定期的

アクセスキーは、アクセスキー ID とシークレットアクセスキーで構成され、AWS に対して行うプログラムリクエストに署名するために使用されます。AWS ユーザーは、AWS Command Line Interface (AWS CLI)、Tools for Windows PowerShell、AWS SDK のいずれかから AWS に対してプログラム呼び出しを行うか、個々の AWS サービスの API を使用して直接 HTTP 呼び出しを行うために、独自のアクセスキーを必要とします。

アクセスキーを定期的にローテーションすることにより、侵害されたアカウントや終了したアカウントに関連付けられているアクセスキーが使用される可能性が低くなります。アクセスキーをローテーションして、紛失した、解読された、または盗難にあった可能性のある古いキーを使用してデータにアクセスできないようにします。

注記

このコントロールは、アフリカ (ケープタウン) およびヨーロッパ (ミラノ) ではサポートされていません。

修正

アクセスキーが 90 日間を越えて使用されないようにするには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Users] (ユーザー) を選択します。

  3. [Access key age] (アクセスキーの古さ) が 90 日を超えている各ユーザーに対して、[User name] (ユーザー名) を選択してそのユーザーの設定を開きます。

  4. [Security credentials] (セキュリティ認証情報) を選択します。

  5. ユーザーの新しいキーを作成するには:

    1. [Create access key] (アクセスキーの作成) を選択します。

    2. キーの内容を保存するには、シークレットアクセスキーをダウンロードするか、[Show] (表示) を選択した後でページからコピーします。

    3. ユーザーに提供するための安全な場所にキーを保存します。

    4. [Close] (閉じる) を選択します。

  6. 以前のキーを使用していたすべてのアプリケーションを更新し、新しいキーを使用するようにします。

  7. 以前のキーで、[Make inactive] (非アクティブにする) を選択してアクセスキーを非アクティブにします。これで、ユーザーがこのキーを使用してリクエストを行うことはできなくなりました。

  8. すべてのアプリケーションが新しいキーで想定どおりに機能することを確認します。

  9. すべてのアプリケーションが新しいキーで想定どおりに機能することを確認したら、以前のキーを削除します。削除した後で、アクセスキーを復元することはできません。

    以前のキーを削除するには、行の末尾にある X を選択し、[Delete] (削除) を選択します。

1.5 - IAM パスワードポリシーで少なくとも 1 文字の大文字が要求されていることを確認する

重要度:

AWS Config ルール: iam-password-policy

スケジュールタイプ: 定期的

パスワードポリシーは、パスワードの複雑さの要件をある程度強制します。IAM パスワードポリシーを使用して、パスワードで異なる文字セットを使用するようにします。

CIS では、パスワードポリシーで少なくとも 1 文字の大文字を要求することを推奨しています。パスワードの複雑さに関するポリシーを設定すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

修正

パスワードポリシーを変更するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Account settings] (アカウント設定) を選択します。

  3. [Requires at least one uppercase letter] (少なくとも 1 文字の大文字を要求する) を選択し、[Apply password policy] (パスワードポリシーの適用) を選択します。

1.6 - IAM パスワードポリシーで少なくとも 1 文字の小文字が要求されていることを確認する

重要度:

AWS Config ルール: iam-password-policy

スケジュールタイプ: 定期的

パスワードポリシーは、パスワードの複雑さの要件をある程度強制します。IAM パスワードポリシーを使用して、パスワードで異なる文字セットを使用するようにします。CIS では、パスワードポリシーで少なくとも 1 文字の小文字を要求することを推奨しています。パスワードの複雑さに関するポリシーを設定すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

修正

パスワードポリシーを変更するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Account settings] (アカウント設定) を選択します。

  3. [Requires at least one lowercase letter] (少なくとも 1 文字の小文字を要求する) を選択し、[Apply password policy] (パスワードポリシーの適用) を選択します。

1.7 - IAM パスワードポリシーで少なくとも 1 文字の記号が要求されていることを確認する

重要度:

AWS Config ルール: iam-password-policy

スケジュールタイプ: 定期的

パスワードポリシーは、パスワードの複雑さの要件をある程度強制します。IAM パスワードポリシーを使用して、パスワードで異なる文字セットを使用するようにします。

CIS では、パスワードポリシーで少なくとも 1 文字の記号を要求することを推奨しています。パスワードの複雑さに関するポリシーを設定すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

修正

パスワードポリシーを変更するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Account settings] (アカウント設定) を選択します。

  3. [Requires at least one non-alphanumeric character] (少なくとも 1 文字のアルファベット以外の文字を要求する) を選択し、[Apply password policy] (パスワードポリシーの適用) を選択します。

1.8 - IAM パスワードポリシーで少なくとも 1 文字の数字が要求されていることを確認する

重要度:

AWS Config ルール: iam-password-policy

スケジュールタイプ: 定期的

パスワードポリシーは、パスワードの複雑さの要件をある程度強制します。IAM パスワードポリシーを使用して、パスワードで異なる文字セットを使用するようにします。

CIS では、パスワードポリシーで少なくとも 1 文字の数字を要求することを推奨しています。パスワードの複雑さに関するポリシーを設定すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

修正

パスワードポリシーを変更するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Account settings] (アカウント設定) を選択します。

  3. [Requires at least one number] (少なくとも 1 文字の数字を要求する) を選択し、[Apply password policy] (パスワードポリシーの適用) を選択します。

1.9 - IAM パスワードポリシーで 14 文字以上の長さが要求されていることを確認する

重要度:

AWS Config ルール: iam-password-policy

スケジュールタイプ: 定期的

パスワードポリシーは、パスワードの複雑さの要件をある程度強制します。IAM パスワードポリシーを使用して、パスワードが指定された長さ以上になるようにします。

CIS では、パスワードポリシーで 14 文字以上の長さを要求することを推奨しています。パスワードの複雑さに関するポリシーを設定すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

修正

パスワードポリシーを変更するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Account settings] (アカウント設定) を選択します。

  3. [Minimum password length] (パスワードの最小長さ) フィールドに 14 と入力し、[Apply password policy] (パスワードポリシーの適用) を選択します。

1.10 - IAM パスワードポリシーでパスワードの再使用が禁止されていることを確認する

重要度:

AWS Config ルール: iam-password-policy

スケジュールタイプ: 定期的

このコントロールは、記憶するパスワードの数が 24 に設定されているかどうかをチェックします。値が 24 でない場合、コントロールは失敗します。

IAM パスワードポリシーにより、同じユーザーによる特定のパスワードの再使用を防ぐことができます。

CIS では、パスワードポリシーでパスワードの再使用を禁止することを推奨しています。パスワードの再使用を禁止すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

修正

パスワードポリシーを変更するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Account settings] (アカウント設定) を選択します。

  3. [Prevent password reuse] (パスワードの再使用を禁止する) を選択し、[Number of passwords to remember] (記憶するパスワードの数) に 24 を入力します。

  4. [Apply password policy] (パスワードポリシーの適用) を選択します。

1.11 - IAM パスワードポリシーでパスワードが 90 日以内に有効期限切れとなることを確認する

重要度:

AWS Config ルール: iam-password-policy

スケジュールタイプ: 定期的

IAM パスワードポリシーでは、指定された日数後にパスワードをローテーションするか、または有効期限切れにすることを要求できます。

CIS では、パスワードポリシーでパスワードを 90 日以内に有効期限切れにすることを推奨しています。パスワードの有効期間を短くすると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。定期的なパスワード変更の要求は、以下のシナリオでも役立ちます。

  • パスワードはユーザーが知らない間に、盗まれたり漏洩したりする可能性があります。これは、システムの侵害、ソフトウェアの脆弱性、または内部の脅威によって起こりえます。

  • 特定の企業や政府のウェブフィルターまたはプロキシサーバーは、暗号化されている場合でもトラフィックを傍受し記録できます。

  • 多くの人々が仕事、E メール、個人用など多くのシステムで同じパスワードを使用しています。

  • 侵害されたエンドユーザーのワークステーションに、キーストロークロガーが設置されている可能性があります。

修正

パスワードポリシーを変更するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Account settings] (アカウント設定) を選択します。

  3. [Enable password expiration] (パスワードの有効期限を有効にする) を選択し、[Password expiration period (in days)] (パスワードの有効期限 (日数)) に 90 と入力します。

  4. [Apply password policy] (パスワードポリシーの適用) を選択します。

1.12 - ルートアカウントのアクセスキーが存在しないことを確認する

重要度: 非常事態

AWS Config ルール: iam-root-access-key-check

スケジュールタイプ: 定期的

ルートアカウントは、AWS アカウントで最も権限があるユーザーです。AWSアクセスキーを使用すると、指定されたアカウントにプログラムからアクセスできます。

CIS では、ルートアカウントに関連付けられたすべてのアクセスキーを削除することを推奨しています。ルートアカウントに関連付けられたアクセスキーを削除すると、アカウントを侵害できる経路が制限されます。ルートアクセスキーを削除することで、最小特権のロールベースのアカウントの作成と使用も促進されます。

注記

このコントロールは、アフリカ (ケープタウン) およびアジアパシフィック (大阪) ではサポートされていません。

修正

アクセスキーを削除するには

  1. ルート認証情報を使用してアカウントにログインします。

  2. ページの右上隅近くにあるアカウント名を選択し、[My Security Credentials] (セキュリティ認証情報) を選択します。

  3. ポップアップ警告で、[Continue to Security Credentials] (セキュリティ認証情報に進む) を選択します。

  4. [Access keys (access key ID and secret access key)] (アクセスキー (アクセスキー ID とシークレットアクセスキー)) を選択します。

  5. 完全にキーを削除するには、[Delete] (削除) を選択し、次に [Yes] (はい) を選択します。削除したキーを復元することはできません。

  6. ルートユーザーアクセスキーが複数ある場合は、キーごとに手順 4 と 5 を繰り返します。

1.13 - MFA が「ルート」アカウントに対して有効であることを確認する

重要度: 非常事態

AWS Config ルール: root-account-mfa-enabled

スケジュールタイプ: 定期的

ルートアカウントは、アカウントで最も権限があるユーザーです。MFA は、ユーザー名とパスワードに更なる保護手段を追加します。MFA が有効な場合、AWS ウェブサイトにサインインするときに、ユーザー名とパスワードに加えて AWS MFA デバイスからの認証コードを求められます。

ルートアカウントに仮想 MFA を使用する場合、CIS では個人用デバイスでないデバイスを使用することを推奨しています。代わりに、各個人のデバイスとは独立して課金およびセキュリティ保護を維持できるように管理している、専用のモバイルデバイス (タブレットまたは電話) を使用してください。これにより、デバイスの紛失、デバイスの下取り、またはデバイスを所有する個人の離職のために MFA へのアクセスが失われるリスクが軽減されます。

注記

このコントロールは、次のリージョンではサポートされていません。

  • 中国 (北京)

  • 中国 (寧夏)

  • AWS GovCloud (米国東部)

  • AWS GovCloud (米国西部)。

修正

ルートアカウントの MFA を有効にするには

  1. ルート認証情報を使用してアカウントにログインします。

  2. ページの右上隅近くにあるアカウント名を選択し、[My Security Credentials] (セキュリティ認証情報) を選択します。

  3. ポップアップ警告で、[Continue to Security Credentials] (セキュリティ認証情報に進む) を選択します。

  4. [Multi-factor authentication (MFA)] (多要素認証 (MFA)) を選択します。

  5. [Activate MFA] (MFA の有効化) を選択します。

  6. MFA で使用するデバイスのタイプを選択し、[Continue] (続行) を選択します。

  7. 選択に応じて適切にデバイスタイプを設定するステップを完了します。

    1.14 - ハードウェア MFA が「ルート」アカウントに対して有効であることを確認する のチェックに成功するうえで最良の結果を得るためには、ハードウェアベースの認証メカニズムを選択します。

1.14 - ハードウェア MFA が「ルート」アカウントに対して有効であることを確認する

重要度: 非常事態

AWS Config ルール: root-account-hardware-mfa-enabled

スケジュールタイプ: 定期的

ルートアカウントは、アカウントで最も権限があるユーザーです。MFA は、ユーザー名とパスワードに更なる保護手段を追加します。MFA が有効な場合、AWS ウェブサイトにサインインするときに、ユーザー名とパスワードに加えて AWS MFA デバイスからの認証コードを求められます。

レベル 2 として、CIS ではハードウェア MFA を使用してルートアカウントを保護することを推奨しています。ハードウェア MFA では、仮想 MFA よりも攻撃対象領域が小さくなります。例えば、ハードウェア MFA には、仮想 MFA が存在しているモバイルスマートフォンによって導入される攻撃対象領域はありません。

あまりにも多くのアカウントでハードウェア MFA を使用すると、デバイス管理業務の観点で問題が発生する可能性があります。このような場合は、最も高いセキュリティを必要とするアカウントに対して、このレベル 2 の推奨事項を選択的に導入することを検討してください。その後、レベル 1 の推奨事項を残りのアカウントに適用できます。

タイムベースドワンタイムパスワード (TOTP) トークンと、ユニバーサルセカンドファクター (U2F) トークンの両方が、ハードウェア MFA オプションとして実行可能です。

注記

このコントロールは、次のリージョンではサポートされていません。

  • 中国 (北京)

  • 中国 (寧夏)

  • AWS GovCloud (米国東部)

  • AWS GovCloud (米国西部)。

修正

ルートアカウントのハードウェアベースの MFA を有効にするには

  1. ルート認証情報を使用してアカウントにログインします。

  2. ページの右上隅近くにあるアカウント名を選択し、[My Security Credentials] (セキュリティ認証情報) を選択します。

  3. ポップアップ警告で、[Continue to Security Credentials] (セキュリティ認証情報に進む) を選択します。

  4. [Multi-factor authentication (MFA)] (多要素認証 (MFA)) を選択します。

  5. [Activate MFA] (MFA の有効化) を選択します。

  6. MFA で使用するハードウェアベースの (仮想ではない) デバイスを選択し、[Continue] (続行) を選択します。

  7. 選択に応じて適切にデバイスタイプを設定するステップを完了します。

1.16 - IAM ポリシーがグループまたはロールだけに添付されていることを確認する

重要度:

AWS Config ルール: iam-user-no-policies-check

スケジュールタイプ: 変更がトリガーされた場合

デフォルトでは、IAM ユーザー、グループ、ロールには AWS リソースへのアクセス権はありません。IAM ポリシーは、ユーザー、グループ、またはロールに権限を付与する方法です。

CIS では、IAM ポリシーを直接ユーザーに適用するのではなく、グループとロールに適用することを推奨しています。グループレベルまたはロールレベルで権限を割り当てると、ユーザー数が増えたときのアクセス管理の複雑さが軽減されます。アクセス管理の複雑さを軽減することで、プリンシパルが誤って過剰な権限を受け取ったり保持したりする可能性を減らすことができます。

修正

この問題を解決するには、IAM グループを作成し、そのグループにポリシーを割り当て、ユーザーをグループに追加します。ポリシーは、グループ内の各ユーザーに適用されます。

IAM グループを作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Groups] (グループ) を選択し、[Create New Group] (新しいグループの作成) を選択します。

  3. 作成するグループの名前を入力し、[Next Step] (次のステップ) を選択します。

  4. グループに割り当てる各ポリシーを選択し、[Next Step] (次のステップ) を選択します。

    選択したポリシーには、現在ユーザーアカウントに直接添付されているすべてのポリシーが含まれている必要があります。失敗したチェックを解決するための次のステップは、ユーザーをグループに追加してから、そのグループにポリシーを割り当てることです。グループ内の各ユーザーには、そのグループに割り当てられたポリシーが割り当てられます。

  5. [Review] (確認) ページで詳細を確認した後、[Create Group] (グループの作成) を選択します。

グループの作成の詳細については、「IAM ユーザーガイド」の「IAM グループの作成」を参照してください。

IAM グループにユーザーを追加するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Groups] (グループ) を選択します。

  3. [Group Actions] (グループアクション) で、[Add Users to Group] (ユーザーをグループに追加) を選択します。

  4. グループに追加するユーザーを選択し、[Add Users] (ユーザーを追加) を選択します。

グループへのユーザーの追加の詳細については、「IAM グループへのユーザーの追加と削除」を参照してください。

ユーザーに直接添付されているポリシーを削除するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Users] (ユーザー) を選択します。

  3. ポリシーをデタッチするユーザーに対して、[User name] (ユーザー名) 列から名前を選択します。

  4. [Attached directly] (直接添付) に一覧表示されている各ポリシーに対して、ページの右側にあるユーザーからポリシーを削除するための X を選択して、[Remove] (削除) を選択します。

  5. 想定したとおりにユーザーが AWS サービスを引き続き利用できることを確認します。

1.20 - AWS サポートでインシデントを管理するためのサポートロールが作成されていることを確認します。

重要度:

AWS Config ルール: iam-policy-in-use

スケジュールタイプ: 定期的

AWS では、インシデントの通知と対応、およびテクニカルサポートとカスタマーサービスに使用できるサポートセンターが提供されています。

IAM ロールを作成して、認可済みのユーザーが AWS サポートでインシデントを管理できるようにします。アクセスコントロールに最小特権を導入することにより、IAM ロールには、AWS サポートでのインシデントの管理のためにサポートセンターにアクセスすることを許可する、適切な IAM ポリシーが必要になります。

注記

このコントロールは、次のリージョンではサポートされていません。

  • アフリカ (ケープタウン)

  • アジアパシフィック (大阪)

  • ヨーロッパ (ミラノ)

修正

この問題を修正するには、認可済みのユーザーに AWS サポートインシデントの管理を許可するロールを作成します。

AWS サポートへのアクセスに使用するロールを作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. IAM ナビゲーションペインで [Roles] (ロール) を選択し、続いて [Create role] (ロールの作成) を選択します。

  3. [Role type] (ロールタイプ) で、[Another AWS account] (別の AWS アカウント) を選択します。

  4. [Account ID] (アカウント ID) に、リソースへのアクセスを許可する AWS アカウントの AWS アカウント ID を入力します。

    このロールを引き受けるユーザーまたはグループが同じアカウントに属している場合は、ローカルアカウント番号を入力します。

    注記

    指定したアカウントの管理者は、そのアカウントのすべての IAM ユーザーに、このロールを引き受ける許可を付与できます。そのためには、管理者から sts:AssumeRole アクションの許可を付与するユーザーまたはグループにポリシーを添付します。そのポリシーで、リソースはロール ARN である必要があります。

  5. [Next: Permissions] (次へ: 許可) を選択します。

  6. マネージドポリシー AWSSupportAccess を検索します。

  7. AWSSupportAccess マネージドポリシーのチェックボックスを選択します。

  8. [Next: Tags] (次へ: タグ) を選択します。

  9. (オプション) ロールにメタデータを追加するには、キーバリューのペアとしてタグを添付します。

    IAM でのタグの使用の詳細については、「IAM ユーザーガイド」の「IAM ユーザーとロールのタグ付け」を参照してください。

  10. [Next: Review] (次へ: レビュー) を選択します。

  11. [Role name] (ロール名) に、ロールの名前を入力します。

    ロール名は AWS アカウント内で一意でなければなりません。大文字と小文字は区別されません。

  12. (オプション) [Role description] (ロールの説明) に、新しいロールの説明を入力します。

  13. ロールを確認し、[Create role] (ロールの作成) を選択します。

1.22 - 完全な「*:*」管理者権限を許可する IAM ポリシーが作成されていないことを確認する

重要度:

AWS Config ルール: iam-policy-no-statements-with-admin-access

スケジュールタイプ: 変更がトリガーされた場合

IAM ポリシーは、ユーザー、グループ、またはロールに付与される権限のセットを定義します。最小特権、つまりタスクを実行するために必要な許可のみを付与することが推奨されており、標準的なセキュリティアドバイスと見なされています。完全な管理者権限を許可するのではなく、ユーザーが何をする必要があるのかを決定し、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。

最初は最小限の許可から開始し、必要な場合には追加の許可を認める方が、最初にあまりにも寛大に許可を認めてから、後で規制を厳しくしようとするより安全です。ユーザーが実行する必要がある最小限の許可セットに制限せずに、完全な管理特権を付与すると、リソースが望ましくない可能性のあるアクションにさらされます。

"Effect": "Allow" および "Action": "*" "Resource": "*" に対して規定されたステートメントを持つ IAM ポリシーは削除する必要があります。

修正

IAM ポリシーを変更するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [Policies] (ポリシー) を選択します。

  3. 削除するポリシーの横にあるラジオボタンを選択します。

  4. [Policy actions] (ポリシーアクション) ドロップダウンメニューから [Detach] (デタッチ) を選択します。

  5. [Detach policy] (ポリシーのデタッチ) ページで、ポリシーをデタッチする各ユーザーの横にあるラジオボタンを選択して、[Detach policy] (ポリシーのデタッチ) を選択します。

ポリシーをデタッチしたユーザーが、想定どおりに AWS サービスおよびリソースに引き続きアクセスできることを確認します。

2.1 - CloudTrail がすべてのリージョンで有効であることを確認する

重要度: 非常事態

AWS Config ルール: multi-region-cloudtrail-enabled

スケジュールタイプ: 定期的

このコントロールは、マルチリージョンの CloudTrail 追跡が少なくとも 1 つあることをチェックします。また、ExcludeManagementEventSources パラメータは少なくとも 1 つの軌跡に対して空です。

CloudTrail はお客様のアカウントの AWS API コールを記録し、ログファイルを送信するサービスです。記録される情報には、API コール元のアイデンティティ、API コールの時刻、API コール元のソース IP アドレス、リクエストパラメータおよび AWS サービスから返されたレスポンス要素が含まれます。CloudTrail は、アカウントの AWS API コールの履歴を提供します。これには、AWS Management Console、AWS SDK、コマンドラインツール、AWS CloudFormation などの上位レベルの AWS のサービスを介して実行された API コールが含まれます。

CloudTrail で生成される AWS API コールの履歴を利用して、セキュリティ分析、リソース変更の追跡、およびコンプライアンスの監査を行うことができます。また、以下も可能になります。

  • マルチリージョンの追跡の存在を確認することにより、本来使用されるべきでないリージョンで発生した予期しないアクティビティを確実に検出できます

  • マルチリージョンの追跡の存在を確認することにより、AWS グローバルサービスで生成されたイベントの記録をキャプチャするための、グローバルサービスログ記録が追跡に対してデフォルトで有効になります

  • マルチリージョンの追跡の場合、すべての種類の読み取り/書き込みに対して管理イベントを設定することにより、AWS アカウントのすべてのリソースに対して実行された管理オペレーションが確実に記録されます

デフォルトでは、AWS Management Console を使用して作成される CloudTrail 追跡はマルチリージョン追跡です。

修正

CloudTrail に新しい追跡を作成するには

  1. AWS Management Console にサインインし、CloudTrail コンソールを開きます (https://console.aws.amazon.com/cloudtrail/)。

  2. これまでに CloudTrail を使用したことがない場合は、[Get Started Now] (今すぐ始める) を選択します。

  3. [Trails] (追跡) を選択し、[Create trail] (追跡の作成) を選択します。

  4. 追跡の名前を入力します。

  5. [Storage location] (ストレージのロケーション) で、次のいずれかの操作を行います。

    • CloudTrail ログ用に新しい S3 バケットを作成するには、[Create new S3 bucket] (新しい S3 バケットの作成) を選択し、新しい S3 バケットの名前を入力します。

    • [Use existing S3 bucket] (既存の S3 バケットを使用する) を選択し、次に使用するバケットを選択します。

  6. [Additional settings] (追加設定) を選択し、[Log file validation] (ログファイルの検証) で [Enabled] (有効) を選択して、2.2. - CloudTrail ログファイル検証が有効であることを確認する に成功するようにします。

  7. 2.4 - CloudTrail 追跡が Amazon CloudWatch Logs と統合されていることを確認する に成功するようにするには、CloudWatch Logs を有効にする必要があります。

    1. CloudWatch Logs で、[Enabled] (有効) チェックボックスを選択します。

    2. [Log group] (ロググループ) で、次のいずれかの操作を行います。

      • 既存のロググループを使用するには、[Existing] (既存) を選択し、使用するロググループの名前を入力します。

      • 新しいロググループを作成するには、[New] (新規) を選択し、作成するロググループの名前を入力します。

    3. [IAM role] (IAM ロール) で、次のいずれかを実行します。

      • 既存のロールを使用する場合は、[Existing] (既存) を選択し、次にドロップダウンリストからロールを選択します。

      • 新しいロールを作成する場合は、[New] (新規) を選択し、作成するロールの名前を入力します。新しいロールには、必要な許可を付与するポリシーが割り当てられます。

        ロールに付与された許可を表示するには、[Policy document] (ポリシードキュメント) を展開します。

  8. [Create] (作成) を選択します。

CloudTrail の既存の追跡を更新するには

  1. AWS Management Console にサインインし、CloudTrail コンソールを開きます (https://console.aws.amazon.com/cloudtrail/)。

  2. [Trails] (追跡) を選択します。

  3. [Name] (名前) 列で追跡の名前を選択します。

  4. 必要に応じて、追跡の設定を更新します。

    特定のセクションの設定を更新するには、次の操作を行います。

    1. 更新するセクションの [Edit] (編集) を選択します。

    2. 設定に必要な更新を行います。

    3. [Save changes] (変更の保存) を選択します。

2.2. - CloudTrail ログファイル検証が有効であることを確認する

重要度:

AWS Config ルール: cloud-trail-log-file-validation-enabled

スケジュールタイプ: 定期的

CloudTrail ログファイル検証では、CloudTrail が S3 に書き込む各ログのハッシュを含む、デジタル署名されたダイジェストファイルが作成されます。これらのダイジェストファイルを使用して、CloudTrail がログを配信した後でログファイルが変更、削除、または変更されなかったかどうかを判断できます。

CIS では、すべての追跡でファイルの検証を有効にすることを推奨しています。ログファイルの検証を有効にすると、CloudTrail ログの追加の整合性チェックが行われます。

修正

CloudTrail のログファイル検証を有効にするには

  1. CloudTrail コンソール (https://console.aws.amazon.com/cloudtrail/) を開きます。

  2. [Trails] (追跡) を選択します。

  3. [Name] (名前) 列で編集する追跡の名前を選択します。

  4. [General details] (一般的な詳細) で、[Edit] (編集) を選択します。

  5. [Additional settings] (追加設定) の [Log file validation] (ログファイルの検証) で、[Enabled] (有効) を選択します。

  6. [Save] (保存) を選択します。

2.3 - S3 バケット CloudTrail ログが一般に公開されていないことを確認する

重要度: 非常事態

AWS Config ルール: s3-bucket-public-read-prohibiteds3-bucket-public-write-prohibited

スケジュールタイプ: 定期的および変更がトリガーされた場合

CloudTrail は、アカウント内で実行された API コールをすべて記録します。これらのログファイルは S3 バケットに保存されます。CIS では、CloudTrail が記録する S3 バケットに S3 バケットポリシーまたはアクセスコントロールリスト (ACL) を適用して、CloudTrail ログへのパブリックアクセスを禁止することを推奨しています。CloudTrail ログコンテンツへのパブリックアクセスを許可すると、攻撃者が感染したアカウントの使用または設定における弱点を特定する手助けとなる可能性があります。

このチェックを実行するために、Security Hub は最初にカスタムロジックを使用して、CloudTrail ログが保存されている S3 バケットを探します。次に AWS Config マネージドルールを使用して、バケットがパブリックにアクセス可能であることを確認します。

ログを単一の集中管理 S3 バケットに集約する場合、Security Hub は、集中管理された S3 バケットがあるアカウントとリージョンに対してのみチェックを実行します。他のアカウントとリージョンでは、コントロールステータスは [No data] (データなし) となります。

バケットがパブリックアクセス可能な場合、チェックにより結果 (失敗) が生成されます。

修正

Amazon S3 バケットに対するパブリックアクセスを削除するには

  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. CloudTrail が保存されているバケットの名前を選択します。

  3. [Permissions] (許可) を選択し、[Public access settings] (パブリックアクセス設定) を選択します。

  4. [Edit] (編集) を選択し、4 つのオプションをすべて選択して、次に [Save] (保存) を選択します。

  5. プロンプトが表示されたら、confirm を入力して [Confirm] (確認) を選択します。

2.4 - CloudTrail 追跡が Amazon CloudWatch Logs と統合されていることを確認する

重要度:

AWS Config ルール: cloud-trail-cloud-watch-logs-enabled

スケジュールタイプ: 定期的

CloudTrail は、指定されたアカウントで実行された AWS API コールを記録するウェブサービスです。記録される情報には、API コール元のアイデンティティ、API コールの時刻、API コール元のソース IP アドレス、リクエストパラメータおよび AWS サービスから返されたレスポンス要素が含まれます。

CloudTrail はログファイルの保存と配信に Amazon S3 を使用するため、ログファイルは永続的に保存されます。指定された Amazon S3 バケットに CloudTrail ログをキャプチャして長期的な分析を行うだけでなく、ログを CloudWatch Logs に送信するように CloudTrail を設定することで、リアルタイム分析を実行できます。

アカウント内のすべてのリージョンで有効になっている追跡では、CloudTrail はそれらすべてのリージョンからログファイルを CloudWatch Logs ロググループに送信します。

CIS では、CloudWatch Logs に CloudTrail ログを送信することを推奨しています。

注記

この推奨事項の目的は、アカウントアクティビティがキャプチャおよびモニタリングされ、適切にアラームが出されるようにすることです。CloudWatch Logs は、AWS サービスを使用してこれを実現するためのネイティブな方法ですが、代替ソリューションの使用を排除するものではありません。

CloudTrail ログを CloudWatch Logs に送信すると、ユーザー、API、リソース、および IP アドレスに基づいてリアルタイムおよび過去のアクティビティを簡単にログに記録できます。異常または機密性の高いアカウントアクティビティに対するアラームと通知を設定する機会を提供します。

修正

CloudTrail 追跡が CloudWatch Logs に統合されていることを確認するには

  1. CloudTrail コンソール (https://console.aws.amazon.com/cloudtrail/) を開きます。

  2. [Trails] (追跡) を選択します。

  3. [CloudWatch Logs Log group] (CloudWatch Logs ロググループ) 列に値のない追跡を選択します。

  4. CloudWatch Logs セクションまで下にスクロールし、[Edit] (編集) を選択します。

  5. [Enabled] (有効) チェックボックスを選択します。

  6. [Log group] (ロググループ) で、次のいずれかの操作を行います。

    • 既存のロググループを使用するには、[Existing] (既存) を選択し、使用するロググループの名前を入力します。

    • 新しいロググループを作成するには、[New] (新規) を選択し、作成するロググループの名前を入力します。

  7. [IAM role] (IAM ロール) で、次のいずれかを実行します。

    • 既存のロールを使用する場合は、[Existing] (既存) を選択し、次にドロップダウンリストからロールを選択します。

    • 新しいロールを作成する場合は、[New] (新規) を選択し、作成するロールの名前を入力します。新しいロールには、必要な許可を付与するポリシーが割り当てられます。

      ロールに付与された許可を表示するには、[Policy document] (ポリシードキュメント) を展開します。

  8. [Save changes] (変更の保存) を選択します。

詳細については、「AWS CloudTrail ユーザーガイド」の「コンソールを使用して CloudWatch Logs のモニタリングを設定する」を参照してください。

2.5 - AWS Config が有効になっていることを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

AWS Config は、アカウント内のサポートされている AWS リソースの設定管理を実行し、ログファイルを配信するウェブサービスです。記録される情報には、設定項目 (AWS リソース)、設定項目 (AWS リソース) 間の関係、およびリソース間の設定変更が含まれます。

CIS では、すべてのリージョンで AWS Config を有効にすることを推奨しています。AWS Config がキャプチャする AWS 設定項目の履歴により、セキュリティ分析、リソース変更の追跡、およびコンプライアンスの監査を行うことができます。

注記

CIS 2.5 では、Security Hub を使用するすべてのリージョンで AWS Config を有効にすることが要求されています。

Security Hub はリージョナルサービスであるため、このコントロールに対して実行されるチェックでは、アカウントの現在のリージョンのみがチェックされます。すべてのリージョンが確認されるわけではありません。

また、グローバルリソースを記録して、グローバルリソースに対するセキュリティチェックを各リージョンで確認できるようにする必要もあります。グローバルリソースを 1 つのリージョンにのみ記録する場合は、グローバルリソースを記録するリージョン以外のすべてのリージョンでこのコントロールを無効にすることができます。

このチェックを実行するために、Security Hub はカスタムロジックを実行して、CIS AWS Foundations Benchmark v1.2 で規定された監査ステップを実行します。Security Hub はリージョナルサービスであり、リージョンごとにセキュリティチェックを実行するため、Security Hub では各リージョンにグローバルリソースが記録されている必要もあります。

修正

AWS Config 設定を構成するには

  1. AWS Config コンソール (https://console.aws.amazon.com/config/) を開きます。

  2. AWS Config を設定するリージョンを選択します。

  3. 以前に AWS Config を使用したことがない場合は、[Get started] (今すぐ始める) を選択します。

  4. [Settings] (設定) ページで、以下の操作を行います。

    • [Resource types to record] (記録するリソースタイプ) で、[Record all resources supported in this region] (このリージョンでサポートされているすべてのリソースを記録する) および [Include global resources (e.g., AWS IAM resources)] (グローバルリソースを含む (例: AWS IAM リソース)) を選択します。

    • [Amazon S3 bucket] (Amazon S3 バケット) で、バケットを使用するか、バケットを作成し、必要に応じてプレフィックスを含めます。

    • [Amazon SNS topic] (Amazon SNS トピック) で、アカウントから Amazon SNS トピックを選択するか、トピックを作成します。Amazon SNS の詳細については、「Amazon Simple Notification Service の使用開始ガイド」を参照してください。

    • [AWS Config role] (AWS Config ロール) で、[Create AWS Config service-linked role] (AWS Config サービスにリンクされたロールの作成) を選択するか、[Choose a role from your account] (アカウントからロールの選択) を選択して、使用するロールを選択します。

  5. [Next] (次へ) を選択します。

  6. [AWS Config rules] (AWS Config ルール) ページで、[Skip] (スキップ) を選択します。

  7. [Confirm] (確認) を選択します。

AWS Command Line Interface から AWS Config を使用する方法の詳細については、「AWS Config 開発者ガイド」の「AWS Config の有効化」を参照してください。

AWS CloudFormation テンプレートを使用してこのプロセスを自動化することもできます。詳細については、「AWS CloudFormation ユーザーガイド」の「AWS CloudFormation StackSets サンプルテンプレート」を参照してください。

2.6 - CloudTrail S3 バケットで、S3 バケットアクセスログ記録が有効であることを確認する

重要度:

AWS Config ルール: s3-bucket-logging-enabled

スケジュールタイプ: 変更がトリガーされた場合

Amazon S3 バケットアクセスログ記録により、S3 バケットに対して行われたリクエストごとのアクセスレコードを含むログが生成されます。アクセスログレコードには、リクエストのタイプ、リクエストに指定されたリソース、リクエストが処理された日時など、リクエストの詳細が記録されます。

CIS では、CloudTrail S3 バケットでバケットアクセスログ記録を有効にすることを推奨しています。

ターゲット S3 バケットで S3 バケットのログ記録を有効にすることで、ターゲットバケット内のオブジェクトに影響を与える可能性のあるすべてのイベントをキャプチャできます。ログを別のバケットに配置するように設定すると、ログ情報にアクセスできるようになり、セキュリティおよびインシデント対応のワークフローで役立ちます。

このチェックを実行するために、Security Hub は最初にカスタムロジックを使用して、CloudTrail ログが保存されているバケットを探してから、AWS Config マネージドルールを使用して、ログ記録が有効になっているかどうかを確認します。

ログを単一の集中管理 S3 バケットに集約する場合、Security Hub は、集中管理された S3 バケットがあるアカウントとリージョンに対してのみチェックを実行します。他のアカウントとリージョンでは、コントロールステータスは [No data] (データなし) となります。

バケットがパブリックアクセス可能な場合、チェックにより結果 (失敗) が生成されます。

修正

S3 バケットのアクセスログ記録を有効にするには

  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. CloudTrail に使用するバケットを選択します。

  3. [Properties] (プロパティ) を選択します。

  4. [Server access logging] (サーバーアクセスのログ記録) を選択し、[Enable logging] (ログ記録を有効にする) を選択します。

  5. [Target bucket] (ターゲットバケット) リストからバケットを選択し、必要に応じてプレフィックスを入力します。

  6. [Save] (保存) を選択します。

2.7 - CloudTrail ログが保管中に AWS KMS keys を使用して暗号化されていることを確認する

重要度:

AWS Config ルール: cloud-trail-encryption-enabled

スケジュールタイプ: 定期的

CloudTrail は、アカウントに対する AWS API コールを記録し、それらのログを IAM ポリシーに従ってユーザーおよびリソースが利用できるようにするウェブサービスです。AWS Key Management Service (AWS KMS) は、アカウントデータの暗号化に使用される暗号化キーの作成と管理を支援するマネージドサービスであり、ハードウェアセキュリティモジュール (HSM) を使用して暗号化キーのセキュリティを保護します。

サーバーサイド暗号化 (SSE) 機能および KMS キーを活用するように CloudTrail ログを設定して、CloudTrail ログをさらに保護することができます。

CIS では、SSE-KMS を使用するように CloudTrail を設定することを推奨しています。

SSE-KMS を使用するように CloudTrail を設定すると、ユーザーには対応するログバケットに対する S3 の読み取り許可と、KMS キーポリシーによる復号化許可の付与が必要になるため、ログデータに対する機密性管理が向上します。

修正

CloudTrail ログの暗号化を有効にするには

  1. CloudTrail コンソール (https://console.aws.amazon.com/cloudtrail/) を開きます。

  2. [Trails] (追跡) を選択します。

  3. 更新する追跡を選択します。

  4. [Storage location] (ストレージの場所) で、鉛筆アイコンを選択して設定を編集します。

  5. [Encrypt log files with SSE-KMS] (SSE-KMS でログファイルを暗号化する) で、[Yes] (はい) を選択します。

  6. [Create a new KMS key] (新規の KMS キーの作成) で、次のいずれかの操作を行います。

    • キーを作成するには、[Yes] (はい) を選択し、[KMS key] (KMS キー) フィールドにキーのエイリアスを入力します。キーは、バケットと同じリージョンに作成されます。

    • 既存のキーを使用するには、[No] (いいえ) を選択し、[KMS key] (KMS キー) リストからキーを選択します。

    注記

    AWS KMS キーおよび S3 バケットは同じリージョンにある必要があります。

  7. [Save] (保存) を選択します。

KMS キーと正常にやり取りするためには、CloudTrail のポリシーを変更する必要がある場合があります。詳細については、「AWS CloudTrail ユーザーガイド」の「AWS KMS マネージドキー (SSE-KMS) による CloudTrail ログファイルの暗号化」を参照してください。

2.8 - カスタマー作成の KMS キーのローテーションが有効になっていることを確認する

重要度:

AWS Config ルール: cmk-backing-key-rotation-enabled

スケジュールタイプ: 定期的

AWS KMS では、お客様はバッキングキーをローテーションすることができます。バッキングキーは、AWS KMS に保存されているキーマテリアルであり、KMS キーのキー ID に関連付けられています。バッキングキーは、暗号化や復号化などの暗号化オペレーションを実行するために使用されます。現在、キーの自動ローテーションでは以前のすべてのバッキングキーが保持されるため、暗号化したデータは透過的に復号化できます。

CIS では、KMS キーのキーローテーションを有効にすることを推奨しています。新しいキーで暗号化されたデータは、漏洩した可能性がある以前のキーではアクセスできないため、暗号化キーをローテーションすることで、漏洩したキーにより起こる可能性のある被害を減らすことができます。

修正

KMS キーローテーションを有効にするには

  1. AWS KMS コンソール (https://console.aws.amazon.com/kms) を開きます。

  2. AWS リージョン を変更するには、ページの右上隅にあるリージョンセレクターを使用します。

  3. [Customer managed keys] (カスタマーマネージドキー) を選択します。

  4. [Alias] (エイリアス) 列で、更新するキーのエイリアスを選択します。

  5. [Key rotation] (キーローテーション) を選択します。

  6. [Automatically rotate this KMS key every year] (この KMS キーを毎年自動的にローテーションする) を選択し、[Save] (保存) を選択します。

2.9 - すべての VPC で VPC フローログ記録が有効であることを確認する

重要度:

AWS Config ルール: vpc-flow-logs-enabled

スケジュールタイプ: 定期的

VPC フローログは、VPC のネットワークインターフェイスとの間を行き来する IP トラフィックに関する情報をキャプチャできるようにする機能です。フローログを作成すると、そのデータを CloudWatch Logs で表示して、取得できるようになります。

CIS では、VPC のパケット拒否のフローログ記録を有効にすることを推奨しています。フローログは、VPC を通過するネットワークトラフィックを可視化し、セキュリティワークフロー中の異常なトラフィックの検出やインサイトの入手を可能にします。

修正

VPC フローログ記録を有効にするには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. [Your VPCs] (お使いの VPC) を選択します。

  3. 更新する VPC を選択します。

  4. ページの下部に表示される [Flow Logs] (フローログ) タブを選択します。

  5. [Create flow log] (フローログの作成) を選択します。

  6. [Filter] (フィルター) で、[Reject] (拒否) を選択します。

  7. [Destination log group] (送信先ロググループ) で、使用するロググループを選択します。

  8. [IAM role] (IAM ロール) で、使用する IAM ロールを選択します。

  9. [Create] (作成) を選択します。

3.1 - 不正な API コールに対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。

CIS では、不正な API コールに対するメトリクスフィルターとアラームを作成することを推奨しています。不正な API コールをモニタリングすることでアプリケーションエラーを明らかにし、悪意のあるアクティビティを検出するのにかかる時間を短縮できる可能性があります。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.1 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.errorCode="*UnauthorizedOperation") || ($.errorCode="AccessDenied*")}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) の [Statistic] (統計) で、[Average] (平均) を選択します。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.1-UnauthorizedAPICalls です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.2 - MFA なしの AWS Management Console サインインに対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。

CIS では、MFA で保護されていないコンソールログインに対するメトリクスフィルターとアラームを作成することを推奨しています。単一要素のコンソールログインをモニタリングすることにより、MFA によって保護されていないアカウントへの可視性が向上します。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.2 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      { ($.eventName = "ConsoleLogin") && ($.additionalEventData.MFAUsed != "Yes") && ($.userIdentity.type = "IAMUser") && ($.responseElements.ConsoleLogin = "Success") }
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) では、デフォルトの値のままにしておきます。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.2-ConsoleSigninWithoutMFA です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.3 -「ルート」アカウントの使用に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。

CIS では、ルートログインの試行に対するメトリクスフィルターとアラームを作成することを推奨しています。ルートアカウントのログインをモニタリングすることで、完全な特権が付与されたアカウントの使用状況を可視化し、その使用を削減する機会を提供します。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.3 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) では、デフォルトの値のままにしておきます。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、RootAccountUsage です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.4 - IAM ポリシーの変更に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。

CIS では、IAM ポリシーに加えられた変更に対するメトリクスフィルターとアラームを作成することを推奨しています。これらの変更をモニタリングすることで、認証と認可の管理が損なわれないようにできます。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.4 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

アラームは、特定の API オペレーションを名前でチェックすることに注意してください。該当するオペレーションの 1 つは DeletePolicy です。アラームは、コールが IAM から発行されたかどうかをチェックしません。このため、Auto Scaling が DeletePolicy を呼び出した場合にもアラームがトリガーされます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventName=DeleteGroupPolicy) || ($.eventName=DeleteRolePolicy) || ($.eventName=DeleteUserPolicy) || ($.eventName=PutGroupPolicy) || ($.eventName=PutRolePolicy) || ($.eventName=PutUserPolicy) || ($.eventName=CreatePolicy) || ($.eventName=DeletePolicy) || ($.eventName=CreatePolicyVersion) || ($.eventName=DeletePolicyVersion) || ($.eventName=AttachRolePolicy) || ($.eventName=DetachRolePolicy) || ($.eventName=AttachUserPolicy) || ($.eventName=DetachUserPolicy) || ($.eventName=AttachGroupPolicy) || ($.eventName=DetachGroupPolicy)}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) の [Statistic] (統計) で、[Average] (平均) を選択します。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.4-IAMPolicyChanges です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.5 - CloudTrail 設定の変更に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。

CIS では、CloudTrail 構成設定の変更に対するメトリクスフィルターとアラームを作成することを推奨しています。これらの変更をモニタリングすることで、アカウント内のアクティビティを継続的に可視化できます。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.5 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventName=CreateTrail) || ($.eventName=UpdateTrail) || ($.eventName=DeleteTrail) || ($.eventName=StartLogging) || ($.eventName=StopLogging)}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) では、デフォルトの値のままにしておきます。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.5-CloudTrailChanges です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.6 - AWS Management Console 認証の失敗に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。

CIS では、コンソール認証の試行の失敗に対するメトリクスフィルターとアラームを作成することを推奨しています。コンソールログインの失敗をモニタリングすることにより、認証情報へのブルートフォース攻撃の試行の検出にかかるリードタイムを短縮できる可能性があり、ソース IP などの、他のイベント相関で使用できるインジケータが得られる可能性もあります。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.6 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventName=ConsoleLogin) && ($.errorMessage="Failed authentication")}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) では、デフォルトの値のままにしておきます。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.6-ConsoleAuthenticationFailure です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.7 - カスタマーマネージドキーの無効化またはスケジュールされた削除に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。

CIS では、状態が無効またはスケジュールされた削除に変更されたカスタマーマネージドキーに対するメトリクスフィルターとアラームを作成することを推奨しています。無効になっているか、または削除されたキーで暗号化されたデータには、アクセスできなくなります。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.7 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。ExcludeManagementEventSourceskms.amazonaws.com を含む場合も、コントロールは失敗します。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventSource=kms.amazonaws.com) && (($.eventName=DisableKey) || ($.eventName=ScheduleKeyDeletion))}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) では、デフォルトの値のままにしておきます。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.7-DisableOrDeleteCMK です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.8 - S3 バケットポリシーの変更に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。

CIS では、S3 バケットポリシーの変更に対するメトリクスフィルターとアラームを作成することを推奨しています。これらの変更をモニタリングすることで、機密性の高い S3 バケットの過剰な権限のあるポリシーを検出して修正するまでの時間を短縮できます。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.8 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventSource=s3.amazonaws.com) && (($.eventName=PutBucketAcl) || ($.eventName=PutBucketPolicy) || ($.eventName=PutBucketCors) || ($.eventName=PutBucketLifecycle) || ($.eventName=PutBucketReplication) || ($.eventName=DeleteBucketPolicy) || ($.eventName=DeleteBucketCors) || ($.eventName=DeleteBucketLifecycle) || ($.eventName=DeleteBucketReplication))}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) の [Statistic] (統計) で、[Average] (平均) を選択します。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.8-S3BucketPolicyChanges です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.9 - AWS Config 設定の変更に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。

CIS では、AWS Config 構成設定の変更に対するメトリクスフィルターとアラームを作成することを推奨しています。これらの変更をモニタリングすることで、アカウント内の設定項目を継続的に可視化できます。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.9 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventSource=config.amazonaws.com) && (($.eventName=StopConfigurationRecorder) || ($.eventName=DeleteDeliveryChannel) || ($.eventName=PutDeliveryChannel) || ($.eventName=PutConfigurationRecorder))}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) では、デフォルトの値のままにしておきます。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.9-AWSConfigChanges です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.10 - セキュリティグループの変更に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。セキュリティグループは、VPC の入力トラフィックと出力トラフィックを制御するステートフルパケットフィルターです。

CIS では、セキュリティグループの変更に対するメトリクスフィルターとアラームを作成することを推奨しています。これらの変更をモニタリングすることにより、リソースやサービスが意図せずに公開されないようにできます。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.10 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventName=AuthorizeSecurityGroupIngress) || ($.eventName=AuthorizeSecurityGroupEgress) || ($.eventName=RevokeSecurityGroupIngress) || ($.eventName=RevokeSecurityGroupEgress) || ($.eventName=CreateSecurityGroup) || ($.eventName=DeleteSecurityGroup)}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) では、デフォルトの値のままにしておきます。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.10-SecurityGroupChanges です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.11 - ネットワークアクセスコントロールリスト (NACL) の変更に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。NACL は、VPC 内のサブネットの入力トラフィックと出力トラフィックを制御するためのステートレスパケットフィルターとして使用されます。

CIS では、NACL の変更に対するメトリクスフィルターとアラームを作成することを推奨しています。これらの変更をモニタリングすることにより、AWS リソースやサービスが意図せずに公開されないようにできます。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.11 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventName=CreateNetworkAcl) || ($.eventName=CreateNetworkAclEntry) || ($.eventName=DeleteNetworkAcl) || ($.eventName=DeleteNetworkAclEntry) || ($.eventName=ReplaceNetworkAclEntry) || ($.eventName=ReplaceNetworkAclAssociation)}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) では、デフォルトの値のままにしておきます。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.11-NetworkACLChanges です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.12 - ネットワークゲートウェイへの変更に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。ネットワークゲートウェイは、VPC の外部にある送信先との間でトラフィックを送受信する必要があります。

CIS では、ネットワークゲートウェイの変更に対するメトリクスフィルターとアラームを作成することを推奨しています。これらの変更をモニタリングすることにより、すべての入力トラフィックと出力トラフィックが制御されたパスを通じて VPC 境界を通過するようになります。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.12 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventName=CreateCustomerGateway) || ($.eventName=DeleteCustomerGateway) || ($.eventName=AttachInternetGateway) || ($.eventName=CreateInternetGateway) || ($.eventName=DeleteInternetGateway) || ($.eventName=DetachInternetGateway)}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) では、デフォルトの値のままにしておきます。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.12-NetworkGatewayChanges です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.13 - ルートテーブルの変更に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。ルーティングテーブルは、サブネット間およびネットワークゲートウェイへのネットワークトラフィックをルーティングします。

CIS では、ルートテーブルの変更に対するメトリクスフィルターとアラームを作成することを推奨しています。これらの変更をモニタリングすることで、すべての VPC トラフィックが確実に想定どおりのパスを通過するようにできます。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.13 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventName=CreateRoute) || ($.eventName=CreateRouteTable) || ($.eventName=ReplaceRoute) || ($.eventName=ReplaceRouteTableAssociation) || ($.eventName=DeleteRouteTable) || ($.eventName=DeleteRoute) || ($.eventName=DisassociateRouteTable)}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) の [Statistic] (統計) で、[Average] (平均) を選択します。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.13-RouteTableChanges です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

3.14 - VPC の変更に対するログメトリクスフィルターとアラームが存在することを確認する

重要度:

AWS Config ルール: なし

スケジュールタイプ: 定期的

CloudTrail ログを CloudWatch Logs に転送し、対応するメトリクスフィルターとアラームを設定することにより、API コールのリアルタイムモニタリングを実行できます。1 つのアカウントに複数の VPC を含めることができるのに加えて、2 つの VPC 間にピア接続を作成し、ネットワークトラフィックを VPC 間でルーティングすることができます。

CIS では、VPC の変更に対するメトリクスフィルターとアラームを作成することを推奨しています。これらの変更をモニタリングすることで、認証と認可の管理が損なわれないようにできます。

このチェックを実行するために、Security Hub はカスタムロジックを使用して、CIS AWS Foundations Benchmark v1.2 のコントロール 3.14 に規定された正確な監査ステップを実行します。CIS によって規定された正確なメトリクスフィルターが使用されていない場合、このコントロールは失敗します。追加のフィールドまたは用語をメトリクスフィルターに追加することはできません。

注記

Security Hub がこのコントロールのチェックを実行すると、現在のアカウントが使用する CloudTrail 追跡が検索されます。これらの追跡は、別のアカウントに属する組織の追跡である可能性があります。マルチリージョンの追跡は、別のリージョンに基づいている可能性もあります。

チェックの結果、以下の場合は結果 FAILED となります。

  • 追跡が設定されていません。

  • 現在のリージョンにあり、現在のアカウントが所有している利用可能な追跡が、コントロール要件を満たしていません。

チェックの結果、以下の場合はコントロール状況が NO_DATA になります。

  • マルチリージョンの追跡が別のリージョンに基づいています。Security Hub は、追跡が基づいているリージョンでのみ結果を生成できます。

  • マルチリージョンの追跡が別のアカウントに属しています。Security Hub は、追跡を所有するアカウントの結果のみを生成できます。

アラームの場合、現在のアカウントは参照されている Amazon SNS トピックを所有しているか、Amazon SNS トピックへの listSubscription アクセスを持っている必要があります。それ以外の場合は、Security Hub はコントロールに対して結果 WARNING を生成します。

修正

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

    トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「Amazon SNS の開始方法」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、2.1 - CloudTrail がすべてのリージョンで有効であることを確認する の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

メトリクスフィルターとアラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

  4. [Actions] (アクション) から、[Create Metric Filter] (メトリクスフィルターの作成) を選択します。

  5. [Define pattern] (パターンを定義) で、以下の操作を行います。

    1. 次のパターンをコピーして、[Filter Pattern] (フィルターパターン) フィールドに貼り付けます。

      {($.eventName=CreateVpc) || ($.eventName=DeleteVpc) || ($.eventName=ModifyVpcAttribute) || ($.eventName=AcceptVpcPeeringConnection) || ($.eventName=CreateVpcPeeringConnection) || ($.eventName=DeleteVpcPeeringConnection) || ($.eventName=RejectVpcPeeringConnection) || ($.eventName=AttachClassicLinkVpc) || ($.eventName=DetachClassicLinkVpc) || ($.eventName=DisableVpcClassicLink) || ($.eventName=EnableVpcClassicLink)}
    2. [Next] (次へ) を選択します。

  6. [Assign metric] (メトリクスの割り当て) で、以下の操作を行います。

    1. [Filter name] (フィルター名) に、メトリクスフィルターの名前を入力します。

    2. [Metric namespace] (メトリクス名前空間) に LogMetrics と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

    3. [Metric name] (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

    4. [Metric value] (メトリクス値) に 1 と入力します。

    5. [Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、[Create metric filter] (メトリクスフィルターの作成) を選択します。

  8. [Metric filters] (メトリクスフィルター) タブを選択し、作成したメトリクスフィルターを選択します。

    メトリクスフィルターを選択するには、右上のチェックボックスを選択します。

  9. [Create Alarm] (アラームの作成) を選択します。

  10. [Specify metric and conditions] (メトリクスと条件の指定) で、以下の操作を行います。

    1. [Metric] (メトリクス) の [Statistic] (統計) で、[Average] (平均) を選択します。使用可能な統計の詳細については、「Amazon CloudWatch ユーザーガイド」の「統計」を参照してください。

    2. [Conditions] (条件) の [Threshold] (しきい値) で、[Static] (静的) を選択します。

    3. [Define the alarm condition] (アラーム条件を定義) で、[Greater/Equal] (より大きい/等しい) を選択します。

    4. [Define the threshold value] (しきい値の定義) で、1 を入力します。

    5. [Next] (次へ) を選択します。

  11. [Configure actions] (アクションの設定) で、次の作業を行います。

    1. [Alarm state trigger] (アラーム状態トリガー) で、[In alarm] (アラーム状態) を選択します。

    2. [Select an SNS topic] (SNS トピックの選択) で、[Select an existing SNS topic] (既存の SNS トピックの選択) を選択します。

    3. [Send a notification to] (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

    4. [Next] (次へ) を選択します。

  12. [Add name and description] (名前と説明の追加) に、アラームの [Name] (名前) と [Description] (説明) を入力します。例えば、CIS-3.14-VPCChanges です。続いて、[Next] (次へ) を選択します。

  13. [Preview and create] (プレビューと作成) で、アラームの設定を確認します。次に [Create alarm] (アラームの作成) を選択します。

4.1 - どのセキュリティグループも 0.0.0.0/0 からポート 22 への入力を許可していないことを確認する

重要度:

AWS Config ルール: restricted-ssh

スケジュールタイプ: 変更がトリガーされた場合

セキュリティグループは、AWS リソースへの入力および出力ネットワークトラフィックのステートフルフィルタリングを提供します。

CIS では、どのセキュリティグループでもポート 22 への無制限の入力アクセスを許可しないことを推奨しています。SSH などのリモートコンソールサービスへの自由な接続を制限することにより、サーバーがリスクにさらされることを軽減できます。

注記

このコントロールは、次のリージョンではサポートされていません。

  • アフリカ (ケープタウン)

  • アジアパシフィック (大阪)

  • ヨーロッパ (ミラノ)

修正

VPC に関連付けられている各セキュリティグループに対して次のステップを実行します。

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. 左側のペインで、[Security groups] (セキュリティグループ) を選択します。

  3. セキュリティグループを選択します。

  4. ページ下部で、[Inbound Rules] (インバウンドルール) タブを選択します。

  5. [Edit rules] (ルールの編集) を選択します。

  6. ポート 22 を介したアクセスを許可しているルールを特定し、X を選択してそれを削除します。

  7. [Save Rules] (ルールの保存) を選択します。

4.2 - どのセキュリティグループも 0.0.0.0/0 からポート 3389 への入力を許可していないことを確認する

重要度:

AWS Config ルール: restricted-common-ports

スケジュールタイプ: 変更がトリガーされた場合

関連する AWS Config マネージドルールの名前は restricted-common-ports です。ただし、作成されるルールには名前 restricted-rdp が使用されます。

セキュリティグループは、AWS リソースへの入力および出力ネットワークトラフィックのステートフルフィルタリングを提供します。

CIS では、どのセキュリティグループでもポート 3389 への無制限の入力アクセスを許可しないことを推奨しています。RDP などのリモートコンソールサービスへの自由な接続を制限することにより、サーバーがリスクにさらされることを軽減できます。

注記

このコントロールは、次のリージョンではサポートされていません。

  • アフリカ (ケープタウン)

  • アジアパシフィック (大阪)

  • ヨーロッパ (ミラノ)

修正

VPC に関連付けられている各セキュリティグループに対して次のステップを実行します。

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. 左側のペインで、[Security groups] (セキュリティグループ) を選択します。

  3. セキュリティグループを選択します。

  4. ページ下部で、[Inbound Rules] (インバウンドルール) タブを選択します。

  5. [Edit rules] (ルールの編集) を選択します。

  6. ポート 3389 を介したアクセスを許可しているルールを特定し、X を選択してそれを削除します。

  7. [Save Rules] (ルールの保存) を選択します。

4.3 - すべての VPC のデフォルトセキュリティグループがすべてのトラフィックを制限していることを確認する

重要度:

AWS Config ルール: vpc-default-security-group-closed

スケジュールタイプ: 変更がトリガーされた場合

VPC に用意されているデフォルトのセキュリティグループの初期設定では、すべてのインバウンドトラフィックが拒否され、すべてのアウトバウンドトラフィックと、そのセキュリティグループに割り当てられているインスタンス間のすべてのトラフィックが許可されます。インスタンスを起動するときにセキュリティグループを指定しなかった場合、そのインスタンスはデフォルトのセキュリティグループに自動的に割り当てられます。セキュリティグループは、AWS リソースへの入力および出力ネットワークトラフィックのステートフルフィルタリングを提供します。

CIS では、デフォルトのセキュリティグループがすべてのトラフィックを制限することを推奨しています。

準拠するように、各リージョンのデフォルトの VPC のデフォルトのセキュリティグループを更新します。すべての新しい VPC には、デフォルトのセキュリティグループが自動的に含まれるため、この推奨事項に準拠するために修正する必要があります。

注記

この推奨事項を実装するときは、2.9 - すべての VPC で VPC フローログ記録が有効であることを確認する のために有効になっている VPC フローログ記録を使用して、システムが正常に動作するために必要な最小特権のポートアクセスを特定できます。VPC フローログ記録は、現在のセキュリティグループで発生したすべてのパケットの受け入れと拒否をログに記録できます。

すべての VPC のデフォルトセキュリティグループですべてのトラフィックを制限するように設定することで、最小特権のセキュリティグループの構築と、AWS リソースのセキュリティグループへの注意深い配置が促進されます。その結果、これらのリソースの露出が減少します。

修正

すべてのアクセスを制限するために、デフォルトのセキュリティグループを更新するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. デフォルトのセキュリティグループの詳細を表示して、それらに割り当てられているリソースを確認します。

  3. リソースに対して最小特権のセキュリティグループのセットを作成します。

  4. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  5. Amazon EC2 コンソールで、デフォルトのセキュリティグループを使用しているリソースのセキュリティグループを、作成した最小特権のセキュリティグループに変更します。

  6. デフォルトのセキュリティグループごとに、[Inbound] (インバウンド) タブを選択し、すべてのインバウンドルールを削除します。

  7. デフォルトのセキュリティグループごとに、[Outbound] (アウトバウンド) タブを選択し、すべてのアウトバウンドルールを削除します。

詳細については、「Amazon VPC ユーザーガイド」の「セキュリティグループの操作」を参照してください。