書いていること
個人的に最低限、知っておいた方が良いと思うこと
- アカウントの設定(IAM)
- VPC
- SecurityGroup
以下の資料に詳しく書いてあります。
書かないこと
- アプリケーション上のセキュリティとか
- これだけやればいいということではないです
1.アカウント設定
- AWS利用時に作成されるアカウント(以降Rootアカウント)は何でも出来て権限が強すぎるのでなるべく使わないようにする
- IAM(Identity and Access Management)を使って別途アカウントを作成して運用する
Rootアカウントはなるべく使わない
- Rootアカウントのアクセスキーがあれば削除する。AWSはアクセスキーを使ってAPIを介した各サービスの操作が可能だが、Rootアカウントのアクセスキーは何でも出来てしまうので利用しない。
- 初期設定時にはRootアカウントはパスワードのみとなっているのでMFAを用いた2段階認証を利用する
MFA?
- パスワードだけでなく、物理デバイスやソフトウェアを用いてワンタイムパスワードを発行し2段階認証を行う。詳しくはMulti-Factor Authenticationを参照
- 物理デバイスの場合、$12.99
- ソフトウェア型の場合、AuthyやGoolge AuthenticatorなどがありiPhoneやAndoridで利用可能。AuthyはChromeアプリもある
- AWSアカウント作ったらこれだけはやっとけ!IAMユーザーとAuthyを使ったMFAで2段階認証
IAM(Identitiy and Access Management)
- Rootアカウントとは別に個別にアカウントを作成する事ができるのがIAM
- 基本的にはIAMで作った個別アカウントのみを使うようにする
- 権限を細かく設定することができる(S3のReadOnlyユーザーなど)
- IAM Groupを使うとグループごとに権限を設定できる
- 個別のアカウントにもMFAが利用できるので特に権限レベルが強いものはMFAをかけておくとより安全
2.VPC(Virtual Private Cloud)
- AWSはパブリッククラウドだが、AWS内にプライベートネットワークを構築する事ができる
- VPC内でサブネットを区切ることもできる。VPC領域を192.168.0.0/16とし、その中に192.168.0.1/24と192.168.2.0という別のサブネットを作ることもできる
- AWS Direct Connectでの専用線接続やインターネットVPNを利用することで直接AWSのVPCにアクセスすることも可能(やったことはない)
3層(Web,AP,DB)モデルの場合
- Amazon Web Services 基礎からのネットワーク&サーバー構築が詳しい。一度これ見て組んでみることを推奨
- Webサーバーはインターネットと接続が可能なサブネット内に配置し、APサーバーやDBサーバーは内部のみと通信可能なサブネットとすることでセキュリティを高める
- APサーバーなどのプライベートネットワークからインターネットへ接続する(OSアップデートなど)の場合にはNATを起動して接続する。NATのAMI(AmazonMachineImage)を利用することで簡単に構築できる
3.SecurityGroup
- InboundとOutboundのファイアウォールの設定が可能
- 名称の指定も出来るのでGroupNameに予めWeb、APなど作っておいてルールを設定しておくと良い
- 書いてない設定はDenyされるので許可させたいネットワークを書く
- デフォルトでは22ポート(SSH)がどこからでも接続できるできるポリシーが適用されるので固定IPに変更する。
- HTTP、HTTPSなどの場合でも極力どこからでも接続できることを意味する0.0.0.0/0やanywhereは指定せず固定IPなどの指定を推奨
0 件のコメント:
コメントを投稿