AWS(Amazon Web Service)アカウントを複数人で使う際に気を付けておくべきこととして、ルートユーザーは使わないという定石があります。
ルートユーザーとは、AWSアカウント作成時に使ったメールアドレスでログインできるユーザーのことです。
ルートユーザーはあらゆるアクセス権限を持っているため、ルートユーザーでログインするとAWSのサービスを何でも利用できてしまいます。
これは一つのAWSアカウントを複数人で利用したい場合に、ルートユーザーを複数人で使い回すとちょっと危険ですよね。
なので、AWSではIAM(Identity and Access Management)という仕組みを使ってユーザーを作り、アクセス制御を行う(管理する)ことが推奨されています。
今回は、AWSでIAMを使ってユーザーを作る流れを私の備忘録も兼ねて書いてみたいと思います。
目次
AWSを複数人で利用する場合はIAMでユーザを作ってアクセス制御しよう
IAMとはIdentity and Access Managementの略で、AWS のサービスやリソースへのアクセスを安全に管理するためのサービス(無料)です。
IAMを使えば管理者がAWSのユーザーとグループを作成することができ、それぞれにAWSのサービスやリソースへのアクセス権限を付与できます。
つまり、IAMで作られたユーザーは、管理者にアクセス権限を与えられた範囲内でしか作業できないので、
管理者が意図しないサービスやリソースを勝手にいじられる心配が無くなるというワケですね。
例えば、AさんにLambdaのみのアクセス権限を与えたら、AさんはLambdaしか使えないので、EC2を使おうとしても権限エラーになります。勝手なことはできなくなるんですね。
複数人でAWSを利用する場合、IAMは非常に便利なので、ぜひ設定しておきましょう!
※これより以下の画像はクリック(タップ)で拡大されますので、小さくて見にくい場合は拡大してご覧ください。
IAMでユーザーを追加(作成)する方法
まずはルートユーザーでログインしてコンソールに入ります。
![AWS1](https://softengineerblog.com/wp-content/uploads/2020/03/AWS1-1024x459.jpg)
ルートユーザーはアカウントを作成したときのメールアドレスでログインできるユーザーです。
IAMにアクセスしましょう。検索でiamと入力すれば見つかるはずです。
![AWS2](https://softengineerblog.com/wp-content/uploads/2020/03/AWS2-1024x458.jpg)
IAMのダッシュボードに移動したら、左側のユーザーをクリックします。
![AWS3](https://softengineerblog.com/wp-content/uploads/2020/03/AWS3-1024x427.jpg)
次に、「ユーザーを追加」をクリックしてユーザーを追加します。
複数人分のユーザーを追加したい場合は、一人分ずつ追加していくことになります。
![AWS4](https://softengineerblog.com/wp-content/uploads/2020/03/AWS4-1024x420.jpg)
ではユーザーの情報を入れていきます。
1. ユーザー詳細の設定
![AWS5](https://softengineerblog.com/wp-content/uploads/2020/03/AWS5-1024x696.jpg)
ここで入力が必要なのは、以下の2つです。
- ユーザー名
- アクセスの種類
ユーザー名
ユーザー名は何でも構いませんが、このユーザー名はログインする際に必要になりますのでその人の本名とかが覚えやすくていいと思います。
ここでは「yamada_taro」としました。
アクセスの種類
アクセスの種類は、とりあえずは「AWSマネジメントコンソールへのアクセス」で良いです。
「プログラムによるアクセス」は、後でLambdaとかで何かプログラミングをする場合に使うので、後からでも設定できます。
「コンソールのパスワード」は初回ログインに使うパスワードです。自動生成のままでOKでしょう。
「パスワードのリセットが必要」もデフォルトのまま(チェック有り)で大丈夫です。ログイン時に好きなパスワードに変更することができます。
設定したら「次のステップへ」をクリックします。
2. アクセス許可の設定
ユーザーのアクセス許可の設定を行います。
AWSのサービスやリソースへのアクセス権限をここで管理することができます。
![AWS6](https://softengineerblog.com/wp-content/uploads/2020/03/AWS6-1024x717.jpg)
管理方法は3パターンありますが、まだグループや他のユーザーを作っていないので、一番右の「既存のポリシーを直接アタッチ」を選択します。
すると、アクセス権限がズラーっと表示されるので、付与したいものを選択していきます。
ここでは、例えばLambdaのアクセス権限だけ与えたい場合は、”Lambda”と検索します。
![AWS7](https://softengineerblog.com/wp-content/uploads/2020/03/AWS7-1024x739.jpg)
するとLambda関連のアクセス権限に絞り込まれるので、特にこだわりが無ければ「AWSLambdaFullAccess」を選択しましょう。
フルアクセスを与えるのが嫌な場合は、もっと細かい単位でアクセス権限を選択できます。
ただ、細かすぎると何もできなくなる可能性が高いですので、ほとんどの場合はフルアクセスにしておいて問題ないと思います。
これで、この”yamada_taro”ユーザーはLambdaのみ自由にアクセスできるようになりました。
ただし、Lambda以外のアクセス権限を与えていないので、他のサービスやリソースはほとんど触ることができません。
3. タグの追加(オプション)
タグの追加は任意です。
![AWS8](https://softengineerblog.com/wp-content/uploads/2020/03/AWS8-1024x800.jpg)
タグを追加すればユーザーの管理がより分かりやすくなりますが、無視してOKです。
4. 確認
最後にユーザー情報の確認です。
![AWS9](https://softengineerblog.com/wp-content/uploads/2020/03/AWS9-1024x762.jpg)
yamada_taroに与えた権限は「AWSLambdaFullAccess」だけになってますね。
(もう一つ表示されていますが、これはパスワードリセットの権限です。)
これでOKなら「ユーザーの作成」をクリックしましょう。
![AWS18](https://softengineerblog.com/wp-content/uploads/2020/03/AWS18-1024x768.jpg)
ユーザーが作成されましたね。
これで、yamada_taroというユーザーでログインできるようになりますので、このユーザー情報を該当者に教えてあげましょう。
csvファイルをダウンロードして送っても良いですし、メールで送信することもできます。
IAMユーザーでログインする方法
では実際にIAMユーザーでログインしてみましょう。
※この作業はあなた(管理者)ではなく、IAMユーザーを実際に利用する人が実施します。
IAMユーザーでログインするために必要な情報は3つです。
- アカウントID(12桁の数字)
- ユーザー名
- パスワード
※アカウントIDは、csvファイルやメールに書かれています。
アカウントIDを使ってログイン
まずログイン画面に行き、ルートユーザーではなくIAMユーザーを選択します。
![AWS12](https://softengineerblog.com/wp-content/uploads/2020/03/AWS12-1024x682.jpg)
そして、アカウントID(12桁の数字)、ユーザー名、パスワードを入力します。
![AWS13](https://softengineerblog.com/wp-content/uploads/2020/03/AWS13-1024x593.jpg)
するとパスワードリセット画面に移行しますので、新しいパスワードを設定します。
![AWS15](https://softengineerblog.com/wp-content/uploads/2020/03/AWS15-1024x537.jpg)
これでOKです。無事yamada_taroとしてAWSにログインできていると思います。
![AWS16](https://softengineerblog.com/wp-content/uploads/2020/03/AWS16-1024x227.jpg)
以上でIAMユーザーの作成とログインは完了です。
これでyamada-taroとしてログインすれば、Lambdaのみが使える状態になります。
念のため、Lambda以外の権限が無いことを確認する
念のため、EC2など他のサービスを利用できないことを確認しましょう。
EC2に移動して仮想環境を作ろうとすると、エラーが発生していることが分かります。
![AWS17](https://softengineerblog.com/wp-content/uploads/2020/03/AWS17-1024x433.jpg)
大丈夫そうですね!
もしIAMユーザーを複数作るのであれば、グループでまとめて管理することもできますので、開発プロジェクトごとにユーザーをグループ化しておくと便利です。
まとめ
今回は、AWSでIAMユーザーを作成する方法を紹介してみました。
ルートユーザーを使い続けるのはセキュリティ的に危険なので、IAMユーザーでアクセス権限を管理して安全にAWSを利用しましょう。
また、複数人のユーザーがいる場合はグループでまとめておくと管理がしやすいですよ!