この記事で分かること
- AWS certified security - specialty(scs)試験について
試験の難易度
難易度:
この記事では、専門知識「AWS Certified Security - Specialty」について纏めたいと思います。
試験の難易度的には、可もなく不可もなく、という印象です。
以下の記事で記載しましたが、高度試験をどれから取ればいいか?
という質問に対し、私が回答するとしたらSecurity、です。
「専門知識」といっても、セキュリティはあらゆるサービスに絶対付いて回る要素ですので、
局所的に深い知識が必要というより、AWSサービスの運用面全般に対して問われる、といった印象です。
そして、ソリューションアーキテクト(SAA)に肉付けされる印象を受けましたので、
非常にとっつきやすかったです。
実務面から言っても腐ることは無いため、
この観点から言っても、まず最初に取得することをお勧めします。
(マシンラーニングを利用する予定が無いのにマシンラーニングの試験を受けるといった虚無感はありません)
セキュリティは、実務においては非常に難しいもので、
「使いやすさ」と「セキュリティ」は基本的にトレードオフです。
そのため、どこで線引きするかというのを検討し、
そこから割り出されるリスク度を算定し、
そして、それらを回避/許容/転嫁/受容を決定するといったプロセスを経ます。
もしこの類の問題がAWSのベストプラクティスを交えて試験に出てきたら、
難易度はガラッと変わるとは思いますが、
AWSのセキュリティについて問われているわけですから、
「AWSのセキュリティがイケていないけど、まぁリスクは少ないから「受容」が答えだ!」
なんていうのは変ですよね。
よって、AWSが用意しているセキュリティ機能を回答していくことになるので、
基本的に素直な問題が多い気がします。
勉強方法
まずは問題集と「要点から整理する」を用意して勉強するのが一番だと思います。
ただ、以下の勉強方法のところで述べましたが、
問題を解く前に細かく読んでいくことはお勧めしません。
量が多く、範囲が広く、(どちらかというと)浅いので、
系統立てて覚えるのが大変だと思います。
それよりは、
問題集を実施して分からない問題(サービス)を参考書で調べて覚えていく
という方が効率的かと思います。(特にSCSは)
正直SCSについては、これといった重点ポイントや注意ポイントが無く、
満遍なくしっかり覚えましょう、という記述になってしまうのですが、
一応いくつかポイントを記載します。
重要ポイント
◆AWS Secrets Manager
名前から言って非常に覚えやすいサービスですね。
データベースの認証情報やAPIキー、セキュア、ローテーション、
といったキーワードが出てきたら確定です。
後述するParameter Storeと混同しやすいですが、
ローテーションを目印にするとまずはよいかと思います。
◆AWS Systems Manager Parameter Strore
機能としては、前述のSecrets Managerと類似しているのですが、
こちらは「パラメータ(設定データ)」を格納する、ということをまずは頭に入れましょう。
つまり、パスワードや認証情報だけではなく、パラメータ全般を管理するものです。
パスワードなどのセキュアな情報を格納する際に「SecureString」というタイプで格納します。
また、Systems Managerの一機能という立ち位置です。
Secrets Managerとの大きな違いは「ローテーション」「料金」かと思います。
Secrets Managerはサービス名のとおり、シークレットに関して管理するものであるため、
ローテーション機能が備わっています。
そしてSecrets Managerが有料なのに対し、Parameter Storeは無料です。
◆AWS Systems Manager Session Manager
正直、サービスの詳細なところまでを抑えてはいませんが、
踏み台ホスト不要、SSHキー管理不要、インバウンドポートの穴あけ不要、で
EC2へのアクセスを可能にするサービスです。
これらをキーワードとして覚えておきましょう。
ただし、Systems Manager Agent(SSMエージェント)のインストールが必要となります。
従ってコンプライアンス要件などでエージェントのインストール不可
といったことが問題文に記載されていたら即除外できます。
◆S3とVPCエンドポイント
S3にデータを格納するときにインターネットを経由しないで格納するテンプレートな方法。
また、バケットポリシーに「特定のVPCエンドポイントを経由してきた通信のみオブジェクト格納が可能」
といった条件を付与することもできます。
S3の場合、インターフェース型orゲートウェイ型、どちらのエンドポイントタイプも使用できますが、
このタイプが問われた記憶は無いです。
◆S3とKMS
VPCエンドポイントと同様に、
「特定のKMSで暗号化されている場合のみオブジェクトを格納してよい」
といった条件をバケットポリシーに記述することができます。
バケットポリシーは、データ格納プロセスの最後の門番みたいなイメージです。
話が脱線しますが、
AWS学び始めは、IAMやリソースベースのポリシーや、バケットポリシー等、
ポリシー関連の言葉多数出てきて混乱するんですよね。
一応定義としては、
・アイデンティティベースのポリシー
IAMロールやIAMグループ、IAMユーザに割り当てるポリシー
・リソースベースのポリシー
S3やKMS等のリソースにアタッチするポリシー
となります。
が、、、正直なところ、
「アイデンティティベース」だとか「リソースベース」だとかの言葉は私は実務では使いません。
素直にそのまま、IAMポリシーだとか、バケットポリシー(バケポリ)と言います。
◆サービスコントロールポリシー(SCP)
問題文に「AWS Organizations」を利用している、といった一文があったら、
まずはSCPを思い浮かべます。
SCPは、組織単位(OU)で共通にデフォルトで付与したいAllowやDenyを規定し、
組織に所属しているアカウント全体に配布することで、
ガードレールを規定するものになります。
※ガードレール・・イメージとしては、ガチガチにルールを決めるのではなく、
「(実際のガードレールになぞらえると)この中であれば走行していいよ」
といった範囲を規定するサービスです。
余談ですが、Englishの問題文を翻訳すると
「AWS組織を利用している」と表示されることがよくあります。
日本語は合っているけど、意味がよく分からない。
◆CloudTrail
「監査」がキーワードになりやすいです。CloudTrailの説明は割愛。
分析サービスであるAmazon Athenaと連動して、アクティビティをクエリできます。
(監査や退職した従業員のアクティビティを検索するため、といった問題が想定されます)
AthenaはS3バケットをSQLクエリできるサービスですので、
同じくS3にログをエクスポートするCloudTrailとも連動するのは、
想像に容易いですね。
◆フェデレーション
「フェデレーション」という言葉に慣れましょう。
イメージで覚えると楽です。
TwitterやGoogleといったアカウントを使って別のシステムに
サインイン(ログイン)する技術です。
認証と認可の違い、それらを実現する技術など、詳細を記載し始めるとややこしいのですが、
とにかく上記イメージを持ちましょう。
試験では、何千人も従業員がいて~といった感じで問題文が始まり、
「一人一人に設定は面倒くさそうだ」と思ったら、フェデレーションの可能性が高いです。
(あと、IDプロバイダーを使用している、という記述があればフェデレーションでほぼ確定かと思います)
『フェデレーションを使用してログインさせ、
フェデレーションでログインしてきた人用のロールを用意して割り当てる』
というのが解決策テンプレです。
◆Amazon Cognito
上記のフェデレーションをAWSで実現するサービスです。
外部IDプロバイダ(Googleやtwitter、Facebookなど)を
Cognito経由でログインさせ、Cognitoからトークンやクレデンシャルを発行。
ユーザプールは、その名の通り「ユーザ」を管理していると思ってよいです。
Cognitoで(例えばアプリの)ユーザを作成/管理します。
外部IDプロバイダからアクセスして、認証されたら発行された(そのユーザ用の)トークンを使って、
サーバアプリケーション等にアクセスする流れとなります。
IDプールは、AWS一時クレデンシャルを発行・・・
つまりIAMロールを割り当ててくれるサービスと考えれば、分かりやすいかと思います。
引用元:[AWS Black Belt Online Seminar] Amazon Cognito 資料及び QA 公開
さいごに
最初に記載しましたが、(私の感覚ではありますが)SCSは範囲が広く浅いです。
そのため難易度としては決して高くありません。
しかし「絶対に必要な知識」ですので、最初に受験する専門知識資格に向いている試験だと思います。
どなたかの参考になれば幸いです。