前回は、AWSのアカウントを作成してAWSが利用できる状態になりました。
メールアドレスでログインするアカウントはルートユーザーと呼ばれており、そのAWSアカウントの全権限を持つ管理者アカウントです。
Windowsで言えば、Administrator。Unix/Linuxで言えばrootです。
このユーザで日常の作業をすることはないのと同様、AWSでもこのルートユーザは通常のサービス組み立て作業時には使わないほうがよいでしょう。
ルートユーザを使うのはAWSアカウント自体の作業(登録情報の変更、請求情報を確認等)する時ぐらいでしょうか。
一人で使う分にはそれでもよいかもしれませんが、AWSを複数人で役割分担して利用する場合は、全員でルートユーザを使い回すのではなく、個人アカウントを作成して適切なアクセス権限を設定して運用すべきです。
そんなわけで、今回はその設定をやってみます。
AWSを利用できるユーザと権限の設定方法
IAM設定画面を表示
IAMの設定画面は、AWSマネジメントコンソールの検索入力欄に「IAM」と入力するとサービスにIAMが表示されますので、クリックします。
IAMログイン用画面のエイリアスの設定
IAMユーザでログイン時は、専用のログイン画面のURLを作成することができます。
青色枠のURLが専用のログインURLになります。サブドメインに12桁のアカウントIDがついていますので、これでどのAWSアカウントなのか指定します。
ただ、数字12桁を覚えるのはしんどい場合は、エイリアスを設定することもできます。そのままでよい方はこの手順はスキップしてください。エイリアスを設定する場合は、カスタマイズをクリックします。
①の欄に希望する名前を入力すると、②にURLのイメージが表示されます。問題なければ③のエイリアスを作成ボタンをクリックします。
このように作成に成功すると、上の②のURLでIAMユーザログイン用画面が表示されるようになります。このエイリアスはURIを見れば分かる通り、AWS全体でユニークにならないければならないので、希望の名前が付けられないこともあります。
battanは既に誰かに使われてしまっていました(>o<;)
いるんですねー。というわけでbattan1にしました
管理者権限の作成と管理者の作成
IAMは主に次の4つの要素が分かれば一旦大丈夫です。
- グループ:ユーザを取りまとめた塊です。
- ユーザー:AWSのログインに使うユーザアカウントです。
- ロール:今はまだ使わないので一旦無視します。
- ポリシー:AWSの各機能に対する細かい権限設定です。
AWSを操作権限はポリシーとして用意されていますので、グループを作ってユーザーまたはユーザをまとめたグループに適切なポリシーを設定することでアクセス権限制御が行えます。
グループの作成
グループの設定画面の新しいグループの作成ボタンをクリックします。
グループ名を入力して、次のステップボタンをクリックします。
今回は先に紹介したルートユーザとほぼ同格のAWS管理者グループを作ります。Windowsで例えるならばAdministrators権限と同じです。わかりやすくするため、同じ名前で作ります(逆に分かりづらい!?)。
名前をAdministratorにしただけでは管理者権限にはなりません。ポリシー「AdministratorAccess」をセットすることでAWSのほぼ全操作が行えるクループができあがります。
作成するグループとポリシー(権限)を確認したら、グループの作成ボタンをクリックします。
グループ一覧に作成グループが表示されれば作成成功です。
ユーザの作成
ユーザーの設定画面のユーザーの追加ボタンをクリックします。
ユーザーの詳細情報を入力します。
- AWSマネジメンコンソールにログインするユーザ名を入力します。
- AWSマネジメンコンソール用のユーザなら画面の通りチェックします。
- ログイン時の初期パスワードの設定方法を選択できます。セキュリティを意識するなら自動生成で作成して、対象ユーザが初回ログイン時に変更してもらう手続きがよいでしょう。
- セキュリティの観点からパスワードはリセットするようにした方がよいでしょう。
ユーザをグループに追加を選択し、さきぼと作成したAdministratorsグループを選択します。
ユーザにタグを付けることも可能です。今回はスキップします。
最後に作成するユーザの内容を確認して、問題なければ右下のユーザの作成ボタンをクリックします。
battanユーザが作成できました。
このアカウントを使うユーザにアカウント名とパスワードを連絡しましょう。①の表示をクリックすると自動生成したパスワードが表示されますので、それをチャットツール等で伝えるもよし、②のEメールで連絡するもよしです。
IAMユーザがログインする時に使うURLは③ですので、これも連絡合わせて連絡しましょう。
IAMユーザでログイン
AWSマネジメントコンソールを開く
さきほど設定したエイリアスのURIを表示すると、アカウント名が自動でセットされた状態でログイン画面が表示されますので、作成したIAMユーザのユーザ名とパスワードを入力してログインします。
初回ログイン時にパスホード変更ポリシーを適用していると、このようにパスワード変更が求められます。
パスワードを設定すると、AWSマネジメントコンソール到着です。
フルアクセス権限を付けているので、ほぼすべてのAWSコンポーネントが利用できます。
リージョンを変更する
まずはリージョンを確認して、どのリージョンを使うか決めたら変更しておきましょう。画面右上で確認・変更ができます。
私は日本に住んでいるので、東京にしておきました。
制限ユーザを作成
さきほど作成した管理者アカウントがほぼなんでもできるのに対して、特定の操作だけを許容する制限ユーザを登録することもできます。
AWSのどのサービスをどのように使えるかという観点でユーザやユーザが所属するグループに対して権限を割り当てることができます。この権限の名前をポリシーと呼んでおり、これをユーザやグループにセットすることで細かい制御が可能です。
今回はS3の中身を読み取りだけできるIAMユーザを作ってみます。
S3に対して読み取りだけできるユーザの作成
IAMのメニューからユーザ登録画面を表示します。
せっかくですので、さきほどとは設定を少し変えて登録してみましょう。
- ユーザ名は意味そのまんまの「s3readonly_user」にしました。
- AWSマネジメンコンソール用のユーザなら画面の通りチェックします(ここはさっきと同じ)。
- 今回はカスタムパスワードを選択してみます。好きなパスワードを入力できます。
- 初回ログイン時にパスワードのリセットをオフにすると、管理者が指定したパスワードをそのまま使い続けることもできます。セキュリティ的にはあまり良くないのであくまで身内での利用の範囲に留めましょう。
前回はユーザをグループに追加しましたが、ユーザに直接ポリシーを設定することもできます。今回はS3を読み取り専用というポリシー「AmazonS3ReadOnlyAccess」ポリシーをアタッチします。
それでは、今作った制限ユーザでログインしてみましょう。
セットしたポリシーの通り、S3にアクセスする権限はありますね。バケット一覧画面が表示されました。
S3バケットを作成しようとしたところ、アクセス権限無しのエラーが発生してバケットの作成が拒否されました。これはS3の読み取り専用ポリシーを適用しているためです。
他のサービスは使えるのでしょうか? さきほどのIAMユーザ管理画面を表示しようとすると、このようにエラーが発生してアクセスできませんでした。
まとめ
とりあえず、この辺のイメージを掴めれば大丈夫です。
- AWSのユーザーは大きく次の2つ
- ルートユーザ
- AWSアカウントユーザ
- メールアドレスでログイン
- AWSのすべてのサービスが利用可能
- アカウントの支払い情報登録変更や請求確認ができる
- IAMユーザ:
- アカウント専用ログイン画面からユーザ名でログイン
- 許可されたAWSのサービスが利用可能(アタッチされたポリシー次第)
- アカウントの支払い情報登録変更や請求確認はできない
- ルートユーザ
- グループはIAMユーザをまとめるもの
- ポリシーはAWSのサービスをどこまで利用させるか定義したもの
- ポリシーはグループやユーザに対して設定(アタッチ)できる
- ポリシーは組み込みのものをそのまま使うもよし、拡張して独自のポリシー作るもよし
コメント