【SAA試験対策】AWS認定ソリューションアーキテクト-アソシエイトの暗記用語のまとめ 〜 認証・セキュリティ編
目次
こんにちは。
AWS認定試験の勉強をしています。対策の記事も今回で10本目になりました。
AWSの認定試験で、特にSAA(ソリューションアーキテクト - アソシエイト)試験で出てきそうな重要用語と公式ドキュメントへのリンクをAWSサービスごとにまとめています。
試験概要はこちら:AWS 認定 ソリューションアーキテクト – アソシエイト
自分が勉強していて覚えにくかった用語を元にしていますので、認定試験では出題されない可能性もあります。あくまでも参考程度に御覧ください。
そもそもAWSって何?という方はこちらの記事を御覧ください。
AWS公式ドキュメントでは概念的な言葉でわかりにくい表現がどうしてもあります。このブログではふわっとした言葉を極力なくして、わかりやすく伝えていこうと思います。
AWSの基礎や体系立てた知識の習得には書籍もオススメです。
AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト
今回はSAAの中でもセキュリティと認証に関連したサービスについてまとめています。
AWSのセキュリティ設計原則
ホワイトペーパーによると7つの設計原則があります
- 強力なアイデンティティ基盤の実装
- トレーサビリティの実現
- 全レイヤーへのセキュリティ適用
- セキュリティベストプラクティスの自動化
- 伝送中および保管中のデータの保護
- データに人の手を入れない
- セキュリティイベントへの備え
トレーサビリティは運用編に通じるところがありますね。
本記事では認証・認可・データ保護といったクラウド設計者が頭を悩ませそうなセキュリティ課題に重点を置きたいところ。
ベストプラクティスと主要サービス
先程のホワイトペーパーに挙げられていたベストプラクティス5つを元に、個人的な解釈でサービスを割り当ててみました。
アイデンティティ管理とアクセス管理
- AWS Identity and Access Management (IAM)
- AWS Organizations
- AWS Single Sign-On (SSO)
- AWS Directory Service
- AWS Cognito
発見的統括性
- AWS CloudTrail
- AWS Config
- Amazon CloudWatch
- Amazon GuardDuty
- Amazon Inspector
インフラストラクチャ保護
- Amazon VPC
- Amazon CloudFront
- AWS Shield
- AWS WAF
データ保護
- ELB
- AWS Key Management Service (KMS)
- AWS CloudHSM
インシデント対応
- AWS IAM
- AWS Cirtificate Manager(ACM)
CloudTrail, Config, CloudWatchについては運用編で、ELBについてはELB編、VPCについてはネットワーク編で触れましたので、本記事では触れません。
関連するサービス名はこちらの試験ガイドとWell-Architedフレームワークの資料を参考にしています。
AWS Certified Solutions Architect – Associate (SAA-C02) Exam Guide
AWS Identity and Access Management (IAM)
AWSの認証・認可サービス。サービスやリソースへのアクセスを安全に管理するユーザーアカウントのような役割を果たすAWSを使うなら必ず通る必須サービス。
大きく4つの要素を持っています。
- IAMユーザー
- AWSアカウント内のユーザーで、独自の認証情報を持つ。
- AWSを使う場合は基本このユーザーでログインして操作する。
- IAMポリシー
- JSONで記述する権限情報
Effect
属性に許可(Allow)・拒否(Deny)を記述Action
属性に対象のサービスを記述 (s3:Get
など)Resource
属性にARNを記述。(ARNについては後述)Condition
属性にアクセス制御の条件となるIPアドレスなどを記述
- AWSが管理するAWS管理ポリシーと、AWSアカウントで管理するカスタマー管理ポリシーと、ユーザが自由に作成できるインラインポリシー(非推奨)がある。
- S3バケットやSQSなど、リソース間のアクセスを可能にするリソースベースのポリシーもある。
- JSONで記述する権限情報
- IAMグループ
- IAMユーザーをまとめた集合の定義。
- グループごとに権限の管理(ポリシーのアタッチ)ができる。
- 1アカウント300グループまで作成可能。
- IAMロール
- EC2やLambda関数などのAWSリソースに対して付与するアクセス権限
- DynamoDBやRDSといったDBへの認証情報の代わりに、EC2にホストしたアプリケーションからDBへセキュアにアクセスさせることが可能。
【関連ドキュメント】
ルートユーザー
AWSアカウントを初めて利用するときはルートユーザーを使い、それ以外は基本IAMユーザとして利用することが推奨されています。ルートユーザはアカウントの停止機能に直接アクセスもできる超強力権限を持ってるので、念の為普段使いすんなってことですね。AWSアカウントを作ったらまず普段使い用のIAMユーザーを作りましょう。
IAMの追跡
IAMの権限情報の変更履歴はリソースの変更なのでAWS Configで確認できます。
ユーザのアクティビティログはAWSのAPIコールと紐づくのでAWS CloudTrailで確認できます。
また、IAMのコンソールにあるAccess Advisorという機能で、ユーザーやユーザーグループの最終アクセス時間を確認することもできます。
【関連ドキュメント】
ARN (AWS Resource Name)
AWSのリソースを一意に特定できる文字列。主にIAMポリシーで特定のリソースに対する権限を指定したいときに使います。
文字列の構成は以下のようになっています。
arn:aws:service:region:account-id:resource-type/resource-id
【関連ドキュメント】
IAM Access Analyzer
外部エンティティと共有しているリソースを識別して、セキュリティ上のリスクを特定できる機能。
外部エンティティとは別のAWSアカウントやIAMユーザーのこと。
【関連ドキュメント】
AWS Organizations
大規模な組織向けのIAM一括管理サービス。
主な機能は以下の通り。
- AWSアカウントをグループ化してポリシーの適用ができる
- OU(Organization Unit)という組織単位で複数のメンバーアカウントをグループ化
- 管理アカウントが複数のOUを一元管理する
- 管理アカウントはAWSアカウントの中から選定できる
- アカウント作成を自動化・ログ管理できる
- コンソリデーティッドビリング
- 複数AWSアカウントの請求を一括管理できる
- 管理アカウントがOUのメンバーアカウントの請求情報にアクセスできる
【関連ドキュメント】
AWS Security Token Service (AWS STS)
AWSリソースを一時利用できるトークンを動的に発行するサービス。
IAMユーザーがSTSトークンを発行し、そのトークンを使って一時的にサービスを使うことができるようになります。
以下のようなユースケースで利用されます。
- IDフェデレーション
- 外部システムで管理しているユーザーIDを元にした権限付与
- クロスアカウントアクセス
- 組織内の別のアカウントへのアクセス
- IAMロールの使用
- AWSリソースにアクセスするEC2インスタンスのアプリケーションの起動時に認証情報を付与するなど
【関連ドキュメント】
AWS Single Sign-On (SSO)
AWS Organizationsと連携して組織内の複数アカウントのアクセス許可を一元管理するシングルサインオンサービス。
SalesforceやMicrosoft365などのアプリケーションとも統合可能です。
IdentityのソースとしてMicrosoft ADとSAML2.0を選択可能。つまりAWS SSOはAWSにADとSAMLをつなぐ中継サーバーの役割をします。
ちなみにSAMLとはSecurity Assertion Markup Languageという認証情報をやりとりする決まりごと。
【関連ドキュメント】
AWS Directory Service
ユーザー情報を管理してユーザー認証を実現するサービスで、Microsoft Active Directory(AD)をAWSサービスと併用する方法を提供します。
ユーザー情報とは例えばID、ユーザー名、部署、電話番号、メールアドレス、パスワードなど。
ディレクトリの使用方法は以下の3種類があります。
- AWS Managed Microsoft AD
- AWSにADを構築する方法
- AD Connector
- 既存のオンプレミスのADを使う方法
- Simple AD
- 低コストのシンプルなAD機能をAWSに作る方法
- Samba 4 Active Directory Compatible Serverを使用
- SSOやMFA認証は使えない
【関連ドキュメント】
Amazon Cognito
Webアプリなどのアプリケーションの認証情報を作成・管理できるサービス。
サインイン情報の管理やアクセスコントロールが可能。
アプリケーションの認証の流れは以下の通り。
- Cognitoユーザープールを介してサインインして認証トークンを受け取る。
- 認証トークンを使ってCognitoアイデンティティプールからAWS認証情報を受け取る。
- AWS認証情報を使ってS3やDynamoDBといったAWSサービスにアクセスする
【関連ドキュメント】
Amazon GuardDuty
AWS上の悪意ある操作や不正アクセスをモニタリングする驚異検出サービス。
IPアドレスやドメインのリスト、機械学習による未知の脅威を予測します。
分析はAWS CloudTrailイベント、VPCフローログ、DNSログデータに対して行われ、これらの分析に使われたデータ量に応じて課金されます。
【関連ドキュメント】
Amazon Inspector
アプリケーションのデプロイ前と運用中にセキュリティ脆弱性を特定したり評価できるサービス。
たとえばインスタンスに最新のパッチがあたっていない、といったセキュリティ上の問題を検出できます。
Inspectorエージェントをインストールして動かす必要があるので、インスタンスが停止状態だと使えません。
【関連ドキュメント】
AWS Shield
DDoS攻撃に対する保護サービス。
DDoSは分散サービス妨害のことで、トラフィックを氾濫させてシステムをクラッシュさせようとする攻撃です。
以下の2つの保護レベルがあります。
- スタンダード
- 無料
- 一般的かつ頻繁に発生する攻撃に対する保護
- アドバンスド
- 有料サブスクライブ
- 指定されたリソースに保護を追加できる
- 指定できるリソースはRoute53, ELB, CloudFrontなど
【関連ドキュメント】
AWS WAF
セキュリティ侵害やリソースの過剰消費などの脆弱性からWebアプリケーションやAPIを保護するファイアウォール。
以下のAWSリソースに対して転送されるHTTP/HTTPSリクエストをモニタします。
- CloudFrontディストリビューション
- Amazon API Gateway REST API
- Application Load Balancer
- AWS AppSyncGraphQL API
ちなみにWAFはWeb Application Firewallの略で、AWSではない一般用語としても使われます。
【関連ドキュメント】
AWS Security Hub
セキュリティ業界の標準およびベストプラクティスに照らしてAWS環境を評価するセキュリティチェックサービス。
コンソールやAPIから評価できます。
EventBridgeと統合して特定の結果が出たときの修復アクションを自動実行することもできます。
【関連ドキュメント】
AWS Key Management Service (KMS)
多くのAWSサービスと統合されているデータ暗号化キーの作成・管理のフルマネージドサービス。
キーの保護はFIPS 140-2の検証済みまたは検証段階のHSM(ハードウェアセキュリティモジュール)が使用されるとのことでなんか凄そう。
統合されているサービスは、S3, EBS, RDS, EMR, RedShiftなどで、ほとんどのサービス(一覧)で使われます。
データの暗号化に使われる暗号化キーはCMK(カスタマーマスターキー)と呼ばれます。CMKを作成すると、使用するキーマテリアルを以下から選べます。
- AWS KMS
- AWS CloudHSM
- ユーザー独自のキーマテリアルをインポート
この中だと、マネージドサービスであるKMSは安価で容易に導入できるオプションです。キーの保存は1USD/月くらい。
APIコールと紐づくので、AWS CloudTrailで監査・追跡できるのも嬉しいポイント。
【関連ドキュメント】
KMSを使う他にも、S3やEBSは独自のデータ暗号化機能があります。
AWS CloudHSM
ハードウェアモジュールによるマネージド型暗号キー保護サービス。厳格なセキュリティ要件向け。
カスタマーがキーを管理するので、KMSより安心して使える分お高いです。長期契約や前払いはなく、時間課金。
KMSと同じ暗号化キーを管理するマネージドサービスですが、HSMの管理を自分でしたい場合はCloudHSM、管理したくない・もしくは管理不要な場合はKMSを使うといった使い分けになります。
HSMはHardware Security Moduleの略で、主に暗号化に関する電子的なキーを管理する金庫のようなハードウェアを意味する一般用語です。
【関連ドキュメント】
AWS Cirtificate Manager(ACM)
HTTPS通信に必要なSSL/TSL証明書をプロビジョニングするサービス。
つまり転送中のデータ暗号化を目的として使用します。
ACM証明書がサポートされているサービスは以下の通り。
- Elastic Load Balancer
- Amazon CloudFront
- AWS Elastic Beanstalk
- Amazon API Gateway
- AWS CloudFormation
【関連ドキュメント】
まとめ
というわけで、AWS認定試験のSAA(ソリューションアーキテクト - アソシエイト)で必要となりそうなセキュリティ関連の用語について忘れないようにまとめてみました。
認証・認可・データ保護はクラウドの重要課題なので、特に注意したいところですが、覚えきれないくらい関連サービス多いですね。キーワードだけでも覚えておくと役立ちそうです。
このページも定期的に見直して知識の定着を行っていきたいです。
また別のカテゴリについてもまとめる予定です。
AWSの基礎からの勉強や、体系立てた知識の整理には書籍もオススメです。こちらは2020年の最新試験(SAA-C02)の問題にも対応しています。
(模擬問題付き)改訂新版 徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書[SAA-C02]対応