AWS Internet Gateway 作成

AWS Internet Gateway 作成

Internet Gateway は
VPCネットワークで稼働するEC2インスタンスが
インターネットを通じ外部と通信するのに必要

自宅サーバーのデフォルトゲートウェイのようなもの

作成した Intenet Gateway は
ルートテーブルのターゲットとして設定することになる

Internet Gateway は設定するのは
識別のためのネームタグだけです

この Internet Gateway を設定するには
VPCダッシュボードの
インターネットゲートウェイをクリックし
インターネットゲートウェイの作成
をクリック

ig

ネームタグ設定画面になるので
今回は
AWS_GATEWAY
としました

ig2

これで Intenet Gateway が作成されます

次に、作成した Internet Gateway と
VPCの関連付けをします
そのままの状態だと detached となっているので
関連付けしたい Internet Gateway にチェックをいれ
VPCにアタッチをクリックします

ig3

アタッチするVPCを選択し
アタッチをクリックします

ig5

これで状態が atached になれば関連付けされています

ig6

次に、作成した Internet Gateway を
ルーティング先に設定します

VPCダッシュボードから
ルートテーブルをクリックし
設定したいルートテーブルをクリックします

ig7

次に
ルートをクリックし、編集をクリックします

ig8

別ルートの追加をクリックします

ig9

追加欄がでるので
送信先には 0.0.0.0/0
として
すべてのアドレスとマッチするようにします

ターゲットは
空欄をダブルクリックすると候補がでるので
それを選択します

設定ができたら保存をクリックします

ig10

これで設定完了です

次回はEC2のための設定を行っていきます

AWS Route Table 作成

AWS Route Table 作成

Route table は
サブネット内で稼働するEC2インスタンスの
ネットワークルーティング制御をするもの

インターネット通信をするのなら
Internet gateway をルーティング先に

VPC接続で外部サーバと通信するなら
Virtual Private gateway をルーティング先
というように指定します

Route Table 作成は
VPCダッシュボードから
ルートテーブル作成を選択し
ルートテーブル作成をクリックします

rtable

するとルートテーブル作成画面になるので

ネームタグに任意の名前をつけます
今回は
aws_routetable
としました

rtable2

これで新しく作成したルートテーブルが追加されます

rtable3

この作成したルートテーブルをメインにするのなら
右クリックして
メインテーブルとして設定
を選びます

すると確認ダイアログがでるので
設定をクリックします

rtable4

これでメインに設定されます

次にサブネットとルートテーブルを関連付けします

サブネットの新規作成時は
ルートテーブルを指定することができないため
VPC内のメインルートテーブルに自動的に関連付けされます

今回ルートテーブルを作成したので
これと関連付けします

ルートテーブルの中の
サブネットの関連付けをクリックし
編集をクリックします

rtable5

するとサブネット一覧がでます
とはいっても今回は1つしか作成していませんので
1つだけです

この関連付けにチェックを入れ
保存をクリックします

rtable6

これで関連付けされます

自動的に関連付けされることもありますが
明示的に関連付けしないと
通信ができなくなったり
不要な通信をするなどの不具合がでる可能性があります

次は Internet Gateway の設定になります

AWS Custom VPC 作成

AWS Custom VPC 作成

VPC作成手順は
VPCネットワーク作成
Subnet作成
Route Table 作成
Internet Gateway 作成
Network ACL 設定
Security group 設定
となる

まずはVPCネットワークの作成

VPCで稼働する予定の
private network Address の範囲を指定する

なお、VPCネットワークアドレスは
一度設定すると後から変更できないので余裕をもって範囲設定すること

作成するにはAWSコンソールにログインし
ネットワーキング項目のVPCをクリック

vpc

次にダッシュボードのVPCをクリックし
VPCの作成をクリック

vpc2

するとVPC作成画面になります

vpc3

ネームタグには任意の名前をつけます
今回なら
AWS_wpservice
とします

次に、CIDR ブロック
これはIPアドレス範囲の指定です
最大が
10.0.0.0/16
となり、 65536 IPが最大となります

テナンシーはホストサーバーの指定に関しての設定
通常はデフォルトでOK
これを
ハードウェア占有にすると
占有状態となりセキュリティなどで
他とは共有できないときに指定します
ただし、料金が割高になります

設定ができたら、作成をクリックすれば
VPCが作成されます

vpc4

次に、EC2でパブリックDNSを使うため
DNSホスト名を はい に変更します

作成したVPCを右クリックし
DNSホスト名の編集を選択します

ダイアログがでたら
はい
を選択し、保存します

vpc5

これで設定が反映されます

つぎはサブネットの作成になります

これをつくることで、複数のネットワークを作成できます
これを行うことにより
VPC内部で役割に応じたネットワーク構築ができます

サブネットの作成は
ダッシュボードからサブネットをクリックし
サブネットの作成をクリックします

sub

するとサブネット作成画面がでてきます
ネームタグは、VPCと同じように
任意のものでOKです
今回はAWS_subnet とします

VPCには、作成した カスタムVPCがセットされます

アベイラビリティゾーンは
サブネットを作成するAZの指定になります
つまり、リージョン指定
指定しないと任意のものになります

CIDR ブロック

ネットワーク範囲になります

ただし
最初の4IPと、最後の1IPはAWSで使うため
利用できないし
ELBを作るには20IP必要なため
/28 つまり 16IPではELBが使用不可のため
最低でも/24 (256IP)以上にしたほうがよいなど
色々と制限があるため注意が必要です
今回は
CIDRブロックは
10.0.0.0/24
としました

sub2

これでサブネットが作成されたので、
できたサブネットを右クリックし
自動割り当てパブリックIPの変更を選択します

sub3

ダイアログがでるので
自動割り当てパブリックIPを有効化
にチェックをいれて保存します

sub4

これでDefault VPC の特殊設定にある
EC2インスタンス生成時に
パブリックIPアドレス
DNSホスト名を自動設定できるようになりました

次回、RouteTable の作成になります

aws CLI の設定

aws CLI の設定

 aws configure

を実行すると
対話形式で入力することで設定ができます

AWS Access Key ID [None]:
となるので
以前ダウンロードした
credentials.csv
を参考に Access Key Idを入力します

次に

AWS Secret Access Key [None]: 

となるので
AWS Secret Access Key を
crendials.csv を参考に入力します

Default region name [None]:

となるので、デフォルトで使用するリージョンを設定します

AWSのリファレンス・リージョンとエンドポイント
http://docs.aws.amazon.com/ja_jp/general/latest/gr/rande.html

AWS Config
にリージョン名が載っているので
今回は東京リージョンを指定するので
ap-northeast-1
とします

Default output format [None]: 

となり実行結果出力形式の指定になるので
今回は text にします

ちなみに
text だとシェルスクリプトの実行結果のようになり

json ならJSON形式

table にするとテーブル形式になります

設定が完了したら、AWS CLIの参照コマンドを実行

まずはEC2のデフォルトセキュリティグループの参照

aws ec2 describe-security-groups

を実行すると
EC2のデフォルトセキュリティグループの参照ができます

なお AWS CLI の設定ファイルは
ホームディレクトリの .aws に保存されます

ll .aws/

とすると

drwxrwxr-x  2 snowpool snowpool  4096  9月  9 22:20 ./
drwx------ 89 snowpool snowpool 73728  9月  9 22:20 ../
-rw-------  1 snowpool snowpool    48  9月  9 22:20 config
-rw-------  1 snowpool snowpool   116  9月  9 22:20 credentials

となります

config には
出力形式の指定と
使用するリージョンの指定

credentials には
Access key ID
Secret Access Key
の値が保存されています

AWS CLI は基本的に

aws サービス名 操作コマンド

というようになります

ubuntu 12.04 LTS へ AWS CLI インストール

ubuntu 12.04 LTS へ AWS CLI インストール

書籍を参考にインストールする予定でしたが
CentOS しか載っていないため
検索してインストールしました

pip が必要なので先にインストールします

sudo apt-get install python-pip

次に awscli をインストールします

sudo pip install awscli

インストールできたか確認するには

aws --version

で確認できます

IAMアカウントでのサインイン

IAMアカウントでのサインイン

IAMユーザパスワード設定

IAMユーザパスワード設定


でパスワード設定までできたので
IAMユーザアカウントでサインインします

サインインのためのURLは
https://アカウントID.signin.aws.amazon.com/console

となります

このURLの確認は
AWSコンソールから
Identity & Access Management
をクリック

mfa3

IAM ユーザーのサインインリンク:
の部分にかかれています

iams2

なお、IDだと分かりにくい場合
カスタマイズをクリックすると
別名に変えることができます

iams

次に、IAMアカウントでサインインしてみます
表示されているURLをコピペして
アクセスするとログイン画面になります

まだMFAの設定はしていないため
チェックはいれません

iams3

これでログインすると
パスワード変更の画面になりますので
現在のパスワードを古いパスワードに入力し

新しいパスワードを入力すると
ログインできるようになります

なお、パスワードを考えるのが面倒な場合
keepassX などのパスワード管理ソフトで
自動生成すると楽になります

これでログインすると
AWSコンソール画面が表示されます

iams4

次に、そのままユーザ名とパスワードだけでは
セキュリティに不安があるのでMFAを設定します

ダッシュボードからユーザをクリックし
設定したいユーザをクリックします

pass2

次に
下にスクロールして
MFAデバイスの管理をクリックします

iam-mfa

MFAデバイスの管理で
仮想MFAデバイスをチェックし
次のステップをクリックします

mfa9

MFAデバイスの管理画面でQRコードがでるので
これを読み取り
認証コード1に入力後
少しまってコードが変わったら
それを
認証コード2に入力します

mfa10

mfa11

設定ができたら
一度サインアウトして
再びサインアップするときに
MFAトークンを持っています
にチェックを入れて
コードをいれます

iam-mfa2

これでログイン成功すれば
AWSコンソール画面が表示されます

なおMFAを設定すると
ユーザIDとパスワードだけではログインできなくなります

IAMユーザパスワード設定

IAMユーザパスワード設定

IAMアカウントとグループの紐付けはできましたが
まだパスワードなどが設定されていません

まず、パスワードのルールを設定します

アカウント管理をクリックすると
パスワードポリシーがでるので
ここで設定を行い、
パスワードポリシーの適用をクリックします

pass

次にユーザをクリックし
一覧から選びます

pass2

下にスクロールして
パスワードの管理をクリック

pass3

パスワードポリシーに基づきパスワードを作ってもらえるので
自動生成パスワードの割り当て
にチェックをいれ

次回のサインインで新しいパスワードを作成するようにユーザーに求める
にチェックをいれ
適用をクリックします

pass4

するとパスワードが自動生成されます
作成されたパスワードは
ユーザーのセキュリティ認証情報を表示
をクリックするとみることができます

パスワードを確認したら
認証情報のダウンロード
をクリックします
このダウンロードしたファイルにも
パスワードはかかれています

pass5

ファイル名を
IAMcredentials.csv
として保存します

これでパスワードの設定ができました

IAM グループの作成

IAM グループの作成

IAMアカウントにポリシー付与する場合
方法は2つ

1、アカウントに直接ポリシーを付与

2、ポリシーを付与したグループをつくり、そこに所属させる

管理の面からすると、グループ管理の方が楽

IAMグループをつくり
所属するユーザを調べるほうが効率よく管理できる

メンバーの入れ替えとかで
ユーザ追加するとき
管理者グループ
アプリ用グループ
インフラグループ
となっていれば
どの権限を付与するか
と悩まなくてもよくなるため

グループの作成については
AWSで AmazonLinux の設定

で設定したものを使います

グループをクリックし
作成しておいた
Administrators
をクリックします

group

下にスクロールすると
ポリシーのアタッチがあるので、クリック

group2

ポリシー一覧が表示されるので
IAMポリシーの設定

で設定した
カスタムポリシーを選びます
なお、カスタマイズして作成したものには
AWSのアイコンがないのでわかりやすいと思います

group3

チェックをいれたら
ポリシーのアタッチをクリックします

これでポリシーが追加されました

group4

ただし、グループ追加だけでは意味がないので
そこに所属するユーザを追加します

これにより権限の管理が簡単になります

グループにユーザを追加
をクリックします

group5

ユーザ一覧が現れるので
そこから選んで、ユーザの追加をクリックします

group7

これでグループにユーザが追加されます

group8

IAMポリシーの設定

IAM ポリシー作成(Customer Managed Policies)

ポリシーには
Managed Policies
Inline Policies
の2つがあり

この2つはさらに細かい分類ができます

Managed Policies は
AWS Managed Policies

Customer Managed Policies
の2つになります

基本的に細かい設定がいらないのなら
AWS Managed Policies を使います
これはAWSのほうで設定したポリシーになります
このため権限の設定変更はできませんし
AWSが変更すれば、それにしたがうことになります

これに対して
Customer Managed Policies は
ユーザが定義するポリシーです
特定IPのみ操作をできるような設定は
こちらのポリシーを使うことになります

この2つのポリシーは、複数のユーザ、グループを
対象に行えます

Inline Policies の場合
特定ユーザのみに適用するときに使います

なお、ポリシーをユーザ定義で行う場合
JSONで記述することになります

POlicy Generator を使えば
すべて記述することはなくなります

今回は、Customer Managed Policies を作成します

これは、
AWS Management Policies は
楽なのですが、アカウントを管理するなら
自分で設定できたほうが後々便利だと思うからです
今後、自分で運用するときに困らないように
というのもありますが

まず
AWSコンソールから
Identity & Access Management
をクリック

mfa3

次にポリシーをクリック

poli8

ポリシーの作成をクリック

poli2

AWS管理ポリシーをコピーを選択します

poli4

するとポリシー一覧がでます
今回は管理者権限をもつポリシーにしたいので
AdministratorAccess
を選択します

poli5

ポリシー名と説明を、自分なりにわかりやすいものに
変えて
ポリシーの作成
をクリックします

poli6

なお、ポリシードキュメントは
JSONで記述されています

これでカスタムポリシーが作成されます

なお、ユーザが作成したポリシー名には
AWSマークがついていないのでわかりやすいと思います

poli7

AWS IAM アカウントの設定

AWS IAM アカウントの設定

AWSユーザアカウントが root アカウント
IAM アカウントは、サーバのユーザアカウントに該当

基本的にサーバー操作と同じで
root アカウントで作業せず
IAMアカウントで操作することになります

今回は、このIAMアカウントを作成します

まずAWSマネジメントコンソールで
Identitiy & Access Management
をクリック

mfa3

次に、ユーザをクリックします

iam

新規ユーザの作成をクリック

iam2

ユーザ名を入力し
ユーザごとにアクセスキーを生成
にチェックが入っているのを確認し
作成をクリック

iam3

これでアクセスキーのダウンロードができます
認証情報のダウンロード
をクリックすれば
アクセス情報が記載されたCSVファイルがダウンロードできます

iam4

なお、
ユーザーのセキュリティ認証情報を表示
をクリックすると
アクセスキー
シークレットキー
を表示することができます

これでユーザは作成されましたが
まだ権限がないので、なにもできません

mysql でユーザを作成したけど
権限つけていないようなものです

権限はポリシーで管理され
これは
Managed Policies
Inline Policies
の2種類になります

次回、このポリシー設定を行おうと思います