複数のAWS SSO(IAM Identity Center)をAWS CLIに関連付ける&社内運用Tips

西山です。

ギークフィードでは社内で複数のAWS Organizationsを管理しており、それぞれのメンバーアカウントに対してCLIアクセスを楽に、かつセキュアに行いたいというニーズがあります。

今回は実際に社内で運用している方法として、AWS CLIを複数のAWS IAM Identity Centerに関連付ける方法(AWS CLIの認証にAWS IAM Identity Centerを利用する方法)について紹介します。

また、後半では社内運用を楽にするTipsを紹介します。

 

前提

 

  • OS: macOS Ventura
  • AWS CLI: aws-cli/2.13.14

 

AWS CLIの設定

まずは1つ目のSSO設定を行います。

 

 

上記コマンドでSSO設定を行います。SSO session nameは任意の名前を入力します。1つ目なのでMainとしました。

SSOセッションの設定が完了すると、自動的にアクセス可能なアカウントを選択するプロンプトが表示されます。こちらは後でまとめて設定するので適当なアカウントを指定して大丈夫です。

 

続いて2つめのSSO設定を行います。

 

SSO session nameとSSO start URLは1つ目とは異なるパラメーターを指定します。2つ目なのでSubとしています。

こちらもそのまま進めていけば1つ目と同様に設定可能です。

 

CLI configを見てみる

 

設定が完了したのでCLI configを見てみます。

 

SSOのセッション用設定のセクションと個別のアカウント設定のセクションがあります。

アカウントの設定を見てみると、sso_sessionにおいてどのSSOセッションを利用して認証をするかを指定していることがわかります。

ここまでわかれば後は以下のテンプレートですべてのアカウントを追記していくだけです。

 

aws configureコマンドを利用しなくてもconfigファイルに追記するだけでSSOでアクセス可能なアカウントに対してCLI実行することができます。

 

configを社内に配布する

 

AWS CLIの認証にIAM Identity Centerを利用することは、IAMユーザーが不要になり一時的なセキュリティトークンによってセキュアにアクセスできるというメリットが第一に挙げられますが、もう一つ、社内でAWS CLIのconfigファイルを全社員共通利用するものとして配布できるようになるという大きなメリットがあります。

先程みたconfigファイルには個人ごとに設定する必要のあるパラメーターはなく、各メンバーアカウントにアクセスできるかどうかはIdentity Center側で制御されるため、configを共通ファイルとして配布できます。

 

配布されたconfigファイルから環境設定を行う

 

configファイルが配布されたクライアントでは、AWS CLI v2がインストールされていることが前提になります。

configファイルを.awsフォルダ配下に配置し、以下のコマンドを実行します。

 

 

それぞれコマンドを実行すると、SSOセッション登録時と同様にブラウザが立ち上がりアクセス許可が求められるので、「Allow」をクリックします。

 

 

 

これだけで新規クライアントでも各メンバーアカウントやセッションの登録をせずにすぐにセキュアなAWS CLIを利用することができます!

configファイルをGitリポジトリで管理して更新があったら社内にSlackなどで通知する仕組みを用意するとさらに効率的になると思います。

 

 

参考資料

 

AWS IAM Identity Center (successor to AWS Single Sign-On) の自動認証更新によるトークンプロバイダーの設定

IAM Identity Center 名前付きプロファイルを使用する

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ