aws-vault から Granted に移行した話

aws-vault の開発終了をきっかけに Granted へ移行しました。ロールの切り替えやコンソールの開き方の違いと、認証情報や既存の設定を引き継ぐ際の注意点をまとめます。

Takahiro Iwasa
7 min read

AWS の認証情報の管理に使っていた aws-vault の開発が停止したため、代替ツールを探し、Granted に移行しました。主な違いは、現在のシェルでロールを切り替える操作と、複数アカウントのコンソールを分けて開く機能です。

移行のきっかけ

2025年末、99designs/aws-vault の README に、開発が停止し、今後は更新されないとの告知が追記されました。

同じ告知には ByteNess/aws-vault への案内もあります。更新が停止したのは 99designs/aws-vault であり、フォークも含めて aws-vault の開発がすべて終了したわけではありません。

そのままフォークを使う選択肢もありましたが、ほかのツールも調べる中で見つけたのが Granted でした。AWS のロール選択と、複数アカウントのコンソールを同時に開く機能を備えています。

aws-vault と Granted の特徴

以下は、99designs/aws-vault と Granted の公式ドキュメントを基にした比較です。aws-vault のフォークは比較の対象に含めていません。

観点aws-vaultGranted
主な用途認証情報を安全に保管し、一時認証情報をコマンドへ渡すロールの選択・切り替えとコンソールへのアクセス
IAM アクセスキーOS のキーストアなどに保管granted credentials で安全なストレージに保管可能
IAM Identity Center(SSO)対応対応。SSO トークンを暗号化してキャッシュ
ターミナルでの操作aws-vault exec でコマンドやサブシェルを起動assume で現在のシェルの認証情報を設定
プロファイルの選択コマンドに名前を指定名前の指定に加え、対話的な検索・選択が可能
コンソールへのログインaws-vault loginassume -c。ブラウザーのコンテナーやプロファイルでセッションを分離

SSO はどちらも対応しています。操作上の違いが出るのは、プロファイルを選んでコマンドを実行するときや、複数アカウントのコンソールを開くときです。

基本操作を置き換える

macOS では Homebrew でインストールできます。Getting Started に沿って、次のコマンドを実行します。

Terminal window
brew tap fwdcloudsec/granted
brew install fwdcloudsec/granted/granted
assume

初回の案内に従ってブラウザーとシェルのエイリアスを設定し、新しいターミナルを開きます。以降の dev と prod は、設定済みのプロファイル名の例です。

aws-vault では、プロファイルと実行するコマンドを指定します。

Terminal window
aws-vault exec dev -- aws sts get-caller-identity

Granted では、現在のシェルでプロファイルを選んでから AWS CLI を実行できます。

Terminal window
assume dev
aws sts get-caller-identity

aws-vault exec dev がサブシェルを起動するのに対し、assume dev は現在のシェルに認証情報を設定します。その後に実行するコマンドも同じ認証情報を使うため、アカウントを切り替えた後は get-caller-identity でどのアカウントを使っているか確認します。

その認証情報を使う範囲を1つのコマンドに限定したい場合は、Granted の --exec を使えます。

Terminal window
assume dev --exec -- aws sts get-caller-identity

複数アカウントのコンソールを開く

Granted では、次のようにプロファイルごとにコンソールを開けます。

Terminal window
assume -c dev
assume -c prod

コンソールのドキュメントによると、Firefox では Granted の拡張機能を使い、コンテナータブでセッションを分離します。Chromium 系ブラウザーでは、ブラウザープロファイルを使って別々のウィンドウで開きます。

例えば、開発環境と本番環境の設定を見比べたいときに、両方のセッションを保ったまま確認できます。aws-vault にもコンソールへログインする機能はありますが、Granted では複数のセッションを分離して開けます。

移行時に確認する設定

Granted は AWS CLI と同じ設定ファイルを利用します。ただし、~/.aws/config のプロファイルと、aws-vault に保管したアクセスキーは別のものです。設定ファイルを引き継ぐだけでは、保存済みのキーは移行されません。

SSO を利用する場合は、既存プロファイルでログインできるかを確認します。IAM アクセスキーを利用する場合は、必要に応じて granted credentials add で登録します。Granted の credentials import は平文の AWS credentials ファイルから取り込む機能なので、aws-vault のストレージを直接移行するコマンドではありません。

また、credential_process やシェルのエイリアス、スクリプトに aws-vault の呼び出しが残っていると、Granted を導入しても aws-vault が必要なままです。プロファイルごとに CLI とコンソールの動作を確認し、それらの呼び出しを見直してから aws-vault を削除すると、移行漏れを見つけやすくなります。

まとめ

99designs/aws-vault の開発終了を受けて Granted に移行しましたが、aws-vault に近い操作を維持したければフォークを使う選択肢もあります。Granted は、対話的にプロファイルを選びたい場合や、複数アカウントのコンソールを並べて使いたい場合に向いています。

移行では、コマンドの置き換えに加えて、保存済みの認証情報と aws-vault を呼び出す設定の確認が必要です。既存のプロファイルを使える場合でも、CLI とコンソールの両方で動作を確かめてから切り替えます。

著者について

Takahiro Iwasa

Takahiro Iwasa

Software Developer

This blog shares technical notes from hands-on projects—architecture, implementation, and AWS service integrations.