AWS公式資料で挑むSCS認定(47)-こんな時どうする(全分野その24)

##### [前回] [AWS公式資料で挑むSCS認定(46)-こんな時どうする(全分野その23)](https://qiita.com/mingchun_zhao/items/6114af39ae73c9ff29f2)

## はじめに

今回も引き続き、「こんな時どうする」集の作成です。

## 分野1: インシデント対応

- 不審なアクセスが報告された、大量EC2インスタンスに対しネットワークACLとセキュリティグループによるアクセス制御が機能しているか診断したい
    - VPCフローログを使用し、アクセス制限に過不足ないか、セキュリティグループルールまたはネットワークACLルールを診断
    - VPCフローログは、VPCのネットワークインターフェイス間で行き来するIPトラフィックに関する情報をキャプチャーしログ記録する機能
    - フローログデータはAmazon CloudWatch LogsまたはAmazon S3に発行できる
    - フローログの機能
        - セキュリティグループルールの制限が過度に厳しくないか診断
        - EC2インスタンスに到達するトラフィックをモニタリング
        - ネットワークインターフェイスに出入りするトラフィックの方向を決定
        - フローログデータはネットワークトラフィック経路の外で収集されるため、ネットワークスループットやレイテンシーに影響しない
    - フローログを使用し、セキュリティグループルールとネットワークACLルールを診断する際の注意点
        - セキュリティグループはステートフルで、許可されたトラフィックへの応答も自動的に許可され、応答へのルール設定は不要
        - ネットワークACLはステートレスで、許可されたトラフィックへの応答に対し、別途ルール設定が必要

## 分野2: ログとモニタリング(監視)

- AWSサービスが暗号化されているか監視したい
    - AWS Configのマネージド型ルールを使用し監視
        - AWSリソース設定がコンプライアンス準拠しているか評価するための、事前定義されたルール
    - 暗号化監視に使用するマネージド型ルール
        - `SNS_ENCRYPTED_KMS`: Amazon SNSがAWS KMSで暗号化されているか
        - `S3_DEFAULT_ENCRYPTION_KMS`: アカウントのS3バケットがAWS KMSで暗号化されているか
        - `REDSHIFT_REQUIRE_TLS_SSL`: アカウントのAmazon RedshiftクラスターがSQLクライアントに接続時、TLS/SSL暗号化を必要とするか
        - `RDS_SNAPSHOT_ENCRYPTED`: Amazon RDSのDBスナップショットが暗号化されているか
        - `EC2_EBS_ENCRYPTION_BY_DEFAULT`: デフォルトでAmazon EBS暗号化が有効になっているか
        - `DYNAMODB_TABLE_ENCRYPTED_KMS`: Amazon DynamoDBテーブルがAWS KMSで暗号化されているか
        - `BACKUP_RECOVERY_POINT_ENCRYPTED`: リカバリポイントが暗号化されているか

## 分野3: インフラストラクチャのセキュリティ

- Amazon Inspector Classicから新しいAmazon Inspectorに移行したい
    - アカウント内のすべての評価テンプレートを削除するだけで、Amazon Inspector Classicを無効にできる
        - 既存の評価実行結果にアクセスするには、レポートとしてダウンロードするか、Amazon Inspector APIを使用しエクスポート
    - 脆弱性管理サービスとしてAmazon InspectorがAmazon Inspector Classicより強化されたポイント
        - スケールと動的クラウド環境を考慮し構築され、一度にスキャンできるインスタンスまたはイメージの数に制限がない
        - Amazon ECRにあるコンテナイメージもスキャンし、ソフトウェアの脆弱性を検出できる、コンテナ関連の結果もECRコンソールにプッシュされる
        - AWS Organizationsと統合され、マルチアカウント管理が可能で、組織のAmazon Inspector管理者アカウントに委任できる
            - 委任された管理者(DA)アカウントとは、すべての診断結果を統合、すべてのメンバーアカウントを設定できる、一元化されたアカウント
        - EC2インスタンスにスタンドアロンのAmazon Inspectorエージェントをインストールし維持する必要がなくなる
            - 代わりに、AWS Systems Manager Agent(SSM Agent)を使用
        - 自動かつ継続的にスキャン可能、新しく起動されたすべてのEC2 インスタンスと、ECRにプッシュされた適格なコンテナイメージを、自動的に検出し、ソフトウェアの脆弱性と意図しないネットワーク露出を即座にスキャン
            - 新しい脆弱性をもたらす下記イベントが発生すると、関連リソースが自動的に再スキャンされる
                - EC2インスタンスへの新しいパッケージのインストール
                - パッチのインストール
                - リソースに影響を与える新しいCVE(共通脆弱性識別子)の公開
            - 最新CVEからの悪用される可能性のある脆弱性情報と、実環境の時間/環境要因などを相関させ、結果の優先順位付けに役立つコンテキストを追加することで、Inspectorのリスクスコアを計算
    - 同じアカウントでAmazon InspectorとAmazon Inspector Classic を同時使用可能
    - OSセキュリティ設定のCIS(Center for Internet Security)ベンチマークのスキャン
        - Amazon Inspectorは現在サポートしていない、今後追加予定
        - Amazon Inspector Classicで提供されている、CISスキャンルールパッケージを引き続き利用可能
        - CISベンチマークは、セキュリティ体制を向上させることで、EC2インスタンスを保護するホストハードニングガイドライン
        - CISベンチマークのルールパッケージで実行されたInspectorアセスメントの検出結果(findings)は、安全性の低い設定やパスワードポリシーの脆弱性を減少するため、必要なガイダンスとステップを提供
        - Inspector用ワンステップセットアッププロセスで、簡単にCISおよびCVEルールパッケージによるセキュリティ評価を実行可能

## 分野4: アイデンティティ(ID)及びアクセス管理

- Amazon CloudFrontで、HLS形式動画へのセキュアなアクセスを提供したい
    - CloudFrontの署名付きCookieを使用しコンテンツにアクセスするように、ユーザーに要求
    - CloudFrontが、コンテンツへのアクセスを保護/制限する方法
        - HTTPS接続を設定
        - 特定の地理的な場所のユーザーがコンテンツにアクセスできないようにする
        - CloudFrontの署名付きURLまたは署名付きCookieを使用しコンテンツにアクセスするように、ユーザーに要求
            - 署名付きURLと署名付きCookieは同じ基本機能を提供し、コンテンツにアクセスできるユーザーを制御できる
        - 特定のコンテンツフィールドのフィールドレベルの暗号化を設定
        - AWS WAFを使用し、コンテンツへのアクセスを管理
    - CloudFrontを使用しプライベートコンテンツを供給する場合、署名付きURLと署名付きCookieの選択
        - 署名付きURLを使用するケース
            - 個別ファイル(アプリケーションのインストーラダウンロードなど)へのアクセスを制限する場合
            - ユーザーがCookieをサポートしていないクライアント(カスタムHTTPクライアントなど)を使用している場合
        - 署名付きCookieを使用するケース
            - 複数の制限されたファイルへのアクセスを提供する場合
                - HLS形式動画のすべてのファイル
                - ウェブサイト購読者の領域にあるすべてのファイル
                - 現在のURLを変更したくない場合
        - 署名付きURLと署名付きCookieのいずれも使用できないケース
            - 使用中の署名なしURLに、次のクエリ文字列パラメータが含まれる場合
                - Expires
                - Policy
                - Signature
                - Key-Pair-Id
            - ※ CloudFrontは、上述クエリ文字列パラメータが含まれたURLを署名付きURLと見なすため、署名付きCookieの確認は行わない
        - 署名付きURLと署名付きCookie両方使用できるケースにおいて
            - 署名付きURLが署名付きCookieより優先される

## 分野5: データ保護

- EC2インスタンスに安全にリモートアクセスしたい
    - SSHによるリモートアクセス
        - 直接的またはEC2 Instance Connect経由の安全な通信チャネルを使用できる
    - AWS Systems ManagerのSession Managerと`Run Command`を使用したリモートアクセス
        - TLS 1.2を使用し暗号化される
        - 接続を確立するリクエストはSigV4を使用し署名される
        - IAMにより認証/認可される
    - ※ AWS責任共有モデルに基づき、クライアントとEC2インスタンス間で送受信される機密データを、TLSなど暗号化プロトコルを使用し暗号化することは、ユーザーの責任範囲

## おわりに

「こんな時どうする」の追記でした。
次回も続きます、お楽しみに。

##### [次回] [AWS公式資料で挑むSCS認定(48)-こんな時どうする(全分野その25)](https://qiita.com/mingchun_zhao/items/563c40028f658d7d1f6e)