IT初心者がAWSのセキュリティ対策を学ぶ【SAA試験対策】

#はじめに
AWSの５つの設計原則の一つである**【セキュリティ】**。
ソリューションアーキテクトの試験を受けるにあたり、セキュリティに関することは必ず出てくる問題なので、理解を深めるために
主なサービスについて、公式の [BlackBelt](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/) やよくある質問などから抜粋して、要点だけでまとめてみました。

## AWS Identity and Access Management (IAM)
AWS リソースを安全に操作するために、**認証・認可の仕組みを提供する**サービス。
最小限の認証情報の生成、強固なパスワードポリシー、特権ユーザーでの MFA 有効化が ID の保護に有効です。

###主な活用

 * 各 AWS リソースに対して、別々のアクセス権限をユーザーごとに付与できる
 * **多要素認証(Multi-Factor Authentication : MFA)**によるセキュリティの強化
 * 一時的な認証権限を用いた権限の委任
 * 他の ID プロバイダーで認証されたユーザーに、AWS リソースへの一時的なアクセス
 * 世界中の AWS リージョンで、同じ ID と権限を利用可能

![2020-01-17_14h52_51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543340/0f301c2b-7f99-426c-5a6d-41fb681b0f33.png)

## AWS Cognito 
**「認証」「許可」「ユーザー管理」などの機能**を提供するサービス。
モバイルやウェブアプリケーションに、ユーザーのサインアップと認証機能を簡単に追加。
AWS 内のアプリケーションのバックエンドリソース、または Amazon API Gateway で保護されているサービスにアクセスするための、一時的なセキュリティ認証情報を付与できます。
ユーザーがどのデバイスからサービスにアクセスしても、ストレスなく使えるようになるものです。

###主な活用

 - モバイル・Web アプリでユーザ認証が楽に
 - Facebook や Twitter、Amazon、Google、Apple などのサードパーティーを通じてサインイン
 - 認証ユーザや管理者ユーザ限定のコンテンツを配信
 - アクセスキー等の認証情報をアプリに直接コーディングしなくて良い
 - 一人で複数デバイスの利用をサポートしてUXを向上
 - データをローカルに保存。オフラインの場合でもアプリケーションを使用でき、オンラインになった時にデータを自動的に同期

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543340/33fc8049-0cd8-247a-60e0-9990f01a80c5.png)


## AWS Inspector
Amazon EC2 にエージェント（ソフトウェア）を派遣し、プラットフォーム（土台となる環境）の**脆弱性診断**を行う有料サービスです。
自動化されたセキュリティ評価サービスで、Amazon EC2 インスタンスのネットワークアクセスと、そのインスタンスで実行しているアプリケーションのセキュリティ状態をテストできます。
開発環境全体で、または静的な本番システムに対して、セキュリティ上の脆弱性の評価ができます。

![2020-01-16_09h44_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543340/55196ffd-a2b7-4b56-f2eb-2a29a5e9fe38.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543340/a0d42d2c-3397-7fcf-e641-18fa2412ee08.png)

## AWS GuardDuty
悪意のある操作や不正な動作を、継続的にモニタリングする**脅威検出サービス**。
AWS 環境のセキュリティを継続的にチェックしてくれ、各種ログを自動的に取得して、機械学習で分析して異常を通知してくれます。
分析の対象となるログは、AWS CloudTrail、Amazon VPCフローログ、DNSログなど、複数のAWSにおける数千億にもわたるイベントです。
AWS のアカウントとワークロードの継続的なモニタリングが楽になり
詳細なアラートを提供し、既存のイベント管理、ワークフローシステムと簡単に統合可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543340/32e46113-8dfe-c1b8-1a2f-283421cbbbf7.png)

## AWS Directory Service
ユーザー、グループ、コンピューター、およびその他のリソースといった組織についての情報を含む**ディレクトリ機能を提供する権限管理サービス**です。
AWS クラウド内にディレクトリをセットアップして運用することや、AWS リソースを既存のオンプレミス Microsoft Active Directory に接続することが簡単に行えます。

###主な活用

- ユーザーとグループの管理
- アプリケーションとサービスへのシングルサインオン(1回の本人認証で、複数の異なるアプリケーションやシステムを利用できる認証の仕組み)を提供
- グループポリシーの作成と適用
- Amazon EC2 インスタンスのドメインへの参加
- クラウドベースの Linux と Microsoft Windows ワークロードのデプロイと管理の簡素化

##  AWS Organizations
**複数 AWS アカウントを一元管理**できるサービス。
アカウントをグループ化して、ポリシーを適⽤し利⽤サービスを制限します。
アカウント新規作成の自動化や請求の簡素化、複数アカウントの請求を⼀括にできます。

###主な活用

- 複数の AWS アカウントへの一括請求
- AWS アカウントの作成と管理の自動化
- AWS のサービス、リソース、リージョンへのアクセスを管理
- 複数の AWS アカウントに適用するポリシーを集中管理
-  複数アカウント間で AWS のサービスを設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543340/81d70595-a426-0d0d-aab0-cebd79c91598.png)

##  AWS Shield 
AWS で実行されるアプリケーションを **Distributed Denial of Service (DDoS) 攻撃から保護する**サービスです。
Standard は、追加料金なしで自動的に有効化されます。Advanced は任意で利用できる有料サービスです。
有料サービスは、Amazon EC2、Elastic Load Balancing (ELB)、Amazon CloudFront、AWS Global Accelerator、Route 53 で実行中のアプリケーションを標的とする、高度化された大規模な攻撃からの保護が強化されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543340/a6c2d010-7124-c7cc-e701-1f30d5c08944.png)

## CloudHSM
**安全なキーストレージと暗号通信を提供する**サービス。
ユーザー自身にしかアクセスできない方法で、データ暗号化に使用される暗号キーを安全に生成、保存、管理することができます。
クラウド内の専用ハードウェアセキュリティモジュール (HSM) を使用して、データセキュリティに対する企業コンプライアンス要件、契約上のコンプライアンス要件、法令遵守の要件を満たすことができます。
CloudHSM は既存のデータ保護を補完する役割を果たし、HSM 内での暗号キー保護を可能にします。
安全なキー管理に対する、米国政府標準規格に適合するように設計、検証されています。


###主な活用

 - KMS のカスタムキーストアとして使用
 - SSL/TLS 暗号化、復号処理のオフロード(システムの負荷を他の機器などが肩代わりして軽減する仕組み)
 - NGINX, Apache, Windows Server IIS との連携
 - CA局の秘密鍵管理
 - Oracle DBのTransparent Data Encryption（透過型暗号。表や表領域のデータを自動で暗号化して保存）
 - PKCS #11ライブラリ経由で連携
 - ファイルやデータへのデジタル署名
 - デジタル権限管理
 - CloudHSM をサポートするサードパーティソリューションとの統合
![2020-01-20_09h07_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543340/cb5e6466-224f-0620-4f52-bbe37bcf8a58.png)


## AWS Key Management Service
**データを保護するための暗号化キーの一元管理が出来る**サービス。
AWS サービスとの統合により、容易にデータの暗号化を行うことができ、アプリケーション上のデータの暗号化にも利用することができます。
暗号鍵の保管、鍵のアクセス制御等、鍵自身のセキュリティを管理するインフラストラクチャ Key Management Infrastructure　を採用。

###主な活用

-  暗号鍵の作成、管理、運用
-  鍵利用の権限管理、監査
-  暗号鍵を保存、暗号鍵を使用するための安全なロケーションを提供
-  マスターキーは FIPS 140-2検定済暗号化モジュールによって保護
-  AWS サービスとの統合 (S3, EBS, Redshift, RDS, Snowball等)
-  SDK との連携で独自アプリケーションデータも暗号化
-  CloudTrail との統合による組み込み型の監査対応機能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543340/30fa475d-ba34-677f-836f-504824f74141.png)

###備考
**【Perfect Forward Secrecy】**通称PFS
暗号鍵とその暗号鍵を複合するための秘密鍵が、両方漏洩しても暗号鍵を複合できない、というカギ交換に関する概念。
長期間にわたってデータを解読されないよう、暗号鍵(共通鍵)の元になる情報を使い捨てる方式を採用しています。

#終わりに
セキュリティの強度やコスト効率、通信制御やデータ暗号化など、状況や用途で組み合わせが多様になっていくことがわかりました。
ホワイトリスト型（許可した通信のみを通す）、最小限の権限設定が重要であること
安全性において安心できるよう、AWS の推奨するベストプラクティスに沿ってサービスを覚えていくことが、試験にも実務にも生かされていきそうです。

#公式サイトリンク
[AWS上の暗号化ソリューション](https://d1.awsstatic.com/webinars/jp/pdf/services/20160524_AWS-BlackBelt-encryption-public.pdf)
[各サービスを解説しているBlackBelt](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/)