AWS 認定 SysOps アドミニストレーター – アソシエイト 合格への道#2

#はじめに
前回の記事
https://qiita.com/fjisdahgaiuerua/items/3aad5094cec7aa139fed
今日は昨日できなかったものと模擬試験の直しをやりたいと思います。まとめで次回の学習方針について触れます。
#学習
##昨日のやり残し
* EC2購入オプション復習
* AWS責任共有モデル復習
* AWS Comfigハンズオン&ホワイトペーパー

### EC2購入オプション復習
インスタンスファミリーを覚えていないので復習
#### EC2インスタンスファミリー
|  インスタンスファミリー | 利用用途  | 
|:-----------------:|:------------------:|
|  M4,M5             |              バランスの取れたCPU。デフォルトチョイス  |  
| T2,T3           |            瞬間的に負荷が発生する開発や小規模システム用 |    
| C4,C5             |              CPU性能が必要なAPサーバー、画像処理等に使用 |       
| R4,R5,X1e               |                メモリ容量が必要なDBサーバ向け |        
| D2,H1,I3             |             IOPSやストレージ容量が必要なDBサーバ、DWH、ビックデータ処理用 |       
| P2,P3,G3,F1          |           GPUやFPGA用途 | 
#### インスタンスタイプ
**m5.2xlarge**
m=インスタンスファミリー名
5=世代
2xlarge=サイズ

##### 思いだした
EC2からAMIを作って5世代で転生させたことがありました。

[新機能] Amazon EC2の汎用インスタンスM5が利用可能になりました #reinvent
https://dev.classmethod.jp/articles/m5-the-next-generation-of-general-purpose-ec2-instances/    
Windows インスタンス用 AWS NVMe ドライバー
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/aws-nvme-drivers.htmlまとめ

#### EC2の購入オプション
以下の五種類

* オンデマンド
* リザーブドインスタンス
* スポットインスタンス
* ハードウェア占有インスタンス
* 専用ホスト

##### オンデマンド
デフォルトで利用されるオプション。選択可能サービスはEC2,EMR,RDS,WlasticCash,Redshift

##### リザーブドインスタンス
長期利用のコミットによる割引が可能。最大75％。選択可能サービスはEC2,RDS,ElasticCash,Redshift

* スコープ
    * AZ指定：購入時にAZを指定することでキャパを予約することができるので絶対に起動できる
    * RZ指定：AZのどこでも割引が適用されるがキャパまでは予約されない。おおきいRDSとかはレアなのでAZ指定がマストだろう

* 提供クラス：リザーブドインスタンスが提供するクラスは購入後に条件を変更できるかによって以下に分かれる。
    * スタンダード：同インスタンスファミリー内であれば購入時に指定したAZの変更や小さいサイズへの分割や統合が可能。
    * コンバーティブル：購入時に指定したインスタンスファミリーやインスタンスサイズを変更可能。
* 支払方法
    * 前払い：割引小
    * 一部前払い：割引中
    * 全額払い：割引大
* スケジュールされたリザーブドインスタンス：バージニア・オレゴン・アイルランドで提供。継続稼働ではなく1年間のうち日次・週次・月次レベルでEC2インスタンスキャパ予約ができる。安定したワークロードの拡張に向いている。


##### スポットインスタンス
初期費用なし。選択可能サービスはEc2,EMR。AWSリソースの有効活用がコンセプト。AutoScalingで追加されたインスタンスや、バッチ用途で多重に並列されたEC2インスタンス、大規模にクラスタリングされた計算用ノード(EMRタスクノード)。キャパシティが予約できない代わりに安い。

* スポットインスタンス購入オプション
    * スポットブロック：あらかじめ時間を指定して、その間の継続稼働を保証するオプション。
    * スポットフリート：EC2リソースのターゲット容量を指定して、それを満たすようにスポットインスタンスの稼働を制御するオプション。

##### ハードウェア占有インスタンス
AWS上のハードウェアレベルで　ほかの利用者とは分離された環境でインスタンスを起動することができる。業界固有のコンプライアンス対応が必要なシステムに選定。

> EC2 インスタンスのテナント属性を理解する
> https://dev.classmethod.jp/articles/ec2-tenancy/
>> つまり、Dedicated Instance が稼働しているホスト上には、それを利用している AWS アカウントが起動した別のインスタンスが動作することはあっても、他の AWS アカウントの起動したインスタンスが動作することはない。

##### 専用ホスト
> EC2 インスタンスのテナント属性を理解する
> https://dev.classmethod.jp/articles/ec2-tenancy/
>> Dedicated Host は利用時にインスタンスファミリーを指定し、他の AWS アカウントのインスタンスはもちろん、利用者の AWS アカウントの別のインスタンスが起動されることもありません。

### AWS責任共有モデル復習
前にセキュリティ分野の試験に挑戦した際に勉強しましたが、再度ホワイトペーパーをがっつり復習することで知識の定着を図ります。

教科書 **AWS セキュリティのベストプラクティス**
https://d1.awsstatic.com/International/ja_JP/Whitepapers/AWS_Security_Best_Practices.pdf

AWS では提供するサービスの種類ごとに責任共有モデルが用意されています。

* インフラストラクチャサービス
    * EC2:より高いセキュリティが必要な場合は、LDAPやActive Directory などの別の認証メカニズムを実装し、Amazon EC2 キーペア
認証を無効

* コンテナサービス
    * RDS,EMR：AWS のコンテナサービスを利用する場合、データの管理やコンテナサービスにアクセスするためのファイアウォールルールの管理についてはユーザーが行う

* 抽象化サービス
    * S3,DynamoDB：データの管理 (アセットの分類を含む) はユーザーが行う必要があり、IAMツールを使用してプラットフォームレベル個々のリソースに ACL タイプのアクセス権限を適用したり、IAM ユーザー/グループレベルでユーザーの ID または責任に基づいてアクセス権限を適用。

#### AWS でのアセットの定義と分類
まずは保護する必要があるすべての情報アセットを特定し、それらを保護するための実現可能なソリューションを技術面とコスト面の両方から検討。**何をだれがどのようにして保護するかを明確にする。**
#### AWS でアセットを保護するための ISMSの設計
段階１：スコープと境界の定義
段階２：ポリシー定義
段階３：リスク評価方法の選択
段階４：リスクの特定
段階５：リスクの分析と評価
段階６：リスクへの対処
段階７：セキュリティコントロールフレームワークの選択
段階８：マネジメントによる承認の取得
段階９：適用宣言書

#### AWS アカウント、IAM ユーザー、グループ、ロールの管理
ISMS の設計においては、ユーザーが必要とするリソースのみに限定して、それらのリソースにアクセスするための最低限のアクセス権限をユーザーに割り当てることが重要

* AWSアカウント：使わない。部門ごとに設置。請求用アカウントを頂点にする。
* IAMユーザ：使わない
* IAMグループ：最小限のポリシーで使う
* IAMロール：最小限のポリシーで使う

#### AWS 認証情報の管理
* 1 つは AWS マネジメントコンソールおよび AWS ポータルページへのサインイン
    * パスワード
    * MFA
* プログラムから API にアクセスする際に使用する認証情報
    * アクセスキー
    * API 呼び出しに対する MFA

#### IAM ロールと一時的なセキュリティ認証情報を使用した委任について
AWS リソースにアクセスできないユーザーやサービスにアクセスを委任する場合

* Amazon EC2 インスタンスで実行されるアプリケーションからのAWS リソースへのアクセス
    * Role付与
* クロスアカウント アクセス
* ID フェデレーション
    * IDブローカーが社内のIDストアに認証を行いSTSからロールを委任してもらってリソースにアクセス

#### クラウドでの暗号化キーの保管と管理
HSMを使いましょう

#### 保管時のデータの保護
* 偶発的な情報の開示
    * アクセスできるユーザーを制限
    * ファイル、パーティション、ボリューム、またはアプリケーションの各レベルでの暗号化
* データの不整合
    * バックアップ
    * バージョニング
    * アクセス制限
    * データ整合性チェック
* 過失による削除
    * バージョニング
* 可用性
    * レプリケーション実施

##### Amazon S3 での保管時のデータの保護
* アクセス権限 
    * ポリシー制限
* バージョニング
    * 有効にする
* レプリケーション
    * バケットオプション
* バックアップ
    * 自動。必要ならアプリケーションレベルで実装
* SSE
    * 有効にする
* CSE
    * 独自に鍵管理する

##### Amazon EBS での保管時のデータの保護
* レプリケーション
    * 自動でAZ内にコピーが取られる。HWレベルでは対策で着ているがAZレベルの障害には対策できていないのでアプリレベルでバックアップとレプリケーションを行うことが必須
* バックアップ
    * スナップショット使う
* 暗号化: MicrosoftWindows
    * 暗号化ファイルシステムを実装
* 暗号化: Linux
    * カーネルバージョン 2.6 以降を実行している Linux インスタンスでは、dmcrypt を使用して、Amazon EBS ボリュームおよびスワップ空間で透過的な
データ暗号化を設定
* 暗号化
    * TrueCrypt は、Amazon EBS ボリューム上で保管時のデータの透過的な暗号化
を提供するサードパーティ製のツール

* 暗号化と整合性認証:SafeNet ProtectV
    * SafeNet ProtectV は、Amazon EBS ボリュームのディスク全体の暗号化と
AMI のプリブート認証を実現するサードパーティ製の製品

##### Amazon RDS での保管時のデータの保護
* アプリケーションレイヤーで保護
    * 機密性の高いデータベースフィールドをすべて暗号化する組み込みの暗号化関数を使用する方法
    * データベースに保存する前にアプリケーションキーを使用する方法
* プラットフォームで保護
    * MySQL の暗号化関数を使用

##### Amazon Glacier での保管時のデータの保護
保管時の情報の保護をさらに強化する必要がある場合は、データを暗号化してから Amazon Glacier にアップロード

##### Amazon DynamoDB での保管時のデータの保護
RDSと同様の実装

##### Amazon EMR での保管時のデータの保護
デフォルトでは、AmazonEMR インスタンスは保管時のデータを暗号化しません。
* SSE
* CSE
    * s3に対するクライアントとはEMRを指すのかデータソースを指すのか？
* アプリケーションレベルで暗号化

##### データとメディアの安全な廃棄
> AWS にクラウド内のデータの削除を依頼した場合、AWS は基になる物理メディ
アを廃棄しません。代わりに、ストレージブロックが未割り当てとしてマークさ
れます。AWS は安全なメカニズムを使って、ブロックを他に再度割り当てま
す。ブロックストレージをプロビジョニングする場合、ハイパーバイザーまたは
Virtual Machine Manager (VMM) によって、インスタンスの書き込み先のブロ
ックが追跡されます。インスタンスがストレージのブロックに書き込むときに、
前のブロックがゼロ設定された後、データのブロックで上書きされます。インス
タンスが以前に書き込んだブロックからの読み取りを試行した場合、以前に保存
したデータが返されます。インスタンスが以前に書き込んでいないブロックから
の読み取りを試行すると、ハイパーバイザーはディスクにある以前のデータをゼ
ロで埋めて、インスタンスにゼロを返します。

##### 伝送中のデータの保護
* HTTP/HTTPSトラフィック
    * HTTPS (HTTP over SSL/TLS) をサーバ
ー証明書認証とともに使用

* HTTPS のオフロード
    * Elastic Load Balancing で HTTPS の処理
をオフロードする

* RDP
    * 最適な保護を実現するには、なりすま
しや中間者攻撃を防ぐために、アクセ
ス対象の Windows Server に対して、
信頼された X.509 証明書が発行されて
いる必要があります。デフォルトで
は、Windows RDP サーバーは自己署
名証明書を使用

* SSHトラフィック
    * 特権を持たないユーザーアカウントを
使用して SSH バージョン 2 を使用

* データベースサーバーのトラフィック
    * RDS 暗号化を参照

##### AWS サービスを管理する際の伝送中のデータの保護
APIやマネージドコンソールはSSL/TLS セッション内で保護されていると明記されている。S3も同様の保護

##### Amazon RDS に伝送中のデータの保護
> Amazon EC2 インスタンスから同じリージョン内の Amazon RDS に接続して
いる場合、AWS ネットワークのセキュリティを利用できますが、インターネ
ットから接続している場合は、SSL/TLS を使用して保護を追加する必要があり
ます。

##### Amazon DynamoDB に伝送中のデータの保護
> インターネット経由で
DynamoDB に接続している場合は、HTTP over SSL/TLS (HTTPS) を使用して
DynamoDB サービスエンドポイントに接続する必要があります。DynamoDB へ
のアクセスおよびインターネット経由でのすべての接続において、HTTP を使
用しないでください。

##### Amazon EMR に伝送中のデータの保護
* Hadoop ノード間
    * すべてのノードが同じ施設内に存在して
いるため–通常、追加の保護は必要あり
ません。

* Hadoop クラスターとAmazon S3 の間
    * デフォルトでは、HTTPS が使用

* Hadoop クラスターとAmazon DynamoDB 間
    * デフォルトでは、HTTPS が使用

* Hadoop クラスターへのユーザーまたはアプリケーションのアクセス
    * アプリケーションへのインタラク
ティブなアクセスや、SSH 内で
の他のプロトコルのトンネリング
には、SSH を使用します。
Thrift、REST、または Avro が使
用されている場合は、SSL/TLS
を使用

* Hadoop クラスターへの管理アクセス
    * Amazon EMR マスターノードに対して
SSH を使用

力尽きました。明日にします。


> ### AWS Comfigハンズオン&ホワイトペーパー
### 追加　VPCピアリングハンズオンとVPCホワイトペーパー
### 追加　SSMハンズオンとホワイトペーパー
# 模擬試験直し
# まとめ