2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Macからログイン画面経ずにAWS Management Console行くで!

Last updated at Posted at 2016-04-02

Macからログイン画面経ずにスムーズにAWS Management Console行くで!

ビビリな私は、当然MFAを有効にしてパスワードも定期的に変更しているので

ログインが面倒くさくて最近ほとんどログインしていなかった。

login.png

やりたいことはあるのにログインが面倒だから入らないってなんやねん。

ってことでコマンド叩いたらログイン済みの画面開くようにするで。

ターゲット

  • AWS使う人
  • ログイン画面でログインするのが面倒くさい人
  • Macユーザ(じゃなくても良いけど、openコマンド使ってるので窓の場合はそこの書き換えが必要)
  • Node.jsの環境ある人
  • cliをちょっとは触ったことがある。

技術要素とライブラリ

技術要素

  • AWS IAM
  • AWS STS
  • Node.js

Node.jsのライブラリ

  • aws-sdk
  • co
  • request

やったこと

  • IAMでユーザとロールを作成(ユーザは既存のユーザで良い)
  • Node.jsのスクリプトをゴリゴリ書く
  • 走らせる

Role

Roleの作成としては

  • AssumeRole52というロールを
  • AdministratorAccessのポリシを当てて
  • ユーザにそのロールを使う権限を与える

AdminiStratorAccessに関しては下図の通り

Role1.png

信頼関係タブから「信頼関係の編集」を選んで下の感じでユーザを書き足したらOK

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com",
        "AWS": "arn:aws:iam::数字:user/ユーザのID"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

追加したら画面にユーザの情報が追加される

Role2.png

ただ、AdministratorAccessなんぞ許可することはオススメせず、触りたいサービスの許可したいActionだけに絞ってRoleを与えるくらいの認可制御しなきゃなんやで。

コード

Githubに上げているのでそちらを参照。

流れとしては

  • 付与したいPolicy等の設定を読み込んで
  • STSに対して自分のユーザでログインセッションを要求
  • 取得したセッションのTokenを使ってログイン画面へアクセスさせる。

まとめ

ログインを簡単にする上に、権限絞ったアクセスしかできないトークンを発行するから安心!

人に一時的にログインさせるとかが起こってもPolicy切ってから渡せばOKなので素敵!

調子乗ってAppleScript書いて呼び出したけど、自分の環境以外で使えるようにするの面倒だったので今後ビックリするくらい気が向いたら公開。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?