4
3

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行くで!(CLIワンライナー編)

Last updated at Posted at 2016-04-04

Macからログイン画面経ずにAWS Management Console行くで!(CLIワンライナー編)

前回の記事ではNode.jsでポリシ切って真面目にログインしてたけども

そこをワンライナーでPolicyガバガバで深夜テンションでやっただけの記事。

前回のん読んでなくても読める感じに書いてます。

ターゲット

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

技術要素とライブラリ

技術要素

  • AWS IAM
  • AWS STS
  • AWS-CLI
  • jq
  • sed
  • xargs
  • sed
  • xargs
  • sed

やったこと

  • IAMでロールを作成
  • ワンライナーを書く

Role

Roleの作成としては

  • AssumeRole52というロールを
  • 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を与えるくらいの認可制御しなきゃなんやで。

コード

下のワンライナーの__ロールのARN__って書いてるとこを、さっき作ったロールのARNに置き換えたら、デフォルト通り900秒使えるManagement Consoleが帰ってくるんやで!

aws sts assume-role --role-arn ロールのARN --role-session-name uji52|jq -r '"%7B%22sessionId%22%3A%22"+.Credentials.AccessKeyId+"%22%2C%22sessionKey%22%3A%22"+.Credentials.SecretAccessKey+"%22%2C%22sessionToken%22%3A%22"+.Credentials.SessionToken+"%22%7D"'|sed -e "s/=/%3D/g"|sed -e "s/+/%2B/g"|sed -e "s/\//%2F/g"|xargs echo "https://signin.aws.amazon.com/federation?Action=getSigninToken&SessionType=json&Session="|sed -e "s/ //g"|xargs curl -s|jq -r ".SigninToken"|xargs echo "https://signin.aws.amazon.com/federation?Action=login&Issuer=oneliner52&Destination=https%3A%2F%2Fap-northeast-1.console.aws.amazon.com%2Fconsole&SigninToken="|sed -e "s/ //g"|xargs open

まとめ

昼間に「あれ?ワンライナーで書けるんじゃね?」って思ってしまったばっかりに、無駄な挑戦を行い、人生初のワンライナー(700文字弱)が完成。

aws stsの引数でお好きなポリシー切ったりセッションの時間伸ばす等して、各々楽しんでくださいませ。

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?