セキュアなアプリケーションと アーキテクチャの設計

<h1>AWS リソースへのセキュアなアクセスの設計</h1>
<h3>Amazon Virtual Private Cloud(Amazon VPC)</h3>
VPCはAWS上にオンプレミスと同じようにプライベートネットワーク空間を作成できる
• ネットワーク空間は論理的に分離されて構成され,お客さま専用のネットワーク空間であり、IPアドレスもお客さま自身で設定することができる。外部とのネットワークと完全に分離され、アクセスが遮断されて安全。
• 
•インターネット ゲートウェイという部品を接続することでVPCにインターネットと接続する出入り口を作ることができる
• 専用線やインターネットVPNもVPCへの接続がサポートされているため、オンプレミスやお客さま拠点とプライベートネットワークとして接続でき
• VPCで作成したネットワーク空間に、サブネットと呼ばれるネットワークセグメントを作ることもできる。またサブネットごとにインターネットと接続できるパブリックサブネット、インターネットと遮断したプライベートサブネットという形で構成できる。
• VPCで作成したプライベートネットワーク空間はリージョン内にある複数のアベイラビリティーゾーン（AZ）をまたいで構成できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/3a8026fe-8d94-0bb1-52fb-06caf09b5876.png)

https://www.pc-webzine.com/entry/2021/07/awsamazon-vpc.html

<h5>パブリックサブネット</h5>
• パブリックインターネットへの直接アクセスをサポート
• インターネットゲートウェイへのルーティングテーブルエントリで指定する

<h5>プライベートサブネット</h5>
• インターネットゲートウェイへのルーティングテーブルエントリがない
• NAT 経由でパブリックインターネットに間接アクセスする


セキュリティグループとネットワーク
<h3>AWS VPC(仮想プライベートクラウド)</h3>

<h5>セキュリティグループ</h5>
インスタンスレベルで動作
ルールの許可のみがサポート
トラフィックを許可するかどうかを決める前に、すべてのルールを評価
<h5>ネットワークアクセスコントロールリスト (ACL)</h5>
インスタンスレベルで動作
ルールの許可と拒否がサポート
最も低い番号のルールから順にルールを処理
<h3>セキュリティグループおよびネットワーク ACL が提供するセキュリティレイヤー</h3>
インターネットゲートウェイからのトラフィックは、ルーティングテーブルのルートを使用して適切なサブネットにルーティングされる。サブネットに対してどのトラフィックが許可されるかは、そのサブネットに関連付けられているネットワーク ACL のルールによってコントロールされる。
インスタンスに対してどのトラフィックが許可されるかは、そのインスタンスに関連付けられているセキュリティグループのルールによってコントロールされる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/861768d5-fde4-a9ec-537b-e34f6d5f7c4f.png)

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Security.html#VPC_Security_Comparison

<h3>Amazon VPC でトラフィックをやり取りするサービス</h3>
• インターネットゲートウェイ: インターネットに接続

• 仮想プライベートゲートウェイ: VPN/Direct Connect の終端ポイントに接続
• AWS Direct Connect: オンプレミスネットワークへの専用ネットワーク接続

• VPC ピア接続: 他の VPC に接続

• NAT ゲートウェイ: プライベートサブネットからインターネットへの間接アクセスを許可
プライベートサブネット、つまり、インターネットに接続できないサブネットの中に配置したシステムが、これを経由することでインターネットに安全に出れるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/69ccd57c-149d-b002-e023-7f67c794551d.png)

・NAT インスタンス：スクリプトを使用してインスタンス間のフェイルオーバーを管理します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801328/1012cc9a-a685-e7d4-fe33-8a0a009acfc4.png)

<h1>セキュアなアプリケーション階層の設計</h1>

<h3>AWS Identity and Access Management (IAM)</h3>
AWS サービスやリソースへのアクセスを安全に管理できる。IAM を使用すると、AWS のユーザーとグループを作成および管理し、アクセス権を使用して AWS リソースへのアクセスを許可および拒否できる。

<h5>IAM ユーザーとそのアクセスの管理 </h5>
 IAM でユーザーを作成し、ユーザーに個別のセキュリティ認証情報 (アクセスキー、パスワード、多要素認証デバイス) を割り当てるか、一時的セキュリティ認証情報をリクエストすることによって、AWS のサービスやリソースへのアクセス権をユーザーに付与し、ユーザーにどの操作の実行を許可するかを管理者がコントロールできる。
<h5>IAM ロールとそのアクセス許可の管理 </h5>
 IAM でロールを作成し、アクセス許可を管理することで、そのロールを担うエンティティまたは AWS サービスの実行可能なオペレーションをコントロール。ロールをどのエンティティに適用するかについても定義
<h5></h5>
<h3></h3>

<h3></h3>
<h1>適切なデータセキュリティオプションの選択</h1>
<h2>転送中のデータ</h2>
<h3>1.AWS インフラストラクチャへのデータ転送、AWS インフラストラクチャからのデータ転送</h3>
<h3>1-1ウェブ経由の SSL/TLS</h3>
<h3>1-2オンプレミス接続用の IPsec</h3>

https://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/scenario-onprem.html

<h5>VPN</h5>
仮想プライベート・ネットワーク(VPN)接続を使用して、VCNをオンプレミス・ネットワークの拡張にできます。このために、Oracle Cloud Infrastructureでは、IPSec VPNであるVPN接続が提供されます。

VPNを使用してオンプレミス・ネットワークを拡張すると、次の利点があります。
リース明細が不要な場合は、パブリック・インターネット明細を使用できます。

関与するIPアドレス・スペースはプライベートであり、外部には公開されません。

ネットワーク間の通信は暗号化されます。

サイトからサイトへのVPNを使用すると、複数のユーザーが複数の接続ではなく単一の接続を通じてクラウド・リソースにアクセスできるため、管理オーバーヘッドが低減します。
<h5>AWS Direct Connect</h5>
AWS への接続にインターネットを使用しない、代替的な方法を提供するネットワークサービス。従来はインターネット上で転送されていたデータを、お客様の設備と AWS 間のプライベートネットワーク接続を通じて配信.。プライベートネットワーク接続はコストを削減し、帯域幅を増加させ、インターネットベースの接続よりも一貫性のあるネットワークサービスを提供することができる。
<h3>2 AWS API へのデータ送信</h3>
・AWS API コールでは HTTPS を使用
・全てのAPIコールは Sigv4 で署名
<h4></h4>
<h4></h4>

<h2>保管中のデータ</h2>
Amazon S3 に保存されたデータはデフォルトでプライベートで、アクセスするには AWS 認証情報が必要
<h2>データの暗号化</h2>
<h4>サーバー側の暗号化</h4>
• Amazon S3 で管理するキー(SSE-S3)
• AWS KMS で管理するキー(SSE-KMS)
• 顧客が提供するキー (SSE-C)
<h4>クライアント側の暗号化</h4>
• AWS KMS で管理するカスタマーマスターキー (CSE-KMS)
• クライアント側のマスターキー (CSE-C)
<h5>AWS Key Management Service (AWS KMS)</h5>
・データ暗号化に使用する暗号化キーを管理してくれるサービス

・データの暗号化の鍵(データキー) と 暗号化のための鍵(マスターキー) を管理

 AWS CloudTrail と統合されており、すべてのキーの使用ログを表示できるため、規制およびコンプライアンスの要求に応えるために役立つ。AWS サービスの多くは、AWS KMS を使用してデータの暗号化をサポートしている

KMSとの違い
・AWS管理のサーバを共有で利用し、そこで暗号化キーを管理。
・システム的に他の組織へのアクセス制限はされていますが、物理的には同じサーバ上に存在。
・CloudHSMに比べると安価。

<h5>AWS CloudHSM</h5>
AWS Cloud でのマネージド型ハードウェアセキュリティモジュール (HSM) のことを指す。専用のハードウェアで暗号化キーを保管。
CloudHSMの方がより安心してキーを管理することが可能。
KMSに比べると高価で
<h4></h4>
<h4></h4>
<h5></h5>
<h3></h3>
<h5></h5>
<h3></h3>
<h5></h5>
<h3></h3>