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種類になります

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

AWS の MFA 設定

AWS の MFA 設定

MFAは
Multi
Factor
Authenication
の略名

これは、最近のIDとパスワードの設定だけだと
セキュリティが突破されてしまうため導入されたもの

基本的にAWSにログインしているアカウントが
root アカウント扱いで、AWSをコントロールすることになる

でも、これをとられるということは
サーバーの root権限をとられるようなもの

もしこれをとられると知らない間に使用料金が増える
というまさにクラウド破産になっていまいます

このためMFAを使った2要素認証を設定します

今回の設定は

のMFA設定

そしてデバイスの認証コードに関しては
IAMの使い方: バーチャルMFAを設定してみた

を参考にさせていただきました

このような2段階の認証は
Google アカウントなどでも設定することがあります

楽天銀行の場合だと
ID、パスワード以外に
ワンタイムパスワードを使用しています

なお、MFAは AWSユーザだけでなく
IAMアカウントにも設定できます

MFAを使うには認証コードを発行するデバイスが必要です

MFAデバイスは
アプリなどを使った仮想MFAデバイスと
実際に端末を購入するタイプの
ハードウェアMFAデバイスがあります

mfa

mfa2

ちなみに、ハードと仮想のMFAについては
Multi-Factor Authentication

に詳細が掲載されています

ハードだと値段は
12.99 USD から 19.99 USD になります

さすがにハードウェア購入するのは
結構お金がかかりますので
今回は仮想MFAアプリを使います

使用するのは Google 認証システムというアプリです
これなら iPhone Android どちらでも使えます

今回はAndroid で行います
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2

インストールできたら、次にAWSのコンソール画面から
設定していきます

セキュリティ&アイデンティティ
の中の
Identitiy & Access Management
をクリックします

mfa3

するとセキュリティステータスが表示されます

mfa4

すでにいくつか設定がしてありますが
まず root アクセスキーを削除しておきます

これはいくら MFA を設定しても
root アクセスキーが漏れていると意味がありません
公開鍵認証を設定しても
鍵がもれているようなものです

ルートアクセスキーの削除をクリックし
セキュリティ認証情報の管理をクリックします

mfa5

次にダイアログの
セキュリティ認証情報に進む
をクリックします

mfa6

次に、セキュリティ認証情報の中の
アクセスキー(アクセスキーIDとシークレットアクセスキー)
をクリックし
存在するキーを削除します

mfa7

削除すると緑色のチェックがつくので
次に
ルートアカウントのMFAをアクティブ化
をクリック
MFAの管理
をクリックします

mfa8

ダイアログが表示されるので
仮想MFAデバイスを選び
次のステップをクリックします

mfa9

デバイス管理について説明がでます
読んだら、次のステップをクリックします

mfa10

認証のための画面になりますので
QRコードを読み込んで
認証コードを入れたら
仮想MFAのアクティブ化をクリックします

mfa11

今回は Android で行います
アプリを起動したら
アカウントを設定 > バーコードをスキャン
を選択してQRコードを読み込みます

すると6桁の数字がでるので
最初の欄に入力します

少しまつと数字が変わるので
この認証コードを
2番めの欄に入力します

これで認証がされます

mfa12

もし、画面で緑チェックがついていない場合、
一度ダッシュボードから
Identitiy & Access Management
を選択すると反映されます

mfa3

実際に反映されているかを確かめるため
別のブラウザをつかって検証します

まずは今までと同じようにログインします

mfa13

すると次にAuthenication Code の入力を求められるので
認証システムアプリに表示されている
認証コードを入力し
Sign in using our secure server
をクリックし、サインインします

mfa14

これで2段階認証が設定されました

AWSで AmazonLinux の設定

AWSで AmazonLinux の設定

Amazon EC2 でのセットアップ

のチュートリアルを参考に wordpress を入れれるように設定を行っていきます

まずはEC2の設定ですがチュートリアルが去年のものなのでリンクしていないものがあります

サービスタグをクリックし IAM をクリックします

aws2

以前と違い、いくつか変更されています

まず、グループの作成を行います

ダッシュボードから
グループをクリックします

aws3

新しいグループの作成をクリック

aws4

グループ名を
Administrators
として
次のステップをクリックします

aws5

次にフィルタリング設定ですが
とりあえず、次のステップをクリックします

aws6

これでグループの作成をクリックすれば
Administrators グループができます

aws7

ドメインの取得と比較

ドメインの取得と比較

AWSで webサービスを作ってみよう
ということで、まずはドメインの取得を行います

ブログでは ドメインを value domain で取得しましたが
今回は、別のものを使ってみようと思います

色々なところがあるので
ドメイン取得サービス比較表

を参考に決めました

今回は お名前.com で取得します

現在ならキャンペーンで安くなっているということ
なので、取得してみました



なお、数年まとめて取得したほうが安いかも
と考えたのですが、
ドメインを .info にして
1年なら480円(税抜き)ですが
2年以上にするとあまり割引になっていないので
今回は1年にしました

これでドメインは取得できたので
次にAWSを設定していきます