フェイス・ソリューション・テクノロジーズ株式会社IS本部OSユニットのImaiです。
「ハンズオンはじめの一歩: AWS アカウントの作り方 & IAM 基本のキ」を通して学んだことを皆様に共有したいと思います。
今回はルートユーザーとIAMユーザーについてです。
ルートユーザーとは
全てのAWSサービス、AWSリソースへのアクセス権限があります。
ただし、権限が強すぎるので日常的なタスクには向いていないと言われています。
アカウント作成時のメールアドレスとパスワードでログインします。
IAM(identity & access management)ユーザーとは
IAMポリシーという権限を割り当てることができ、認められた操作のみ行うことができます。
そのためIAMユーザーの方が日常的な作業には向いているといわれています。
システム開発を行う場合は利用者ごとにIAMユーザーを作成して、IAMユーザーにログインして作業を進めていくことになります。
アカウントID、IAMユーザー名、パスワードでログインします。
どういったときに便利か?
EC2の場合
例えば、EC2という仮想サーバーをたてるときにインフラ担当者にはEC2を含め他のサービスにもアクセスできる権限がほしいが、開発担当者にはEC2関連の参照情報のみを割り当てたいというときに、それぞれIAMユーザーを作成して、インフラ担当者には管理者用のポリシーを割り当て、開発担当者にはEC2の参照のみのポリシーを割り当てるというように設定すると、インフラ担当者はインスタンスの一覧の表示や、新しいインスタンスの作成ができて、開発担当者はインスタンスの一覧の表示はできるが新しいインスタンスの作成ができないというような管理ができます。
S3の場合
S3というオブジェクトストレージサービスを例にすると、インフラ担当者は他のサービスにもアクセスできるので、バケット一覧の表示や新しいバケットの表示ができるが、開発担当者はEC2関連の参照情報のみしか割り当てられていないので、作成系の作業はもちろん参照系の操作もできません。
実際にIAMユーザーを作成して実験してみようと思いますが、その前にEC2とS3について簡単に解説します。
Amazon EC2(Elastic Compute Cloud)
豊富なインスタンスタイプを用意していて、必要なCPUやメモリの量に応じてタイプを選択できる仮想サーバーサービスです。
必要なときに数クリックで必要な分を用意できます。
Amazon S3(Simple Storage Service)
高い耐久性を持つオブジェクトストレージサービスです。
容量無制限で安価なストレージで、静的Webホスティング機能があります。
IAMユーザーの作成
それでは実際にIAMユーザー作成をして実験をしてみようと思います。
まずはルートユーザーでサインインしてマネージメントコンソール画面を開きます。
左上の検索窓のところにIAMと入力します。
IAMをクリックします。
左のユーザーをクリックします。
右上のユーザーを追加をクリックします。
ユーザー名・パスワードの設定
まず最初に管理者権限を持ったIAMユーザーを作成します。
今回私は分かりやすいように「Admin」というユーザー名にしました。
アクセスの種類はマネジメントコンソールへアクセスする形となるので、下だけにチェックを入れます。
パスワードは自身で作成するのでカスタムパスワードにチェックを入れて、パスワードを設定します。
パスワードのリセットは自分自身で使うので今回はチェックを外します。
権限の付与
次に追加する権限を設定します。
既存のポリシーを直接アタッチというところで標準でAWSに用意されている権限を追加します。
今回は管理者権限を持ったIAMユーザーの作成なので「AdministratorAccess」にチェックを入れます。
タグは今回はつけないのでそのまま確認に進んでユーザーの作成をクリックします。
成功と表示されてユーザーが作成されるので右下の閉じるをクリックします。
これで管理者権限を持ったIAMユーザーが作成できました。
S3バケットの作成
先ほど作成したIAMユーザーでサインインして他のIAMユーザーを作成したり、S3のバケットを作成します。
サインアウトする前に、ダッシュボードというところを押して、アカウントのエイリアス(12桁の番号)をカスタマイズしてサインインURLをコピーします。
(次にサインインするときに便利なので)
サインアウトして先ほどコピーしたサインインURLをアドレスバーに入力します。
先ほど設定したエイリアスが入力された状態でサインイン画面が開くので、先ほど作成したユーザー名とパスワードを入力してサインインします。
管理者権限を持っているIAMユーザーなので色々なリソースを作成することができます。
今回はS3のバケットを作成するので、検索窓にS3と入力してして、S3をクリックします。
バケットを作成をクリックします。
バケット名は重複しない名前にしないといけないので、今回は「myawsbucket-20221027」というように日付を入れて作成します。
管理者権限を持ったIAMユーザーでサインインしているので、このようにバケットの作成やバケットの一覧の表示ができます。
権限の異なる2つのIAMユーザーの作成
次にIAMの画面を開いて、さらに2つIAMユーザーを作成します。
参照権限のみをもったユーザーの作成
1つ目がS3のバケットのreadonlyの権限を持ったIAMユーザーを作ります。
readonlyなので一覧の表示はできるが、新しくバケットを作成することはできないというような動きになります。
先ほどと同じようにIAMユーザーの作成画面を開いて、今度は「s3read-only」と名前を付けます。
検索窓にS3と検索して「AmazonS3ReadOnlyAccess」にチェックを入れてユーザーを作成します。
何も権限をもっていないユーザーの作成
次に何も権限を持っていないIAMユーザーを作成します。
何も権限を持っていないので、当然S3のバケットの作成はできない上に一覧の表示もできないというような動きになります。
何も権限を持っていないので「nothing」と名前を付けます。
ここで何も権限をつけずにユーザーを作成します。
権限の違いを確認
これでS3の参照権限のみを持ったIAMユーザーと何も権限を持っていないIAMユーザーができたので、まずはS3の参照権限を持ったIAMユーザーでサインインします。
サインインできたら、S3の画面を開きます。
参照権限は持っているのでバケットの一覧を表示することはできます。
次にバケットの作成をしてみます。
もちろん参照権限しか持っていないので作成は行えません。
次に何も権限を持っていないユーザーでサインインします。
S3の画面を開くと、何も権限を持っていないので参照すら行えません。
バケットの作成をクリックしても当然何も権限を持っていないので反応しません。
以上で簡単な実験は終了です。
最後に
いかがでしたでしょうか。
期待通り、権限を持っているユーザーと権限を持っていないユーザーで動きが違ってきたと思います。
次回はIAMポリシー、IAMグループ、IAMロールについて学んでいきたいと思います。
コメント