アマゾン ウェブ サービス (AWS) リソースのセキュリティに関する推奨事項

この記事では、[環境設定] ページを使用してアマゾン ウェブ サービス (AWS) アカウントを接続する場合に、Microsoft Defender for Cloud に表示されるすべての推奨事項を示します。 環境に表示される推奨事項は、保護するリソースとカスタマイズした構成に基づいています。

これらの推奨事項に応じて実行できるアクションについては、「Defender for Cloud での推奨事項の修復」を参照してください

セキュリティ スコアは、完了したセキュリティに関する推奨事項の数に基づいています。 最初に解決する推奨事項を決定するには、各推奨事項の重大度と、セキュリティ スコアに対する潜在的な影響を確認します。

AWS コンピューティングの推奨事項

Systems Manager によって管理されている Amazon EC2 インスタンスでは、パッチのインストール後のパッチ コンプライアンス状態が COMPLIANT である必要がある

説明: このコントロールチェック、Amazon EC2 Systems Manager パッチコンプライアンスのコンプライアンスステータスが準拠しているか、インスタンスへのパッチインストール後にNON_COMPLIANTされているかを示します。 AWS Systems Manager Patch Manager によって管理されるインスタンスのみがチェックされます。 パッチが PCI DSS 要件 '6.2' で規定されている 30 日間の制限内で適用されたかどうかはチェックされません。 また、適用されたパッチがセキュリティ パッチとして分類されたかどうかも検証されません。 適切なベースライン設定に従いパッチ グループを作成し、Systems Manager で、スコープ内システムがそれらのパッチ グループによって管理されていることを確認する必要があります。 パッチグループの詳細については、「AWS Systems Manager ユーザーガイド」を参照してください

重大度: 中

AWS KMS を使用して保存時にファイル データを暗号化するように Amazon EFS を構成する必要がある

説明: このコントロールは、Amazon Elastic File System が AWS KMS を使用してファイル データを暗号化するように構成されているかどうかをチェックします。 次の場合、チェックは失敗します。*"Encrypted" は DescribeFileSystems 応答で "false" に設定されます。 DescribeFileSystems 応答の "KmsKeyId" キーが efs-encrypted-チェックKmsKeyId パラメーターと一致しません。 このコントロールでは、efs-encrypted-チェック"KmsKeyId" パラメーターは使用されません。 "Encrypted" の値のみがチェックされます。 Amazon EFS 内の機密データに追加されたセキュリティ層に対しては、暗号化されたファイル システムを作成する必要があります。 Amazon EFS は、ファイル システム保存時の暗号化をサポートしています。 Amazon EFS ファイル システムを作成するときに、保存データの暗号化を有効にすることができます。 Amazon EFS の暗号化の詳細については、Amazon Elastic File System ユーザー ガイドの「Data encryption in Amazon EFS」 (Amazon EFS でのデータ暗号化) を参照してください。

重大度: 中

Amazon EFS ボリュームは、バックアップ プランに含まれている必要がある

説明: このコントロールは、Amazon Elastic File System (Amazon EFS) ファイルシステムを AWS Backup のバックアップ計画に追加するかどうかをチェックします。 Amazon EFS ファイルシステムがバックアッププランに含まれていない場合、コントロールは失敗します。 EFS ファイル システムをバックアップ プランに含めておくと、データが削除されたり、データ損失したりしないよう、データが保護されます。

重大度: 中

Application Load Balancer の削除の防止は、有効にする必要がある

説明: このコントロールは、Application Load Balancer で削除保護が有効になっているかどうかをチェックします。 削除保護が構成されていない場合、コントロールは失敗します。 Application Load Balancer が削除されないように保護するには、削除の防止を有効にしてください。

重大度: 中

ロード バランサーに関連付けられている Auto Scaling グループでは、正常性チェックを使用する必要がある

説明: ロード バランサーに関連付けられている自動スケーリング グループは、エラスティック負荷分散の正常性チェックを使用しています。 PCI DSS では、負荷分散や高可用性の構成は必要ありません。 これは、AWS のベスト プラクティスで推奨されています。

重大度: 低

AWS アカウントでは、Azure Arc 自動プロビジョニングを有効にする必要がある

説明: Microsoft Defender for servers からのセキュリティ コンテンツを完全に表示するには、EC2 インスタンスを Azure Arc に接続する必要があります。対象となるすべての EC2 インスタンスが Azure Arc を自動的に受信できるようにするには、AWS アカウント レベルで Defender for Cloud からの自動プロビジョニングを有効にします。 詳細については、Azure ArcMicrosoft Defender for server に関する各ページを参照してください。

重大度: 高

CloudFront ディストリビューションでは、オリジン フェールオーバーを構成する必要がある

説明: このコントロールは、Amazon CloudFront ディストリビューションが 2 つ以上の配信元を持つ配信元グループで構成されているかどうかをチェックします。 CloudFront オリジン フェールオーバーを使用すると、可用性が向上します。 プライマリ オリジンが使用できないか、特定の HTTP 応答状態コードを返す場合、オリジン フェールオーバーによって、トラフィックがセカンダリ オリジンに自動的にリダイレクトされます。

重大度: 中

CodeBuild GitHub または Bitbucket ソース リポジトリの URL には、OAuth を使用する必要がある

説明: このコントロールチェック、GitHub または Bitbucket ソース リポジトリの URL に個人用アクセス トークンまたはユーザー名とパスワードが含まれているかどうかを示します。 認証資格情報は、クリア テキストで保存または送信したり、リポジトリの URL で表示したりしないてください。 個人用アクセス トークンまたはユーザー名とパスワードの代わりに OAuth を使用して、GitHub または Bitbucket のリポジトリにアクセスするための承認を付与する必要があります。 個人用アクセス トークンまたはユーザー名とパスワードを使用すると、資格情報が意図せず公開されたり、不正アクセスを受けたりする可能性があります。

重大度: 高

CodeBuild プロジェクト環境変数には、資格情報を含めることができない

説明: このコントロールは、プロジェクトに環境変数AWS_ACCESS_KEY_IDが含まれているかどうかをチェックしますAWS_SECRET_ACCESS_KEY。 データが意図せず公開されたり、不正アクセスを受けたりする原因となる可能性があるため、認証資格情報 AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY は、クリア テキストで保存しないでください。

重大度: 高

DynamoDB Accelerator (DAX) クラスターは、保存時に暗号化する必要がある

説明: このコントロールは、DAX クラスターが保存時に暗号化されているかどうかをチェックします。 保存データを暗号化すると、AWS で認証されていないユーザーがアクセスしているディスクにデータが格納されるリスクが軽減されます。 暗号化により、アクセス制御が強化され、未承認ユーザーによるデータへのアクセスが制限されます。 たとえば、データの暗号化を解除して読み取り可能にするには、API のアクセス許可が必要となります。

重大度: 中

DynamoDB テーブルでは、必要に応じて自動的に容量をスケーリングする必要がある

説明: このコントロールは、Amazon DynamoDB テーブルが必要に応じて読み取りと書き込みの容量をスケーリングできるかどうかをチェックします。 このコントロールは、テーブルに、オンデマンド容量モードまたはプロビジョニング済みモードのいずれかが使用されており、自動スケーリングが構成されている場合に合格します。 必要に応じて容量をスケーリングすることで、スロットリングの例外が回避され、アプリケーションの可用性を維持しやすくなります。

重大度: 中

EC2 インスタンスは、Azure Arc に接続する必要がある

説明: Microsoft Defender for Servers のセキュリティ コンテンツを完全に可視化するために、EC2 インスタンスを Azure Arc に接続します。 詳細については、ハイブリッドクラウド環境の Azure ArcMicrosoft Defender for Servers に関する各記事を参照してください。

重大度: 高

EC2 インスタンスは、AWS Systems Manager で管理する必要がある

説明: Amazon EC2 Systems Manager パッチコンプライアンスの状態は、インスタンスへのパッチのインストール後に 'COMPLIANT' または 'NON_COMPLIANT' になります。 AWS Systems Manager Patch Manager によって管理されるインスタンスのみがチェックされます。 PCI DSS 要件 '6' で規定されている 30 日間の制限内で適用されたパッチはチェックされません。

重大度: 中

EDR 構成の問題を EC2 上で解決する必要がある

説明: 最新の脅威と脆弱性から仮想マシンを保護するには、インストールされているエンドポイント検出と応答 (EDR) ソリューションで特定されたすべての構成の問題を解決します。
注: 現時点では、この推奨事項は、Microsoft Defender for Endpoint (MDE) が有効になっているリソースにのみ適用されます。

重大度: 高

EDR ソリューションを EC2 にインストールする必要がある

説明: EC2 を保護するには、エンドポイント検出と応答 (EDR) ソリューションをインストールします。 EDR は、高度な脅威の防止、検出、調査、対応に役立ちます。 Microsoft Defender for Servers を使用して、Microsoft Defender for Endpoint をデプロイします。 リソースが "異常" として分類されている場合、サポートされている EDR ソリューションはインストールされていません。 この推奨事項では検出できない EDR ソリューションがインストールされている場合は、除外することができます。

重大度: 高

Systems Manager によって管理されているインスタンスの関連付けコンプライアンス状態は、COMPLIANT である必要がある

説明: このコントロールは、AWS Systems Manager の関連付けのコンプライアンスの状態が準拠しているか、インスタンスで関連付けを実行した後にNON_COMPLIANTかをチェックします。 関連付けコンプライアンス状態が COMPLIANT の場合、コントロールは合格です。 State Manager の関連付けは、マネージド インスタンスに割り当てられた構成です。 この構成によって、インスタンス上で維持する必要がある状態が定義されます。 たとえば、関連付けを使用すると、ウイルス対策ソフトウェアをインストールしてインスタンス上で実行するように指定したり、特定のポートを閉じるように指定したりすることができます。 State Manager の関連付けを 1 つ以上作成すると、コンソール内や AWS CLI コマンドへの応答内で、または Systems Manager API 操作に対応して、コンプライアンス状態情報が即座に使用可能となります。 関連付けの場合、"構成" コンプライアンスには、準拠または非準拠の状態と、関連付けに割り当てられた重大度レベル (重大、など) が表示されます。 State Manager の関連付けのコンプライアンスの詳細については、「AWS Systems Manager ユーザー ガイド」の「State Manager の関連付けのコンプライアンスについて」を参照してください。 Systems Manager の関連付けに対して、スコープ内 EC2 インスタンスを構成する必要があります。 また、パッチのベンダーのセキュリティ評価のパッチ ベースラインを構成し、PCI DSS 3.2.1 要件 6.2 を満たすように自動適用日を設定する必要があります。 関連付けを作成する方法の詳細については、AWS Systems Manager ユーザー ガイドの「関連付けの作成」を参照してください。 Systems Manager でのパッチ適用の操作の詳細については、AWS Systems Manager ユーザー ガイドの AWS Systems Manager Patch Manager を参照してください

重大度: 低

Lambda 関数には、配信不能キューが構成されている必要がある

説明: このコントロールは、Lambda 関数が配信不能キューで構成されているかどうかをチェックします。 このコントロールは、Lambda 関数に配信不能キューが構成されていない場合に失敗します。 失敗した場合の代替の宛先には、配信不能キューを含む関数を構成して、破棄されたイベントを保存して、さらに処理を行います。 配信不能キューは、失敗した場合の宛先での役割と同じ役割を果たします。 これは、イベントがすべての処理試行に失敗した場合、または処理されることなく期限切れになった場合に使用されます。 配信不能キューを使用すると、Lambda 関数のエラーまたは失敗した要求を振り返り、異常な動作をデバッグまたは特定することができます。 セキュリティの観点からは、関数が失敗した理由を把握することや、関数によってデータが削除されたり、データ セキュリティの侵害が発生したりする結果とならないようにすることが重要です。 たとえば、関数で、基になるリソースと通信できない場合は、ネットワークのどこかでサービス拒否 (DoS) 攻撃が発生している兆候を示している可能性があります。

重大度: 中

Lambda 関数では、サポートされているランタイムを使用する必要がある

説明: このコントロールチェック、ランタイムの Lambda 関数の設定が、各言語でサポートされているランタイムに対して設定された期待される値と一致することを示します。 このコントロールは、次のランタイムのチェックします。nodejs14.xnodejs12.xnodejs10.xpython3.8python3.7python3.6ruby2.7ruby2.5java11、java8、java8.al2go1.xdotnetcore3.1dotnetcore2.1Lambda ランタイムは、オペレーティング システム、プログラミング言語、ソフトウェア ライブラリの組み合わせに基づいて構築されており、メインテナントとセキュリティ更新プログラムの対象となります。 ランタイム コンポーネントがセキュリティ更新プログラムでサポートされなくなった場合、ランタイムは、Lambda によって非推奨になります。 非推奨のランタイムを使用する関数を作成することはできませんが、関数は呼び出しイベントを処理するために引き続き使用できます。 Lambda 関数が最新であり、古いランタイム環境を使用していないことを確認します。 このコントロールを使用してサポートされている言語があるかどうかをチェックする対象となる、サポートされているランタイムの詳細については、AWS Lambda 開発者ガイドで AWS Lambda ランタイムに関するページを参照してください。

重大度: 中

Just-In-Time ネットワーク アクセス制御を使用して、EC2 インスタンスの管理ポートを保護する必要がある

説明: Microsoft Defender for Cloud では、ネットワーク内の管理ポートの受信規則が過度に制限されていることを確認しました。 Just-In-Time アクセス制御を有効にして、インターネットベースのブルートフォース攻撃からインスタンスを保護します。 詳細情報。

重大度: 高

使用されていない EC2 セキュリティ グループは、削除する必要がある

説明: セキュリティ グループは、Amazon EC2 インスタンスまたは ENI にアタッチする必要があります。 正常な結果は、未使用の Amazon EC2 セキュリティグループがあることを示している可能性があります。

重大度: 低

AWS Container の推奨事項

[プレビュー]AWS レジストリ内のコンテナー イメージに脆弱性の検出結果が解決されている必要がある

説明: Defender for Cloud は、レジストリ イメージで既知の脆弱性 (CVE) をスキャンし、スキャンされた各イメージの詳細な結果を提供します。 レジストリ内のコンテナー イメージの脆弱性のスキャンと修復は、セキュリティで保護された信頼性の高いソフトウェアサプライ チェーンメイン維持し、セキュリティ インシデントのリスクを軽減し、業界標準に準拠するのに役立ちます。

重大度: 高

種類: 脆弱性評価

[プレビュー]AWS で実行されているコンテナーの脆弱性の結果が解決されている必要がある

説明: Defender for Cloud は、現在 Kubernetes クラスターで実行されているすべてのコンテナー ワークロードのインベントリを作成し、使用されているイメージとレジストリ イメージ用に作成された脆弱性レポートを照合することで、それらのワークロードの脆弱性レポートを提供します。 コンテナー ワークロードの脆弱性のスキャンと修復は、堅牢で安全なソフトウェア サプライ チェーンを確保し、セキュリティ インシデントのリスクを軽減し、業界標準への準拠を確保するために不可欠です。

重大度: 高

種類: 脆弱性評価

EKS クラスターでは、必要な AWS アクセス許可を Microsoft Defender for Cloud に付与する必要がある

説明: Microsoft Defender for Containers は、EKS クラスターの保護を提供します。 セキュリティの脆弱性と脅威についてクラスターを監視するには、Defender for Containers に AWS アカウントのアクセス許可が必要です。 これらのアクセス許可は、クラスターで Kubernetes コントロール プレーンのログ記録を有効にし、クラスターとクラウド内の Defender for Cloud のバックエンドの間に信頼性の高いパイプラインを確立するために使用されます。 詳細については、コンテナー化された環境に対する Microsoft Defender for Cloud のセキュリティ機能に関する記事を参照してください。

重大度: 高

EKS クラスターには、Azure Arc 用の Microsoft Defender の拡張機能をインストールする必要がある

説明: Microsoft Defender の クラスター拡張機能 は、EKS クラスターのセキュリティ機能を提供します。 この拡張機能を使用すると、クラスターとそのノードからデータが収集され、セキュリティの脆弱性と脅威が特定されます。 この拡張機能は、Azure Arc 対応 Kubernetes で動作します。 詳細については、コンテナー化された環境に対する Microsoft Defender for Cloud のセキュリティ機能に関する記事を参照してください。

重大度: 高

AWS コネクタで Microsoft Defender for Containers を有効にする必要がある

説明: Microsoft Defender for Containers は、コンテナー化された環境に対してリアルタイムの脅威保護を提供し、疑わしいアクティビティに関するアラートを生成します。 この情報を使用して、Kubernetes クラスターのセキュリティを強化し、セキュリティの問題を修復します。

重要: Microsoft Defender for Containers を有効にし、EKS クラスターに Azure Arc をデプロイすると、保護と料金が開始されます。 クラスターに Azure Arc をデプロイしない場合、Defender for Containers はそれを保護せず、そのクラスターに対するこの Microsoft Defender プランに対して料金は発生しません。

重大度: 高

データ プレーンの推奨事項

Kubernetes の Azure Policy を有効にした後は、すべての Kubernetes データ プレーンのセキュリティに関する推奨事項が AWS でサポートされます。

AWS データに関する推奨事項

Amazon Aurora クラスターでは、バックトラックを有効にする必要がある

説明: このコントロールは、Amazon Aurora クラスターでバックトラッキングが有効になっているかどうかをチェックします。 バックアップを使用すると、セキュリティ インシデントからの迅速な復旧が可能になります。 また、システムの回復性も強化されます。 バックトラックにより、ある時点までのデータベースの復旧にかかる時間が短縮されます。 これを行うために、データベースを復元する必要はありません。 Aurora でのバックトラックの詳細については、Amazon Aurora ユーザー ガイドの「Backtracking an Aurora DB cluster」 (Aurora DB クラスターのバックトラック) を参照してください。

重大度: 中

Amazon EBS スナップショットは、パブリックに復元しないようにする必要がある

説明: Amazon EBS スナップショットは、データの偶発的な露出を避けるために、明示的に許可されていない限り、すべてのユーザーがパブリックに復元することはできません。 さらに、Amazon EBS 構成を変更するためのアクセス許可は、承認された AWS アカウントのみへの付与に制限される必要があります。

重大度: 高

Amazon ECS のタスク定義には、セキュリティで保護されたネットワーク モードとユーザー定義が必要である

説明: このコントロールチェック、ホストネットワークモードを持つアクティブな Amazon ECS タスク定義にも特権またはユーザーコンテナ定義があるかどうかを示します。 このコントロールは、タスク定義にホスト ネットワーク モードが指定されており、コンテナー定義で privileged が false または空で、user が root または空である場合に失敗します。 タスク定義に昇格された特権がある場合は、お客様がその構成を明示的にオプトインしたためです。 この制御チェック、タスク定義でホスト ネットワークが有効になっていても、お客様が昇格された特権を選択しなかった場合に、予期しない特権エスカレーションが行われます。

重大度: 高

Amazon Elasticsearch Service ドメインでは、ノード間で送信されるデータを暗号化する必要がある

説明: このコントロールは、Amazon ES がノード間暗号化を有効にするかどうかをメインチェックします。 HTTPS (TLS) を使用すると、潜在的な攻撃者が中間者または同様の攻撃を使用してネットワーク トラフィックを盗聴または操作しないように防ぐことができます。 HTTPS (TLS) 経由の暗号化された接続のみが許可されるようにする必要があります。 Amazon ES ドメインに対してノード間の暗号化を有効にすると、クラスター内通信が転送中に暗号化されます。 この構成に関連付けられるパフォーマンス低下が発生する可能性があります。 このオプションを有効にする前に、パフォーマンスのトレードオフについて認識したうえで、テストを行う必要があります。

重大度: 中

Amazon Elasticsearch Service ドメインでは、保存時の暗号化を有効にする必要がある

説明: Amazon ES の残りの部分の暗号化を有効にしてメイン機密データを保護することが重要です

重大度: 中

Amazon RDS データベースはカスタマー マネージド キーを使って暗号化する必要がある

説明: このチェックは、カスタマー マネージド キーではなく、既定の KMS キーで暗号化された RDS データベースを識別します。 主要なプラクティスとして、カスタマー マネージド キーを使って RDS データベースのデータを暗号化し、キーと機密性の高いワークロードのデータの制御を維持してください。

重大度: 中

自動バックアップ設定を使って Amazon RDS インスタンスを構成する必要がある

説明: このチェックは、自動バックアップ設定では設定されていない RDS インスタンスを識別します。 自動バックアップが設定されている場合、RDS により、DB インスタンスのストレージ ボリュームのスナップショットを作成し、個々のデータベースだけでなく DB インスタンス全体をバックアップすることができます。これにより、特定の時点に復旧できます。 自動バックアップは、指定されたバックアップ期間中に行われ、保有期間に定義されている限られた期間、バックアップが保持されます。 データ復元プロセスに役立つ重要な RDS サーバーの自動バックアップを設定することをお勧めします。

重大度: 中

Amazon Redshift クラスターでは、監査ログを有効にする必要がある

説明: このコントロールは、Amazon Redshift クラスターで監査ログが有効になっているかどうかをチェックします。 Amazon Redshift の監査ログによって、クラスター内の接続およびユーザー アクティビティに関する追加情報が提供されます。 このデータは、Amazon S3 に格納してセキュリティで保護することができるとともに、セキュリティ監査と調査にも役立ちます。 詳細については、"Amazon Redshift クラスター管理ガイド" の「Database audit logging」 (データベース監査ログ作成) を参照してください。

重大度: 中

Amazon Redshift クラスターでは、自動スナップショットを有効にする必要がある

説明: このコントロールは、Amazon Redshift クラスターで自動スナップショットが有効になっているかどうかをチェックします。 また、スナップショットのリテンション期間が 7 日間以上あるかどうかについてもチェックできます。 バックアップを使用すると、セキュリティ インシデントからの迅速な復旧が可能になります。 また、システムの回復性が強化されます。 Amazon Redshift によって、定期的なスナップショットの取得が既定で行われます。 このコントロールを使用すると、自動スナップショットが有効となっており、7 日間以上保持されているかどうかをチェックできます。 Amazon Redshift 自動スナップショットの詳細については、「Amazon Redshift クラスター管理ガイド」の「自動スナップショット」を参照してください

重大度: 中

Amazon Redshift クラスターでは、パブリック アクセスを禁止する必要がある

説明: クラスター構成項目の 'publicAccessible' フィールドを評価することで、パブリック アクセシビリティを回避するために Amazon Redshift クラスターをお勧めします。

重大度: 高

Amazon Redshift では、メジャー バージョンへの自動アップグレードを有効にする必要がある

説明: このコントロールは、Amazon Redshift クラスターでメジャー バージョンの自動アップグレードが有効になっているかどうかをチェックします。 メジャー バージョンの自動アップグレードを有効にすると、Amazon Redshift クラスターのメジャー バージョンの最新の更新プログラムが、メンテナンス期間中にインストールされます。 これらの更新プログラムには、セキュリティ パッチやバグ修正が含まれている場合があります。 パッチをインストールして、最新の状態を維持することは、システムをセキュリティで保護するための重要な手順です。

重大度: 中

Amazon SQS のキューは、保存時に暗号化する必要がある

説明: このコントロールは、Amazon SQS キューが保存時に暗号化されるかどうかをチェックします。 サーバー側暗号化 (SSE) を使用すると、暗号化されたキューに機密データを送信できます。 キュー内のメッセージの内容を保護するには、AWS KMS で管理されているキーを SSE で使用します。 詳細については、Amazon Simple Queue Service 開発者ガイドの「Encryption at rest」 (保管時の暗号化) を参照してください。

重大度: 中

RDS イベント通知サブスクリプションは、重要なクラスター イベントに対して構成する必要がある

説明: このコントロールは、次のソースの種類、イベント カテゴリのキーと値のペアに対して通知が有効になっている Amazon RDS イベント サブスクリプションが存在するかどうかをチェックします。 DBCluster: ["maintenance" and "failure"]。 RDS イベント通知では、Amazon SNS を使用して、RDS リソースの可用性または構成の変更をユーザーに知らせます。 これらの通知により、迅速な応答が可能になります。 RDS イベント通知の詳細については、Amazon RDS ユーザー ガイドの「Using Amazon RDS event notification」 (Amazon RDS イベント通知の使用) を参照してください。

重大度: 低

RDS イベント通知サブスクリプションは、重要なデータベース インスタンス イベントに対して構成する必要がある

説明: このコントロールは、次のソースの種類に対して通知が有効になっている Amazon RDS イベント サブスクリプションが存在するかどうかをチェックします。 イベント カテゴリのキーと値のペア。 DBInstance: ["maintenance", "configuration change" and "failure"]。 RDS イベント通知では、Amazon SNS を使用して、RDS リソースの可用性または構成の変更をユーザーに知らせます。 これらの通知により、迅速な応答が可能になります。 RDS イベント通知の詳細については、Amazon RDS ユーザー ガイドの「Using Amazon RDS event notification」 (Amazon RDS イベント通知の使用) を参照してください。

重大度: 低

RDS イベント通知サブスクリプションは、重要なデータベース パラメーター グループ イベントに対して構成する必要がある

説明: このコントロールは、次のソースの種類に対して通知が有効になっている Amazon RDS イベント サブスクリプションが存在するかどうかをチェックします。 イベント カテゴリのキーと値のペア。 DBParameterGroup: ["configuration","change"]。 RDS イベント通知では、Amazon SNS を使用して、RDS リソースの可用性または構成の変更をユーザーに知らせます。 これらの通知により、迅速な応答が可能になります。 RDS イベント通知の詳細については、Amazon RDS ユーザー ガイドの「Using Amazon RDS event notification」 (Amazon RDS イベント通知の使用) を参照してください。

重大度: 低

RDS イベント通知サブスクリプションは、重要なデータベース セキュリティ グループ イベントに対して構成する必要がある

説明: このコントロールは、次のソースタイプのイベントカテゴリのキーと値のペアに対して通知が有効になっている Amazon RDS イベントサブスクリプションが存在するかどうかをチェックします。DBSecurityGroup: ["configuration","change","failure"]。 RDS イベント通知では、Amazon SNS を使用して、RDS リソースの可用性または構成の変更をユーザーに知らせます。 これらの通知により、迅速な応答が可能になります。 RDS イベント通知の詳細については、Amazon RDS ユーザー ガイドの「Using Amazon RDS event notification」 (Amazon RDS イベント通知の使用) を参照してください。

重大度: 低

API Gateway REST および WebSocket API では、ログ記録を有効にする必要がある

説明: このコントロールは、Amazon API Gateway REST または WebSocket API のすべてのステージでログ記録が有効になっているかどうかをチェックします。 このコントロールは、ログ記録がステージのすべてのメソッドに対して有効になっていない場合、またはログ レベルが ERROR または INFO のどちらでもない場合に失敗します。 API Gateway REST または WebSocket API ステージでは、関連するログを有効にする必要があります。 API Gateway REST および WebSocket API の実行ログによって、API Gateway REST および WebSocket API ステージに対して行われた要求が詳細に記録されます。 これらのステージには、API 統合バックエンドの応答、Lambda 承認者の応答、AWS 統合エンドポイントの requestId が含まれます。

重大度: 中

API Gateway REST API のキャッシュ データは、保存時に暗号化する必要がある

説明: このコントロールは、キャッシュが有効になっている API Gateway REST API ステージ内のすべてのメソッドが暗号化されているかどうかをチェックします。 このコントロールは、API Gateway REST API ステージ内のいずれかのメソッドが、キャッシュするように構成されており、キャッシュが暗号化されていない場合に失敗します。 保存データを暗号化すると、AWS で認証されていないユーザーがアクセスしているディスクにデータが格納されるリスクが軽減されます。 これにより、アクセス制御がさらに追加され、未承認ユーザーによるデータへのアクセスが制限されます。 たとえば、データの暗号化を解除して読み取り可能にするには、API のアクセス許可が必要となります。 セキュリティ層を追加するには、API Gateway REST API による保存時の暗号化が必要です。

重大度: 中

バックエンド認証に SSL 証明書を使用するように API Gateway REST API ステージを構成する必要がある

説明: このコントロールは、Amazon API Gateway REST API ステージに SSL 証明書が構成されているかどうかをチェックします。 受信要求が API Gateway からのものであることを認証するために、バックエンド システムによって、これらの証明書が使用されます。 要求が API Gateway から送信されていることをバックエンド システムを使用して認証するには、API Gateway REST API ステージに SSL 証明書を構成する必要があります。

重大度: 中

API Gateway REST API ステージでは、AWS X-Ray トレースを有効にする必要がある

説明: このコントロールは、Amazon API Gateway REST API ステージで AWS X-Ray アクティブ トレースが有効になっているかどうかをチェックします。 X-Ray アクティブ トレースにより、基になるインフラストラクチャでのパフォーマンスの変化に迅速に対応できます。 パフォーマンスの変化は、API の可用性を低下させる可能性があります。 X-Ray アクティブ トレースによって、API Gateway REST API 操作と接続済みサービスを経由して送信されるユーザー要求のリアルタイム メトリクスが指定されます。

重大度: 低

API Gateway は、AWS WAF ウェブ ACL に関連付けられる必要がある

説明: このコントロールは、API Gateway ステージで AWS WAF Web アクセス制御リスト (ACL) を使用するかどうかをチェックします。 このコントロールは、AWS WAF ウェブ ACL が REST API Gateway ステージにアタッチされていない場合に失敗します。 AWS WAF は、Web アプリケーションと API を攻撃から保護するのに役立つ Web アプリケーションです。 これにより、カスタマイズ可能な Web セキュリティ規則および定義する条件に基づき、Web 要求を許可、ブロック、またはカウントする一連の規則である ACL を構成することができます。 悪意のある攻撃から保護するために、API Gateway ステージが AWS WAF ウェブ ACL に関連付けられていることを確認します。

重大度: 中

Application Load Balancer と Classic Load Balancer では、ログ記録を有効にする必要がある

説明: このコントロールは、アプリケーション ロード バランサーとクラシック ロード バランサーでログ記録が有効になっているかどうかをチェックします。 false の場合 access_logs.s3.enabled 、コントロールは失敗します。 Elastic Load Balancing によって、ロード バランサーに送信された要求に関する詳細情報をキャプチャするアクセス ログが提供されます。 各ログには、要求を受信した時間、クライアントの IP アドレス、待機時間、要求パス、サーバー応答などの情報が含まれます。 これらのアクセス ログを使用すると、トラフィック パターンの分析や、問題のトラブルシューティングを行うことができます。 詳細については、Classic Load Balancer のユーザー ガイドの「Access logs for your Classic Load Balancer」 (Classic Load Balancer のアクセス ログ) を参照してください。

重大度: 中

アタッチされた EBS ボリュームは、保存時に暗号化する必要がある

説明: このコントロールは、アタッチされた状態の EBS ボリュームが暗号化されているかどうかをチェックします。 このチェックに合格するには、EBS ボリュームは使用中かつ暗号化済みである必要があります。 EBS ボリュームがアタッチされていない場合は、このチェックの対象とはなりません。 EBS ボリューム内の機密データに追加されたセキュリティ層に対しては、保存時の EBS 暗号化を有効にする必要があります。 Amazon EBS 暗号化は、独自のキー管理インフラストラクチャの構築、保守、セキュリティ保護を必要としない EBS リソースに対して、単純な暗号化ソリューションを提供します。 ここでは、暗号化されたボリュームやスナップショットを作成するときに、AWS KMS のカスタマー マスター キー (CMK) が使用されます。 Amazon EBS 暗号化の詳細については、Linux インスタンス用 Amazon EC2 ユーザー ガイドの「Amazon EBS encryption」 (Amazon EBS 暗号化) を参照してください。

重大度: 中

AWS Database Migration Service レプリケーション インスタンスは、パブリックにしないようにする必要がある

説明: レプリケートされたインスタンスを脅威から保護するため。 プライベート レプリケーション インスタンスには、レプリケーション ネットワークの外部からはアクセスできないプライベート IP アドレスが必要です。 ソース データベースとターゲット データベースが同じネットワーク内に存在しており、ネットワークが VPN、AWS Direct Connect、または VPC ピアリングを使用してレプリケーション インスタンスの VPC に接続されている場合、レプリケーション インスタンスにはプライベート IP アドレスが必要です。 また、AWS DMS インスタンスの構成へのアクセスを、承認されたユーザーに限定する必要があります。 これを行うには、ユーザーの IAM アクセス許可を制限して、AWS DMS の設定とリソースを変更します。

重大度: 高

Classic Load Balancer リスナーには、HTTPS または TLS 終端が構成されている必要がある

説明: このコントロールチェック、クラシック ロード バランサー リスナーがフロントエンド (クライアントからロード バランサー) への接続用に HTTPS または TLS プロトコルで構成されているかどうかが示されます。 このコントロールは、Classic Load Balancer にリスナーが存在する場合に適用可能です。 Classic Load Balancer にリスナーが構成されていない場合は、このコントロールによって結果が報告されることはありません。 このコントロールは、フロントエンド接続に対して、Classic Load Balancer リスナーに TLS または HTTPS が構成されている場合に合格します。 このコントロールは、フロントエンド接続に対して、リスナーに TLS または HTTPS が構成されていない場合に失敗します。 ロード バランサーの使用を開始する前に、1 つ以上のリスナーを追加しておく必要があります。 リスナーは、構成されたプロトコルとポートを使用して接続要求をチェックするプロセスです。 リスナーは、HTTP プロトコルと HTTPS/TLS プロトコルのどちらもサポートできます。 ロード バランサーによって、転送中の暗号化と暗号化解除の処理が実行されるようにするには、HTTPS または TLS リスナーを常に使用する必要があります。

重大度: 中

Classic Load Balancers では、接続ドレインを有効にする必要がある

説明: このコントロールは、クラシック ロード バランサーで接続ドレインが有効になっているかどうかをチェックします。 クラシック ロード バランサーで接続ドレインを有効にすると、登録解除または異常なインスタンスへの要求の送信がロード バランサーによって停止されます。 これにより、既存の接続は開いたままとなります。 自動スケーリング グループのインスタンスの場合、接続が突然切断されないようにするには、これが便利です。

重大度: 中

CloudFront ディストリビューションでは、AWS WAF を有効にする必要がある

説明: このコントロールは、CloudFront ディストリビューションが AWS WAF または AWS WAFv2 Web ACL に関連付けられているかどうかをチェックします。 このコントロールは、ディストリビューションがウェブ ACL に関連付けられていない場合に失敗します。 AWS WAF は、Web アプリケーションと API を攻撃から保護するのに役立つ Web アプリケーションです。 これにより、カスタマイズ可能な Web セキュリティ規則および定義する条件に基づき、Web 要求を許可、ブロック、またはカウントする、ウェブ アクセス コントロール リスト (ウェブ ACL) と呼ばれる一連の規則を構成することができます。 悪意のある攻撃から保護するために、CloudFront ディストリビューションが AWS WAF ウェブ ACL に関連付けられていることを確認します。

重大度: 中

CloudFront ディストリビューションでは、ログ記録を有効にする必要がある

説明: このコントロールは、CloudFront ディストリビューションでサーバー アクセス ログが有効になっているかどうかをチェックします。 このコントロールは、ディストリビューションに対してアクセス ログ記録が有効になっていない場合に失敗します。 CloudFront アクセス ログは、CloudFront が受け取るすべてのユーザー要求に関する詳細情報を提供します。 各ログには、閲覧者からの要求の受信日時、要求を行った閲覧者の IP アドレス、要求のソース、要求のポート番号などの情報が含まれます。 これらのログは、セキュリティやアクセスの監査や、分析調査などの適用に役立ちます。 アクセス ログを分析する方法の詳細については、Amazon Athena ユーザー ガイドの Amazon CloudFront ログのクエリを参照してください。

重大度: 中

CloudFront ディストリビューションでは、転送中の暗号化が必要である

説明: このコントロールチェック、Amazon CloudFront ディストリビューションでビューアーが HTTPS を直接使用する必要があるかどうか、またはリダイレクトを使用するかどうかを示します。 このコントロールは、ViewerProtocolPolicy が defaultCacheBehavior または cacheBehaviors に対して allow-all に設定されている場合に失敗します。 HTTPS (TLS) を使用すると、潜在的な攻撃者が中間者または同様の攻撃を使用してネットワーク トラフィックを盗聴または操作しないように防ぐことができます。 HTTPS (TLS) 経由の暗号化された接続のみが許可されるようにする必要があります。 転送中のデータを暗号化すると、パフォーマンスに影響する可能性があります。 パフォーマンス プロファイルと TLS の影響を把握するには、この機能を使用して、アプリケーションをテストする必要があります。

重大度: 中

CloudTrail ログは、KMS CMK を使用して、保存時に暗号化する必要がある

説明: S Standard Edition-KMS を使用するように CloudTrail を構成することをお勧めします。 SSE-KMS を使用するように CloudTrail を構成すると、特定のユーザーが、対応するログ バケットに対する S3 読み取りアクセス許可を持ち、CMK ポリシーから暗号化解除アクセス許可が付与される必要がある場合に、ログ データの機密性がさらに制御されます。

重大度: 中

Amazon Redshift クラスターへの接続は、転送中に暗号化する必要がある

説明: このコントロールは、転送中に暗号化を使用するために Amazon Redshift クラスターへの接続が必要かどうかをチェックします。 amazon Redshift クラスターパラメーター require_SSLが 1設定されていない場合、チェックは失敗します。 TLS を使用すると、潜在的な攻撃者が中間者または同様の攻撃を使用してネットワーク トラフィックを盗聴または操作しないように防ぐことができます。 TLS 経由の暗号化された接続のみが許可されるようにする必要があります。 転送中のデータを暗号化すると、パフォーマンスに影響する可能性があります。 パフォーマンス プロファイルと TLS の影響を把握するには、この機能を使用して、アプリケーションをテストする必要があります。

重大度: 中

Elasticsearch ドメインへの接続は、TLS 1.2 を使用して暗号化する必要がある

説明: このコントロールは、TLS 1.2 を使用するために Elasticsearch メイン への接続が必要かどうかをチェックします。 このコントロールは、Elasticsearch ドメイン TLSSecurityPolicy が Policy-Min-TLS-1-2-2019-07 ではない場合に失敗します。 HTTPS (TLS) を使用すると、潜在的な攻撃者が中間者または同様の攻撃を使用してネットワーク トラフィックを盗聴または操作しないように防ぐことができます。 HTTPS (TLS) 経由の暗号化された接続のみが許可されるようにする必要があります。 転送中のデータを暗号化すると、パフォーマンスに影響する可能性があります。 パフォーマンス プロファイルと TLS の影響を把握するには、この機能を使用して、アプリケーションをテストする必要があります。 TLS 1.2 では、以前のバージョンの TLS に対して、いくつかのセキュリティ強化が実施されています。

重大度: 中

DynamoDB テーブルでは、ポイントインタイム リカバリを有効にする必要がある

説明: このコントロールは、Amazon DynamoDB テーブルに対してポイントインタイム リカバリー (PITR) が有効になっているかどうかをチェックします。 バックアップを使用すると、セキュリティ インシデントからの迅速な復旧が可能になります。 また、システムの回復性も強化されます。 DynamoDB のポイントインタイム リカバリによって、DynamoDB テーブルのバックアップが自動化されます。 これにより、誤って削除や書き込みの操作を行ってしまった場合の復旧時間が短縮されます。 PITR が有効になっている DynamoDB テーブルは、過去 35 日間の任意の時点に復元できます。

重大度: 中

EBS の既定の暗号化は、有効にする必要がある

説明: このコントロールは、Amazon Elastic Block Store (Amazon EBS) に対してアカウントレベルの暗号化が既定で有効になっているかどうかをチェックします。 このコントロールは、アカウント レベルの暗号化が有効になっていない場合に失敗します。 アカウントに対して暗号化が有効になっている場合、Amazon EBS ボリュームとスナップショットのコピーは、保存時に暗号化されます。 これにより、データの保護レイヤーが追加されます。 詳細については、Linux インスタンス用 Amazon EC2 ユーザー ガイドの「Encryption by default」 (デフォルトでの暗号化) を参照してください。 インスタンスの種類が R1、C1、M1 の場合は、暗号化がサポートされないことに注意してください。

重大度: 中

Elastic Beanstalk 環境では、拡張ヘルス レポートを有効にする必要がある

説明: このコントロールチェック、AWS Elastic Beanstalk 環境で拡張正常性レポートが有効になっているかどうかを示します。 Elastic Beantalk の拡張ヘルス レポートを使用すると、基になるインフラストラクチャの正常性の変化に対して、より迅速に対応することができます。 これらの変化は、アプリケーションの可用性を低下させる可能性があります。 Elastic Beantalk の拡張ヘルス レポートによって、特定された問題の重大度が測定され、可能性のある原因を特定して調査するための状態記述子が特定されます。 サポートされている Amazon Machine Images (AMIs) に含まれる Elastic Beantalk ヘルス エージェントによって、環境 EC2 インスタンスのログとメトリクスが評価されます。

重大度: 低

Elastic Beanstalk マネージド プラットフォームの更新プログラムは、有効にする必要がある

説明: このコントロールは、Elastic Beanstalk 環境でマネージド プラットフォームの更新が有効になっているかどうかをチェックします。 マネージド プラットフォームの更新プログラムを有効にすると、その環境で利用可能な最新のプラットフォーム修正プログラム、更新プログラム、および機能が確実にインストールされます。 パッチをインストールして、最新の状態を維持することは、システムをセキュリティで保護するための重要な手順です。

重大度: 高

Elastic Load Balancer に有効期限が切れた、または 90 日以内に有効期限が切れる ACM 証明書があってはならない。

説明: このチェックは、ACM 証明書の有効期限が切れているか、90 日以内に期限切れになっている Elastic Load Balancer (ELB) を識別します。 AWS Certificate Manager (ACM) は、サーバー証明書のプロビジョニング、管理、デプロイに適したツールです。 ACM を使用すると、証明書を要求したり、既存の ACM または外部証明書を AWS リソースにデプロイしたりできます。 ベスト プラクティスとして、元の証明書の ELB の関連付けを維持しながら、期限切れになる、または期限切れになった証明書を再インポートすることをお勧めします。

重大度: 高

Elasticsearch ドメイン エラーの CloudWatch Logs へのログ記録は、有効にする必要がある

説明: このコントロールは、エラー ログを CloudWatch ログに送信するように Elasticsearchメイン が構成されているかどうかをチェックします。 Elasticsearch ドメインのエラー ログを有効にし、保持と応答を目的に、それらのログを CloudWatch Logs に送信する必要があります。 ドメイン エラー ログは、セキュリティとアクセスの監査に役立ち、可用性の問題を診断するのに便利です。

重大度: 中

Elasticsearch ドメインには、3 つ以上の専用マスター ノードが構成されている必要がある

説明: このコントロールは、Elasticsearch が少なくとも 3 つの専用マスター ノードを使用して構成されているかどうかをメインチェックします。 このコントロールは、ドメインに専用マスター ノードが使用されていない場合に失敗します。 このコントロールは、Elasticsearch ドメインに 5 つの専用マスター ノードがある場合に成功します。 ただし、可用性リスクを軽減するために 3 つを超えるマスター ノードを使用する必要はなく、使用する場合には追加コストが発生します。 高可用性とフォールト トレランスを実現するには、Elasticsearch ドメインに 3 つ以上の専用マスター ノードが必要です。 管理対象となるノードが増えるため、データ ノードの Blue/Green デプロイ中は、専用マスター ノード リソースに負荷がかかる可能性があります。 3 つ以上の専用マスター ノードを含む Elasticsearch ドメインをデプロイすると、ノードで障害が発生した場合に、十分なマスター ノード リソース容量とクラスター操作が保証されます。

重大度: 中

Elasticsearch ドメインには、3 つ以上のデータ ノードが必要である

説明: このコントロールチェック Elasticsearch が少なくとも 3 つのデータ ノードで構成されメイン zoneAwarenessEnabled が true かどうかを示します。 高可用性とフォールト トレランスを実現するには、Elasticsearch ドメインに 3 つ以上のデータ ノードが必要です。 3 つ以上のデータ ノードを含む Elasticsearch ドメインをデプロイすると、ノードで障害が発生した場合に、クラスター操作が保証されます。

重大度: 中

Elasticsearch ドメインでは、監査ログ記録を有効にする必要がある

説明: このコントロールは、Elasticsearch が監査ログを有効にするかどうかをチェックメインします。 このコントロールは、Elasticsearch ドメインで監査ログ記録が有効になっていない場合に失敗します。 監査ログは、高度なカスタマイズが可能です。 これにより、認証の成功と失敗、OpenSearch への要求、インデックスの変更、受信した検索クエリなど、Elasticsearch クラスターでのユーザー アクティビティを追跡できます。

重大度: 中

拡張モニタリングは、RDS DB インスタンスとクラスターに対して構成する必要がある

説明: このコントロールは、RDS DB インスタンスに対して拡張監視が有効になっているかどうかをチェックします。 Amazon RDS では、拡張モニタリングを使用すると、基になるインフラストラクチャの正常性の変化に対して、より迅速に対応することができます。 これらのパフォーマンスの変化は、データの可用性を低下させる可能性があります。 拡張モニタリングによって、RDS DB インスタンスが実行されているオペレーティング システムのリアル タイム メトリクスが指定されます。 エージェントがインスタンスにインストールされます。 そのエージェントを使用すると、ハイパーバイザー層から取得するよりも、より正確にメトリクスを取得できます。 拡張モニタリングのメトリクスは、DB インスタンス上のさまざまなプロセスまたはスレッドでどのように CPU が使用されているかを確認する場合に便利です。 詳細については、"Amazon RDS ユーザー ガイド" の拡張モニタリングに関するページを参照してください。

重大度: 低

顧客が作成した CMK のローテーションが有効になっていることを確認する

説明: AWS キー管理サービス (KMS) を使用すると、顧客がバッキング キーをローテーションできます。これは、カスタマー作成カスタマー マスター キー (CMK) のキー ID に関連付けられた KMS 内に格納されているキー マテリアルです。 バッキング キーは、暗号化や暗号化解除などの暗号操作を実行するために使用されます。 現在、自動キー ローテーションには、暗号化されたデータの暗号化解除が透過的に実行されるよう、以前のすべてのバッキング キーが保持されます。 CMK キーのローテーションを有効にすることをお勧めします。 暗号化キーをローテーションすると、新しいキーで暗号化されたデータに、公開されている可能性のある以前のキーでアクセスできないため、侵害されたキーの潜在的な影響を軽減できます。

重大度: 中

CloudTrail S3 バケットで S3 バケット アクセスのログ記録が有効になっていることを確認する

説明: S3 バケット アクセス ログは、アクセス レコードを含むログを生成します。S3 バケットに対して行われた要求ごとに、CloudTrail S3 バケットで S3 バケットアクセスログが有効になっていることを確認します。 アクセス ログ レコードには、要求の種類、行われた要求に指定されているリソース、要求の処理日時など、要求に関する詳細が含まれます。 CloudTrail S3 バケットでバケット アクセス ログ記録を有効にすることをお勧めします。 ターゲット S3 バケットで S3 バケットのログ記録を有効にすると、ターゲット バケット内のオブジェクトに影響を与える可能性のあるすべてのイベントをキャプチャできます。 別のバケットに配置するログを構成すると、セキュリティとインシデント対応のワークフローに役立つログ情報にアクセスできます。

重大度: 低

CloudTrail ログを格納するために使用する S3 バケットがパブリックにアクセス可能ではないことを確認する

説明: CloudTrail は、AWS アカウントで行われたすべての API 呼び出しの記録を記録します。 これらのログ ファイルは、S3 バケットに格納されます。 CloudTrail ログへのパブリック アクセスを防ぐために、CloudTrail がログに記録する S3 バケットにバケット ポリシーまたはアクセス制御リスト (ACL) を適用することをお勧めします。 CloudTrail ログ コンテンツへのパブリック アクセスを許可すると、敵対者が影響を受けるアカウントの使用または構成の弱点を特定するのに役立つ場合があります。

重大度: 高

IAM に期限切れの SSL/TLS 証明書があってはならない

説明: このチェックは、期限切れの SSL/TLS 証明書を識別します。 AWS で Web サイトまたはアプリケーションへの HTTPS 接続を有効にするには、SSL/TLS サーバー証明書が必要です。 ACM または IAM を使って、サーバー証明書を格納およびデプロイすることができます。 期限が切れた SSL/TLS 証明書を削除することで、AWS Elastic Load Balancer (ELB) などのリソースに誤って無効な証明書がデプロイされ、ELB の背後にあるアプリケーションまたは Web サイトの信頼性が損なわれるようなリスクはなくなります。 このチェックにより、AWS IAM に格納されている期限切れの SSL/TLS 証明書がある場合にアラートが生成されます。 ベスト プラクティスとして、期限切れの証明書を削除することをお勧めします。

重大度: 高

インポートされた ACM 証明書は、指定された期間が経過した後で更新する必要がある

説明: このコントロールは、アカウント内の ACM 証明書が 30 日以内に有効期限としてマークされているかどうかをチェックします。 これにより、インポートされた証明書と AWS Certificate Manager によって提供された証明書の両方をチェックできます。 ACM では、DNS 検証が使用されている証明書を自動的に更新できます。 電子メール検証が使用されている証明書の場合は、ドメイン検証メールに応答する必要があります。 また、ACM では、インポートした証明書の自動更新は行われません。 インポートした証明書は、手動で更新する必要があります。 ACM 証明書のマネージド更新の詳細については、AWS Certificate Manager ユーザー ガイドの「Managed renewal for ACM certificates」 (ACM 証明書のマネージド更新) を参照してください。

重大度: 中

アカウント内の過剰にプロビジョニングされた ID を調査して、Permission Creep Index (PCI) を減らす必要がある

説明: アカウント内の過剰にプロビジョニングされた ID を調査して、アクセス許可のクリープ インデックス (PCI) を減らし、インフラストラクチャを保護する必要があります。 未使用の危険度の高いアクセス許可の割り当てを削除して、PCI を削減します。 高 PCI は、通常の使用または必要な使用を超えるアクセス許可を持つ ID に関連するリスクを反映します。

重大度: 中

RDS 自動マイナー バージョン アップグレードは、有効にする必要がある

説明: このコントロールは、RDS データベース インスタンスに対してマイナー バージョンの自動アップグレードを有効にするかどうかをチェックします。 マイナー バージョンの自動アップグレードを有効にすると、マイナー バージョンの最新の更新プログラムがリレーショナル データベース管理システム (RDBMS) に確実にインストールされるようになります。 これらのアップグレードには、セキュリティ パッチやバグ修正が含まれている場合があります。 パッチをインストールして、最新の状態を維持することは、システムをセキュリティで保護するための重要な手順です。

重大度: 高

RDS クラスター スナップショットとデータベース スナップショットは、保存時に暗号化する必要がある

説明: このコントロールは、RDS DB スナップショットを暗号化するかどうかをチェックします。 このコントロールは、RDS DB インスタンスを対象としています。 ただし、Amazon DB インスタンス、Neptune DB インスタンス、Amazon DocumentDB クラスターのスナップショットの結果を生成することもできます。 これらの結果を使用しない場合は、非表示にすることができます。 保存データを暗号化することにより、認証されていないユーザーがディスクに保存されているデータにアクセスするリスクを軽減できます。 セキュリティ層を追加するには、RDS スナップショットのデータは、保存時に暗号化する必要があります。

重大度: 中

RDS クラスターでは、削除保護を有効にする必要がある

説明: このコントロールは、RDS クラスターで削除保護が有効になっているかどうかをチェックします。 このコントロールは、RDS DB インスタンスを対象としています。 ただし、Amazon DB インスタンス、Neptune DB インスタンス、Amazon DocumentDB クラスターの結果を生成することもできます。 これらの結果を使用しない場合は、非表示にすることができます。 クラスター削除保護を有効にすることは、承認されていないエンティティによる誤ったデータベースの削除または削除に対する保護のもう 1 つの層です。 削除保護が有効になっている場合は、RDS クラスターを削除することができません。 削除要求を正常に完了するには、削除保護を無効にする必要があります。

重大度: 低

RDS DB クラスターは、複数の可用性ゾーンに対して構成する必要がある

説明: RDS DB クラスターは、格納されている複数のデータに対して構成する必要があります。 可用性ゾーンに可用性の問題が発生した場合や、通常の RDS メンテナンス イベント中には、複数の可用性ゾーンへのデプロイによって、可用性ゾーンが自動化され、ED フェールオーバーの可用性が保証されます。

重大度: 中

RDS DB クラスターは、タグをスナップショットにコピーするように構成する必要がある

説明: IT 資産の識別とインベントリは、ガバナンスとセキュリティの重要な側面です。 セキュリティ体制を評価し、潜在的な弱点領域に対処するには、すべての RDS DB クラスターを表示する必要があります。 スナップショットは、その親 RDS データベース クラスターと同じ方法でタグ付けする必要があります。 この設定を有効にすると、スナップショットは親データベース クラスターのタグを確実に継承します。

重大度: 低

RDS DB インスタンスは、タグをスナップショットにコピーするように構成する必要がある

説明: このコントロールは、スナップショットの作成時にすべてのタグをスナップショットにコピーするように RDS DB インスタンスを構成するかどうかをチェックします。 IT 資産の識別とインベントリは、ガバナンスとセキュリティの重要な側面です。 セキュリティ体制を評価し、潜在的な弱点領域に対処するには、すべての RDS DB インスタンスを表示する必要があります。 スナップショットは、その親 RDS データベース インスタンスと同じ方法でタグ付けする必要があります。 この設定を有効にすると、スナップショットは親データベース インスタンスのタグを確実に継承します。

重大度: 低

RDS DB インスタンスには、複数の可用性ゾーンが構成されている必要がある

説明: このコントロールは、RDS DB インスタンスに対して高可用性が有効になっているかどうかをチェックします。 RDS DB インスタンスには、複数可用性ゾーン (AZ) の構成が必要です。 これにより、格納データの可用性が保証されます。 可用性ゾーンに問題が発生した場合や、通常の RDS メンテナンス中には、マルチ AZ デプロイによって自動フェールオーバーが実行されます。

重大度: 中

RDS DB インスタンスでは、削除保護を有効にする必要がある

説明: このコントロールは、リストされているデータベース エンジンのいずれかを使用する RDS DB インスタンスで削除保護が有効になっているかどうかをチェックします。 インスタンス削除保護を有効にすることは、承認されていないエンティティによる誤ったデータベースの削除または削除に対する保護のもう 1 つの層です。 削除保護が有効になっている間は、RDS DB インスタンスを削除することができません。 削除要求を正常に完了するには、削除保護を無効にする必要があります。

重大度: 低

RDS DB インスタンスでは、保存時の暗号化を有効にする必要がある

説明: このコントロールは、Amazon RDS DB インスタンスに対してストレージ暗号化が有効になっているかどうかをチェックします。 このコントロールは、RDS DB インスタンスを対象としています。 ただし、Amazon DB インスタンス、Neptune DB インスタンス、Amazon DocumentDB クラスターの結果を生成することもできます。 これらの結果を使用しない場合は、非表示にすることができます。 RDS DB 内の機密データに追加されたセキュリティ層に対しては、暗号化されたファイル システムを作成する必要があります。 RDS DB インスタンスとスナップショットを保存時に暗号化するには、RDS DB インスタンスに対して暗号化オプションを有効にします。 保存時に暗号化されるデータには、DB インスタンスの基になるストレージ、自動バックアップ、読み取りレプリカ、およびスナップショットが含まれます。 RDS 暗号化 DB インスタンスでは、オープンの標準 AES-256 暗号化アルゴリズムを使用して、RDS DB インスタンスをホストするサーバー上のデータを暗号化します。 データが暗号化されると、パフォーマンスへの影響を最小限に抑えながら、アクセスの認証とデータの暗号化が、Amazon RDS によって処理されます。 暗号化を使用するようにデータベース クライアント アプリケーションを変更する必要はありません。 現在、Amazon RDS 暗号化は、すべての種類のデータベース エンジンとストレージで使用できます。 Amazon RDS 暗号化は、ほとんどの DB インスタンス クラスで使用できます。 Amazon RDS 暗号化をサポートしていない DB インスタンスの詳細については、「Amazon RDS User Guide」 (Amazon RDS ユーザー ガイド) の「Encrypting Amazon RDS resources」 (Amazon RDS リソースの暗号化) を参照してください。

重大度: 中

RDS DB インスタンスでは、パブリック アクセスを禁止する必要がある

説明: RDS インスタンスの設定とリソースを変更するようにユーザーの IAM アクセス許可を制限することで、RDS インスタンスの構成へのアクセスが承認されたユーザーのみに制限されるようにすることをお勧めします。

重大度: 高

RDS スナップショットでは、パブリック アクセスを禁止する必要がある

説明: 承認されたプリンシパルのみがスナップショットにアクセスし、Amazon RDS の構成を変更することを許可することをお勧めします。

重大度: 高

使用されていない Secrets Manager シークレットを削除する

説明: このコントロールは、指定した日数内にシークレットにアクセスされたかどうかをチェックします。 既定値は [90] 日間です。 定義された日数内にシークレットへのアクセスが発生しなかった場合、このコントロールは失敗します。 使用されていないシークレットを削除することは、シークレットのローテーションと同様に重要です。 使用されていないシークレットは、このようなシークレットへのアクセス権が不要となった以前のユーザーによって悪用される可能性があります。 また、より多くのユーザーがシークレットにアクセスできるようになると、誤処理または未承認エンティティへの漏えいを行うユーザーが出現する可能性があり、悪用のリスクが高まります。 使用されていないシークレットを削除すると、シークレットへのアクセス権が不要となったユーザーのアクセス権の取り消しを促進することができます。 また、Secrets Manager の使用コストの削減にも役立ちます。 そのため、使用されていないシークレットを定期的に削除することは重要です。

重大度: 中

S3 バケットでは、リージョン間レプリケーションを有効にする必要がある

説明: S3 リージョン間レプリケーションを有効にすると、異なるリージョンで複数のバージョンのデータを使用できるようになります。 これにより、DDoS 攻撃やデータ破損イベントから S3 バケットを保護することができます。

重大度: 低

S3 バケットでは、サーバー側暗号化を有効にする必要がある

説明: サーバー側の暗号化を有効にして、S3 バケット内のデータを保護します。 データを暗号化すると、データが侵害された場合に、機密データにアクセスできなくなることがあります。

重大度: 中

自動ローテーションが構成されている Secrets Manager のシークレットは、正常にローテーションされる必要がある

説明: このコントロールは、ローテーション スケジュールに基づいて AWS Secrets Manager シークレットが正常にローテーションされたかどうかをチェックします。 このコントロールは、RotationOccurringAsScheduledfalse の場合に失敗します。 このコントロールでは、ローテーションが構成されていないシークレットを評価しません。 Secrets Manager は、組織のセキュリティ体制の改善に役立ちます。 シークレットには、データベースの資格情報、パスワード、サードパーティの API キーが含まれます。 Secrets Manager を使用すると、シークレットを中心に格納したり、シークレットを自動的に暗号化したりすることに加え、シークレットへのアクセスを制御したり、シークレットを安全かつ自動的にローテーションしたりすることができます。 Secrets Manager では、シークレットのローテーションが可能です。 ローテーションを使用すると、長期シークレットを短期シークレットに置き換えることができます。 シークレットをローテーションすることで、侵害されたシークレットを未承認ユーザーが使用できる期間が制限されます。 このような理由により、シークレットを頻繁にローテーションする必要があります。 シークレットの自動ローテーションを構成するだけでなく、ローテーション スケジュールに基づいた、これらのシークレットの正常なローテーションを保証する必要があります。 ローテーションの詳細については、AWS Secrets Manager ユーザー ガイドの「Rotating your AWS Secrets Manager secrets」 (AWS Secrets Manager シークレットのローテーション) を参照してください。

重大度: 中

Secrets Manager シークレットは、指定した日数以内にローテーションする必要がある

説明: このコントロールは、シークレットが 90 日以内に少なくとも 1 回ローテーションされたかどうかをチェックします。 シークレットをローテーションすることで、AWS アカウントのシークレットが不正使用されるリスクを軽減できます。 例として、データベースの資格情報、パスワード、サードパーティ API キー、さらには任意のテキストなどを挙げることができます。 シークレットを長期間変更しない場合、シークレットが侵害される可能性が高くなります。 より多くのユーザーがシークレットにアクセスできるようになると、ユーザーによる誤処理または未承認エンティティへの漏えいの可能性が高まります。 シークレットは、ログやキャッシュ データで漏えいさせることができます。 デバッグを目的に共有することができるうえに、デバッグが完了すれば、変更や呼び出しを行うことができません。 これらのすべての理由から、シークレットのローテーションは頻繁に行う必要があります。 AWS Secrets Manager では、シークレットの自動ローテーションを構成することができます。 自動ローテーションを使用すると、長期シークレットを短期シークレットに置き換えることができるため、侵害のリスクが大幅に軽減されます。 Security Hub では、Secrets Manager のシークレットに対して、ローテーションを有効にすることをお勧めしています。 ローテーションの詳細については、AWS Secrets Manager ユーザー ガイドの「Rotating your AWS Secrets Manager secrets」 (AWS Secrets Manager シークレットのローテーション) を参照してください。

重大度: 中

SNS トピックは、AWS KMS を使用して、保存時に暗号化する必要がある

説明: このコントロールは、AWS KMS を使用して保存時に SNS トピックを暗号化するかどうかをチェックします。 保存データを暗号化すると、AWS で認証されていないユーザーがアクセスしているディスクにデータが格納されるリスクが軽減されます。 また、アクセス制御が強化され、未承認ユーザーによるデータへのアクセスが制限されます。 たとえば、データの暗号化を解除して読み取り可能にするには、API のアクセス許可が必要となります。 セキュリティを強化するには、 保存時 に SNS トピックを暗号化する必要があります。 詳細については、Amazon Simple Notification Service 開発者ガイドの「Encryption at rest」 (保管時の暗号化) を参照してください。

重大度: 中

VPC フローのログ記録は、すべての VPC で有効にする必要がある

説明: VPC フローログは、VPC を通過するネットワークトラフィックを可視化し、セキュリティイベント中に異常なトラフィックや分析情報を検出するために使用できます。

重大度: 中

AWS IdentityAndAccess の推奨事項

Amazon Elasticsearch Service ドメインは、VPC に存在する必要がある

説明: VPC にパブリックエンドポイントを含む doメイン を含めることはできません。 注: これは、パブリック到達可能性を判断するために VPC サブネットルーティング設定を評価しません。

重大度: 高

バケット ポリシーで他の AWS アカウントに許可された Amazon S3 アクセス許可は、制限する必要がある

説明: 最小限の特権アクセスの実装は、セキュリティ リスクと、エラーや悪意のある意図の影響を軽減するための基本です。 S3 バケット ポリシーで外部アカウントからのアクセスが許可されている場合、内部関係者の脅威または攻撃者によるデータ流出が発生する可能性があります。 'blacklistedactionpatterns' パラメーターを使用すると、S3 バケットの規則を正常に評価できます。 このパラメーターは、'blacklistedactionpatterns' リストに含まれていないアクション パターンの外部アカウントへのアクセスを許可します。

重大度: 高

"root" アカウントの使用を避ける

説明: "ルート" アカウントは、AWS アカウント内のすべてのリソースに無制限にアクセスできます。 このアカウントは使用しないことを強くお勧めします。 "root" アカウントは、最大限の特権が与えられた AWS アカウントです。 このアカウントの使用を最小限にして、アクセス管理に最小限の特権の原則を採用することにより、高度な特権が含まれる資格情報を誤って変更したり、意図せずに公開したりするリスクを軽減できます。

重大度: 高

AWS KMS キーが誤って削除されないようにする必要がある

説明: このコントロールは、KMS キーの削除がスケジュールされているかどうかをチェックします。 このコントロールは、KMS キーの削除がスケジュールされている場合に失敗します。 KMS キーは、一度削除した後は復旧できません。 また、KMS キーの下で暗号化されたデータは、KMS キーが削除された場合は、永続的に復元できなくなります。 削除がスケジュールされている KMS キーで意味のあるデータが暗号化されている場合は、暗号化消去を意図的に実行しない限り、データの暗号化を解除するか、新しい KMS キーでデータを再暗号化することを検討してください。 KMS の削除がスケジュールされている場合、削除を元に戻す時間を許可するための、待機期間が必須で適用されます (誤ってスケジュールされていた場合)。 既定の待機期間は 30 日ですが、KMS キーの削除がスケジュールされている場合は 7 日に短縮できます。 待機期間中は、スケジュールされた削除を取り消すことができます。KMS キーは削除されません。 KMS キーの削除の詳細については、AWS キー管理サービス 開発者ガイドの KMS キーの削除を参照してください

重大度: 高

AWS WAF Classic グローバル ウェブ ACL ログ記録は、有効にする必要がある

説明: このコントロールは、AWS WAF グローバル Web ACL に対してログ記録が有効になっているかどうかをチェックします。 Web ACL に対してログ記録が有効になっていない場合、この制御は失敗します。 ログ記録は、AWS WAF 全体の信頼性、可用性およびパフォーマンスを維持するうえで重要です。 これは多くの組織のビジネスとコンプライアンスの要件であり、アプリケーションの動作のトラブルシューティングを行うことができます。 また、AWS WAF にアタッチされているウェブ ACL によって分析されるトラフィックに関する詳細情報も提供します。

重大度: 中

CloudFront ディストリビューションでは、既定のルート オブジェクトを構成する必要がある

説明: このコントロールは、Amazon CloudFront ディストリビューションが既定のルート オブジェクトである特定のオブジェクトを返すように構成されているかどうかをチェックします。 CloudFront ディストリビューションに既定のルート オブジェクトが構成されていない場合、コントロールは失敗します。 ディストリビューションのオブジェクトではなく、ディストリビューション ルート URL が、ユーザーによって要求される場合があります。 このような場合は、既定のルート オブジェクトを指定すると、Web ディストリビューションの内容が公開されないようにすることができます。

重大度: 高

CloudFront ディストリビューションでは、オリジン アクセス ID を有効にする必要がある

説明: このコントロールは、Amazon S3 Origin タイプの Amazon CloudFront ディストリビューションに配信元アクセス ID (OAI) が構成されているかどうかをチェックします。 OAI が構成されていない場合、コントロールは失敗します。 CloudFront OAI によって、ユーザーは、S3 バケット コンテンツに直接アクセスできなくなります。 ユーザーが S3 バケットに直接アクセスすると、CloudFront ディストリビューションと、基になる S3 バケット コンテンツに適用されているアクセス許可が、事実上バイパスされます。

重大度: 中

CloudTrail ログ ファイル検証は、有効にする必要がある

説明: CloudTrail ログの整合性チェックを高めるために、すべての CloudTrail でファイル検証を有効にすることをお勧めします。

重大度: 低

CloudTrail は、有効にする必要がある

説明: AWS CloudTrail は、アカウントの AWS API 呼び出しを記録し、ログ ファイルを配信する Web サービスです。 すべての API とイベントに対して、すべてのサービスでログ記録が既定で有効になっているわけではありません。 CloudTrail 以外の監査証跡を追加で実装し、CloudTrail のサポートされているサービスと統合で、各サービスについてのドキュメントを確認する必要があります。

重大度: 高

CloudTrail 証跡は、CloudWatch ログに統合する必要がある

説明: 長期的な分析のために、指定された S3 バケット内の CloudTrail ログをキャプチャするだけでなく、CloudWatch ログにログを送信するように CloudTrail を構成することで、リアルタイム分析を実行できます。 アカウント内のすべてのリージョンで有効になっている証跡の場合、CloudTrail によって、それらのすべてのリージョンから CloudWatch Logs のログ グループにログ ファイルが送信されます。 AWS アカウントのアクティビティがキャプチャ、監視、および適切に警告表示されるようにするため、CloudTrail ログが CloudWatch Logs へ送信されるようにすることをお勧めします。 CloudTrail ログを CloudWatch Logs に送信すると、ユーザー、API、リソース、および IP アドレスに基づく、リアルタイムおよび履歴のアクティビティ ログ記録が促進され、異常な、または機密のアカウント アクティビティに対する警告や通知が行われます。

重大度: 低

データベースのログ記録は、有効にする必要がある

説明: このコントロールは、Amazon RDS の次のログが有効になっていて CloudWatch ログに送信されるかどうかをチェックします。

  • Oracle: (アラート、監査、トレース、リスナー)
  • PostgreSQL: (Postgresql、アップグレード)
  • MySQL: (Audit、Error、General、SlowQuery)
  • MariaDB: (Audit、Error、General、SlowQuery)
  • SQL Server: (エラー、エージェント)
  • Aurora: (Audit、Error、General、SlowQuery)
  • Aurora-MySQL: (Audit、Error、General、SlowQuery)
  • Aurora-PostgreSQL: (Postgresql、アップグレード)。 RDS データベースでは、関連するログが有効になっている必要があります。 データベースのログ記録は、RDS に対して行われた要求の詳細なレコードを提供します。 データベース ログは、セキュリティとアクセスの監査に役立ち、可用性の問題を診断するのに便利です。

重大度: 中

Amazon SageMaker ノートブック インスタンスに対して、インターネットへの直接アクセスを無効にする

説明: SageMaker ノートブック インスタンスでは、直接インターネット アクセスを無効にする必要があります。 これにより、ノートブック インスタンスで 'DirectInternetAccess' フィールドが無効になっているかどうかをチェックできます。 インスタンスには、VPC を構成する必要があります。既定では、VPC 経由のインターネット アクセスが [無効] になっているはずです。 インターネット アクセスを有効にして、ノートブックからモデルをトレーニングまたはホスティングするには、VPC に NAT ゲートウェイが存在し、セキュリティ グループで送信接続が許可されていることを確認してください。 SageMaker 構成へのアクセスが、承認されたユーザーに限定されており、ユーザーの IAM アクセス許可を、SageMaker の設定とリソースの変更に制限してください。

重大度: 高

コンソール パスワードを持つすべての IAM ユーザーの初期ユーザー設定中は、アクセス キーを設定してはいけない

説明: AWS コンソールでは、アクセス キーを作成するための チェック ボックスが既定で有効になります。 これにより、不必要なアクセス キーが多数生成されます。 不必要な資格情報に加え、これらのキーの監査やローテーションにかかる不必要な管理作業も発生します。 プロファイルの作成後にユーザーが追加の手順を実行する必要があると、アクセス キーが作業に必要であることを示す意図が強くなり、アカウントでアクセス キーが確立されると、そのキーが組織内のどこかで使用される可能性があることを示します。

重大度: 中

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

説明: AWS には、インシデントの通知と対応に使用できるサポート センターと、テクニカル サポートとカスタマー サービスが用意されています。 IAM ロールを作成して、承認されたユーザーに対し、AWS Support でのインシデントの管理を許可します。 アクセス制御のための最小限の特権を実装することで、IAM ロールでは、AWS サポートでインシデントを管理するために、サポートセンターへのアクセスを許可するための適切な IAM ポリシーが必要になります。

重大度: 低

アクセス キーが 90 日以下の頻度でローテーションされることを確認する

説明: アクセス キーは、アクセス キー ID とシークレット アクセス キーで構成されます。これは、AWS に対して行ったプログラムによる要求に署名するために使用されます。 AWS ユーザーが AWS Command Line Interface (AWS CLI)、Tools for Windows PowerShell、AWS SDK から AWS へのプログラムによる呼び出し、または各 AWS サービスの API を使用した直接の HTTP 呼び出しを行うには、独自のアクセス キーが必要です。 すべてのアクセス キーを定期的にローテーションすることをお勧めします。 アクセス キーをローテーションすると、侵害されたアカウントまたは終了したアカウントに関連付けられているアクセス キーを使用する機会の期間が短縮されます。 古いキーを使用してデータにアクセスできないようにするには、アクセス キーをローテーションする必要があります。このキーは、紛失、割れ、盗難にあった可能性があります。

重大度: 中

AWS Config がすべてのリージョンで有効になっていることを確認する

説明: AWS Config は、アカウント内でサポートされている AWS リソースの構成管理を実行し、ログ ファイルを配信する Web サービスです。 記録される情報には、構成アイテム (AWS リソース)、構成アイテム間のリレーションシップ (AWS リソース)、リソース間の構成の変更が含まれます。 すべてのリージョンで AWS Config を有効にすることをお勧めします。

AWS Config によってキャプチャされた AWS 構成アイテムの履歴を参照することで、セキュリティ分析、リソース変更追跡、コンプライアンス監査を実行することができます。

重大度: 中

すべてのリージョンで CloudTrail が有効になっていることを確認する

説明: AWS CloudTrail は、アカウントの AWS API 呼び出しを記録し、ログ ファイルを配信する Web サービスです。 記録された情報には、API 呼び出し元の ID、API 呼び出しの時刻、API 呼び出し元の発信元 IP アドレス、要求パラメーター、AWS サービスによって返される応答要素が含まれます。 CloudTrail は、アカウントでの AWS API 呼び出しの履歴を提供します。これには、Management Console, SDK 経由で行われた API 呼び出し、およびより高レベルな AWS サービス (CloudFormation など) が含まれます。 CloudTrail によって生成される AWS API 呼び出し履歴を参照することで、セキュリティ分析、リソース変更追跡、コンプライアンス監査を実行することができます。 さらに、

  • 複数リージョンの証跡が存在することを確認すると、それ以外の場合は未使用のリージョンで発生する予期しないアクティビティが検出されます
  • 複数リージョンの証跡が存在することを確認すると、AWS グローバル サービスで生成されたイベントの記録をキャプチャするために、証跡に対して "グローバル サービス ログ" が既定で有効になります
  • 複数リージョンの証跡の場合は、すべての種類の読み取り/書き込みに対して構成された管理イベントによって、AWS アカウント内のすべてのリソースに対して実行される管理操作の記録が保証されます

重大度: 高

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

説明: AWS IAM ユーザーは、パスワードやアクセスキーなど、さまざまな種類の資格情報を使用して AWS リソースにアクセスできます。 90 日以上で使用されていないすべての資格情報を削除または非アクティブ化することをお勧めします。 不要な資格情報を無効または削除すると、侵害されたアカウントまたは破棄されたアカウントに関連付けられている資格情報を使用する機会の期間が短縮されます。

重大度: 中

IAM パスワード ポリシーでのパスワードの有効期間が 90 日以下であることを確認する

説明: IAM パスワード ポリシーでは、特定の日数が経過した後にパスワードをローテーションまたは期限切れにする必要があります。 パスワード ポリシーは、90 日以内にパスワードの有効期限を切らすことをお勧めします。 パスワードの有効期間を短縮すると、ブルート フォースのログイン試行に対して、アカウント回復性が向上します。 また、定期的なパスワード変更を必須にすると、次のシナリオで役立ちます。

  • パスワードは、知らないうちに盗まれたり、侵害されたりすることがあります。 これは、システムのセキュリティ侵害、ソフトウェアの脆弱性、または内部の脅威によって起こることがあります。
  • 特定の企業および政府機関の Web フィルターまたはプロキシ サーバーでは、暗号化されている場合でもトラフィックをインターセプトして記録できます。
  • 多くのユーザーは、仕事、電子メール、個人用など、多くのシステムで同じパスワードを使用します。
  • 侵害されたエンド ユーザー ワークステーションには、キーストローク ロガーが含まれています。

重大度: 低

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

説明: IAM パスワード ポリシーは、同じユーザーが特定のパスワードを再利用できないようにすることができます。 パスワード ポリシーは、パスワードの再利用を防ぐことをお勧めします。 パスワードの再利用を禁止すると、ブルート フォースのログイン試行に対して、アカウント回復性が向上します。

重大度: 低

IAM パスワード ポリシーで、1 つ以上の小文字の使用が必須であることを確認する

説明: パスワード ポリシーの一部は、パスワードの複雑さの要件を適用するために使用されます。 IAM パスワード ポリシーを使用して、パスワードが異なる文字セットで構成されていることを確認できます。 パスワード ポリシーには、少なくとも 1 つの小文字が必要です。 パスワードの複雑さのポリシーを設定すると、ブルート フォースのログイン試行に対して、アカウント回復性が向上します。

重大度: 中

IAM パスワード ポリシーで、1 つ以上の数字の使用が必須であることを確認する

説明: パスワード ポリシーの一部は、パスワードの複雑さの要件を適用するために使用されます。 IAM パスワード ポリシーを使用して、パスワードが異なる文字セットで構成されていることを確認できます。 パスワード ポリシーには少なくとも 1 つの数値が必要です。 パスワードの複雑さのポリシーを設定すると、ブルート フォースのログイン試行に対して、アカウント回復性が向上します。

重大度: 中

IAM パスワード ポリシーで、1 つ以上の記号の使用が必須であることを確認する

説明: パスワード ポリシーの一部は、パスワードの複雑さの要件を適用するために使用されます。 IAM パスワード ポリシーを使用して、パスワードが異なる文字セットで構成されていることを確認できます。 パスワード ポリシーには少なくとも 1 つのシンボルが必要です。 パスワードの複雑さのポリシーを設定すると、ブルート フォースのログイン試行に対して、アカウント回復性が向上します。

重大度: 中

IAM パスワード ポリシーで、1 つ以上の大文字の使用が必須であることを確認する

説明: パスワード ポリシーの一部は、パスワードの複雑さの要件を適用するために使用されます。 IAM パスワード ポリシーを使用して、パスワードが異なる文字セットで構成されていることを確認できます。 パスワード ポリシーには、少なくとも 1 つの大文字が必要です。 パスワードの複雑さのポリシーを設定すると、ブルート フォースのログイン試行に対して、アカウント回復性が向上します。

重大度: 中

IAM パスワード ポリシーで、14 文字以上の長さが必須であることを確認する

説明: パスワード ポリシーの一部は、パスワードの複雑さの要件を適用するために使用されます。 IAM パスワード ポリシーに従うと、指定された長さ以上のパスワードが作成されます。 パスワード ポリシーでは、パスワードの最小長が "14" である必要があります。 パスワードの複雑さのポリシーを設定すると、ブルート フォースのログイン試行に対して、アカウント回復性が向上します。

重大度: 中

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

説明: 多要素認証 (MFA) では、ユーザー名とパスワードの上に追加の保護レイヤーが追加されます。 MFA を有効にすると、ユーザーが AWS Web サイトにサインインすると、ユーザー名とパスワード、および AWS MFA デバイスからの認証コードの入力を求められます。 コンソール パスワードを持つすべてのアカウントに対して MFA を有効にすることをお勧めします。 MFA を有効にすると、時間を区別するキーを出力し、資格情報を認識するデバイスを保持するためのプリンシパルが必要になるため、コンソール アクセスのセキュリティが強化されます。

重大度: 中

GuardDuty は、有効にする必要がある

説明: 侵入に対する追加の保護を提供するには、AWS アカウントとリージョンで GuardDuty を有効にする必要があります。 注: GuardDuty は、すべての環境に対して完全なソリューションとは言えない場合があります。

重大度: 中

ハードウェア MFA は、"root" アカウントに対して有効になっている必要がある

説明: ルート アカウントは、アカウント内で最も特権のあるユーザーです。 MFA を使用すると、ユーザー名とパスワードの場合と比べ、保護層が強化されます。 MFA が有効な場合、ユーザーが AWS Web サイトにサインインすると、ユーザー名とパスワードに加え、AWS MFA デバイスに表示された認証コードの入力が求められます。 レベル 2 では、ハードウェア MFA を使用してルート アカウントを保護することをお勧めします。 ハードウェア MFA の場合、攻撃対象となる領域が、仮想 MFA よりも小さくなります。 たとえば、ハードウェア MFA では、仮想 MFA が存在するモバイル スマートフォンによって導入される攻撃対象は、問題とはなりません。 多数のアカウントにハードウェア MFA を使用すると、記号論理学上のデバイス管理の問題が発生する可能性があります。 その場合は、このレベル 2 の推奨事項を、最高レベルのセキュリティ アカウントに絞って実装することを検討してください。 その後、残りのアカウントに対して、レベル 1 の推奨事項を適用してください。

重大度: 低

IAM 認証は、RDS クラスターに対して構成する必要がある

説明: このコントロールは、RDS DB クラスターで IAM データベース認証が有効になっているかどうかをチェックします。 IAM データベース認証を使用すると、データベース インスタンスへのパスワードなしの認証が可能になります。 この認証では、認証トークンが使用されます。 データベースとのネットワーク トラフィックの送受信は、SSL を使用して暗号化されます。 詳細については、Amazon Aurora ユーザーガイドの IAM データベース認証についてのページを参照してください。

重大度: 中

IAM 認証は、RDS インスタンスに対して構成する必要がある

説明: このコントロールは、RDS DB インスタンスで IAM データベース認証が有効になっているかどうかをチェックします。 IAM データベース認証では、データベース インスタンスへの認証に、パスワードではなく、認証トークンを使用できます。 データベースとのネットワーク トラフィックの送受信は、SSL を使用して暗号化されます。 詳細については、Amazon Aurora ユーザーガイドの IAM データベース認証についてのページを参照してください。

重大度: 中

IAM カスタマー マネージド ポリシーでは、すべての KMS キーに対する暗号化解除アクションを許可しないようにする必要がある

説明: IAM カスタマーマネージドポリシーのデフォルトバージョンで、プリンシパルがすべてのリソースで AWS KMS 復号化アクションを使用できるかどうかを確認します。 このコントロールでは、自動化された推論エンジンである Zelkova を使用して、AWS アカウント全体のシークレットへの広範なアクセスを許可する可能性のあるポリシーを検証し、警告します。 すべての KMS キーで "kms:Decrypt" または "kms:ReEncryptFrom" アクションが許可されている場合、このコントロールは失敗します。 このコントロールによって、アタッチされているかいないかにかかわらず、カスタマー マネージド ポリシーが評価されます。 インライン ポリシーや AWS マネージド ポリシーはチェックされません。 AWS KMS では、KMS キーを使用できるユーザーを制御し、暗号化されたデータにアクセスすることができます。 IAM ポリシーでは、ID (ユーザー、グループ、またはロール) によって、どのアクションが、どのリソースに対して実行されるかが定義されます。 セキュリティのベスト プラクティスに従い、AWS では、最小限の特権を許可することをお勧めします。 つまり、"kms:Decrypt" または "kms:ReEncryptFrom" のアクセス許可のみを、タスクの実行が要求されるキーのみに対して、ID に許可する必要があります。 それ以外の場合、ユーザーはデータに適さないキーを使用する可能性があります。 すべてのキーについてアクセス許可を付与する代わりに、暗号化されたデータにアクセスするためにユーザーが必要とするキーの最小限のセットを決定します。 次に、ユーザーに対し、それらのキーのみの使用を許可するポリシーを作成します。 たとえば、すべての KMS キーに対して "kms:Decrypt" アクセス許可を許可しないでください。 代わりに、アカウントでは、特定のリージョン内のキーに対してのみ、"kms:Decrypt" を許可します。 最小限の特権を採用することで、データが意図せずに公開されるリスクを軽減することができます。

重大度: 中

作成する IAM カスタマー マネージド ポリシーでは、サービスに対するワイルドカード アクションを許可しないようにする必要がある

説明: このコントロールチェック、作成する IAM ID ベースのポリシーに、* wildカード を使用して任意のサービスのすべてのアクションに対するアクセス許可を付与する Allow ステートメントがあるかどうかを示します。 ポリシー ステートメントに 'Effect': 'Allow' と 'Action': 'Service:*' が含まれている場合、コントロールは失敗します。 たとえば、ポリシー内に次のポリシー ステートメントがある場合、結果は失敗となります。

'Statement': [
{
  'Sid': 'EC2-Wildcard',
  'Effect': 'Allow',
  'Action': 'ec2:*',
  'Resource': '*'
}

'Effect': 'Allow' と 'NotAction': 'service:' を使用すると、コントロールも失敗します。その場合、NotAction 要素は、NotAction で指定されたアクションを除き、AWS サービス内のすべてのアクションへのアクセスを提供します。このコントロールは、カスタマーマネージド IAM ポリシーにのみ適用されます。AWS によって管理される IAM ポリシーには適用されません。AWS サービスにアクセス許可を割り当てるときは、IAM ポリシーで許可されている IAM アクションのスコープを設定することが重要です。IAM アクションは、必要なアクションのみに制限する必要があります。これにより、最小限の特権のアクセス許可をプロビジョニングできます。ポリシーがアクセス許可を必要としない IAM プリンシパルにアタッチされている場合、過度に制限されたポリシーが特権エスカレーションにつながる可能性があります。場合によっては、DescribeFlowLogs や DescribeAvailabilityZones など、似たプレフィックスを持つ IAM アクションを許可することが必要になる場合があります。これらの承認されたケースでは、サフィックス付きのワイルドカードを共通プレフィックスに追加できます。たとえば、ec2:Describe です。

このコントロールは、プレフィックス付き IAM アクションとサフィックス付きワイルドカードを使用する場合に成功します。 たとえば、ポリシー内に次のステートメントがある場合、結果は成功となります。

 'Statement': [
{
  'Sid': 'EC2-Wildcard',
  'Effect': 'Allow',
  'Action': 'ec2:Describe*',
  'Resource': '*'
}

この方法で関連する IAM アクションをグループ化すると、IAM ポリシーのサイズ制限を超過しないようにすることができます。

重大度: 低

IAM ポリシーは、グループまたはロールのみにアタッチする必要がある

説明: 既定では、IAM ユーザー、グループ、ロールは AWS リソースにアクセスできなくなります。 IAM ポリシーは、ユーザー、グループ、またはロールに特権を付与するための手段です。 IAM ポリシーは、ユーザーではなくグループとロールに直接適用することをお勧めします。 グループまたはロール レベルで特権を割り当てると、ユーザー数が増えるにつれて、アクセス管理の複雑さが軽減されます。 アクセス管理の複雑さを減らすと、プリンシパルが誤って過剰な特権を受け取ったり保持したりする機会が減る可能性があります。

重大度: 低

完全な ":" 管理特権を許可する IAM ポリシーが作成されないようにする必要がある

説明: IAM ポリシーは、ユーザー、グループ、またはロールに権限を付与する手段です。 最小限の特権を付与し、タスクの実行に必要なアクセス許可のみを付与することが推奨され、標準的なセキュリティのアドバイスと見なされます。 ユーザーが実行する必要がある操作を決定し、完全な管理特権を許可するのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 最初に寛大すぎるアクセス許可を付与して、後で厳格化するよりも、最小限のアクセス許可から始めて、必要に応じて追加のアクセス許可を付与していく方が安全です。 ユーザーが実行する必要がある最低限のアクセス許可に制限するのではなく、完全な管理特権を付与する場合は、望ましくない可能性のあるアクションにリソースが公開されてしまいます。 "Effect": "Allow" および "Action": "" over "Resource": "" が含まれる IAM ポリシーは、削除する必要があります。

重大度: 高

すべての KMS キーに暗号化解除アクションを許可する IAM インライン ポリシーを IAM プリンシパルに指定しないようにする必要がある

説明: IAM ID (ロール、ユーザー、またはグループ) に埋め込まれているインラインポリシーが、すべての KMS キーに対する AWS KMS 復号化アクションを許可するかどうかを確認します。 このコントロールでは、自動化された推論エンジンである Zelkova を使用して、AWS アカウント全体のシークレットへの広範なアクセスを許可する可能性のあるポリシーを検証し、警告します。 このコントロールは、"kms:Decrypt" または "kms:ReEncryptFrom" のアクションが、インライン ポリシー内のすべての KMS キーに対して許可される場合に失敗します。 AWS KMS では、KMS キーを使用できるユーザーを制御し、暗号化されたデータにアクセスすることができます。 IAM ポリシーでは、ID (ユーザー、グループ、またはロール) によって、どのアクションが、どのリソースに対して実行されるかが定義されます。 セキュリティのベスト プラクティスに従い、AWS では、最小限の特権を許可することをお勧めします。 つまり、必要なアクセス許可のみを、タスクの実行に必要なキーについてのみ、ID に付与する必要があります。 それ以外の場合、ユーザーはデータに適さないキーを使用する可能性があります。 すべてのキーについてアクセス許可を付与する代わりに、暗号化されたデータにアクセスするためにユーザーが必要とするキーの最小限のセットを決定します。 次に、ユーザーに対し、それらのキーのみの使用を許可するポリシーを作成します。 たとえば、すべての KMS キーに対して "kms:Decrypt" アクセス許可を許可しないでください。 代わりに、アカウントでは、特定のリージョン内のキーに対してのみ許可します。 最小限の特権を採用することで、データが意図せずに公開されるリスクを軽減することができます。

重大度: 中

Lambda 関数は、パブリック アクセスを制限する必要がある

説明: ラムダ関数のリソースベースのポリシーでは、パブリック アクセスを制限する必要があります。 この推奨事項では、内部プリンシパルによるアクセスはチェックされません。 最小限の特権があるリソースベースのポリシーを使用することで、関数へのアクセスを、承認されたプリンシパルに制限されるようにします。

重大度: 高

MFA は、すべての IAM ユーザーに対して有効になっている必要がある

説明: すべての IAM ユーザーで多要素認証 (MFA) が有効になっている必要があります。

重大度: 中

MFA は、"root" アカウントに対して有効になっている必要がある

説明: ルート アカウントは、アカウント内で最も特権のあるユーザーです。 MFA を使用すると、ユーザー名とパスワードの場合と比べ、保護層が強化されます。 MFA が有効な場合、ユーザーが AWS Web サイトにサインインすると、ユーザー名とパスワードに加え、AWS MFA デバイスに表示された認証コードの入力が求められます。 ルート アカウントに仮想 MFA を使用する場合は、使用するデバイスが個人用デバイスではないことをお勧めします。 代わりに、専用モバイル デバイス (タブレットまたはスマートフォン) を使用して、個別の個人用デバイスとは別に、課金やセキュリティ保護が引き続き行われるように管理します。 この教訓により、デバイスの損失、デバイスのトレードイン、またはデバイスを所有している個人が会社によって雇用されなくなった場合に、MFA へのアクセスが失われるリスクが軽減されます。

重大度: 低

IAM ユーザーのパスワード ポリシーには、強力な構成が必要である

説明: IAM ユーザーのアカウント パスワード ポリシーで次の最小構成が使用されているかどうかを確認します。

  • RequireUppercaseCharacters- パスワードに少なくとも 1 つの大文字が必要です。 (既定値 = true)
  • RequireLowercaseCharacters - パスワードに少なくとも 1 つの小文字が必要です。 (既定値 = true)
  • RequireNumbers - パスワードに少なくとも 1 つの数値が必要です。 (既定値 = true)
  • MinimumPasswordLength- パスワードの最小長。 (既定値 = 7 以上)
  • PasswordReusePrevention - 再利用を許可する前のパスワードの数。 (既定値 = 4)
  • MaxPasswordAge - パスワードの有効期限が切れるまでの日数。 (既定値 = 90)

重大度: 中

root アカウント アクセス キーは、存在してはならない

説明: ルートアカウントは、AWS アカウントで最も特権のあるユーザーです。 AWS アクセス キーを使用すると、特定の AWS アカウントにプログラムでアクセスできます。 ルート アカウントに関連付けられているすべてのアクセス キーを削除することをお勧めします。 root アカウントに関連付けられているアクセス キーを削除すると、アカウントが侵害される可能性があるベクターが制限されます。 さらに、root アクセス キーを削除すると、最小限の特権を持つロール ベースのアカウントの作成と使用が促進されます。

重大度: 高

S3 ブロック パブリック アクセスの設定は、有効にする必要がある

説明: S3 バケットに対して [パブリック アクセスのブロック] 設定を有効にすると、機密データの漏洩を防ぎ、悪意のあるアクションからバケットを保護できます。

重大度: 中

S3 ブロック パブリック アクセスの設定は、バケット レベルで有効にする必要がある

説明: このコントロールは、S3 バケットにバケットレベルのパブリック アクセス ブロックが適用されているかどうかをチェックします。 次のいずれかの設定が false に設定されている場合、このコントロールは失敗します。

  • ignorePublicAcls
  • blockPublicPolicy
  • blockPublicAcls
  • restrictPublicBuckets S3 バケット レベルでパブリック アクセスをブロックすると、オブジェクトがパブリック アクセスを持たないようにするための制御が提供されます。 パブリック アクセスは、アクセス コントロール リスト (ACL)、バケット ポリシー、またはそれらの両方を介して、バケットとオブジェクトに付与されます。 S3 バケットをパブリックにアクセス可能にする予定がなければ、バケット レベルの Amazon S3 ブロック パブリック機能を構成する必要があります。

重大度: 高

S3 バケット パブリック読み取りアクセス権は、削除する必要がある

説明: S3 バケットへのパブリック読み取りアクセスを削除すると、データを保護し、データ侵害を防ぐことができます。

重大度: 高

S3 バケット パブリック書き込みアクセス権は、削除する必要がある

説明: S3 バケットへのパブリック書き込みアクセスを許可すると、費用でデータを格納したり、身代金のためにファイルを暗号化したり、バケットを使用してマルウェアを操作したりするなどの悪意のあるアクションに対して脆弱になる可能性があります。

重大度: 高

シークレット マネージャーのシークレットでは、自動ローテーションを有効にする必要がある

説明: このコントロールは、AWS Secrets Manager に格納されているシークレットが自動ローテーションで構成されているかどうかをチェックします。 Secrets Manager は、組織のセキュリティ体制の改善に役立ちます。 シークレットには、データベースの資格情報、パスワード、サードパーティの API キーが含まれます。 Secrets Manager を使用すると、シークレットを中心に格納したり、シークレットを自動的に暗号化したりすることに加え、シークレットへのアクセスを制御したり、シークレットを安全かつ自動的にローテーションしたりすることができます。 Secrets Manager では、シークレットのローテーションが可能です。 ローテーションを使用すると、長期シークレットを短期シークレットに置き換えることができます。 シークレットをローテーションすることで、侵害されたシークレットを未承認ユーザーが使用できる期間が制限されます。 このような理由により、シークレットを頻繁にローテーションする必要があります。 ローテーションの詳細については、AWS Secrets Manager ユーザー ガイドの「Rotating your AWS Secrets Manager secrets」 (AWS Secrets Manager シークレットのローテーション) を参照してください。

重大度: 中

停止した EC2 インスタンスは、指定した期間の後で、削除する必要がある

説明: このコントロールは、EC2 インスタンスが許可された日数を超える間停止されたかどうかをチェックします。 EC2 インスタンスは、許可された最大期間 (既定では 30 日間) を超えて停止した場合、このチェックに失敗します。 失敗の結果は、EC2 インスタンスが非常に長い期間実行されていないことを示します。 これにより、EC2 インスタンスがアクティブにメイン (分析、修正プログラムの適用、更新) されていないため、セキュリティ リスクが発生します。 後で起動した場合、適切なメインテナントが不足すると、AWS 環境で予期しない問題が発生する可能性があります。 EC2 インスタンスを非実行状態で一定の時間にわたって安全に維持するには、定期的に起動してメンテナンスを行い、メンテナンス後に停止します。 このプロセスが自動化されるのが理想的です。

重大度: 中

AWS のオーバープロビジョニングされた ID には、必要なアクセス許可のみが必要です (プレビュー)

説明: 過剰にプロビジョニングされたアクティブ ID は、使用していない特権にアクセスできる ID です。 過剰にプロビジョニングされたアクティブな ID (特にアクションと責任が定義されている人間以外のアカウントの場合) は、ユーザー、キー、またはリソースが侵害された場合に、爆発半径が増加する可能性があります。 不要なアクセス許可を削除し、最小限の特権のアクセス許可を実現するためのレビュー プロセスを確立します。

重大度: 中

AWS 環境で未使用の ID を削除する必要がある (プレビュー)

説明: 非アクティブな ID は、過去 90 日間にリソースに対してアクションを実行していない人間および非人間のエンティティです。 AWS アカウントでリスクの高いアクセス許可を持つ非アクティブな IAM ID は、そのまま残しておくと攻撃を受けやすく、組織は資格情報の悪用や悪用を受け入れる可能性があります。 未使用の ID を事前に検出して応答すると、承認されていないエンティティが AWS リソースにアクセスするのを防ぐことができます。

重大度: 中

AWS ネットワークに関する推奨事項

Amazon EC2 は、VPC エンドポイントを使用して構成する必要がある

説明: このコントロールは、Amazon EC2 のサービスエンドポイントが VPC ごとに作成されるかどうかをチェックします。 VPC に Amazon EC2 サービス用に作成された VPC エンドポイントがない場合、コントロールは失敗します。 VPC のセキュリティ体制を改善するには、インターフェイス VPC エンドポイントを使用するように Amazon EC2 を構成します。 インターフェイス エンドポイントには、Amazon EC2 API 操作にプライベートに接続できるテクノロジである AWS PrivateLink が活用されています。 これにより、VPC と Amazon EC2 の間のネットワーク トラフィックが Amazon ネットワークに制限されます。 エンドポイントは同じリージョン内でのみサポートされるため、VPC と別のリージョンのサービスの間にエンドポイントを作成することはできません。 これにより、他のリージョンへの意図しない Amazon EC2 API 呼び出しを防ぐことができます。 Amazon EC2 の VPC エンドポイントの作成に関する詳細については、Linux インスタンス用 Amazon EC2 ユーザー ガイドの「Amazon EC2 and interface VPC endpoints」 (Amazon EC2 とインターフェイス VPC エンドポイント) を参照してください。

重大度: 中

Amazon ECS サービスには、パブリック IP アドレスを自動的に割り当てないようにする必要がある

説明: パブリック IP アドレスは、インターネットから到達可能な IP アドレスです。 パブリック IP アドレスを使用して Amazon ECS インスタンスを起動すると、Amazon ECS インスタンスは、インターネットから到達可能となります。 Amazon ECS サービスには、コンテナー アプリケーション サーバーへの意図しないアクセスが許可される可能性があるため、パブリックにアクセスできないようにする必要があります。

重大度: 高

Amazon EMR クラスター マスター ノードには、パブリック IP アドレスを指定しないようにする必要がある

説明: このコントロールは、Amazon EMR クラスター上のマスター ノードにパブリック IP アドレスがあるかどうかをチェックします。 このコントロールは、マスター ノードに、そのいずれかのインスタンスに関連付けられているパブリック IP アドレスが指定されている場合に失敗します。 パブリック IP アドレスは、インスタンスの NetworkInterfaces 構成の PublicIp フィールドに指定されます。 このコントロールを使用すると、RUNNING または WAITING 状態の Amazon EMR クラスターのみ、チェックできます。

重大度: 高

Amazon Redshift クラスターでは、拡張 VPC ルーティングを使用する必要がある

説明: このコントロールは、Amazon Redshift クラスターで EnhancedVpcRouting が有効になっているかどうかをチェックします。 拡張 VPC ルーティングにより、クラスターとデータ リポジトリの間のすべての COPY トラフィックと UNLOAD トラフィックが、強制的に VPC を通過します。 その後は、セキュリティ グループやネットワーク アクセス コントロール リストなどの VPC 機能を使用して、ネットワーク トラフィックをセキュリティで保護することができます。 また、ネットワーク トラフィックの監視には、VPC Flow ログも使用することができます。

重大度: 高

Application Load Balancer は、すべての HTTP 要求を HTTPS にリダイレクトするように構成する必要がある

説明: 転送中に暗号化を適用するには、アプリケーション ロード バランサーでリダイレクト アクションを使用して、クライアント HTTP 要求をポート 443 の HTTPS 要求にリダイレクトする必要があります。

重大度: 中

Application Load Balancer は、HTTP ヘッダーを削除するように構成する必要がある

説明: このコントロールは、AWS Application Load Balancer (ALB) を評価して、無効な HTTP ヘッダーを削除するように構成されていることを確認します。 このコントロールは、routing.http.drop_invalid_header_fields.enabled の値が false に設定されている場合に失敗します。 既定では、ALB は無効な HTTP ヘッダー値を削除するように構成されていません。 これらのヘッダー値を削除すると、HTTP 非同期攻撃を防ぐことができます。

重大度: 中

Lambda 関数を VPC に構成する

説明: このコントロールは、Lambda 関数が VPC 内にあるかどうかをチェックします。 パブリック到達可能性を判断するために VPC サブネットルーティング構成は評価されません。 アカウントに Lambda@Edge がある場合は、このコントロールによって失敗の結果が生成されます。 このような結果を回避するには、このコントロールを無効にしてください。

重大度: 低

EC2 インスタンスには、パブリック IP アドレスを指定しないようにする必要がある

説明: このコントロールは、EC2 インスタンスにパブリック IP アドレスがあるかどうかをチェックします。 このコントロールは、EC2 インスタンス構成アイテムに "publicIp" フィールドが存在する場合に失敗します。 このコントロールは、IPv4 アドレスにのみ適用されます。 パブリック IPv4 アドレスは、インターネットから到達可能な IP アドレスです。 パブリック IP アドレスを使用してインスタンスを起動すると、EC2 インスタンスは、インターネットから到達可能となります。 プライベート IPv4 アドレスは、インターネットから到達できない IP アドレスです。 同じ VPC 内または接続されたプライベート ネットワーク内の EC2 インスタンス間の通信には、プライベート IPv4 アドレスを使用できます。 IPv6 アドレスは、グローバルに一意であるため、インターネットから到達可能です。 ただし、既定では、すべてのサブネットで、IPv6 アドレス属性が false に設定されています。 IPv6 の詳細については、Amazon VPC ユーザー ガイドの「IP addressing in your VPC」 (VPC の IP アドレス指定) を参照してください。 パブリック IP アドレスが指定されている EC2 インスタンスを維持するための正当なユース ケースがある場合は、このコントロールの結果を抑制することができます。 フロントエンド アーキテクチャのオプションの詳細については、AWS アーキテクチャのブログ、または「This Is My Architecture」シリーズを参照してください。

重大度: 高

EC2 インスタンスでは、複数の ENI を使用しないようにする必要がある

説明: このコントロールチェック、EC2 インスタンスが複数の Elastic Network Interfaces (ISI) と Elastic Fabric Adapter (EFA) のどちらを使用するかを示します。 このコントロールは、1 つのネットワーク アダプターが使用される場合に渡されます。 このコントロールには、許可されている ENI を識別するための、省略可能なパラメーター リストが含まれています。 複数の ENI があると、デュアルホームのインスタンス、つまり複数のサブネットを持つインスタンスが生成される場合があります。 これにより、ネットワーク セキュリティがさらに複雑になり、意図しないネットワーク パスやアクセスが発生する可能性があります。

重大度: 低

EC2 インスタンスでは、IMDSv2 を使用する必要がある

説明: このコントロールは、EC2 インスタンス メタデータ バージョンがインスタンス メタデータ サービス バージョン 2 (IMDSv2) で構成されているかどうかをチェックします。 このコントロールは、'HttpTokens' が IMDSv2 に対して 'required' に設定されている場合に合格します。 このコントロールは、'HttpTokens' が 'optional' に設定されている場合に失敗します。 実行中のインスタンスを構成または管理するには、インスタンスのメタデータを使用します。 IMDS を使用すると、頻繁にローテーションされる一時的な資格情報にアクセスできます。 このような資格情報により、機密である資格情報を、ハードコーディングしたり、手動またはプログラムによってインスタンスに配布したりする必要がなくなります。 IMDS は、すべての EC2 インスタンスにローカルにアタッチされます。 特別な 'リンク ローカル' IP アドレスである 169.254.169.254 で実行されます。 この IP アドレスへは、インスタンスで実行されているソフトウェアによってのみアクセスできます。 IMDS のバージョン 2 では、次の種類の脆弱性に対する新たな保護が追加されています。 これらの脆弱性は、IMDS へのアクセスを試みるために使用される場合があります。

  • Web サイト アプリケーション ファイアウォールを開く
  • リバース プロキシを開く
  • サーバー側要求フォージェリ (SSRF) の脆弱性
  • レイヤー 3 のファイアウォールとネットワーク アドレス変換 (NAT) Security Hub を開くには、IMDSv2 を使用して EC2 インスタンスを構成することをお勧めします。

重大度: 高

EC2 サブネットでは、パブリック IP アドレスを自動的に割り当てないようにする必要がある

説明: このコントロールは、Amazon Virtual Private Cloud (Amazon VPC) サブネットでのパブリック IP の割り当てに "MapPublicIpOnLaunch" が "FAL Standard Edition" に設定されているかどうかをチェックします。 このコントロールは、フラグが 'FALSE' に設定されている場合に合格します。 すべてのサブネットには、そのサブネットに作成されたネットワーク インターフェイスが自動的にパブリック IPv4 アドレスを受信するかどうかを決定する属性があります。 この属性が有効になっているサブネットに起動されるインスタンスには、プライマリ ネットワーク インターフェイスに割り当てられたパブリック IP アドレスが指定されます。

重大度: 中

AWS Config 構成の変更に対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 CloudTrail の構成の変更を検出するために、メトリック フィルターとアラームを確立することをお勧めします。 AWS Config 構成の変更を監視することで、AWS アカウント内の構成項目を持続的に可視化できます。

重大度: 低

AWS マネジメント コンソールの認証エラーに対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 失敗したコンソール認証の試行に対してメトリック フィルターとアラームを確立することをお勧めします。 コンソール ログインの失敗を監視すると、資格情報をブルート フォースする試みを検出するリード タイムが短縮される可能性があります。これにより、他のイベント相関関係で使用できるインジケーター (ソース IP など) が提供される可能性があります。

重大度: 低

ネットワーク アクセス コントロール リスト (NACL) の変更に対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 NACL は、VPC 内のサブネットのイングレスおよびエグレス トラフィックを制御するためのステートレス パケット フィルターとして使用されます。 NACL に加えられた変更に対して、メトリック フィルターとアラームを設定することをお勧めします。 NACL に対する変更を監視することで、AWS のリソースとサービスが意図せずに公開されないようにすることができます。

重大度: 低

ネットワーク ゲートウェイの変更に対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 ネットワーク ゲートウェイは、VPC の外側にある宛先とのトラフィックのを送信/受信に必要です。 ネットワーク ゲートウェイへの変更については、メトリック フィルターとアラームを確立することをお勧めします。 ネットワークゲートウェイに対する変更を監視することで、すべてのイングレス/エグレストラフィックが制御されたパスを介して VPC ボーダーを通過することを保証できます。

重大度: 低

CloudTrail 構成の変更に対して、ログ メトリック フィルターとアラームが存在することを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 CloudTrail の構成の変更を検出するために、メトリック フィルターとアラームを確立することをお勧めします。

CloudTrail の構成に対する変更を監視することで、AWS アカウントで実行されたアクティビティを継続的に可視化できます。

重大度: 低

顧客が作成した CMK の無効化またはスケジュールされた削除に対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 状態が無効またはスケジュールされた削除に変更された、顧客が作成した CMK に対してメトリック フィルターとアラームを確立することをお勧めします。 無効化または削除されたキーで暗号化されたデータには、アクセスできなくなります。

重大度: 低

IAM ポリシーの変更に対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 ID およびアクセス管理 (IAM) ポリシーに対するメトリック フィルターとアラームの変更を確立することをお勧めします。 IAM ポリシーの変更を監視すると、認証と承認の制御がメインそのまま維持されます。

重大度: 低

MFA を使用しないマネジメント コンソール サインインに対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 多要素認証 (MFA) によって保護されていないコンソール ログインには、メトリック フィルターとアラームを確立することをお勧めします。 単一要素のコンソール ログインを監視すると、MFA によって保護されていないアカウントの可視性が向上します。

重大度: 低

ルート テーブルの変更に対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 ルーティング テーブルは、サブネット間およびネットワーク ゲートウェイへ向かうネットワーク トラフィックをルーティングするために使用されます。 ルート テーブルの変更については、メトリック フィルターとアラームを確立することをお勧めします。 ルートテーブルに対する変更を監視すると、すべての VPC トラフィックが予想されるパスを通過することが保証されます。

重大度: 低

S3 バケット ポリシーの変更に対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 S3 バケット ポリシーの変更に対して、メトリック フィルターとアラームを設定することをお勧めします。 S3 バケット ポリシーに対する変更を監視すると、機密性の高い S3 バケットの許容ポリシーを検出して修正する時間が短縮される場合があります。

重大度: 低

セキュリティ グループの変更に対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 Security Groups は、VPC 内のサブネットのイングレス/エグレス トラフィックを制御するためのステートレス パケット フィルターとして使用されます。 セキュリティ グループに対するメトリック フィルターとアラームの変更を確立することをお勧めします。 セキュリティ グループに対する変更を監視すると、リソースとサービスが意図せずに公開されないようにすることができます。

重大度: 低

未承認の API 呼び出しに対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 承認されていない API 呼び出しに対してメトリック フィルターとアラームを確立することをお勧めします。 承認されていない API 呼び出しを監視すると、アプリケーション エラーが明らかになり、悪意のあるアクティビティを検出する時間が短縮される可能性があります。

重大度: 低

'root' アカウントの使用に対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 ルート ログインの試行に対してメトリック フィルターとアラームを確立することをお勧めします。

ルート アカウント ログインの監視により、完全な特権を持つアカウントの使用が可視化され、その使用を減らすことができます。

重大度: 低

VPC の変更に対して、ログ メトリック フィルターとアラームが設定されていることを確認する

説明: API 呼び出しをリアルタイムで監視するには、CloudTrail ログを CloudWatch ログに転送し、対応するメトリック フィルターとアラームを確立します。 アカウント内に複数の VPC を含めることもできます。さらに、2 つの VPC 間にピア接続を作成して、ネットワーク トラフィックを VPC 間でルーティングすることもできます。 VPN に加えられた変更については、メトリック フィルターとアラームを確立することをお勧めします。 IAM ポリシーの変更を監視すると、認証と承認の制御がメインそのまま維持されます。

重大度: 低

0.0.0.0/0 からポート 3389 へのイングレスを許可するセキュリティ グループが存在しないことを確認する

説明: セキュリティ グループは、AWS リソースへのイングレス/エグレス ネットワーク トラフィックのステートフル フィルター処理を提供します。 ポート 3389 への無制限のイングレス アクセスを許可するセキュリティ グループはないことをお勧めします。 RDP などのリモート コンソール サービスへの接続を制限することで、サーバーがリスクにさらされる可能性が低下します。

重大度: 高

RDS のデータベースとクラスターでは、データベース エンジンの既定のポートを使用しないようにする必要がある

説明: このコントロールは、RDS クラスターまたはインスタンスがデータベース エンジンの既定のポート以外のポートを使用するかどうかをチェックします。 既知のポートを使用して RDS クラスターまたはインスタンスをデプロイすると、攻撃者は、クラスターまたはインスタンスに関する情報を推測できます。 攻撃者は、この情報を他の情報と併せて使用することで、RDS クラスターやインスタンスに接続したり、アプリケーションに関する追加情報を取得したりすることができます。 ポートを変更する場合は、古いポートへの接続に使用されていた既存の接続文字列も更新する必要があります。 また、DB インスタンスのセキュリティ グループを確認して、新しいポートでの接続を許可するイングレス規則が含まれていることを確認する必要があります。

重大度: 低

RDS インスタンスは、VPC にデプロイする必要がある

説明: VPN には、RDS リソースへのアクセスをセキュリティで保護するための多数のネットワーク制御が用意されています。 これらのコントロールには、VPC エンドポイント、ネットワーク ACL、セキュリティグループが含まれます。 これらのコントロールを活用するには、EC2-Classic RDS インスタンスを EC2-VPC に移動することをお勧めします。

重大度: 低

S3 バケットでは、要求に Secure Socket Layer を使用する必要がある

説明: すべての Amazon S3 バケットで Secure Socket Layer (SSL) の使用を要求することをお勧めします。 S3 バケットには、条件キー 'aws:SecureTransport' によって示されているように、S3 リソース ポリシーで HTTPS 経由のデータ転送のみを許可することをすべての要求 ('Action: S3:*') に求めるポリシーが必要です。

重大度: 中

セキュリティ グループでは、0.0.0.0/0 からポート 22 へのイングレスを許可しないようにする必要がある

説明: サーバーの露出を減らすために、ポート '22' への無制限のイングレス アクセスを許可しないことをお勧めします。

重大度: 高

セキュリティ グループでは、リスクの高いポートに対して無制限のアクセスを許可しないようにする必要がある

説明: この制御チェック、セキュリティ グループの無制限の着信トラフィックに、リスクが最も高い指定されたポートからアクセスできるかどうかを示します。 このコントロールは、セキュリティ グループ内に、このようなポートに対して 0.0.0.0/0 からのイングレス トラフィックを許可する規則が存在しない場合に合格します。 無制限のアクセス (0.0.0.0/0) を設定すると、ハッキング、サービス拒否攻撃、データ損失などの悪意のあるアクティビティが発生する可能性が高まります。 セキュリティ グループでは、AWS リソースへのイングレスおよびエグレス ネットワーク トラフィックのステートフル フィルタリングを実行することができます。 いかなるセキュリティ グループにおいても、次のポートへの無制限のイングレス アクセスは許可されていません。

  • 3389 (RDP)
  • 20、21 (FTP)
  • 22 (SSH)
  • 23 (Telnet)
  • 110 (POP3)
  • 143 (IMAP)
  • 3306 (MySQL)
  • 8080 (プロキシ)
  • 1433、1434 (MSSQL)
  • 9200 または 9300 (Elasticsearch)
  • 5601 (Kibana)
  • 25 (SMTP)
  • 445 (CIFS)
  • 135 (RPC)
  • 4333 (ahsp)
  • 5432 (postgresql)
  • 5500 (fcp-addr-srvr1)

重大度: 中

セキュリティ グループでは、承認済みポートに対する無制限の受信トラフィックのみを許可する必要がある

説明: このコントロールは、使用中のセキュリティ グループが無制限の着信トラフィックを許可するかどうかをチェックします。 必要に応じて、この規則に従い、"authorizedTcpPorts" パラメーターにポート番号が表示されているかどうかをチェックします。

  • セキュリティ グループ規則のポート番号で無制限の着信トラフィックが許可されているが、ポート番号が "authorizedTcpPorts" で指定されている場合、コントロールは渡されます。 "authorizedTcpPorts" の既定値は、80、443 です。
  • セキュリティ グループ規則のポート番号で無制限の受信トラフィックが許可されているが、ポート番号が authorizedTcpPorts 入力パラメーターに指定されていない場合、コントロールは失敗します。
  • パラメーターが使用されていない場合、無制限の受信規則を持つセキュリティ グループのコントロールは失敗します。 セキュリティ グループでは、AWS へのイングレスおよびエグレス ネットワーク トラフィックのステートフル フィルタリングを実行することができます。 セキュリティ グループの規則は、最小限の特権アクセスの原則に従う必要があります。 無制限のアクセス (サフィックスが a /0 の IP アドレス) を設定すると、ハッキング、サービス拒否攻撃、データ損失などの悪意のあるアクティビティが発生する可能性が高まります。 ポートが明示的に許可されていない限り、そのポートに対しては、無制限のアクセスを拒否する必要があります。

重大度: 高

使用されていない EC2 EIP は、削除する必要がある

説明: VPC に割り当てられたエラスティック IP アドレスは、Amazon EC2 インスタンスまたは使用中のエラスティック ネットワーク インターフェイス (ISI) にアタッチする必要があります。

重大度: 低

使用されていないネットワーク アクセス コントロール リストは、削除する必要がある

説明: このコントロールは、未使用のネットワーク アクセス制御リスト (ACL) があるかどうかをチェックします。 このコントロールを使用すると、リソース "AWS::EC2::NetworkAcl" のアイテム構成をチェックできることに加え、ネットワーク ACL のリレーションシップを判別することができます。 リレーションシップがネットワーク ACL の VPC のみである場合、このコントロールは失敗します。 他のリレーションシップが表示されている場合、このコントロールは合格します。

重大度: 低

VPC の既定のセキュリティ グループでは、トラフィックを制限する必要がある

説明: セキュリティ グループでは、リソースの露出を減らすためにすべてのトラフィックを制限する必要があります。

重大度: 低