Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした