AWS CLIからIAM Identity CenterでSSOする
今回はPCにAWS CLIをインストールしIAM Identity CenterのSSO認証情報を登録しAWSアカウントに接続する方法を整理していきます。
前提条件
私のローカル環境がWindowsなのでAWS CLIのインストール手順はWindowsのものとなります。
MAC等他OSの方は参考URL先で各OSのインストール方法をご確認ください。
①VScodeがインストール済み
②AWS CLIがインストール済み
③AWSアカウントを取得済み
④認証アプリをセットアップ済み(Microsoft Authenticator等)
VScodeが無くても各OSのターミナルにCLIをインストールいただく形で大丈夫です。
AWS Organizationsの有効化
AWS organizationsを有効化していない場合はOrganizationsのページから[組織を作成する]を実行してください。
今回はデフォルトで作成されている管理アカウントを使用するのでアカウントの新規作成はしなくても大丈夫です。
IAM Identity Centerの設定
次にIAM Identity Centerを設定していきます。
IAM Identity Centerも初めて使う場合は有効化から実施しますが、Idcはリージョン単位で作成されますのでことき有効化するリージョンを確認してください。
有効化後に左ペインに『Multi-account permissions』があるのを確認してください。
Organizationsが設定されていないと表示されません。
確認したらまずはidcユーザーを作成します。
左ペインのUsersをクリックし[ユーザーを追加]をクリックします。
ユーザーの詳細情報を入力し[next]をクリック
ユーザー認証を行うので有効なメールアドレスを入力してください。
任意の項目は何も入力しなくても大丈夫です。
次の画面で本ユーザーをグループに追加できますが今回はスルーして[next]
最後の画面で入力情報を確認したら[ユーザーを追加]をクリック
登録したメールアドレスに認証メールが届くのでAccept invitationボタンをクリック
すると初期パスワード設定画面が立ち上がるので設定後、ログインページに遷移するので登録したユーザー名と設定したパスワードでログインしてください。
AWSのアクセスポータルに接続しますが、この時点ではログインできるアカウントがないのでマネコンの画面に戻ります。
Multi-account permissionsを展開しAWS accountsをクリック
するとOrganizationsの管理アカウント群が表示されるのでIdcユーザーを作成したいアカウントにチェックを入れて[ユーザーまたはグループを割り当て]をクリック
ユーザーとグループの選択画面に進みますのでユーザーを追加する場合はユーザータブで対象のユーザーにチェックを入れ[次へ]
許可セットを選択する画面に進むので一旦[許可セットを作成]から許可セット設定画面に移動します。
許可セットのタイプ:事前定義された許可セット
事前定義された許可セットのポリシー:AdministratorAccess
[次へ]
許可セットの詳細を任意で設定したら
[次へ]→[作成]
許可セットを選択に戻ったら[許可セットを作成]ボタン隣の更新ボタンを押して作成した許可セットが出てきたらチェックを入れて[次へ]
最後に確認画面で内容を確認したら[送信]
これで対象アカウントにIdCユーザーがアクセス可能になりました。
アクセスポータルを更新か再度アクセスするとアカウント選択画面が追加されています。
対象アカウントの▶を開くと先ほど設定したアクセス権限名が表示されますのでクリックするとマネジメントコンソールに接続できます。
以上でIdCユーザーの設定は完了です。
AWS CLIに認証情報を登録
ここから作成してたIdCユーザーを認証情報としてCLIに登録していきます。
まずは必要な情報を確認します。
CLIへの認証情報としてIdCのアクセスポータルURLが必要になります。
アクセスポータルの[アクセスキー]で表示されるSSOの開始URLか、IdCの[設定]からアイデンティティソースタブのAWS access portal URLから確認できます。
URLを控えたらCLIで設定をしていきます。
# 設定開始2025年5月5日時点の設定手順
aws configure sso --profile <プロファイル名>
# セッション名の設定(セッション名を識別するための名前になります)
SSO session name (Recommended):<任意の名前>
# セッションURLの登録
SSO start URL [None]:<先ほど確認したURLを入力>
# IdCを設定したリージョンの設定(IdCを東京リージョンで設定した場合)
SSO region [None]:ap-northeast-1
# CLIがこの認証情報にアクセスできることを許可
SSO registration scopes [sso:account:access]:sso:account:access
入力が完了するとウィンドウが立ち上がりアクセス許可を与えるか確認されますので[アクセスを許可]をクリック
以下の画面が表示されれば設定は完了です。
動作チェック
CLIでの作業開始時およびIdCで設定したセッション時間が過ぎた場合はaws ssoコマンドでログインする必要があります。
aws sso login --profile <プロファイル名>
設定直後だと先ほどの設定完了画面が出ると思いますが、セッションが切れている場合はログイン画面が立ち上がりますので登録ユーザー名とパスワードでログインをする必要があります。
※このログイン情報はIdC側で設定したユーザー名とパスワードなのでCLI側に設定したプロファイルと混同しないように注意が必要です。
# ログイン成功するとターミナルに以下の表示がされます
Successfully logged into Start URL: https://XXXXXXXX.awsapps.com/start
# awsのコマンドが通るか確認
aws sts get-caller-identity --profile <プロファイル名>
# Widowsでは環境変数を設定することでセッション中に--profile <プロファイル名>を省略できるようにできます。
$env:AWS_PROFILE = "プロファイル名"
aws sts get-caller-identity #先と同じ結果になるのを確認
以上でAWS Identity Centerを使用したAWSへのログインとAWS CLIとIdCを使ったSSOの設定が完了しました。
Discussion