LoginSignup
3
1

More than 3 years have passed since last update.

AWSで特定のEC2インスタンスの起動停止だけ出来るIAMアカウントを作成する

Last updated at Posted at 2020-03-27
  • テスト用にEC2を建てたけど24時間稼働させる必要は無く必要になったときに誰でも起動できるようにしたい。
  • でもチーム内に協力会社のひとも居るような状況でルートアカウントを共有はしたくない。
  • 個別にIAMアカウントを作る運用が望ましいのはわかっては居るけどそんなコストはかけれないしスキルも無い。

という状況で最低限EC2のインスタンスの起動停止だけ出来るアカウントを作成する方法をご紹介します。

※CloudFormationで一発作成する方法を 特定のEC2インスタンスを起動停止するだけのアカウントをもっと簡単に作成する で紹介しています。

概要

インスタンスの一覧の表示、特定のインスタンスだけ起動停止が出来る権限をもつアカウントを作成します。
インスタンスの特定はkeyがBootable、値がyesのタグが設定されているかで行います。

方法

IAMの設定

ポリシーの作成

IAMの管理画面を開き、カスタマー管理ポリシーの作成を選択する。

image.png

JSON を選び以下の内容を貼り付ける。

image.png
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Bootable": "yes"
                }
            }
        },
        { 
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceStatus"
            ],
            "Resource": "*"
        }
    ]
}

適当な名前を付けて作成する。

image.png
image.png

ユーザーを追加

IAM のユーザーから ユーザーを追加を選択する。

image.png

アクセスの種類は AWS マネジメントコンソールへのアクセス にチェックする。
他はお好みで。

image.png

既存のポリシーを直接アタッチ を選択し先ほど作成したポリシーを選択する。

image.png

タグの設定は特にせず次へすすむ。
確認画面が出るので「ユーザーの作成」

ユーザーの作成が完了します。
パスワードを自動生成にした場合、この画面でメモっておかないと他の所で確認することは出来ません。
間違って閉じてしまった場合ユーザーを削除し、作成をやり直す必要があります。

image.png

EC2インスタンスの設定

EC2のインスタンス一覧から該当のインスタンスを右クリックして インスタンスの設定>タグの追加/編集 を選択する。

image.png

タグの作成をクリックし、、キーに Bootable、値 yes を設定する。

image.png

アカウントID確認

ログイン時に必要になるのでアカウントIDを確認しておきます。

右上の名前が表示されている所のメニューからマイアカウントを開くとアカウント設定が表示され、アカウントIDを確認できます。

image.png

動作確認

ログアウトされた状態(もしくはプライベートモード)でログイン画面を開きIAMを選択し、アカウントIDを入力する。

image.png

先ほど作成したアカウントのユーザ名とパスワードを入力しサインインする。

image.png

ec2のコンソールに入るとインスタンスの状態はタグの設定にかかわらず全て確認できます。

image.png

※テスト用にBootableタグの値を「yesを設定してあるもの」「noを設定してあるもの」「tagを設定していないもの」の3種類を用意しています。

tagにyesを設定したインスタンスを起動してみると

image.png

正常に起動できます。

image.png

yes以外の値が設定されていたりタグが無いインスタンスも権限が無いと言われ起動できません。

image.png

起動停止以外(終了とかインスタンスのタイプの変更等)も出来なくなっています。

image.png
image.png

もちろんインスタンスの作成とかは出来ません。

image.png

EC2以外も何も出来ません。(S3のバケット一覧が見れない)

image.png
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1