SCS-C02 になって大きく変わった AWS認定 セキュリティ - 専門知識 に合格したので

# はじめに

AWS認定 セキュリティ - 専門知識 に初めて合格したのは2018年。
今回で３回目の認定になりますが、試験問題が前回までのSCS-C01からSCS-C02になって大きく変わりました。
合格までにやったこと、試験に向けてのポイントなどを書いていきます。
自分は費用をかけず無料で合格することをポリシーにしています。有料の試験対策コンテンツがあれこれ売られていますがこれらは使用しません。
それでもAWS認定を全部保有し続けています。AWSから公開されている無料のコンテンツだけで合格できますよ。

# どんな試験なのか

セキュリティはAWSの最優先事項と掲げるAWSのサービスに関連したセキュリティの問題が出題されます。
以前はほぼIAMでしたが、現在はセキュリティ関連サービスが数多く登場し勉強すべき項目が非常に増えました。
専門知識シリーズ共通ですが、AWSのサービスに限らずセキュリティ全般についての知識はもちろん必要です。（ここではそれらについては触れません）


# 受験までにやったこと

基本は AWS Skill Builder で学びます。無料で登録できます。一部有料コンテンツもありますが使用していません。
これはAWSが公開している学習コンテンツで(Microsoft Learnのようなものです)、ここにある関連コンテンツを学び、そこで登場した公式ドキュメントを読み理解を深めます。

- Exam Prep Standard Course: AWS Certified Security - Specialty (SCS-C02 - 日本語)
    - 試験にどんな内容が出題されるのか、学習すべき内容をAWSのSAが解説しています
    - 自分が何を知らないのか理解します。知らないサービスや項目が出てきたらメモしておき、それらの公式ドキュメントを読みます
    - これを見るとわかった気になりますがこれだけでは不十分です。理解の浅い項目は必ずドキュメントを読みましょう
    - https://explore.skillbuilder.aws/learn/course/20577/exam-prep-standard-course-aws-certified-security-specialty-scs-c02-ri-ben-yu (要ログイン)

- AWSJ公式ドキュメントを読む

先の Exam Prep に登場した知らなかったり理解の浅いAWSのサービスをしっかり理解しましょう。
地味ですがこれが一番重要です。必要なことは全て書かれています。

    - AWS IAM
        - 今も昔もAWSのセキュリティはここから
        - IAMポリシー、ロール、ユーザ、グループは当然として、RBACとABACによるアクセス許可、STSによるパスロール、他アカウントとの連携
        - AWS SSOとの連携を理解しておく

    - AWS IAM Access Analyzer
        - IAMの新機能。IAMの利用状況や外部からアクセス可能になっているか等がわかる
        - 付与した権限のうちどれが使用されているかがわかり、最小権限の原則を作るのに役立つ

    - AWS Systems Manager
        - 非常に多機能化され大きく変わった。
        - SSM Agent がエンドポイントと通信し続けることでインバウンド通信を開くことなく各種指令を受ける仕組み。
            - 現行Amazon Linuxには標準導入済み。利用にはインスタンスプロファイルが必要
            - オンプレミスを含むその他のOSにはSSM Agentを導入しなければ動作しない
        - Run Command は最初に登場したOSコマンドを実行する。ログインせずコマンドを実行するときたらこれ。
        - Patch Manager はOSのパッチ適用状況を把握、適用を行う
            - パッチベースライン、パッチ適用に承認プロセスが必要な場合の方法を理解する
        - Session Manager はSSHやRDP等を使用せずにOSのシェルへログインする
            - セッションロギングは CloudWatch LogsへストリーミングするかS3へ保存できる
            - EC2 Instance Connect との違い、使い分けを理解する

    - Amazon CloudWatch
        - CloudWatchとCloudWatch Logsの違い。それぞれ何が保存されているのか。
            - CloudWatch は AWS各種サービスのメトリクス
            - CloudWatch Logs は AWS各種サービスのログ情報の他、エージェント経由で任意のログを保存できる
        - CloudWatch Logsのログ保存期間はデフォルト無期限。1日~10年間に変更可能なのでコストが問題になったらS3へ古いデータを移す
        - CloudWatch Logs 単体でも特定のパターンでアラートをあげてイベント駆動できる
        - CloudWatch Logs Insights は クエリ言語 (Logs Insights QL) で CloudWatch Logs のログを分析できる

    - AWS CloudTrail
        - AWS各種サービスのAPI呼び出しに関するログが保存され監査や不正アクセス等の調査に利用できる
        - ログの保管期限は90日。それ以上保管が必要な場合はS3へ保存して Amazon Athena 等で検索する
        - 最近はデータイベントをログ記録するできるようになった。S3バケットにどのようなオブジェクトを書き込んだか等はデータイベントを有効にしなければ保存されない。
        - デフォルトはAPI呼び出しに関するログのみで、データイベントは有効にするまで記録されない。

    - CloudTrail Insights
        - CloudTrail に保存されたAPI呼び出し状況の可視化ができる他、異常なアクティビティを警告してくれる

    - CloudTrail Lake
        - CloudTrail のデータレイク
        - イベントに対してSQLベースのクエリを実行可能

    - AWS Security Hub
        - 設定内容がベストプラクティスに沿っているか、ポリシーに沿っていないリソースを検出する
        - AWSの各種セキュリティサービスの情報を集約して表示できる
        - アラートが上がったら事前に用意したランブック等で自動修復できる
        - Security Hub, GuardDuty, Detective の連携とそれぞれの役割を理解しておく

    - Amazon GuardDuty
        - AWSリソースの通信やログを監視し機械学習で悪意のある挙動を検知する
        - EC2インスタンスのマルウェアスキャンが可能になった
        - 行うのは検知までで、調査や対応、修復は他のサービスを呼び出し行う

    - Amazon Detective
        - CloudTrail, VPCフローログ, GuardDUty のログを調査し不審なアクティビティを調査する
        - サービス連携時は、GuardDutyが「検知」した挙動をDetectiveで「調査」するイメージ

    - AWS Audit Manager
        - 監査等の為に、AWSアカウント内のリソースが設定したコンプライアンス(HIPPA等)に準拠しているかを継続して監視し結果を表示する

    - AWS Global Infrastructure
        - AWSグローバルインフラストラクチャは全てAWSの閉域網で接続されていて外部インターネットに出ず安全
        - 例えばリージョン間のVPCピアリングを行ってもその通信は暗号化された閉域網の中で完結している

    - AWS Config
        - AWSリソースの変更を検出し、自動的に是正することができる
        - EC2インスタンスをタグ無しで作成しようとしたら、そのインスタンスを終了させるような
        - AWS Config と AWS ConfigRule の関係、Configマネージドルールを理解しておく

    - AWS CloudFormation
        - 言わずとしれたIaC。セキュリティでもスタックセットを使い複数のAWSアカウントへ同じテンプレートを展開する時に使う
        - CloudFormation を実行する時の権限はどうなるのか、必要な権限付与方法を理解する
        - AWS CloudFormation Guard という Policy as Code 評価ツールが登場。どんなものかぐらい知っておく
            - https://docs.aws.amazon.com/ja_jp/cfn-guard/latest/ug/what-is-guard.html

    - AWS Organizations
        - マルチアカウント管理のベース
        - OU, サービスコントロールポリシー(SCPs), AWS Control Tower との関係とその動作を理解する

    - AWS Key Management Service (KMS)
        - AWSのサービスによる鍵管理とCMKによる動作の違いを理解する
        - 鍵の権限をどのようにプリンシパルへ付与すれば動作するのか
        - IAMポリシーはグローバルだがKMSのキーポリシーはリージョナル
        - 暗号化されたデータを他リージョンへ複製した場合の鍵管理
        - ルートキーは持ち出せない

    - Amazon Inspector
        - EC2インスタンスへエージェントをインストールしてOS上の脆弱性等をスキャンすることから始まった
        - 現在はECRと連携してコンテナの内部もスキャンできるようになった
        - 問題の選択肢によく登場するので、何ができて何ができないのかを覚える

    - AWS Direct Connect
        - Direct Connect 自体は通信内容を暗号化していない
        - MACsec を用いることで暗号化することができる

    - AWS VPN
        - インターネットVPN接続であってDirect Connectには適用されない
        - Direct ConnectでIPsec接続するには自前で環境構築が必要。運用コストが増えるからMACsecを使用する方が良い

    - Amazon EC2 におけるネットワーキング
        - https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-networking.html
        - 拡張ネットワーキング(ENI,ENA)の細かな動作とかもスルーせずじっくり読む
        - ENI とセキュリティグループの関係を理解する

    - AWS での統合ログ管理
        - 一通り読んでおくとAWSの各種サービスでログをどのように管理すべきか理解できる
        - https://d1.awsstatic.com/Solutions/ja_JP/centralized-logging-on-aws.pdf

- 無料の模擬試験をやってみる
    - 知らないサービスはもう無いか？　もしあればそのサービスを調べる
    - 回答の選択肢にはとんでもないのもある。そんなことはできないを見抜けたか？
    - これは２０問しかなく参考程度に。全くここに登場しない内容も出題されます
    - https://explore.skillbuilder.aws/learn/course/15232/aws-certified-security-specialty-official-practice-question-set-scs-c02-ri-ben-yu


# 勉強のポイント

- 各サービスで何ができて何ができないのか。「そんなことはできない」を理解する
    - あり得ない選択肢が多く登場するのでこれを理解していると回答の絞り込みが楽になります

- 何を求められているのかを理解する
    - 低コストを求めているのか、性能を求めているのか
    - よく登場する「運用の手間を最小限に」は作業工数をかけない、つまりマネージドサービスや自動化を求めている


# 結果

以前の試験と異なり、分野毎に成績が%表示されなくなったので詳細は不明ですが合格しました。

# まとめ

出題範囲が大幅に広がり、学習内容が激増して難しい試験でした。
しかし関連するドキュメントをしっかり読んでおけば問題なく合格できます。

======