AWSのIAMでユーザーとグループを作成しポリシーを適用する方法

投稿者: | 2020-07-08

今回は、AWSのIAM(Identity and Access Management )でユーザーとグループを作成し、グループにポリシーを適用して動作確認を行うところまでを説明します。

IAMとは

AWS Identity and Access Management (IAM) はAWSでリソースのアクセスを安全に行う仕組みを提供するサービスです。

AWSには膨大なサービスがあり、一人のユーザーが全てのサービスを自由に使うことができるのはセキュリティ上良くありません。例えば、全てのサービスを自由に使うことができるユーザー情報が流出し不正にログインされてしまった場合、他人のAWSを使用し攻撃等を行ったり、作成した全てのサービスを破壊される可能性があります。また、不必要に権限を付与することで内部のユーザーが不必要な操作を行うリスクにも繋がります。

IAMでは、ユーザーやグループに対してリソースのアクセス権限を管理したり、一時的に特定の権限を使用できるようにすることができます。そのため、IAMで適切なリソースの権限を設定することにより、上記のようなリスクを最小限に抑えることができます。

AWSにはrootユーザーとIAMユーザーの2種類のユーザーがいます。

■rootユーザー

AWSアカウントを登録した際に一番初めに作成されるユーザーです。AWSの全てのリソースに対して権限を持っているユーザーです。

■IAMユーザー

AWSのIAMで作成したユーザーです。デフォルトではAWSの全てのリソースが拒否となっています。ユーザーやグループに対してポリシーを適用することで、必要なリソースにのみアクセスさせることができます。

IAMでは日常業務でrootユーザーは使用せず、役割に応じたIAMユーザーを作成して開発、運用等を行うことがベストプラクティスとされています。

前提条件

AWSのIAMの設定にはAWSアカウントが必要となります。アカウント作成が済んでいない方は以下のリンクよりAWSアカウントを作成してください。

・AWS アカウント作成の流れ

https://aws.amazon.com/jp/register-flow/

今回作成する構成について

今回作成するIAMユーザー、グループ、ポリシーは以下のとおりです。

ユーザー名 グループ名 ポリシー名 ポリシー概要
ユーザー1 t-suzuki Administrator EC2-AdminPolicy EC2の全ての操作ができる
ユーザー2 k-tanaka Operator EC2-StartStopPolicy EC2の起動と停止ができる

IAMユーザーの作成

初めにIAMユーザーを作成します。IAMダッシュボードのナビゲーションから「ユーザー」を選択後、「ユーザーを追加」をクリックします。

「ユーザー詳細の設定」でユーザー名を入力します。「別のユーザーの追加」をクリックすると複数のIAMユーザーを同時に作成することができます。今回はt-suzukiとk-tanakaを同時に作成します。

「アクセスの種類」については、今回はコンソールで使用するユーザーのため「AWSマネジメントコンソールへのアクセス」にチェックを入れます。「コンソールのパスワード」は「カスタムパスワード」を選択し、任意のパスワードを設定します。「パスワードのリセットが必要」のチェックはそのままとし「次のステップ:アクセス権限」をクリックします。

※参考
カスタムパスワードを選択し複数のユーザーを作成した場合、作成したユーザーの初回パスワードは同一となります。上記の例では、t-suzukiとk-tanakaの初回パスワードはカスタムパスワードで設定したパスワードとなります。

「アクセス許可の設定」画面はまだグループを作成していないため何も設定せず「次のステップ:タグ」をクリックします。

今回はタグを使用しないため「タグの追加(オプション)」画面では何も追加せず「次のステップ:確認」をクリックします。

「確認」画面で入力内容に問題がなければ「ユーザーの作成」をクリックします。

ユーザー追加が成功したら、IAMユーザーのログイン用URLをメモしておきます。

ユーザー名の横にある「Eメールの送信」のリンクをクリックするとデフォルトで設定しているメーラーが起動します。特定のユーザーにログイン手順を送りたい場合はリンクからメールを送信してください。

IAMグループの作成

次にIAMグループを作成します。IAMダッシュボードのナビゲーションから「グループ」を選択後、「新しいグループの作成」をクリックします。

「グループ名の設定」でグループ名を入力し「次のステップ」をクリックします。

「ポリシーのアタッチ」画面は、まだポリシーを作成していないため何も設定せず「次のステップ」をクリックします。

「確認」画面で入力内容に問題がなければ「グループの作成」をクリックします。

Administratorグループ作成後、同じ手順でOperatorグループも作成します。

IAMグループにユーザーの追加、ポリシーのアタッチ

IAMグループ作成後、グループにユーザーを追加します。構成どおりAdministratorグループにt-suzuki、Operatorグループにk-tanakaを追加します。

IAMダッシュボードのナビゲーションから「グループ」を選択後、Administratorグループの名前部分をクリックし「グループにユーザーを追加」をクリックします。

「グループに追加するユーザーを選択」画面で追加するユーザーにチェックを入れ「ユーザーの追加」をクリックします。

Administratorグループにユーザーを追加後、同じ手順でOperatorグループもユーザーを追加します。

グループにユーザーを追加後、各グループに適用するポリシーを作成しアタッチします。IAMダッシュボードのナビゲーションから「ポリシー」を選択後、「ポリシーの作成」をクリックします。

「ポリシーの作成」画面で「JSON」を選択し、以下の内容でAdministratorグループとOperatorグループのポリシーを作成します。JSONファイルにポリシー内容を記述後「ポリシーの確認」をクリックします。

■Administratorグループ(EC2-AdminPolicy)
-----------------------------------------------------------
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:*",
                "iam:List*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
-----------------------------------------------------------

■Operatorグループ(EC2-StartStopPolicy)
-----------------------------------------------------------
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:DescribeInstance*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
-----------------------------------------------------------

「ポリシーの確認」画面でポリシー名を入力し概要のポリシーに問題がなければ「ポリシーの作成」をクリックします。

ポリシーの作成後、グループにポリシーをアタッチします。IAMダッシュボードから「グループ」を選択後、ポリシーをアタッチするグループ名をクリックし「アクセス許可」タブの「ポリシーのアタッチ」をクリックします。

「ポリシーのアタッチ」画面で適用するポリシーにチェックを入れ「ポリシーのアタッチ」をクリックします。

Administratorグループにポリシーを適用後、同じ手順でOperatorグループもポリシーを適用します。

動作確認

設定後、現在のユーザーをサインアウトしIAMユーザーのt-suzukiでサインインします。初回サインイン時にパスワードの変更を求められるため新しいパスワードを設定します。

t-suzukiでサインイン後、サービスからEC2を選択しインスタンスの作成、起動、停止、終了等が行えることを確認します。

※注意
一部リージョンではEC2インスタンスの作成時に「サブネットが見つかりません」と表示される場合があります。上記表示が出た場合はVPCとサブネットを作成後に再度インスタンスの作成を行ってください。

t-suzukiの確認完了後、k-tanakaでサインインを行い同様にEC2の動作確認を行います。インスタンスの起動、停止、再起動以外の操作ができないことを確認できれば成功です。