🐥

IAM Identity Centerを使って一時クレデンシャルを発行し、AWS CLIからアクセスする手順

に公開

はじめに

IAM Identity Center(旧AWS SSO)を使って、AWS CLIで一時的なクレデンシャルを利用する方法を紹介します。
セキュリティを保ちつつ、アクセスキーを直接管理しない運用が可能になります。

※ 前提として、AWS Organizationsを使用していること

1. IAM Identity Centerを有効化する

まず、IAM Identity Centerを有効にします。

  1. AWSマネジメントコンソールを開きます。
  2. 上部の検索バーで「IAM Identity Center」と検索。
  3. サービス画面に入り「有効化」ボタンをクリック。

2. グループの作成

ユーザーをまとめるためのグループを作成します。

  • 左メニューから「グループ」を選択。
  • 「グループを作成」をクリック。
  • 今回は test-group という名前で作成しました。

3. ユーザーの作成

次に、ログインに使用するユーザーを作成します。

  1. 左メニュー「ユーザー」>「ユーザーを追加」。
  2. ユーザー情報を入力。
  3. 「ユーザーをグループに追加」にて、先ほど作成した test-group を割り当て。

作成後、以下のような招待メールが届きます。

  • メール内の「Accept invitation」をクリック。
  • サインアップを行う

MFA(多要素認証)の設定

そのまま初回ログインを行なってください。
初回ログイン時に、MFAデバイスの設定が必要です。

私は、「認証アプリ」で設定を行いました。
以下のアプリなどをスマートフォンにインストールして実施してください。

  1. QRコードを読み取ると6桁のコードが表示されるので、それを入力して完了です。

4. 許可セットの作成(アクセス権の定義)

ユーザーに与えるアクセス権限を定義します。

  1. 左メニューから「許可セット」>「許可セットを作成」。
  2. 「事前定義された許可セット」を選択。(今回は簡単化のため)
  3. PowerUserAccess を選択。(今回は簡単化のため)

その他の設定は基本的にデフォルトのままでも問題ありません。
「セッション期間」はログイン後に使える時間です(最小で1時間)。

  • 設定完了後、「作成」ボタンで完了です。

5. グループへの許可の割り当て

  1. 左メニューから「グループ」>「AWSアカウント」>「アカウントを割り当てる」
  2. 割り当てを行うAWS Organizationの組織を選択後、先ほど作成した「許可セット」を選択

6. 一時的なクレデンシャル情報の取得

作成したユーザーでログインし、クレデンシャルを取得します。

  1. 左メニューから「設定」>「アイデンティティソース」

    • AWS access portal URL をコピー。
  2. ブラウザでアクセスして、ステップ3で作成したユーザーでログイン。

ログイン後、AWSアカウントやロールを選ぶ画面になります。
今回はステップ4で作成済みのPowerUserAccessを利用します。

利用するクレデンシャル情報

ようやく「一時的な認証情報(アクセスキーなど)」が表示されました🎉

  • Access key ID
  • Secret access key
  • Session token

これらを使って、AWS CLIから一時的にアクセスできます。

赤枠部分を~/.aws/credentials に手動で設定するのがオーソドックスかなと思います。
もし毎回貼り付けるのが面倒な方は次の方法を使いましょう。

7. 毎回貼り付けるのが面倒な場合 → aws configure sso を使おう

毎回アクセスキーをコピーするのは面倒ですよね。
その場合は、以下のコマンドを使えば、最初の設定だけでSSOログインが簡単にできます。

aws configure sso

設定後は、次のようにログインできます。

aws sso login

詳しくは以下の記事が参考になります。

https://zenn.dev/fez_tech/articles/fec83b79c44ff1

おわりに

IAM Identity Centerを使えば、アクセスキーを安全に・一時的に 発行してCLIからAWSを操作することができます。

  • アクセスキーを永続的に保存せずに済む
  • ロールや権限を柔軟に管理できる

安全なAWS運用のために、ぜひ使っていきましょう。

Discussion