AWS Cloud Practitioner Essential まとめ5

# [AWS Cloud Practitiner Essential] (https://explore.skillbuilder.aws/learn/course/1875/play/27620/aws-cloud-practitioner-essentials-japanese-ri-ben-yu-shi-xie-ban) 殴りがき


## 責任共有モデル

|AWS利用者の責任| = クラウド内のセキュリティについて責任を負う|
|--|--|
||AWS利用者のデータ|
||プラットフォーム・アプリケーション・アイデンティティアクセスの管理 |
||OS・ネットワーク・ファイアウォールの設定|
||クライアント側のデータ暗号化・サーバー側のデータ暗号化・ネットワークトラフィックの保護|
|<b>AWSの責任</b>|<b> = クラウドのセキュリティについて責任を負う</b>|
||ソフトウェア|
||コンピューティング・ストレージ・データベース・ネットワーク|
||AWSグローバルインフラストラクチャ・リージョン・エッジロケーション・アベイラビリティーゾーン|

### EC2の責任モデルで言うと？

#### AWS利用者
<b>クラウド内のセキュリティについて責任を負う。クラウド内で作成して配置したすべてのもの</b>

- データ
- アプリケーション
- OS
  

#### AWSの責任
<b>クラウドのセキュリティについて責任を負う</b>

- ハイパーバイザー
- ネットワーク
- 物理レイヤー

## ユーザーのアクセス許可とアクセス権

### ルートユーザー
AWSアカウントの所有者。オーナー。
できることの制限はない。
<b>作成後すぐにMFA認証するように設定すること。</b>
<b>ルートユーザー作成後、IAMユーザーを作成し、そのIAMユーザーに他のユーザーを作成・IAMポリシーを付与できる権限を与える。　そして、ルートユーザーから抜けて、そのIAMユーザーを使う。</b>

### AWS IAM (AWS Identity and Access Management)
デフォルトのIAMユーザーでは、すべてのアクセス権限がない。
明示的に必要最低限のアクセス権限を付与しなければ何もできない。
<b>本当に必要なアクセス権のみを付与すること。(最小特権の原則)</b>
<b>AWSにアクセスするユーザーごとに、個別のIAMユーザーを作成すること。同じ設定をするユーザーが複数いる場合でも、各IAMユーザーを作ることで、セキュリティが強化される。　⇦　一意のセキュリティ認証情報の組み合わせを設定できるため。</b>


- IAMポリシーをIAMユーザーに付与することで権限が与えられる。
    - IAMポリシーとは、各サービスのAPIを実行可能であること・実行不可能であることを記述したJSONドキュメント



``` IAMポリシーの例.json
{ 
  "Version": "2021-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::coffee_shop_reports"
}
```

- Effect: 許可するのか、拒否するのか
- Action: AWSのAPIコール(対象の操作)
- Resource: APIコールの対象となるAWSリソース

### IAM グループ
IAMユーザーをまとめたもの。
<b>IAMグループに対して、IAMポリシーを付与することにより、そのグループ内のすべてのIAMユーザーにポリシーを付与することができる。</b>

### IAM ロール
ロールは一時的に付与されるもの。
一時的にできることを許可・拒否する際に付与する。
IAMポリシーより効力が強いため、IAMポリシーで拒否していても、ロールで許可が付与されれば実行可能となる。
<b>ロールは、ユーザーだけではなく、アプリケーションやサービスに付与することができる</b>

## AWS Organizations
複数のAWSアカウントを一元的に管理するサービス

IAMは1つのアカウントの中に作られるものであり、ポリシーはあくまで同一アカウント内での制御。
AWS Organizationはイメージとして、複数のアカウント(複数のルートユーザー間)でリソースを共有したり、制御したりすること。
<b>Organizationsを作ると、一つのルートが一番親として作成される。</b>
<b>複数のAWSアカウントに対して、OU(組織単位)でグルーピングする機能がある。　⇦　一つのアカウント内で言う、IAMグループのようなものを、アカウントをまたいで作る。</b>

- AWSアカウント間でリソースを共有できる。
- すべてのアカウントの請求を一括請求できる。
    - 一括請求にすることで、割引が発生することもある。
- アカウントの階層的なグループ化ができる。
- 各アカウントがアクセスできる　APIを制御できる。
    - <b>SCP (サービスコントロールポリシー) を使って、各アカウントのアクセス許可を一元的に制御できる。　⇦　一つのアカウントで言うロールと同じ役割。</b>


## コンプライアンス

### AWS Artifact
- AWSのセキュリティ・コンプライアンスレポートをオンデマンドで利用できる
- 特定のオンライン契約を提供

#### AWS Artifact Agreements
AWSとの契約に署名する際に活用する
アカウント(個別・Organizations)において契約の確認・受諾・管理を行うことができる。

#### AWS Artifact Reports
AWSを活用する上で保証されている特定の規制基準に準拠する責任に関する詳細情報を確認できる。
AWSのサードパーティー(外部の人)を監査人としてテスト・検証している。

### カスタマーコンプライアンスセンター
AWSユーザーのコンプライアンスに関するストーリーを読み、様々な課題をどのように解決したかを確認できる。

- コンプライアンスに関する質問に対する　AWSの解答
- AWS リスクとコンプライアンスの概要
- セキュリティ監査チェックリスト
- 監査人むけのラーニングパス

などが確認できる。

## サービス妨害攻撃
DoS攻撃・DDoS攻撃などがかけられる。

### AWS Shield
DoS攻撃・DDos攻撃を防ぐためのサービス

- AWS Shield Standard
    - すべてのAWS利用者が無料で使える。
    - ベーシックなDDoS攻撃からAWSリソースを保護する
    - 悪意のあるトラフィックをリアルタイムで検出し、攻撃を緩和する
- AWS Shield Advanced
    - 詳細な攻撃診断・高度なDDoS攻撃の検出・緩和機能を提供する
    - 有料
    - 複雑なDDoS攻撃に対してカスタムルールを作成して、AWS ShieldをAWS WAFと統合することが可能


## その他のセキュリティサービス
暗号化するタイミング

1. データを保存する際
1. データの送受信の際



### AWS KMS (AWS Key management Service)
各サービスのデータ暗号化に使われる。
暗号化キー(暗号化用・復号用)の作成・管理・使用を行う。

### AWS WAF
CloudFront, Load Balancerと連動するウェブアプリケーションファイアウォール。
ネットワークACLと同じようにトラフィックに対してステートレスで動作するが、Webアクセスを対象とする。
(ネットワークACLはWebに限らず。ネットワークと通るトラフィックすべて。)

- 指定したIPアドレスを除くすべてのリクエストを許可する感じ
- つまり、拒否したいIPアドレスをリストに登録しておく。

### AWS Inspector
AWS利用者がサービスを構築した際のセキュリティ評価を実行する。
<b>ベストプラクティスと比較して、逸脱しているか判定する</b>
EC2インスタンスの露出・脆弱性などの確認
<b>サービスを実行する際に、AWS Inspectorを埋め込む。そして、各サービスの脆弱性やその対策など生成する。　</b>

- ネットワークの到達性に関する設定
- Amazon エージェント
    - EC2インスタンスにインストールできる
- セキュリティ評価サービス

などから構成されている。 

※　ただし、すべてのセキュリティ問題が解決されることを保証はしない。 クラウド内の責任はAWS利用者にあるものだから。

### Amazon GuardDuty
脅威検出サービス
ネットワークアクティビティの連続ストリームを分析する。(機械学習？？)
<b>ネットワークとアカウントのアクティビティを継続的にモニタリングし、脅威を特定する。修復手順なども記載される。</b>
<b>そのセキュリティ調査結果に応じて自動的に修復手順を実行するように　AWS Lambda を設定することもできる</b>
サービスに埋め込むなどはせず、独立して実行される。

- AWS利用者は、インスタンスに対してセキュリティソフトを入れる必要はなくなる。