🔐

saml2awsが便利だった件

2024/02/09に公開

はい、どーも!DIGITALJETの吉田です。

AWSへのログインを行う際にAWSのIAMユーザを利用するのではなく、別のIdP(例えばAzureADやGoogle Workspaceなど)を使用しているケースがあるかと思います。
この場合、各ユーザにはIAMユーザがないので、アクセスキーなどを設定してawscliから利用する、といったことができません。
こういうシチュエーションでawscliを実行する場合に、saml2awsが便利だったので、これをご紹介します。

saml2awsの導入

saml2awsは先に説明したようなケースで、AWSのSTSを利用して一時クレデンシャルを簡単に発行するツールです。

macOSであれば、saml2awsはHomeBrew経由で簡単にインストールできます。

brew install saml2aws
saml2aws --version

次に設定を行います。今回はGoogle Workspaceを使っているケースを例として記述します。

saml2aws configure
  • Please choose a provider
    • 利用しているIdP
    • 今回はGoogleAppsを選択
  • AWS Profile
    • 適切なプロファイル名を自由に設定
    • awscliからクレデンシャルを利用する場合に --profile に指定する名前です
  • URL
    • SSOの入口になるページのURLです
    • Google Workspaceの場合 https://accounts.google.com/o/saml2/initsso?idpid=xxxxxxx&spid=00000000000&forceauthn=false のようなURLになるはずです
  • Username
    • IdPのユーザ名(メールアドレス)です
  • Password
    • IdPのパスワードです

saml2awsで一時クレデンシャルを発行して利用する

それでは実際に一時クレデンシャルを発行してみます。以下のコマンドでログインします。

saml2aws login -a [プロファイル名]

自分の場合はGoogle WorkspaceでMFA設定をしていたので、手持ちのスマホのGoogleアプリに通知がされました。

mfa

ここで Yes を選択し、saml2aws側でenterを押すと、認証情報が取得できます。

あとはそのプロファイル名を指定して、awscliが実行できることを確認しておきましょう。

aws s3 ls --profile [プロファイル名]

当然ですが、この認証でCDKなども実行できます。

cdk deploy --profile [プロファイル名]
GitHubで編集を提案

Discussion