はじめに
AWSの概要と、提供されているサービスの特徴はある程度把握していて、作ろうとしているアプリケーションを、どのサービスを使って実装していくかまである程度決まっているが、実際AWS登録してみたらドキュメントが何言ってるのか全くわからなくて、何からやり始めればええねん。
というところで(というかアカウント作成してすぐに)詰まったので、手を動かしたことを備忘録的に残しておこうと思ったのでこの記事を書いてます。
Identity and Access Management
アカウント作ってすぐに何で詰まったかというと、何からやったらいいかわからない状態になったんですね。なぜかというと、AWSの登場人物の全体像が把握できているか自信がないからです。
最初に作ったアカウントはルートアカウント
メールアドレスを使ってログインしましたよね?そのアカウントはルートアカウントと言います。
サーバーでいうroot権限持ったやつみたいなものです。乗っ取られたら何されるかわかりません。
ですので、まずはルートアカウントのセキュリティ強化、あとは普段使うIAMユーザーというのを作成します。
セキュリティの強化、多要素認証(MFA)
多要素認証(MFA, Multi-Factor Authentication)というのは、大雑把にいうと複数のパスワードで認証する仕組みです。
今回説明するような、iPhoneでGoogleAuthenticatorを使った場合は2要素認証(2-Factor Authentication)といいます。
まずiPhoneの場合AppStoreからGoogleAuthenticatorをインストールしてください。(他にもAWSでMFAに使えるアプリならなんでもOKです)
GoogleAuthenticator連携する時めちゃくちゃわからなかったのが、6桁の値を入力するフィールドが2つあるのに、GoogleAuthenticator側には6桁の数字が1つしか表示されていなくて、どうやって2つ表示すんねんって思っていたんですけど、時間が経つと次の6桁の数字が表示されるので、それを入力するといいだけみたいです。
この設定を済ませると、次回以降ルートアカウントでログインするときに、登録したパスワードに加えて、今回追加されたアプリに表示される6桁の数字が必要になります。
くれぐれも、この設定をルートアカウントから解除する前に、iPhoneを初期化したり、アプリを消去したり、追加した設定を削除したりしないでください。現実的にログインできなくなります。iPhoneの場合は意図しない故障に見舞われる可能性もなくはないので、バックアップを取っておいて、いつでも復元できるようにしておいたほうがよいかもしれません。
IAMユーザーの作成
ルートアカウントは乗っ取られたらやばいので、普段使うのは別の個別に権限を設定したユーザーにしましょう、というのがベストプラクティスのようで、そのユーザーをIAMユーザーというみたいです。
こちらもMFAの設定ができるので、面倒かもしれないですが一通り手順が終わったら設定しておきましょう。
グループの作成
ユーザーの権限はグループ単位で管理するのがよいようなので、適切なアクセス権限を選択して、グループを作成したら、先ほど作成したユーザーをグループに追加します。
パスワードポリシーの変更
設定できるパスワードの条件を変更できます。初期設定ではかなり緩めの設定になっているので、厳重にしておきましょう。
おわりに
ここまでで一旦アカウントの設定は完了で、ルートアカウントを保護するためにも、普段は今回作成したIAMユーザーでログインするようにしましょう。
ちなみに、AWSをみているとところどころ「ポリシー」という単語がいろんな意味で使われているところがあって、これはドキュメントを書く上では可能な限り避けたほうがいいなと思ったので、自分は気をつけようと思いました。
重複していたのは、グループのポリシー(アクセス権限)とパスワードのポリシー(条件)です。
これくらいの違いなら感覚で理解できるかもしれませんが、同じ文字を見たら、同じものだと認識してしまいそうです。
なので冗長でも具体的な違う名前をつけないと誤解を招く障害点になるのではないでしょうか。。
ただ言葉の選定や使い方は非常に難しいので、僕が完璧な前提で書いてないです。気をつけていくしかないですね。