IAM Identity Centerを使って一時クレデンシャルを発行し、AWS CLIからアクセスする手順
はじめに
IAM Identity Center(旧AWS SSO)を使って、AWS CLIで一時的なクレデンシャルを利用する方法を紹介します。
セキュリティを保ちつつ、アクセスキーを直接管理しない運用が可能になります。
※ 前提として、AWS Organizationsを使用していること
1. IAM Identity Centerを有効化する
まず、IAM Identity Centerを有効にします。

- AWSマネジメントコンソールを開きます。
- 上部の検索バーで「IAM Identity Center」と検索。
- サービス画面に入り「有効化」ボタンをクリック。
2. グループの作成
ユーザーをまとめるためのグループを作成します。

- 左メニューから「グループ」を選択。
- 「グループを作成」をクリック。
- 今回は
test-groupという名前で作成しました。
3. ユーザーの作成
次に、ログインに使用するユーザーを作成します。

- 左メニュー「ユーザー」>「ユーザーを追加」。
- ユーザー情報を入力。
- 「ユーザーをグループに追加」にて、先ほど作成した
test-groupを割り当て。
作成後、以下のような招待メールが届きます。

- メール内の「Accept invitation」をクリック。
- サインアップを行う
MFA(多要素認証)の設定
そのまま初回ログインを行なってください。
初回ログイン時に、MFAデバイスの設定が必要です。

私は、「認証アプリ」で設定を行いました。
以下のアプリなどをスマートフォンにインストールして実施してください。
- QRコードを読み取ると6桁のコードが表示されるので、それを入力して完了です。
4. 許可セットの作成(アクセス権の定義)
ユーザーに与えるアクセス権限を定義します。

- 左メニューから「許可セット」>「許可セットを作成」。
- 「事前定義された許可セット」を選択。(今回は簡単化のため)
-
PowerUserAccessを選択。(今回は簡単化のため)
その他の設定は基本的にデフォルトのままでも問題ありません。
「セッション期間」はログイン後に使える時間です(最小で1時間)。
- 設定完了後、「作成」ボタンで完了です。
5. グループへの許可の割り当て

- 左メニューから「グループ」>「AWSアカウント」>「アカウントを割り当てる」
- 割り当てを行うAWS Organizationの組織を選択後、先ほど作成した「許可セット」を選択
6. 一時的なクレデンシャル情報の取得
作成したユーザーでログインし、クレデンシャルを取得します。

-
左メニューから「設定」>「アイデンティティソース」
- AWS access portal URL をコピー。
-
ブラウザでアクセスして、ステップ3で作成したユーザーでログイン。
ログイン後、AWSアカウントやロールを選ぶ画面になります。
今回はステップ4で作成済みのPowerUserAccessを利用します。
利用するクレデンシャル情報
ようやく「一時的な認証情報(アクセスキーなど)」が表示されました🎉
Access key IDSecret access keySession token
これらを使って、AWS CLIから一時的にアクセスできます。

赤枠部分を~/.aws/credentials に手動で設定するのがオーソドックスかなと思います。
もし毎回貼り付けるのが面倒な方は次の方法を使いましょう。
7. 毎回貼り付けるのが面倒な場合 → aws configure sso を使おう
毎回アクセスキーをコピーするのは面倒ですよね。
その場合は、以下のコマンドを使えば、最初の設定だけでSSOログインが簡単にできます。
aws configure sso
設定後は、次のようにログインできます。
aws sso login
詳しくは以下の記事が参考になります。
おわりに
IAM Identity Centerを使えば、アクセスキーを安全に・一時的に 発行してCLIからAWSを操作することができます。
- アクセスキーを永続的に保存せずに済む
- ロールや権限を柔軟に管理できる
安全なAWS運用のために、ぜひ使っていきましょう。
Discussion