見出し画像

【おまけだよ】ぜんぜんわからなかったECSについてまとめてみました(ECS実践前にAWSアカウントまわりを未経験から設定しよう!)

こんにちはこぐまです。

これから、ECSの実践をしていきたいのですが・・
本日はちょっと休憩。

ECSを実践していくには、前回紹介したようなAWS画面(AWSマネジメントコンソール)にログインできることが必要です。本日は、ECSを実施するために必要なAWSマネジメントコンソール関連の準備について書いていきます。すでにAWSマネジメントコンソールにログインできているという方は本記事は読み飛ばしてください。

前回も掲載したAWSマネジメントコンソールの画面。
ここから様々なAWSサービスを操作できる。
そのためにはまずAWSアカウントを作成する必要がある。

1.AWSアカウント

AWSマネジメントコンソールにログインするためには、まずは「AWSアカウント」を作成することが必要です。
AWSアカウント自体は無料で作成できます。
AWSで利用していくEC2インスタンス等はそのスペックや稼働時間によって料金がかかることがあります。しかしご安心ください。これから紹介する実践で行っていくECSに対しては、利用するコンテナインスタンスも最小のタイプを利用するため、基本的にコストはかかりません。(現在、このNote記事を書くために自分もここ2週間ほど作っては壊し・・を繰り返していますが、今のところ料金は発生しておりません。)

AWSアカウントの作り方はAWS公式の以下のサイトがとても詳しいので
これを参照ください。
作成には、Eメールアドレス、クレジットカード等の情報が必要です。
Eメールアドレスがそのまま「AWSマネジメントコンソール」へのログイン情報となります。(これをルートユーザーと呼びます)


2.AWSアカウント作成後に行うこと

AWSアカウントを作成できたら、
上記で入力した3つの情報

・AWSアカウント名
・メールアドレス
・パスワード

を入力することでAWSマネジメントコンソール画面は利用できます。
このまますぐにECSの実践に向かうこともできるのですが、
セキュリティを強くしておいたほうが絶対に良いので、以下の設定をしておきましょう。(AWS公式でも強く勧めています。またいろんな記事でも
絶対にやるべき!と書かれております。)

2-1.Google Authenticato‪r‬(Google 認証システム)をスマホにインストール
2-2.ルートユーザーのMFA有効化
2-3.ルートユーザーのアクセスキー削除
2-4.アカウントエイリアスの設定
2-5.IAMグループの作成
2-6.IAMユーザーの作成
2-7.IAMユーザーのMFA有効化

セキュリティとしてはここまでです。
そして、使い過ぎ防止のために以下を有効にしておくといいかと思います。

2-8.IAMユーザー/ロールによる請求情報へのアクセス許可
2-9.Budgetsの設定

それでは順番に行きましょう。

2-1.Google Authenticato‪r‬(Google 認証システム)をスマホにインストール

 
いわゆる多要素認証のためのアプリです。
ログインしようとしている人が、あらかじめ申告されていたその人の持ち物(スマホとか)で、今この瞬間送った6桁の数字をちゃんと入力してきてくれるかどうか?をチェックします。

私はAndroidですが、iphoneでも使えるようです。
これをスマホにインストールします。
まずは、ただそれだけで大丈夫です。

Google認証システム。普通にPlayストアから
検索してインストールできます。

2-2.ルートユーザーのMFA有効化

まずは、AWSマネジメントコンソールに入ります。

「1.AWSアカウント」のところで紹介したAWS公式サイトの右上部分
「コンソールにサインイン」をクリック
必ず「ルートユーザ」を選択。
ルートユーザーのEメールアドレスを入れて「次へ」
ここは表示されている文字を入れる。
わかりにくかったら更新でやり直す。
入力して「送信」
AWSアカウント時に作成したパスワードを入力して「サインイン」


入れました!
画面の表示(サービス)は若干違うかもしれません。

次に、画面上部の「サービス」の右の検索窓「IAM」と入れて、
IAMを選択します。

ちなみに、☆マークを押すと、お気に入りとして、画面上部のツールバーに表示されます。
次回からクイックアクセスができるのでとてもお勧めです!

画面中央に赤い三角で「!」の警告が出ていると思います。
ここで「MFAの追加」をクリックします。

セキュリティ認証情報の「多要素認証(MFA)」のところを展開し、
「MFAの有効化」をクリックします。

「MFAデバイスの管理」のところで、「仮想MFAデバイス」を選択します。

すると次の画面にうつります。

仮想MFAデバイス設定画面。
1の説明「互換性のあるアプリケーション・・・」とは
「2-1.Google Authenticato‪r‬(Google 認証システム)をスマホにインストール」
のことを指しているので、ここはすでに実施済みです。

「QRコードの表示」を押して、QRコードを表示させます。

ここで、スマホに入れた「google認証システム」アプリを立ち上げます。
Google認証システムの左下に「+」のマークがあるので、
そちらをクリックして「QRコードをスキャン」をクリックします。

赤線内にQRコードを表示してくださいとなるので、先程の仮想MFAデバイス設定画面にて表示したQRコードを読み取ります

すると、「シークレットキーを保存しました」と表示され6桁の数字が
一定時間ごとに切り替わって表示される
ようになります。

そしてどのタイミングからでもいいので、
今表示されている6桁の数字「MFAコード1」
その次に表示される6桁の数字「MFAコード2」に入力します。

たとえばある瞬間「012 345」と表示されていて、
その次に「678 910」と表示されていた場合、
「MFAコード1」に「012345」
「MFAコード2」に「678910」
を入力します。

連続するというのがポイント。一つ飛ばしだとうまくいかない。
任意のタイミングからで問題ない。
正常にMFAが登録できた状態。

ここまで来たら一回サインアウト(画面右上のプルダウンからできます)し、
「もう一度ログインする」をクリックしてログイン処理を進めます。
すると、先程のパスワード、文字入力などの認証に加えて、
以下のように多要素認証を求められる状態となります。

多要素認証のMFAコード入力画面。
ここで、スマホにその時表示されている
6桁の数字
を入力する。

無事、MFA認証が有効となったルートユーザーでログインできましたでしょうか。
もう一度、サービスの横の検索窓に「IAM」と入力して、IAMサービスを選択します。または最近アクセスしたサービスから「IAM」を選択しても大丈夫です。先程まで出ていた警告がなくなり、今度はちゃんと緑になっていますね。

MFAが設定されているので、今度はちゃんと緑になっています。

ルートユーザーのMFA有効化作業はここまでです。


2-3.ルートユーザーのアクセスキー削除

先程の画面で、「rootユーザーにアクティブなアクセスキーがありません」
の項目が緑色である場合は特に何もしなくて大丈夫です。

上記のようになっている場合は、何もしなくてよいです。
上記のような状態の場合は、「アクセスキーを管理」をクリックします。
アクションのところで、「削除」をクリック。
「無効化」を選択し、アクセスキーをコピペして、「削除」をクリック
この状態になれば大丈夫です!

ルートユーザーのアクセスキー削除はここまでです。


2-4.アカウントエイリアスの設定

続いてアカウントエイリアスの設定です。
これはAWSマネジメントコンソールにログインするときのURLを
わかりやすい形に変えるため
のものです。
先程のIAMサービス画面の右に、「アカウントエイリアス」という部分があるので、ここの「作成」をクリックします。

アカウントエイリアスがない場合は、
AWSアカウントID(12桁の数字)が表示されます。
任意のエイリアス名入力します。
その下の「新しいサインインURL」も併せて表示されます。
このURLをブックマークしておくと次回のログインがとても楽になります。

アカウントエイリアスの設定はここまでです。


2-5.IAMグループの作成

ここまでは、ルートユーザーに関する設定を行ってきました。
最初にAWSアカウントを作成すると、デフォルトで作成されるユーザとして「ルートユーザー」が作られます。
AWSのあるべき使い方(ベストプラクティス)として、
ルートユーザーは日常的には利用しないという決まりがあります。
なぜなら、ルートユーザーはとても強い権限を持っているからです。

その代わり、AWSには、IAMユーザーという考え方があります。
IAMユーザーはたくさん作ることができ、それぞれのIAMユーザーごとに
必要な権限(IAMポリシーといいます)をアタッチさせることができます。

必要な権限(IAMポリシー)は、IAMユーザーごとにアタッチさせることも
もちろんできますが、複数のIAMユーザーをまとめたIAMグループという管理方法があり、そのグループに対してIAMポリシーを付与することで、
所属するIAMユーザーみんなに同じ権限を付与することができます。
一般的にはIAMポリシーは個々のIAMユーザーよりもIAMグループに付与するほうが望ましいです。
なので、今回もまず、IAMグループを作ります。

画面左「アクセス管理」から「ユーザグループ」を選択
「グループの作成」をクリック
好きなグループ名をつけます。
スクロールして下に続きます。
ここはまだ何もしなくてよいです。
スクロールして下に続きます。
ポリシーの検索欄に「AdministratorAccess」と入れてEnter。
すると候補が出てくるので、その中から「AdministratorAccess」をチェック。
そして「グループを作成」をクリック
「koguma-group」が作られました!

IAMグループの作成はここまでです。


2-6.IAMユーザーの作成

つづいて、IAMユーザーを作成して、2-5で作成したIAMグループに所属させます。

画面左「アクセス管理」から「ユーザー」を選択
「ユーザーの追加」をクリック

次の画面で、好きなユーザ名を入れます。まず最初に画面例を示します。

IAMユーザ入力部分の例。
以下の注意部分を参考に入力してください。

ここは少し注意が必要です。
まず、「AWS認証情報タイプを選択」のところでは、パスワード-AWSマネジメントコンソールへのアクセスのほうだけをチェックします。
(アクセスキー-プログラムによるアクセスのほうはチェックは不要です)

続いて、「コンソールのパスワード」は、「カスタムパスワード」を選択し、好きなパスワードを入れてください。
(パスワードはこの時点ではデフォルトポリシーなので、設定できるのは以下の条件となります)

デフォルトのパスワードポリシー

「パスワードのリセットが必要」のところのチェックを外します

全部入れてみた状態(再掲)。
この状態で「次のステップ:アクセス権限」をクリックします。
(IAMユーザ名、パスワードは忘れずに覚えておきましょう。)
続いて、「ユーザをグループに追加」の部分になっていることを確認し、
2-5で作成したIAMグループにチェックを入れます。
この状態で「次のステップ:タグ」をクリック
ここは何もしなくていいので、「次のステップ:確認」をクリック
内容を確認して、「ユーザーの作成」をクリック
「koguma-user」というIAMユーザーが作成されました!

IAMユーザーの作成はここまでです。


2-7.IAMユーザーのMFA有効化

最後に、IAMユーザのMFAを有効化します。

画面左「ユーザー」をクリックし、
ユーザ一覧から、先程作成したIAMユーザをクリック。
(横のチェックボックスではなく、青くなっているIAMユーザ名をクリックします)
ここの「認証情報」をクリック
MFAデバイスの割り当てのところの「管理」をクリック

これ以降は、「2-2.ルートユーザのMFA有効化」のところと同様です。
ルートユーザーだけでなく、IAMユーザに対してもQRコードを読み取り、6桁の数字を連続で2回入力し、MFAを有効化していきます。

ここから「続行」をクリックして、ルートユーザーの時と同じように進めていきます。
ルートユーザーの6桁数字とIAMユーザの6桁数字は別々に管理されます。

IAMユーザーのMFA有効化についてはここまでです。

ここまで出来たら、一度サインアウトし、
作成したIAMユーザでログインしてみましょう。
サインアウト前に、「2-4.アカウントエイリアスの設定」で行った
以下のようなログイン用のURLをコピーしておきましょう。
https://エイリアス名.signin.aws.amazon.com/console

コピーしたURLをブラウザに貼り付けます。
すると以下の画面が出てきます。

ブラウザのキャッシュなのか、なんなのかよくわかりませんが、
この時に、ユーザ名の部分が「ルートユーザーのユーザ名(メールアドレス)」が入ってしまっていることがあります。

最初の枠にあるように、これは「IAMユーザ」としてサインインをしているため、「ルートユーザー」で入れるわけがありません。

なので、必ずユーザ名(とパスワード)が「ルートユーザー」ではなく
「IAMユーザー」のものであるかどうかを確認して、違った場合は入力しなおしてください。

ちなみに、ルートユーザーでログインする場合は、
「ルートユーザのEメールを使用したサインイン」をクリックする。
似たような画面なので、混乱するんですかね。。
よくログインできないという問い合わせをもらうことが多いです。
色が違ったりするとわかりやすいのかもしれませんね。

その次に、MFA認証画面に行きます。

ここで、スマホにその時表示されている
IAMユーザのほうの6桁の数字を入れます。
(くどいかもしれませんが、ルートユーザのほうの数字ではありません!)

無事にログインできましたでしょうか?

それでは一度サインアウトして、今度はルートユーザーで入ってみましょう。ルートユーザの場合は、先程の画面(IAMユーザーとしてサインイン)のところで、「ルートユーザのEメールを使用したサインイン」を選択します。

すると今度は「サインイン」という画面になります。
ここで、「ルートユーザー」を選択して、ルートユーザのEメールアドレス
を入力します。以降は、2-2の最初の画面と同じです。
パスワード、文字入力認証、MFA認証をして、ログインできます。

なお、「IAMユーザ」を選択すると、アカウントIDを入れる画面となる。
ここで2-4で設定した「アカウントエイリアス名」を入れることで、
「IAMユーザとしてサインイン」の画面に遷移する。

ここまでで、AWSマネジメントコンソールを安全に利用するための
最低限の設定は完了です。
あとは、ルートユーザーで追加で2つだけ、設定をしておくといいかと思います。
このままルートユーザーで作業を続けましょう。


2-8.IAMユーザー/ロールによる請求情報へのアクセス許可

「2-5.IAMグループの作成」のところで少しお話したように、「ルートユーザー」は非常に強い権限があるため、日常的には利用しないことになっています。
そのため、ほとんどの作業を「IAMユーザー」で行うことになりますが、
デフォルトではIAMユーザーは請求情報を閲覧することができません。
(デフォルトではルートユーザーだけが閲覧できるようになっています)

これだと、今いくら使用したのかを確認するのに、毎回ルートユーザーでログインしなおさなければならなくなるので、少し不便ですね。
そのためIAMユーザーでも請求情報を見れるようにしておく設定をここで紹介します。

ルートユーザーでログインし、右上から「アカウント」をクリックします。
ちなみに、「サインアウト」もここからできますね。

遷移先のページは、「アカウント設定」や「連絡先情報」などが続いて
縦に長いページとなっています。
ずっとスクロールしていると以下のような
「IAMユーザ/ロールによる請求情報へのアクセス」
という欄があるので、そこの「編集」をクリックします。

そして、「IAMアクセスのアクティブ化」をクリックして「更新」です。

これでIAMユーザでも請求情報を確認することができます。
ちなみに、請求情報はトップページの画面右側の
「請求ダッシュボード」から見れます。

IAMユーザー/ロールによる請求情報へのアクセス許可についてはここまでです。

次は最後、予算のアラートを作成しておきましょう。
このままルートユーザーで作業を続けます。


2-9.Budgetsの設定

最後にBudgetsの設定です。
Budgetsとは「予算」の意味です。
AWSを使うにあたり、あらかじめ「予算」を決めておいて、
予算を超えそうになったり、超えた場合にアラートメールを送ることができます。
スマホでいう、モバイルデータ使用量の警告みたいなやつですね。

ちなみに、次回行う、ECSの実践では基本的にコストはかかりませんので、
設定は任意ですが、今後もAWSを利用していくにあたっては設定しておいたほうが良いかと思いますので紹介します。

まずは、ルートユーザーで画面右上の「請求ダッシュボード」をクリックします。

画面左側の「Budgets」をクリックします。

オレンジの「予算を作成する」をクリックします。

すでに作成した予算がある場合は、このページは出てきません。
直接予算のページに遷移します。
一番上(コスト予算ー推奨)のまま、「次へ」をクリック
まず予算名を決めます。
続いて予算額です。間隔は「月別」
リニューアルタイプは「定期」
予算設定方法は「固定」です。
そして予算額を入力します。
ここでは例として「1ドル(約110円くらい?)」としました。
ここも難しそうですが、特定のAWSサービスではなく、かかった総量に対して
「予算」を適用するという意味合いです。
とくに変更せず、「次へ」で大丈夫です。

ここまでが予算自体の設定です。
続いてこの予算を超えそうなときに通知する設定を行います。

最初に出てくる説明です。
下にスクロールします。
閾値を決めます。ここでは80としました。
つまり、1ドルに対して80%(0.8ドル)を超えた場合
アラートメールを送信します。
トリガーの部分は、「実績」となっていますが、ここを「予測」にすることで、
0.8ドルを超えそうな場合に送るということもできます。
Eメールの受信者のところに、受信したいメールアドレスを記載します。

ここは、現時点では特に何もせず「次へ」で大丈夫です。
内容があっていることを確認して、「予算の作成」をクリックします。
こんな風に予算として追加されます。

これで設定は完了です。
サインアウトし、IAMユーザでログインしてみましょう。
(以降はもう、ルートユーザーは利用しません)

IAMユーザで「請求ダッシュボード」がちゃんと見れていたら問題ないです。

「データなし」となっているのは問題ないです。
このページ自体が閲覧できていることが大切です。
IAMユーザでログインして、「請求ダッシュボード」を見たときに
このように表示される場合は、
「2-8.IAMユーザー/ロールによる請求情報へのアクセス許可」がうまくいっていません。

以上でBudgetsの設定は終わりです。

・・・休憩といいつつ、すごく長くなってしまいました。
自分も画面キャプチャのために初心に帰って実施したので、
記事書きあげるのに3日かかってしまいました(笑)
少なくとも現時点では上記の通りで実施できることを確認済みです。

では、次回は、ECSを実際に触り、ゼロからECS上でコンテナを動かすことを進めていきたいと思います。

ここまで読んでくれて本当にありがとうございました!


【マガジン紹介】

「ぜんぜんわからなかったECSシリーズ」のマガジンです!
鋭意更新中です!
AWS未経験者にもわかるように、優しく解説しています。
是非お読みいただけると嬉しいです!


この記事が気に入ったらサポートをしてみませんか?